Taste Overlap

io.github.Sooonic008由 GitHub 帳號 Sooonic008 發布v0.1.0更新於 Oct 24, 2026

Plans a shared evening for two people: places both would enjoy, ranked by Qloo's taste graph.

已驗證Streamable HTTP可網頁執行位置與生活AI 與機器學習

概覽

AI 產生的概覽

為兩個人規劃共同的一晚:依 Qloo 品味圖譜排序,提供同城最多六個雙方都會喜歡的地點,並依活動、用餐、小酌排序。

可以做什麼
  • 依城市與兩人各自提供的幾項喜好(藝人、電影、影集、書籍、品牌)規劃共同的一晚
  • 取得依 Qloo 品味圖譜排序的最多六個地點,只保留對雙方評分都好的選擇
  • 查看解釋每個選擇的共同品味標籤,以及活動、用餐、小酌的晚間順序
  • 透過單一工具 plan_shared_evening 以文字加結構化內容回傳方案
適用情境
適合兩個人想為某座城市的共同外出取得聯合推薦,並願意各自提供幾項喜好作為品味訊號時使用。它是用途單一的規劃工具,而非通用的推薦或搜尋工具。
執行需求
可直接使用遠端 MCP 端點,無需安裝。本機使用需要 Node.js 22.19+ 與 Qloo harness,並透過環境變數提供 Qloo API 金鑰與基礎位址(QLOO_API_KEY、QLOO_BASE_URL、QLOO_TRUSTED_BASE_URL)。無憑證的示範模式僅重播一段已錄製的維也納範例。
安裝前請注意
結果完全依賴 Qloo;沒有金鑰時只有已錄製的示範範例可用,其他輸入會回傳錯誤。遠端端點共用依訪客與每日的呼叫上限。喜好與城市會傳送到 Qloo 的 API,API 金鑰透過環境變數傳給伺服器。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Taste Overlap,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.Sooonic008%2Ftaste-overlap/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "taste-overlap": {
      "type": "http",
      "url": "https://taste-overlap.onrender.com/mcp"
    }
  }
}

README

Taste Overlap

Two people, a few favourites each (artists, films, shows, books, places). Qloo's taste graph ranks places in your city for person A, for person B and for both together. Taste Overlap keeps only the places that rank well for both (harmonic mean of the two affinities, so one-sided picks drop out), explains each pick with the shared taste tags, and orders them into an evening: something to do, food, then a drink.

Without Qloo there is nothing to show: the overlap is computed from Qloo's per-person affinities, not from an LLM guess.

Run

Needs Node.js 22.19+ and the official Qloo harness (the supported event surface):

bash
npm install --global @qloo/qloo-harness   # qloo --version >= 0.1.26export QLOO_API_KEY=...                    # the hackathon key (or: qloo setup --qloo)export QLOO_BASE_URL=https://hackathon.api.qloo.comexport QLOO_TRUSTED_BASE_URL=https://hackathon.api.qloo.com   # the harness only sends a key to an approved endpointnpm start                                  # http://localhost:8787

Demo without credentials: QLOO_TRANSPORT=demo npm start replays a real recorded run (demo/vienna.json, 11 qloo exec calls) through the same code. Only that example works (Vienna; Radiohead + Wes Anderson / Taylor Swift + Studio Ghibli); other inputs return an error instead of invented places.

Optional: QLOO_TRANSPORT=rest with QLOO_API_KEY uses the direct REST client (src/qloo.js) instead; QLOO_BASE, PORT.

Use it from an agent (MCP tool)

Remote, nothing to install: the live demo also speaks MCP at https://taste-overlap.onrender.com/mcp (streamable HTTP, JSON answers). In claude.ai or the Claude app: Settings → Connectors → Add custom connector and paste that URL. Tool calls share the demo's per-visitor and daily limits.

Local (stdio):

Taste Overlap is also an agent tool: mcp-server.js is a dependency-free MCP stdio server with one tool, plan_shared_evening (city, person_a[], person_b[]). It returns the explained evening as text plus structured content, and any MCP client can call it:

bash
claude mcp add taste-overlap -- node /path/to/taste-overlap/mcp-server.js   # Claude Code# or in claude_desktop_config.json / Cursor: {"command": "node", "args": ["/path/to/mcp-server.js"],#   "env": {"QLOO_API_KEY": "...", "QLOO_BASE_URL": "https://hackathon.api.qloo.com", "QLOO_TRUSTED_BASE_URL": "https://hackathon.api.qloo.com"}}

Without a key, QLOO_TRANSPORT=demo makes the tool answer the recorded Vienna example.

Test

bash
node --test

How it works

  • src/mcp.js (default transport) - one long-running qloo mcp process (the harness's canonical MCP adapter) serves every workflow as qloo_<op>; on a small host this takes ~0.5-1.2 s per call instead of >30 s for a fresh qloo exec. QLOO_TRANSPORT=exec switches back to one qloo exec per call.
  • src/harness.js - the Qloo workflows: recommend (target_type: place, the favourites as signals, filter_location: the city) for A, B and both; entity_tags for the tags that explain each pick. The harness resolves the names and validates input before calling Qloo; when a name is ambiguous (status: needs_input) the client takes Qloo's top-ranked non-album candidate, retries once with its entity id and returns that choice. Workflow names are fixed, user text goes in on stdin.
  • Each pick's reason comes from Qloo's per-result explainability (signal.interests.entities): which favourites drove the place and by how much.
  • src/demo.js - records and replays real harness envelopes for the credential-free demo.
  • src/qloo.js (fallback) - resolves each favourite with /search, ranks places with /v2/insights (filter.type=urn:entity:place, signal.interests.entities, filter.location.query). The key is sent as a header from the server and never reaches the browser.
  • src/overlap.js - pure logic: shared picks, reasons, evening order (unit-tested). Qloo returns at most 20 places per call, and two tastes can share none of them (measured: Berlin, Daft Punk + Christopher Nolan vs Adele + Pixar). Real overlaps come first; the rest is topped up from the joint list and labelled "combined taste". A place scored one-sided in both personal lists never comes back that way.
  • src/plan.js - three Qloo calls (A, B, both) -> overlap -> explained plan.
  • server.js - dependency-free Node server, serves public/ and POST /api/plan.
  • mcp-server.js - the same plan as an MCP tool for agents; src/transport.js picks the Qloo transport for both.

License

MIT

來源:README.md,提交 da98941

工具

1

plan_shared_evening

Plan a shared evening (Qloo taste overlap)

Given a city and a few favourites for each of two people (artists, films, shows, books, brands), returns up to six places both would enjoy, ranked by Qloo's taste graph, each with the reason and in evening order (something to do, food, a drink). Picks marked basis=combined come from Qloo's list for the combined taste because the two personal top-20 lists did not overlap enough.

輸入參數city必填person_a必填person_b必填

版本歷史

1
  1. v0.1.0最新Oct 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分