easytable_list_types
List the bookable areas/types for a restaurant (e.g. "Boka Inne", "Boka baren"). Returns each area's type id for use in the other availability tools.
idrequiredlang
io.github.chrischallPublished by GitHub account chrischallv1.3.0Updated Nov 7, 2026
easyTable restaurant reservations for Claude — availability, and create/modify/cancel bookings
MCP server for easyTable restaurant reservations: check availability and create, modify or cancel bookings through the user's signed-in browser tab.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Follow the launch instructions in the repository.
An MCP server for easyTable restaurant reservations. easyTable is a
restaurant table-booking system with a public per-restaurant widget at
https://book.easytable.com/book/?id=<restaurantId>.
Every request rides the user's own signed-in, Cloudflare-cleared
book.easytable.com browser tab via the
@fetchproxy/server bridge — the
site blocks server-side requests, and there is no login (the restaurant is
identified by its id).
This project was developed and is maintained by AI (Claude Code). Use at your own discretion.
Every write asks you to confirm it first. A client that can show a
confirmation prompt (Claude Code) shows one. Elsewhere the first call sends
nothing and returns a preview plus a confirmToken; only a repeat call
with the same arguments and that token books, changes or cancels. A cancel looks
the booking up first, so its preview shows which reservation it is, and an id
that isn't one of that mobile's bookings is refused. The token is
single-use, and a changed argument invalidates it.
contextmint-bridge-chrome-*.zip asset and load it
unpacked (chrome://extensions → Developer mode → Load unpacked); in
Safari, it ships inside the ContextMint app, which has no public download
link yet, so use Chrome for now. ContextMint Bridge is the fetchproxy browser extension under its
new name, from the same maintainer — fetchproxy's own
README points to it.
Its source is public at
nullnet-app/contextmint-bridge:
build it yourself, or check a release zip against the .sha256 file
published beside it
(shasum -a 256 -c contextmint-bridge-chrome-<version>.zip.sha256).https://book.easytable.com/book/?id=<id>
and let it finish loading.create and modify additionally read the widget's Cloudflare Turnstile token
from the loaded confirm step, so a booking-widget tab must be open when you
confirm one.
No environment variables are required. These optional knobs mirror the .mcpb
manifest's settings (the MCP_CONFIRM_* family is under
Confirmations):
See docs/EASYTABLE-API.md for the reverse-engineered request/response shapes
and CLAUDE.md for architecture notes.
MIT
Source: README.md at commit 75344fa
List the bookable areas/types for a restaurant (e.g. "Boka Inne", "Boka baren"). Returns each area's type id for use in the other availability tools.
idrequiredlangList bookable dates for a restaurant area and party size. Each entry has an ISO date and whether it is available.
idrequiredlangtyperequiredpersonsrequiredList available time slots for a restaurant area, date, and party size. Times are returned as HH:MM.
idrequireddaterequiredlangtyperequiredpersonsrequiredLook up a restaurant's existing bookings made with a given mobile number. Returns each booking's id (for easytable_cancel_booking) plus a summary.
idrequiredlangmobilerequiredCancel an existing booking. Look up the booking id first with easytable_find_bookings (it needs the mobile the booking was made with). Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). The first call only looks the booking up (a read); it cancels nothing.
idrequiredmobilerequiredbookingIdrequiredconfirmTokenCreate a restaurant booking. Reads the Cloudflare Turnstile token from your signed-in booking-widget tab (via the bridge) and submits it with the reservation — so a book.easytable.com/book/?id=<id> tab must be open and loaded. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). The first call makes NO network call.
idrequireddaterequiredlangnamerequiredtimerequiredtyperequiredemaileventmobilerequiredcommentcompanypersonsrequired+1 moreModify an existing booking (date/time/party size/details). Like create, it reads the Turnstile token from your signed-in widget tab. Get the existing booking id from easytable_find_bookings. The change replaces the whole booking: email, comment and company are required — pass the booking's current values to keep them (ask the user if unknown), or '' to clear them; the newsletter opt-in is reset. Asks the user to confirm first: a confirmation prompt where the client supports one; otherwise the first call returns a preview and a confirmToken, and only a repeat call with that token proceeds (see MCP_CONFIRM_MODE). The first call makes NO network call.
idrequireddaterequiredlangnamerequiredtimerequiredtyperequiredemailrequiredeventmobilerequiredcommentrequiredcompanyrequiredpersonsrequired+2 moreVerify the ContextMint Bridge connection end-to-end
Round-trips a small public book.easytable.com URL (/robots.txt) through ContextMint Bridge (your signed-in browser tab) and returns diagnostics: the bridge's role (host/peer/null), port, version, the extension link (linked / pair pending / not attached / never answered), the elapsed round-trip time, and a plain-English hint distinguishing 'bridge never came up' from 'extension not connected' from 'this browser can't serve a capability' from 'real book.easytable.com-side problem'. Read-only, no auth required. Call this when a real tool fails and you want to know which hop broke.
Takes no parameters.
90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
npm installnpm run buildnpm test