Toasttab Mcp

io.github.chrischallPublished by GitHub account chrischallv1.1.1Updated Nov 5, 2026

Toast restaurants and menus: find places that order via Toast, read online or register menus.

Overview

AI-generated overview

Read-only Toast diner tools: find Toast restaurants, read menus, and view your own order history, loyalty and Toast Cash through your signed-in browser.

What you can do
  • Find Toast restaurants near a latitude/longitude and resolve links, shortUrls or GUIDs to restaurant GUIDs
  • Read a restaurant's online-ordering menu, full register menu or both, with search, out-of-stock filtering and limits
  • List your Toast order history and fetch a single past order as a receipt with items, tax, tip and payments
  • Read your loyalty program balances and reward progress, and your Toast Cash balance and expiries
  • Run read-only GraphQL queries against Toast's ordering gateway and check bridge connectivity with a healthcheck
When to use it
Useful when you want an assistant to answer questions about Toast takeout or delivery options, compare online and in-store menus, or look up your own past orders, rewards and Toast Cash balance without leaving the chat.
Requirements
Runs locally via npx with Node 22 or later. Requires the ContextMint Bridge browser extension and an open order.toasttab.com tab; account tools also need a signed-in toast.app tab. Optional variables: TOAST_WS_PORT, FETCHPROXY_WS_HOST, FETCHPROXY_IDENTITY_DIR. No credentials are configured in the server itself.
Before you install
The extension asks you to approve pairing and to read the toast-customer-access cookie for account tools, so your Toast session is relayed through your browser. The project is AI-developed and unaudited, so review the code and tool permissions first. Tools are read-only and do not place orders, but saved payment methods and profile data are deliberately not exposed.

Installation

In SourceWeft

  1. Open Toasttab Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

Toast MCP

[CI] [npm] [license]

A Model Context Protocol server that connects Claude to the diner side of Toast. It finds restaurants that take orders through Toast and reads their menus, and, when you are signed in to toast.app, reads your own order history, loyalty programs and Toast Cash.

[!WARNING] AI-developed project. Claude Code built this codebase and maintains it, and no human has audited the implementation. Review the code and tool permissions before you use it.

What you can do

  • "Which restaurants near me can I order takeout from on Toast right now?"
  • "What's on the menu at https://order.toasttab.com/online/…? Anything vegetarian under $12?"
  • "Is the oat-milk latte at that café out of stock today?"
  • "Compare the online menu with the full in-store menu."
  • "What did I order from that Thai place last week, and what did it cost?"
  • "How close am I to a reward at my coffee shop? What's my Toast Cash balance?"

How it works

Toast's diner-facing sites (order.toasttab.com) and its ordering GraphQL gateway (ws-api.toasttab.com/do-federated-gateway) sit behind Cloudflare. Cloudflare refuses server-side clients: it serves a challenge page, or the gateway answers {"errors":[{"message":"Forbidden"}]}. This server therefore makes no direct requests. Every call goes through your own browser via the ContextMint Bridge extension, using @fetchproxy/server on 127.0.0.1:37149. You pass any "verify you are human" check yourself, in your own tab. Nothing is bypassed.

Tools

ToolWhat it does
toast_find_restaurantsRestaurants near a latitude/longitude that are open for takeout (or delivery) at a given time, nearest first. Each result includes its GUID, shortUrl, ordering link, address and distance.
toast_resolve_restaurantTurns a Toast link, shortUrl or GUID into the restaurant GUID that toast_get_menu needs.
toast_get_menuReads the online-ordering menu, the full register (POS) menu, or both merged. Supports search, out-of-stock filtering and a limit.
toast_list_ordersYour order history, newest first: restaurant, time, dining option, status, items and total. Pages with next_page_token.
toast_get_orderOne past order as a receipt: items with modifiers, subtotal, tax, tip, service charges, payments and delivery details.
toast_get_loyaltyYour restaurant loyalty programs: balances and progress toward the next reward.
toast_get_walletYour Toast Cash: balance, next expiry, expiring units and received units (gifts name the sender).
toast_graphqlRuns a read-only GraphQL query against the gateway, for exploring data the other tools don't cover. Mutations are refused.
toast_healthcheckRound-trips the bridge and gateway, and names the hop that failed.

All of these tools are read-only. None of them places an order, touches a cart, redeems a reward or changes your account. The four account tools (toast_list_orders, toast_get_order, toast_get_loyalty, toast_get_wallet) work only while you are signed in to toast.app in the bridged browser.

What is verified and what isn't

The operations behind the dedicated tools (nearbyRestaurants, menusV3 and restaurantV2ByShortUrl) were live-verified on 2026-10-24 through a bridged browser. Menu prices are in dollars, and both TAKE_OUT and DELIVERY work. The gateway only answers requests that carry a guest session, which the server mints itself from an order.toasttab.com page through your browser, so you don't need to do anything beyond keeping that tab open.

The account tools run Toast's own guest-app queries (copied verbatim from toast.app's bundle), and every shape they parse was captured live and kept, scrubbed, as a test fixture. They authenticate with your toast.app access token, which the bridge reads from that one cookie for each call. The server never refreshes the token (refreshing rotates it and would sign your browser out), so if it has lapsed you'll be asked to reload toast.app. Saved payment methods and the account profile are deliberately not exposed.

Install

  1. Install the ContextMint Bridge extension from its releases page. Chrome takes the unpacked zip.
  2. Open any restaurant's ordering page on https://order.toasttab.com and leave the tab open. It relays the API calls. For the account tools, also keep a signed-in https://toast.app tab open.
  3. Add the server to your MCP client:
json
{  "mcpServers": {    "toast": { "command": "npx", "args": ["-y", "toasttab-mcp"] }  }}

Node 22 or later is required. No credentials are configured here. On first run, the extension asks you to approve the pairing. It lists toasttab.com and toast.app, and a read of the toast-customer-access cookie for the account tools.

Configuration (all optional)

VariableDefaultPurpose
TOAST_WS_PORT37149Bridge WebSocket port
FETCHPROXY_WS_HOST127.0.0.1Bridge bind interface (hosted setups only)
FETCHPROXY_IDENTITY_DIR~/.fetchproxy/identity/Bridge identity keypair location

Troubleshooting

Run toast_healthcheck first.

  • "Forbidden" or "edge … refused": your browser hasn't passed Toast's Cloudflare check yet. Open order.toasttab.com, let it load (complete any check), then retry.
  • "No order.toasttab.com tab is open": open any order.toasttab.com/online/<restaurant> page in the browser that runs the extension.
  • "not signed in" / "sign-in has expired" (account tools): open or reload toast.app and sign in, then retry.
  • Directory comes back empty at night: nearbyRestaurants lists only restaurants open at when. Pass a daytime when.

Acknowledgement of terms

This server reaches Toast as you, through your browser, so Toast's guest terms of service govern how you use it. The maintainer has not reviewed those terms against this use. Read them yourself before you rely on this server. The project is not affiliated with or endorsed by Toast, Inc. It is for personal use: don't use it to bulk-harvest restaurant data.

Development

bash
npm installnpm test        # typecheck + vitest (all mocked, no network)npm run build   # typecheck + esbuild bundle → dist/bundle.js

License

MIT

Source: README.md at commit f96e17c

Tools

9

toast_find_restaurants

Find restaurants that take orders through Toast near a point (latitude/longitude — this server has no geocoder, so convert an address or city first). Returns each restaurant's GUID (what toast_get_menu needs), shortUrl, ordering link, address and distance, nearest first. Toast's directory lists restaurants OPEN for the dining option at `when` (default now): an empty or short result late at night means closed, not absent — retry with a daytime `when`. Optional `name` filters the results. There is no paging: `total` is every match and `limit` (default 25, max 300) is how many come back.

Parametersnameviewwhenlimitlatituderequiredlongituderequiredradius_milesdining_option

toast_resolve_restaurant

Turn a Toast link, shortUrl, or GUID into the restaurant GUID that toast_get_menu needs. Links that carry a GUID (toast.app r-<guid> links, ?guid= parameters, bare GUIDs) resolve without a network call; an order.toasttab.com/online/<shortUrl> link or bare shortUrl is looked up in Toast by its slug. Returns guid: null with a next step when Toast does not know the slug.

Parametersreferencerequired

toast_get_menu

Get a Toast restaurant's menu: menus → groups → items with name, description, price, per-size prices and out-of-stock flag. `restaurant` is a GUID or any link that contains one (use toast_resolve_restaurant for a bare shortUrl). `source`: "online" (default) is what the restaurant sells through online ordering; "pos" is the register's full menu (often far larger); "both" merges them: an item on both menus is listed from the online menu with `sources` ["online","pos"]. An item filed under several groups ("Popular" plus its own category, say) appears under each, so `total_items` counts listings, not distinct items; dedupe by `guid` for a count. `query` searches item names, descriptions and group names. Prices are in dollars (12.5 = $12.50, checked against the ordering page). Modifier/option prices are not included.

Parametersviewlimitquerysourcerestaurantrequiredinclude_out_of_stock

toast_graphql

Run a read-only GraphQL QUERY against Toast's online-ordering gateway (ws-api.toasttab.com/do-federated-gateway) through your signed-in browser, and return its raw data and errors. For exploring fields the dedicated tools don't cover yet. Mutations and subscriptions are refused. Known-good operations: nearbyRestaurants(input:{diningOption,fulfillmentDateTime,latitude,longitude,radius}) and menusV3(input:{restaurantGuid,visibility}). Validation errors name the fields the schema lacks — use them to correct the query rather than guessing repeatedly.

Parametersqueryrequiredvariablesoperation_name

toast_list_orders

Your Toast order history, newest first: each order's GUID, restaurant (GUID, name, ordering link), when it was placed (ISO-8601 UTC, plus the restaurant's time zone), dining option and status as Toast reports them, item count with the first few items, and total in dollars. Pass next_page_token from the previous answer for older orders. Use toast_get_order for a full receipt. Needs a toast.app sign-in in the browser running ContextMint Bridge.

Parametersviewpage_sizenext_page_token

toast_get_order

One of your past Toast orders as a receipt: items with modifiers and price, subtotal, discounts, tax, tip, service charges, gift card applied, total (all dollars), payments (type, card brand, last 4), and delivery address/provider when it was delivered. Takes the restaurant and order GUIDs from toast_list_orders. Needs a toast.app sign-in in the browser running ContextMint Bridge.

Parametersvieworder_guidrequiredrestaurant_guidrequired

toast_get_loyalty

Your Toast restaurant loyalty programs: for each, the restaurant, program name, balances (e.g. POINTS), and reward progress (target, left to target, whether a reward is available, Toast's own reward messages). Needs a toast.app sign-in in the browser running ContextMint Bridge.

Parametersview

toast_get_wallet

Your Toast Cash: the available balance (stored value such as gifted Toast Cash included), the next expiry, the units that expire, and the units you have received (gifts name the sender). All amounts in dollars. Needs a toast.app sign-in in the browser running ContextMint Bridge.

Parametersview

toast_healthcheck

Verify the ContextMint Bridge connection end-to-end

Round-trips a small public ws-api.toasttab.com URL (/do-federated-gateway/v1/graphql?query=%7B__typename%7D) 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 ws-api.toasttab.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.

Version history

3
  1. v1.1.1LatestNov 4, 2026
  2. v1.0.1Oct 29, 2026
  3. v1.0.0Oct 25, 2026

Score

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.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts