mcpField
T
Taste Overlap

Taste Overlap

远程服务
taste-overlap.onrender.com地图与出行02 周前更新

关于 Taste Overlap

Taste Overlap 是用于为两人规划夜晚行程的 MCP 服务。它依据 Qloo 的契合度为地点排序、说明推荐理由,并安排活动、餐饮和饮品。

主要功能

  1. 01按个人及共同口味排列地点
  2. 02依据 Qloo 契合度计算重合度
  3. 03用共同口味标签解释推荐
  4. 04安排活动、餐饮和饮品

适用场景

  1. 01根据两人的喜好规划城市夜晚行程
  2. 02查看地点为何符合双方口味

MCP 相关

通过 stdio 和远程 Streamable HTTP 端点提供 `plan_shared_evening` 工具,返回带解释的文本和结构化行程。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://taste-overlap.onrender.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

1
参数类型必填说明
citystring是城市,例如 Vienna
person_aarray是A 的喜好
person_barray是B 的喜好

详细介绍

口味重合

两个人,各自有几个喜爱的对象(艺人、电影、节目、书籍、地点)。Qloo 的品味图谱会为 A、B 两个人以及两人共同的口味,分别对你所在城市的地点进行排序。Taste Overlap 只保留两人都排名靠前的地点(取两种亲和度的调和平均值,因此只符合一方口味的选项会被剔除),并用共同的口味标签解释每个推荐,再将它们安排成一晚的行程:活动、用餐,然后小酌。

没有 Qloo 就无法提供结果:重合度是根据 Qloo 为每个人计算的亲和度得出的,而不是由 LLM 猜测。

运行

需要 Node.js 22.19+ 和官方 Qloo harness(受支持的事件接口):

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

无需凭据即可体验:QLOO_TRANSPORT=demo npm start 会通过相同代码重放真实录制的运行结果(demo/vienna.json,11 次 qloo exec 调用)。只有该示例可用(维也纳;Radiohead + Wes Anderson / Taylor Swift + Studio Ghibli);其他输入会返回错误,而不会编造地点。

可选:使用 QLOO_TRANSPORT=rest 和 QLOO_API_KEY 改用直接 REST 客户端(src/qloo.js);还可配置 QLOO_BASE、PORT。

在 Agent 中使用(MCP 工具)

**远程,无需安装:**在线演示也支持 MCP,地址为 https://taste-overlap.onrender.com/mcp(可流式传输的 HTTP,返回 JSON 答案)。在 claude.ai 或 Claude 应用中,前往 设置 → 连接器 → 添加自定义连接器,粘贴该 URL。工具调用受演示版的每位访客和每日限额约束。

本地(stdio):

Taste Overlap 也可作为 Agent 工具使用:mcp-server.js 是一个零依赖的 MCP stdio 服务,提供一个工具 plan_shared_evening(city、person_a[]、person_b[])。它会以文本和结构化内容的形式返回附有解释的晚间计划,任何 MCP 客户端都可以调用它:

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"}}

没有密钥时,QLOO_TRANSPORT=demo 会让该工具返回录制的维也纳示例。

测试

node --test

工作原理

  • src/mcp.js(默认传输方式)- 一个持续运行的 qloo mcp 进程(harness 的规范 MCP 适配器)为所有工作流提供 qloo_<op> 服务;在小型主机上,每次调用耗时约 0.5-1.2 秒,而启动新的 qloo exec 则需超过 30 秒。设置 QLOO_TRANSPORT=exec 可切换回每次调用执行一次 qloo exec。
  • src/harness.js - Qloo 工作流:分别为 A、B 和两人共同口味调用 recommend(target_type: place,将喜爱对象作为 signals,将所在城市设为 filter_location);使用 entity_tags 获取解释每个推荐的标签。harness 会解析名称并在调用 Qloo 前验证输入;当名称存在歧义时(status: needs_input),客户端会选取 Qloo 排名最高的非专辑候选项,用其实体 ID 重试一次,并返回该选项。工作流名称是固定的,用户文本通过 stdin 传入。
  • 每个推荐的理由来自 Qloo 为每项结果提供的 explainability(signal.interests.entities):哪些喜爱对象影响了该地点,以及影响程度。
  • src/demo.js - 录制并重放真实的 harness 信封,供无需凭据的演示使用。
  • src/qloo.js(备用方案)- 使用 /search 解析每个喜爱对象,并通过 /v2/insights 对地点排序(filter.type=urn:entity:place、signal.interests.entities、filter.location.query)。密钥作为标头由服务端发送,不会传到浏览器。
  • src/overlap.js - 纯逻辑:共同推荐、理由、晚间行程顺序(经过单元测试)。Qloo 每次调用最多返回 20 个地点,而两种口味可能没有任何共同地点(实测案例:柏林,Daft Punk + Christopher Nolan 对比 Adele + Pixar)。优先显示真实的重合地点;其余位置从共同口味列表补充,并标记为“combined taste”。如果某地点在两份个人列表中都只符合一方口味,就不会以这种方式再次出现。
  • src/plan.js - 三次 Qloo 调用(A、B、两人共同口味)-> 重合结果 -> 附有解释的计划。
  • server.js - 零依赖的 Node 服务,提供 public/ 和 POST /api/plan。
  • mcp-server.js - 将同一计划作为 MCP 工具提供给 Agent;src/transport.js 为两者选择 Qloo 传输方式。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。