mcpField
B
BondSeat

BondSeat

本地服务
bond-seat.com地图与出行06 周前更新

关于 BondSeat

BondSeat connector 是为希望预约 Resy 餐厅的用餐者及其 Agent 提供的 MCP 服务,可监控取消情况或在放位时尝试预订,并按偏好自动预约。它通过私有状态保存连接凭据和请求状态,且使用本地 stdio 传输。

主要功能

  1. 01监控取消与预约放位时间
  2. 02按偏好提交自动预约请求
  3. 03通过设置链接连接 Resy
  4. 04保存连接与轮询状态
  5. 05提供请求状态及停止、恢复工具

适用场景

  1. 01监控心仪餐厅的取消空位
  2. 02在预约开放时尝试订位
  3. 03查看或停止已有预约请求

MCP 相关

这是使用官方 TypeScript SDK 和本地 stdio 传输的 MCP 服务,可由能启动本地 MCP 进程的客户端调用。它不提供托管 HTTP MCP 端点。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"saintmarksventures-bondseat": {
"command": "npx",
"args": [
"-y",
"@bondseat/mcp"
],
"env": {
"BONDSEAT_API_URL": "<BONDSEAT_API_URL>",
"BONDSEAT_STATE_FILE": "<BONDSEAT_STATE_FILE>"
}
}
}
}
启动命令npx -y @bondseat/mcp
需要配置的环境变量
BONDSEAT_API_URLTrusted HTTPS BondSeat REST API base. Defaults to production; override only for a configured environment.
BONDSEAT_STATE_FILEAbsolute path to private persistent storage for one diner. Defaults to ~/.bondseat/connection.json. Use a separate file per diner and environment.

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

安装包
npm@bondseat/mcp0.1.2

工具

7

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

参数类型必填说明
qstring否
urlstring否
citystring否
cursorstring否

详细介绍

BondSeat 连接器

在 Resy 上抢订难订的餐桌。BondSeat 会监控取消的预订,或在预订开放时尝试立即订位,然后自动预订符合你偏好的餐桌。

BondSeat 会谨慎管理你的凭据,并控制查询可用情况的频率,让常规监控与个人 Resy 账户相互独立。

Agent 使用预订工具。连接器会将访问令牌、设置代码、重试标识符和轮询状态保密。用餐者只需打开设置链接,无需将令牌复制到聊天中,也无需让 Agent 记住令牌。

这是一个使用官方 TypeScript SDK 和本地 stdio 传输的 MCP 服务。它适用于能够启动本地 MCP 进程的客户端。它不是托管的 HTTP MCP 端点。底层 REST API 也仍可供自定义运行时使用。

安装

需要 Node.js 22 或更高版本。配置支持本地 stdio 的 MCP 客户端:

{
  "mcpServers": {
    "bondseat": {
      "command": "npx",
      "args": ["--yes", "@bondseat/[email protected]"]
    }
  }
}

默认连接到 BondSeat 生产 API。无需复制 API 密钥:需要设置时,用餐者会打开链接来连接 Resy,并授权支付 10 美元的成功服务费。未成功的请求不收费。无需账户的流程支持 Resy;餐厅收费需要用餐者在 Resy 中保存银行卡,并通过 Stripe 单独授权支付 BondSeat 的服务费。

不带参数调用可执行文件时会启动 MCP。也可以使用 CLI:

npx --yes @bondseat/[email protected] --help
npx --yes @bondseat/[email protected] schema request
npx --yes @bondseat/[email protected] restaurants <<'BONDSEAT_INPUT'
{"q":"La Vara","city":"Brooklyn"}
BONDSEAT_INPUT

命令:restaurants、request、status、requests、stop、resume、connect。通过 stdin 传递 JSON。schema <command> 会输出 MCP 工具的输入架构,不会联系 API。CLI 退出码:有结果时为 0(包括等待设置的情况),需要执行操作或发生运行时错误时为 1,输入无效时为 2。即使退出码为 1,也要读取 JSON 结果。诊断信息绝不会包含原始输入或存储的凭据。

BondSeat 技能为 OpenClaw 和其他支持技能的 Agent 提供工作流。它既可使用已连接的 MCP 工具,也可使用 CLI。安装技能本身不会配置 MCP 连接。

运行时配置

变量默认值用途
BONDSEAT_API_URL生产 API:https://6qq9f4msd4.execute-api.us-east-1.amazonaws.com/agent/v1可信的 HTTPS BondSeat API 基础地址。
BONDSEAT_STATE_FILE~/.bondseat/connection.json一个用餐者和一个环境的私有持久化状态。

多用户主机必须隔离每位用餐者的状态。同一文件必须可供后续 CLI 调用和定时后续操作使用。如果客户端在沙箱中运行,请在沙箱中配置 Node、网络访问和持久化存储。

进行 QA 开发时,请明确配置两个变量:

{
  "BONDSEAT_API_URL": "https://31clusup32.execute-api.us-east-1.amazonaws.com/agent/v1",
  "BONDSEAT_STATE_FILE": "/absolute/private/path/bondseat/qa.json"
}

进行本地源码开发时,安装依赖后,可以从此软件包启动 node server.mjs 或 node cli.mjs。仅支持远程连接的客户端需要托管适配器;此软件包不提供 HTTP MCP 端点。

Agent 工作流

  1. 直接提供餐厅名称和地点: bondseat_request({restaurant: "La Vara", city: "Cobble Hill", partySize: 2, date, startTime: "18:00", endTime: "19:00", confirmed: true})。 BondSeat 会查找该餐厅;如果找不到,则会添加该餐厅。若有多个匹配结果,会返回选项,不会开始请求。查找餐厅无需食客管理餐厅 ID、添加目录条目或提供服务商凭据。
  2. 如需单独搜索,请使用 bondseat_restaurants({q: "La Vara", city: "Brooklyn"}) 或 {url: "https://resy.com/cities/new-york-ny/venues/la-vara"}。将匹配的 restaurantId 传给 bondseat_request,或直接传入 restaurantUrl: 使用食客实际授权的日期和详细信息。原始指令可能已授权自动预订;出现餐位时不要再次询问。
  3. 如果需要设置,请显示返回的 setupUrl。食客在 BondSeat/Stripe 上连接 Resy 并授权显示的费用。连接器会保留验证码。
  4. 在 pollAfterSeconds 秒后调用 bondseat_status({}) 完成设置。它会返回已启动的请求;关闭或重启连接器不会丢失设置状态。
  5. bondseat_status({kind, id}) 会读取已保存的状态。读取结果会缓存 60 秒。通过 Agent 运行时的后台/定时任务功能安排这些调用;连接器不会自行安排调用或推送更新。聊天轮次结束后仍需继续跟进,直到出现 terminal 或需要用户操作,然后通知食客并结束此次跟进。 即使 status: PAUSED,outcome: FIRED 也表示已预订;定时请求的 status: SUCCEEDED 也表示已预订。报告实际的 bookedSlot 和用餐详情;遵循 agentInstruction。 如果运行时无法安排后续跟进,请说明这一点,并分享 BondSeat 管理页面。未安排跟进时,绝不要承诺会主动更新。 若取消时 nextAction: verify_provider,则预订结果仍未确认。请食客向服务商核实其预订;正在处理的尝试仍可能完成。不要声称未进行任何预订,也不要无限期轮询。之后读取状态时仍可能显示已完成的预订。
  6. 如果需要修复凭据,请显示返回的重新连接链接,然后在获得授权后使用 bondseat_resume({kind, id})。bondseat_connect({}) 可恢复过期的连接器访问权限,但不会创建或恢复任务,也不会收集银行卡信息。
  7. bondseat_stop({kind, id}) 会停止后续尝试,但无法取消已有的餐厅预订。付款问题应通过 paymentUrl 解决,绝不要再次提交预订。

bondseat_requests({kind: "monitor"}) 会列出现有请求;将 nextCursor 作为 cursor 传入。对 kind: "scheduled" 重复此操作。API 令牌和幂等键都不是工具参数。相同的用餐详情会有意复用同一请求;请使用 resume 修复已暂停的任务,而不是另建请求。

存储与部署

一个状态文件对应一位食客和一个环境。请将其存放在仓库之外的私有目录中,不要放在同步文件夹或提示词附件中。参考存储实现会以原子方式写入权限为 0600 的文件、进行跨进程锁定,并拒绝符号链接。它依靠文件系统访问保护在磁盘上存储凭据,不使用操作系统密钥链加密。自定义运行时可通过 withState(callback) 注入自己的事务性机密存储;回调会接收 (state, save),并可在网络调用前持久化恢复标识符。

连接器会在提交前持久化标识符,并在响应丢失时使用相同标识符重试一次。它会遵循 Retry-After,不会轮询服务提供方,也不会在工具结果中返回持有者令牌或设备代码。服务端恢复材料经过 KMS 加密。令牌交换重放允许在 24 小时内进行,并且始终会检查撤销状态。超过此期限后,重新连接即可恢复对现有请求的访问权限。连接另一位食客会清除上一位食客缓存的请求。

不要将 QA 测试指向生产环境。生产部署和真实预订测试都需要明确批准并提供实际用餐详情。仅在预订成功时收取成功费用;设置不收费。

验证

npm install
npm test

测试使用 MCP 客户端和模拟 REST 响应,覆盖首次提交、设置或交换响应丢失、进程重启、并发存储、回头客、付款设置、凭据过期、状态缓存以及工具结果不含机密等情况。测试绝不会进行餐厅预订或付款。

协议参考:MCP stdio 传输、 官方 SDK。

发布测试会打包 npm 构件,将其安装到干净的临时目录中,并验证 CLI 执行和 MCP 发现功能,不会进行实际预订或付款。 连接器采用 MIT 许可;该技能另行采用 MIT-0 许可,以便在 ClawHub 上分发。

评论

支持 Markdown

第一次接触 MCP?

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

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