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 分