Toasttab Mcp

io.github.chrischall由 GitHub 帳號 chrischall 發布v1.1.1更新於 Nov 5, 2026

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

已驗證STDIO僅桌面位置與生活商業與電商

概覽

AI 產生的概覽

唯讀的 Toast 顧客端工具:尋找可用 Toast 點餐的餐廳、讀取菜單,並透過已登入的瀏覽器查看自己的訂單紀錄、會員點數與 Toast Cash。

可以做什麼
  • 依經緯度尋找附近的 Toast 餐廳,並把連結、短網址或 GUID 解析成餐廳 GUID
  • 讀取餐廳的線上點餐菜單、完整收銀菜單或兩者合併,支援搜尋、缺貨篩選與數量上限
  • 列出你的 Toast 訂單紀錄,並取得單筆歷史訂單的收據,含品項、稅金、小費與付款資訊
  • 讀取你的會員點數餘額與獎勵進度,以及 Toast Cash 餘額與到期情形
  • 對 Toast 點餐閘道執行唯讀 GraphQL 查詢,並用健康檢查診斷橋接連線
適用情境
適合讓助理回答 Toast 外帶或外送選項、比較線上與店內菜單,或查詢自己的歷史訂單、獎勵與 Toast Cash 餘額,而不必離開對話。
執行需求
透過 npx 在本機執行,需要 Node 22 或更新版本。需安裝 ContextMint Bridge 瀏覽器擴充功能,並保持一個 order.toasttab.com 分頁開啟;帳戶類工具還需已登入的 toast.app 分頁。選用變數:TOAST_WS_PORT、FETCHPROXY_WS_HOST、FETCHPROXY_IDENTITY_DIR。伺服器本身不設定任何憑證。
安裝前請注意
擴充功能會要求你核准配對,並為帳戶類工具讀取 toast-customer-access cookie,你的 Toast 工作階段會經由瀏覽器中轉。此專案由 AI 開發且未經人工稽核,使用前請檢視程式碼與工具權限。工具皆為唯讀、不會下單,但已儲存的付款方式與帳戶資料刻意未開放。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Toasttab Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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

來源:README.md,提交 f96e17c

工具

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.

輸入參數nameviewwhenlimitlatitude必填longitude必填radius_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.

輸入參數reference必填

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.

輸入參數viewlimitquerysourcerestaurant必填include_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.

輸入參數query必填variablesoperation_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.

輸入參數viewpage_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.

輸入參數vieworder_guid必填restaurant_guid必填

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.

輸入參數view

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.

輸入參數view

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.

無需輸入參數。

版本歷史

3
  1. v1.1.1最新Nov 4, 2026
  2. v1.0.1Oct 29, 2026
  3. v1.0.0Oct 25, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分