关于 BondSeat
BondSeat connector 是为希望预约 Resy 餐厅的用餐者及其 Agent 提供的 MCP 服务,可监控取消情况或在放位时尝试预订,并按偏好自动预约。它通过私有状态保存连接凭据和请求状态,且使用本地 stdio 传输。
主要功能
- 01监控取消与预约放位时间
- 02按偏好提交自动预约请求
- 03通过设置链接连接 Resy
- 04保存连接与轮询状态
- 05提供请求状态及停止、恢复工具
适用场景
- 01监控心仪餐厅的取消空位
- 02在预约开放时尝试订位
- 03查看或停止已有预约请求
MCP 相关
这是使用官方 TypeScript SDK 和本地 stdio 传输的 MCP 服务,可由能启动本地 MCP 进程的客户端调用。它不提供托管 HTTP MCP 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @bondseat/mcpBONDSEAT_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
7收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| q | string | 否 | |
| url | string | 否 | |
| city | string | 否 | |
| cursor | string | 否 |
详细介绍
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 工作流
- 直接提供餐厅名称和地点:
bondseat_request({restaurant: "La Vara", city: "Cobble Hill", partySize: 2, date, startTime: "18:00", endTime: "19:00", confirmed: true})。 BondSeat 会查找该餐厅;如果找不到,则会添加该餐厅。若有多个匹配结果,会返回选项,不会开始请求。查找餐厅无需食客管理餐厅 ID、添加目录条目或提供服务商凭据。 - 如需单独搜索,请使用
bondseat_restaurants({q: "La Vara", city: "Brooklyn"})或{url: "https://resy.com/cities/new-york-ny/venues/la-vara"}。将匹配的restaurantId传给bondseat_request,或直接传入restaurantUrl: 使用食客实际授权的日期和详细信息。原始指令可能已授权自动预订;出现餐位时不要再次询问。 - 如果需要设置,请显示返回的
setupUrl。食客在 BondSeat/Stripe 上连接 Resy 并授权显示的费用。连接器会保留验证码。 - 在
pollAfterSeconds秒后调用bondseat_status({})完成设置。它会返回已启动的请求;关闭或重启连接器不会丢失设置状态。 bondseat_status({kind, id})会读取已保存的状态。读取结果会缓存 60 秒。通过 Agent 运行时的后台/定时任务功能安排这些调用;连接器不会自行安排调用或推送更新。聊天轮次结束后仍需继续跟进,直到出现terminal或需要用户操作,然后通知食客并结束此次跟进。 即使status: PAUSED,outcome: FIRED也表示已预订;定时请求的status: SUCCEEDED也表示已预订。报告实际的bookedSlot和用餐详情;遵循agentInstruction。 如果运行时无法安排后续跟进,请说明这一点,并分享 BondSeat 管理页面。未安排跟进时,绝不要承诺会主动更新。 若取消时nextAction: verify_provider,则预订结果仍未确认。请食客向服务商核实其预订;正在处理的尝试仍可能完成。不要声称未进行任何预订,也不要无限期轮询。之后读取状态时仍可能显示已完成的预订。- 如果需要修复凭据,请显示返回的重新连接链接,然后在获得授权后使用
bondseat_resume({kind, id})。bondseat_connect({})可恢复过期的连接器访问权限,但不会创建或恢复任务,也不会收集银行卡信息。 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 上分发。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。