关于 tock-mcp
tock-mcp 是面向餐厅探索的 Tock MCP 服务,可查询城市、餐厅详情和可预订时段。它通过已登录的浏览器标签页读取 Tock 页面,提供只读查询;预订仍需在 exploretock.com 完成。
主要功能
- 01按城市和都会区搜索餐厅
- 02查看餐厅详情与可预订体验
- 03查询价格、人数及开放时段
- 04读取账户资料与预订记录
- 05验证预订状态
适用场景
- 01按菜系或社区筛选餐厅
- 02比较餐厅体验、价格和空档
- 03查看账户中的购买记录
- 04核实预订尝试的结果
MCP 相关
该项目是 MCP 服务,向客户端提供 Tock 城市、餐厅、可用时段及账户查询工具。请求经由 ContextMint Bridge 转发到已登录的浏览器标签页;服务不执行预订。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y tock-mcpTOCK_WS_PORTConcentrator port for the fetchproxy browser bridge (defaults to the fleet-shared 37149). On one machine every MCP shares the concentrator, so move it for ALL of them or not at all.FETCHPROXY_WS_HOSTBind interface, a literal IP only (anything else is ignored); default 127.0.0.1. Keep on loopback — it exists for ONE topology: a hosted child in its own network namespace.FETCHPROXY_IDENTITY_DIRWhere to store the long-term identity keypair, an absolute path only (anything else is ignored); default ~/.fetchproxy/identity/. Exists for a host that runs a separate child per caller.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
8收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | 返回的都会区数量上限(默认 100)。 |
| query | string | 否 | 按都会区名称或 slug 进行不区分大小写的筛选(例如“chic”)。 |
| country | string | 否 | 按 2 位国家/地区代码筛选(例如“US”、“GB”)。 |
| include_empty | boolean | 否 | 包含 businessCount 为 0 的都市圈(默认 false)。 |
详细介绍
tock-mcp
面向 Tock(exploretock.com)的 MCP 服务——为 Claude 提供餐厅发现和可订情况。列出城市、搜索都会区,并获取场所详情及其可预订体验、价格、人数和开放日期/时间。
每个请求都会通过 ContextMint Bridge 浏览器扩展,经由你已登录的浏览器标签页转发——无需粘贴 Cookie、绕过机器人屏障或处理密码。本项目由 AI(Claude Code)开发并维护。
Tock 未发布官方消费者 API,exploretock.com 也受到 Cloudflare 挑战保护。tock-mcp 会通过你已登录的标签页,获取 Tock 网页应用使用的相同服务端渲染页面(解析其中嵌入的
window.$REDUX_STATEstore)。它是只读的——Tock 预订是预付费票券,因此预订仍需在 exploretock.com 上完成。请自行斟酌使用。
安装
// .mcp.json
{
"mcpServers": {
"tock": { "command": "npx", "args": ["-y", "tock-mcp"] }
}
}
你还需要安装 ContextMint Bridge(所有基于 fetchproxy 的 MCP 共用的浏览器扩展),请从其发布页面获取:在 Chrome 中解压 Chrome 压缩包,并以未打包扩展的形式加载(chrome://extensions → 开发者模式 → 加载已解压的扩展程序)。Safari 目前不可用(该扩展将随 ContextMint 应用一同发布,但该应用尚无公开下载),因此请暂时使用 Chrome。ContextMint Bridge 是更名后的 fetchproxy 浏览器扩展,由同一维护者开发;fetchproxy 自己的 README(https://github.com/chrischall/fetchproxy#extension)也指向该扩展。其源代码公开于 https://github.com/nullnet-app/contextmint-bridge:你可以自行构建,也可以用随发布包一同提供的 .sha256 文件校验发布压缩包(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。请保持 exploretock.com 标签页处于打开状态。首次调用工具时会打印一个一次性配对码,需在 ContextMint Bridge 弹出窗口中批准——运行 tock_healthcheck 即可触发。未登录也可以进行发现;账户工具则需要你登录 exploretock.com。
环境
无需设置环境变量。以下可选配置项与 .mcpb 清单中的设置一致:
| 变量 | 默认值 | 用途 |
|---|---|---|
TOCK_WS_PORT | 37149 | fetchproxy 浏览器桥接的集中器端口。同一台机器上的所有 fetchproxy MCP 共用此集中器,因此要么为它们全部更改端口,要么都不更改(主要用于本地测试,或托管注册的桥接端口)。 |
FETCHPROXY_WS_HOST | 127.0.0.1 | 桥接绑定接口,仅接受字面 IP(其他值都会被忽略)。请保持为环回地址;此设置是为运行在独立网络命名空间中的托管子进程提供的。 |
FETCHPROXY_IDENTITY_DIR | ~/.fetchproxy/identity/ | 存储桥接长期身份密钥对的位置,仅接受绝对路径(其他值都会被忽略)。适用于每位调用者都运行独立子进程的主机。 |
工具
tock_list_metros— 列出 Tock 城市/都会区及商家数量;可按名称/国家筛选。tock_search_restaurants— 搜索都会区 slug 中的场所(菜系、价格、街区、slug)。tock_get_restaurant— 获取场所详情及其可预订体验。tock_get_availability— 获取场所的可预订日历(体验、价格、开放日期/时间)。tock_list_reservations/tock_get_profile— 获取已登录用户的购买记录和个人资料。tock_verify_reservation— 尝试预订后重新查询账户,并明确返回confirmed/cancelled/not_found/ambiguous结论。成功页面并不能证明预订成功;此工具才可以。tock_healthcheck— 检查桥接状态并获取一次性配对码。
开发
npm install
npm run build # tsc + esbuild bundle → dist/bundle.js
npm test # vitest
架构以及通过逆向工程整理的 Tock 接口文档见 docs/TOCK-API.md。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。