mcpField
E
easytable-mcp

easytable-mcp

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

关于 easytable-mcp

easytable-mcp 是用于查询餐厅空位和管理 easyTable 预订的 MCP 服务。它通过已登录的浏览器标签页工作,创建、更改或取消预订前均需确认。

主要功能

  1. 01查询可预订区域和日期
  2. 02查看可用时段
  3. 03按电话号码查找预订
  4. 04创建、更改和取消预订
  5. 05发送预订更改前先确认

适用场景

  1. 01按用餐人数查看可订餐桌
  2. 02通过电话号码查找预订
  3. 03更改餐厅预订
  4. 04查看预订详情后取消

MCP 相关

向 MCP 客户端提供 easyTable 空位查询和预订操作工具。请求通过用户已登录的 easyTable 浏览器标签页发送,预订写入需确认。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-easytable": {
"command": "npx",
"args": [
"-y",
"easytable-mcp"
],
"env": {
"EASYTABLE_WS_PORT": "<EASYTABLE_WS_PORT>",
"EASYTABLE_DEBUG": "<EASYTABLE_DEBUG>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
启动命令npx -y easytable-mcp
需要配置的环境变量
EASYTABLE_WS_PORTOverride the fetchproxy WebSocket port (default 37149).
EASYTABLE_DEBUGSet to 1 to log the bridge role and per-request debug lines to stderr.
FETCHPROXY_WS_HOSTBridge bind interface, a literal IP only (default 127.0.0.1). Keep on loopback; exists for a hosted child in its own network namespace.
FETCHPROXY_IDENTITY_DIRAbsolute path for the long-term bridge identity keypair (default ~/.fetchproxy/identity/). Exists for a host that runs a separate child per caller.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmeasytable-mcp1.2.8

工具

8

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

参数类型必填说明
idstring是餐厅 ID — book.easytable.com/book/?id=<id> 链接中的 `id`。
langstring否小组件语言代码(例如 en、se、da、de、fr)。默认为 en。

详细介绍

easytable-mcp

适用于 easyTable 餐厅预订的 MCP 服务。easyTable 是一个餐厅订位系统,每家餐厅都有一个公开的预订小组件,地址为 https://book.easytable.com/book/?id=<restaurantId>。

每个请求都会通过 @fetchproxy/server 桥接服务,使用用户本人已登录且已通过 Cloudflare 验证的 book.easytable.com 浏览器标签页发送——该网站会拦截服务端请求,而且无需登录(通过 id 识别餐厅)。

本项目由 AI(Claude Code)开发并维护。请自行决定是否使用。

工具

工具类型
easytable_list_types读取 — 餐厅可预订的区域/类型
easytable_list_dates读取 — 某区域和用餐人数可预订的日期
easytable_list_times读取 — 可预订的时段
easytable_find_bookings读取 — 按电话号码查找预订
easytable_create_booking写入(需确认)— 创建预订
easytable_modify_booking写入(需确认)— 修改预订
easytable_cancel_booking写入(需确认)— 取消预订
easytable_healthcheck读取 — 桥接连接状态

确认

每次写入操作都会先请求你确认。能显示确认提示词的客户端(Claude Code)会显示提示。在其他客户端中,首次调用不会执行任何操作,而是返回预览和一个 confirmToken;只有使用相同参数和该令牌再次调用,才会创建、修改或取消预订。取消操作会先查找预订,因此预览会显示要取消的预订;如果 ID 不属于该手机号的预订,则会拒绝操作。令牌只能使用一次,参数一旦更改,令牌便会失效。

变量默认值
MCP_CONFIRM_MODEask-user当客户端无法显示确认提示词时(claude.ai、Claude Desktop),写入操作的处理方式。ask-user:分两步执行——首次调用不执行任何操作,只返回预览和令牌;模型必须先在聊天中征得你的批准,才能使用该令牌再次调用。auto:同样分两步执行,但模型查看预览后可以自行使用令牌。refuse:此类客户端上的写入操作会被拒绝。能够显示提示词的客户端(Claude Code)始终会显示实际提示,除非 MCP_CONFIRM_ELICITATION=off。无法识别的值会按 refuse 处理。
MCP_CONFIRM_ELICITATIONonoff 表示绝不发送确认提示,因此所有客户端都会使用 MCP_CONFIRM_MODE 流程。对于声明能够显示提示词、但实际从不显示的客户端(受控调用会挂起——opencode 2.0.x),请设置此项。任何其他值都会保持为 on,并输出 stderr 警告。
MCP_CONFIRM_TTL_SECONDS600令牌的有效时长。
MCP_CONFIRM_SECRET每个进程随机生成签名密钥;只有在令牌必须跨服务重启继续有效时才设置。

设置

  1. 从 releases 安装 ContextMint Bridge 浏览器扩展: 在 Chrome 中,解压 contextmint-bridge-chrome-*.zip 资源包并以未打包方式加载(chrome://extensions → 开发者模式 → 加载未打包的扩展程序);在 Safari 中,它随 ContextMint 应用提供,目前尚无公开下载链接,因此暂时请使用 Chrome。ContextMint Bridge 是 fetchproxy 浏览器扩展的新名称,由同一维护者开发;fetchproxy 自己的 README 中也指向它。其源代码公开于 nullnet-app/contextmint-bridge: 你可以自行构建,也可以使用随发布版本一同提供的 .sha256 文件校验发布 zip 文件 (shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256)。
  2. 在 Chrome 中打开预订组件:https://book.easytable.com/book/?id=<id>,并等待其加载完成。
  3. 首次调用工具时会打印一次性配对码,请在 ContextMint Bridge 中批准。

create 和 modify 还会从已加载的确认步骤中读取组件的 Cloudflare Turnstile 令牌,因此确认预订时必须打开预订组件标签页。

环境

无需设置环境变量。以下可选配置项与 .mcpb 清单中的设置一致(MCP_CONFIRM_* 系列见确认):

变量默认值
EASYTABLE_WS_PORT37149fetchproxy 浏览器桥接的集中器端口。同一台机器上的所有 fetchproxy MCP 共用此端口,因此要么为它们全部更改,要么一个也不改(用于本地测试或托管注册的桥接端口)。
FETCHPROXY_WS_HOST127.0.0.1桥接绑定接口,仅接受字面 IP 地址(其他值会被忽略)。请保持为回环地址;此设置供位于独立网络命名空间中的托管子进程使用。
FETCHPROXY_IDENTITY_DIR~/.fetchproxy/identity/存储桥接长期身份密钥对的位置,仅接受绝对路径(其他值会被忽略)。适用于为每个调用方运行独立子进程的主机。
EASYTABLE_DEBUG未设置设置为真值后,会将桥接角色及每个请求的调试信息记录到 stderr。

开发

npm install
npm run build
npm test

有关逆向分析得出的请求/响应格式,请参阅 docs/EASYTABLE-API.md;有关架构说明,请参阅 CLAUDE.md。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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