
BondSeat
io.github.saintmarksventures由 GitHub 帳號 saintmarksventures 發布v0.1.2更新於 Oct 24, 2026
Snag hard-to-get Resy tables with automatic cancellation monitoring and scheduled release attempts.
概覽
本機 MCP 連接器,讓助理搜尋 Resy 餐廳,並設定自動訂位或取消監控,搶到難訂的位子。
- 可以做什麼
- 依名稱、城市或連結搜尋 Resy 餐廳並取得餐廳 ID
- 依人數、日期與時段建立訂位請求,出現合適位子時自動下訂
- 讀取請求狀態與結果(讀取有快取),並列出既有的監控與排程請求
- 停止後續嘗試、恢復暫停的工作、重新恢復過期的連接器存取權限
- 回傳設定、重新連線與付款連結,交由用餐者完成授權
- 適用情境
- 適合希望由助理盯住難訂 Resy 位子的用餐者:監控取消或放位時搶訂,並依設定偏好自動完成訂位。也適合在對話中查詢既有 BondSeat 請求的狀態。
- 執行需求
- 需要 Node.js 22 或更新版本,以及能啟動本機 stdio 程序的 MCP 用戶端(npx 套件,不提供託管 HTTP 端點)。無需複製 API 金鑰:用餐者開啟設定連結連接 Resy 並透過 Stripe 授權費用,且需在 Resy 中儲存信用卡。可選用 BONDSEAT_API_URL 與 BONDSEAT_STATE_FILE 變數;需要網路存取與持久儲存,沙箱環境亦同。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 BondSeat,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
BondSeat connector
Snag hard-to-get tables on Resy. BondSeat watches for cancellations or tries to book right when reservations open, then automatically books a table that matches your preferences.
BondSeat carefully manages your credentials and paces availability checks, keeping routine monitoring separate from your personal Resy account.
The agent uses booking tools. The connector keeps the access token, setup codes, retry identifiers and polling state private. The diner only opens a setup link. No token needs to be copied into chat or remembered by the agent.
This is an MCP server using the official TypeScript SDK and local stdio transport. It works with clients that can launch a local MCP process. It is not a hosted HTTP MCP endpoint. The underlying REST API also remains available to custom runtimes.
Install
Requires Node.js 22 or newer. Configure an MCP client that supports local stdio:
The default connects to the production BondSeat API. There is no API key to copy: when setup is needed, the diner opens a link to connect Resy and authorize the $10 USD success fee. Unsuccessful requests incur no fee. The account-free flow supports Resy; the diner needs a saved card in Resy for restaurant charges and separately authorizes BondSeat's fee through Stripe.
The executable starts MCP when called without arguments. A CLI is also available:
Commands: restaurants, request, status, requests, stop, resume, connect.
Pass JSON through stdin. schema <command> prints the MCP tool's input schema
without contacting the API. CLI exits: 0 for a result (including pending setup),
1 for an action-required result or runtime error, 2 for invalid input. Read JSON
results even on exit 1. Diagnostics never include raw inputs or stored credentials.
The BondSeat skill provides the workflow for OpenClaw and other skill-capable agents. It can use either connected MCP tools or the CLI. Installing the skill does not by itself configure an MCP connection.
Runtime configuration
A multi-user host must isolate each diner's state. The same file must remain available to subsequent CLI calls and scheduled follow-ups. If a client executes in a sandbox, configure Node, network access and persistent storage there.
For QA development, explicitly configure both variables:
Local source development can launch node server.mjs or node cli.mjs from this
package after installing dependencies. Remote-only clients need a hosted adapter;
this package does not expose an HTTP MCP endpoint.
Agent workflow
- Start directly with a name and location:
bondseat_request({restaurant: "La Vara", city: "Cobble Hill", partySize: 2, date, startTime: "18:00", endTime: "19:00", confirmed: true}). BondSeat looks up the venue and adds it if missing. Multiple matches return choices without starting a request. No diner-managed restaurant IDs, directory additions or provider credentials are needed for lookup. - For a separate search, use
bondseat_restaurants({q: "La Vara", city: "Brooklyn"})or{url: "https://resy.com/cities/new-york-ny/venues/la-vara"}. Pass the matchingrestaurantIdtobondseat_request, or passrestaurantUrldirectly: use the diner's actual authorized date and details. The original instruction may authorize automatic booking; do not ask again when a table appears. - Show the returned
setupUrlif setup is required. The diner connects Resy and authorizes the displayed fee on BondSeat/Stripe. The connector retains codes. - Call
bondseat_status({})afterpollAfterSecondsto finish setup. It returns the started request; closing/restarting the connector preserves setup state. bondseat_status({kind, id})reads saved status. Reads are cached for 60 seconds. Schedule these calls with the agent runtime's background/scheduled task facility; the connector does not schedule itself or push updates. Continue after the chat turn ends untilterminalor user action is needed, then notify the diner and end that follow-up. Monitoroutcome: FIRED(even withstatus: PAUSED) or scheduledstatus: SUCCEEDEDmeans booked. Report the actualbookedSlotand dining details; followagentInstruction. If the runtime cannot schedule follow-ups, disclose that and share the BondSeat manage page. Never promise a proactive update without scheduling one. Cancellation withnextAction: verify_providerleaves the booking outcome unconfirmed. Ask the diner to check their reservations with the provider; an in-flight attempt may still finish. Do not claim no booking exists or keep polling indefinitely. Later status reads can still report a completed booking.- If credentials need repair, show the returned reconnect link, then use
bondseat_resume({kind, id})when authorized.bondseat_connect({})restores expired connector access without creating/resuming work or collecting a card. bondseat_stop({kind, id})stops future attempts. It cannot cancel an existing restaurant reservation. Payment issues are resolved throughpaymentUrl, never by submitting another booking.
bondseat_requests({kind: "monitor"}) lists existing requests; pass nextCursor
as cursor. Repeat for kind: "scheduled". No API token or idempotency key is a
tool argument. Identical dining details intentionally reuse the same request;
use resume to repair paused work, not another request.
Storage and deployment
One state file represents one diner and environment. Use a private directory
outside the repository, synced folders and prompt attachments. The reference
store writes mode-0600 files atomically, locks across processes, and rejects
symlinks. It stores credentials on disk with filesystem access protection, not
OS-keychain encryption. Custom runtimes can inject their own transactional secret
store via withState(callback); the callback receives (state, save) and may
persist recovery identifiers before network calls.
The connector persists identifiers before submitting and retries a lost response once with identical identifiers. It honors Retry-After, never polls providers, and never returns bearer tokens or device codes in tool results. Server-side recovery material is KMS-encrypted. Token-exchange replay is allowed for 24 hours and always checks revocation. After that, reconnect restores access to existing requests. Connecting another diner clears the previous diner's cached requests.
Do not point a QA test at production. Production deployment and a real booking test require explicit approval and actual dining details. A success fee is only collected for a successful booking; setup is uncharged.
Validation
Tests use an MCP client and simulated REST responses to cover first submission, lost setup/exchange responses, process restarts, concurrent stores, returning diners, payment setup, credential expiry, status caching and secret-free tool results. They never make a restaurant booking or payment.
Protocol references: MCP stdio transport, official SDK.
The release test packs the npm artifact, installs it in a clean temporary directory, and verifies CLI execution and MCP discovery without making live bookings or payments. The connector is MIT licensed; the skill is separately MIT-0 for ClawHub distribution.
來源:README.md,提交 8d4b2cb
工具
0版本歷史
1- v0.1.2最新Sep 20, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。