mcpField
T
tock-mcp

tock-mcp

本地服务
github.com/chrischall地图与出行04 天前更新

关于 tock-mcp

tock-mcp 是面向餐厅探索的 Tock MCP 服务,可查询城市、餐厅详情和可预订时段。它通过已登录的浏览器标签页读取 Tock 页面,提供只读查询;预订仍需在 exploretock.com 完成。

主要功能

  1. 01按城市和都会区搜索餐厅
  2. 02查看餐厅详情与可预订体验
  3. 03查询价格、人数及开放时段
  4. 04读取账户资料与预订记录
  5. 05验证预订状态

适用场景

  1. 01按菜系或社区筛选餐厅
  2. 02比较餐厅体验、价格和空档
  3. 03查看账户中的购买记录
  4. 04核实预订尝试的结果

MCP 相关

该项目是 MCP 服务,向客户端提供 Tock 城市、餐厅、可用时段及账户查询工具。请求经由 ContextMint Bridge 转发到已登录的浏览器标签页;服务不执行预订。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-tock": {
"command": "npx",
"args": [
"-y",
"tock-mcp"
],
"env": {
"TOCK_WS_PORT": "<TOCK_WS_PORT>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
启动命令npx -y tock-mcp
需要配置的环境变量
TOCK_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtock-mcp1.1.9

工具

8

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否返回的都会区数量上限(默认 100)。
querystring否按都会区名称或 slug 进行不区分大小写的筛选(例如“chic”)。
countrystring否按 2 位国家/地区代码筛选(例如“US”、“GB”)。
include_emptyboolean否包含 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_STATE store)。它是只读的——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_PORT37149fetchproxy 浏览器桥接的集中器端口。同一台机器上的所有 fetchproxy MCP 共用此集中器,因此要么为它们全部更改端口,要么都不更改(主要用于本地测试,或托管注册的桥接端口)。
FETCHPROXY_WS_HOST127.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

评论

支持 Markdown

第一次接触 MCP?

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

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