AGENTS.md
+1 −200
https://raw.githubusercontent.com/chrischall/opentable-mcp/HEAD/AGENTS.md
− # AGENTS.md — opentable-mcp− Guidance for coding agents working in this repo.− ## TL;DR− OpenTable MCP server with 15 tools (read + write), fronted by a− pluggable browser bridge. Default transport: localhost WebSocket via− [`@fetchproxy/server`](https://github.com/chrischall/fetchproxy) — the− companion browser extension, ContextMint Bridge, is installed separately− from https://github.com/nullnet-app/contextmint-bridge/releases (Chrome:− unpacked zip; Safari not available yet — use Chrome for now) rather than− embedded in this repo. Opt-in alternative:− `OT_BRIDGE=mcp-chrome` routes through hangwin/mcp-chrome's HTTP MCP− endpoint instead. Either way, every request rides the user's own browser− session — their cookies, their TLS, their JS context — never ours.− ## Bridge selection− `OT_BRIDGE` env var picks the transport:− - `OT_BRIDGE=websocket` (default) — wraps `@fetchproxy/server`'s− `FetchproxyServer` (WebSocket on 127.0.0.1:37149; override with− `OT_WS_PORT`). The user installs the ContextMint Bridge extension once− (Chrome / Safari) instead of loading a per-MCP embedded extension.− See https://github.com/nullnet-app/contextmint-bridge/releases.− - `OT_BRIDGE=mcp-chrome` — talks to hangwin/mcp-chrome at− `http://127.0.0.1:12306/mcp` (override with `OT_MCP_CHROME_URL`).− Requires mcp-chrome ≥ the release containing− [PR #348](https://github.com/hangwin/mcp-chrome/pull/348) — the− `tabUrl` parameter on `chrome_network_request`. Pre-PR mcp-chrome− versions are active-tab-only and break credentialed cross-origin− fetches. Live-verification of this path is pending the upstream merge.− **Read-only:** writes (book, modify, cancel, favorites) are refused up− front — they need a CSRF-bearing relay tab this transport can't supply —− and `opentable_find_slots` is unavailable (no `graphql` capability).− ## Commands− - `npm test` — vitest, all mocked, no network. Must stay green.− - `npm run build` — `tsc --noEmit` typecheck + esbuild bundle → `dist/bundle.js`.− - `npx tsc --noEmit` — typecheck only (also runs as part of `npm run build`).− - `node dist/bundle.js` — launch the MCP server over stdio (also starts the WS listener).− - `npx tsx scripts/probe-find-slots.ts` — live GET round-trip via the extension.− - `npx tsx scripts/probe-favorites-toggle.ts` — live add + remove favorite.− - `npx tsx scripts/probe-book-cancel.ts` — **books and immediately cancels a real reservation.** Pick a restaurant that won't mind a 3-second booking.− - `npx tsx scripts/probe-book-cc-cancel.ts` — same as above but for a CC-required slot (exercises the preview → book flow).− - `npx tsx scripts/probe-book-cancel-uk.ts` — UK-region variant (databaseRegion, country handling).+ CLAUDE.md
Showing the first 40 of each.