关于 toasttab-mcp
toasttab-mcp 是用于查询 Toast 餐厅与菜单的 MCP 服务,登录后还可通过浏览器桥接读取账户数据。只读工具涵盖餐厅发现、菜单、订单、忠诚度计划和 Toast Cash。
主要功能
- 01查找营业中的外卖或配送餐厅
- 02读取线上菜单和收银系统菜单
- 03查看历史订单及收据详情
- 04查看忠诚度进度和 Toast Cash
- 05通过浏览器桥接提供只读工具
适用场景
- 01查找指定时段可用的 Toast 餐厅
- 02比较线上菜单与店内菜单
- 03查看历史订单及总额
- 04查询餐厅奖励余额
MCP 相关
通过 MCP 工具提供 Toast 餐厅、菜单、订单、忠诚度计划和钱包查询。调用经由用户浏览器中的 ContextMint Bridge 扩展转发;所有工具均为只读。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y toasttab-mcpTOAST_WS_PORTOverrides the fetchproxy WebSocket port (default 37149, the fleet-shared port).FETCHPROXY_WS_HOSTBridge bind interface, a literal IP only (anything else is ignored); default 127.0.0.1. Keep on loopback — it exists for a hosted child in its own network namespace.FETCHPROXY_IDENTITY_DIRWhere to store the long-term bridge identity keypair, an absolute path only (anything else is ignored); default ~/.fetchproxy/identity/. Exists for a host that runs a separate child per caller.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
9收录的工具列表 · 更新于 1 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 仅返回名称包含此字符串的餐厅(不区分大小写和标点)。 |
| view | enum | 否 | 响应格式:"compact"(默认)会省略响应中其他位置已有的字段;"full" 会返回此服务端理解的所有字段。compact(默认)返回经过整理的结果;"full" 原样返回 Toast 网关的 `data` 对象。compact | full |
| when | string | 否 | 订单履行时间的 ISO-8601 日期时间。默认值:现在。 |
| limit | integer | 否 | 返回的餐厅数量上限(默认 25)。 |
| latitude | number | 是 | 搜索中心点的纬度,十进制度数。 |
| longitude | number | 是 | 搜索中心点的经度,十进制度数。 |
| radius_miles | number | 否 | 搜索半径,单位为英里(0.1–25,默认 2)。Toast 单次最多返回 300 家餐厅。 |
| dining_option | enum | 否 | TAKE_OUT(默认)或 DELIVERY。DELIVERY 仅列出可配送到该地点的餐厅。TAKE_OUT | DELIVERY |
详细介绍
Toast MCP
一个 Model Context Protocol 服务,可将 Claude 连接到 Toast 面向顾客的一侧。它会查找支持通过 Toast 下单的餐厅并读取其菜单;如果你已登录 toast.app,还会读取你的订单历史、会员奖励计划和 Toast Cash。
警告
由 AI 开发的项目。 Claude Code 构建并维护此代码库,且没有任何人审查过其实现。使用前请检查代码和工具权限。
你可以做什么
- “我附近现在有哪些餐厅可以通过 Toast 点外卖?”
- “https://order.toasttab.com/online/… 上有哪些菜单?有 12 美元以下的素食菜品吗?”
- “那家咖啡馆的燕麦奶拿铁今天售罄了吗?”
- “比较线上菜单和完整的店内菜单。”
- “我上周在那家泰餐馆点了什么,花了多少钱?”
- “我离咖啡店的奖励还有多远?我的 Toast Cash 余额是多少?”
工作原理
Toast 面向顾客的网站(order.toasttab.com)及其订餐 GraphQL 网关(ws-api.toasttab.com/do-federated-gateway)位于 Cloudflare 后面。Cloudflare 会拒绝服务端客户端:它会提供一个验证页面,或者网关会返回 {"errors":[{"message":"Forbidden"}]}。因此,此服务不会直接发送请求。每次调用都会通过 ContextMint Bridge 扩展,经由你自己的浏览器完成,并使用 127.0.0.1:37149 上的 @fetchproxy/server。任何“验证你是人类”的检查都由你在自己的标签页中完成。不会绕过任何检查。
工具
| 工具 | 功能 |
|---|---|
toast_find_restaurants | 查找指定时间营业且支持外带(或配送)的某纬度/经度附近餐厅,并按距离从近到远排列。每条结果都包含 GUID、shortUrl、订餐链接、地址和距离。 |
toast_resolve_restaurant | 将 Toast 链接、shortUrl 或 GUID 转换为 toast_get_menu 所需的餐厅 GUID。 |
toast_get_menu | 读取线上订餐菜单、完整收银系统(POS)菜单,或合并后的两者。支持搜索、筛选售罄商品并限制结果数量。 |
toast_list_orders | 按时间从新到旧列出你的订单历史:餐厅、时间、用餐方式、状态、商品和总额。通过 next_page_token 分页。 |
toast_get_order | 将一笔过往订单作为收据展示:商品及其修饰项、小计、税费、小费、服务费、付款信息和配送详情。 |
toast_get_loyalty | 查看你加入的餐厅会员奖励计划:余额以及距离下次奖励的进度。 |
toast_get_wallet | 查看你的 Toast Cash:余额、下次过期时间、即将过期的单位和收到的单位(礼物会注明赠送者)。 |
toast_graphql | 对网关运行只读 GraphQL 查询,以探索其他工具未涵盖的数据。拒绝执行变更操作。 |
toast_healthcheck | 对桥接和网关执行往返检查,并指出失败的环节。 |
以上工具均为只读。它们不会下单、操作购物车、兑换奖励或更改你的账户。四个账户工具(toast_list_orders、toast_get_order、toast_get_loyalty、toast_get_wallet)仅在你通过桥接浏览器登录 toast.app 后才能使用。
已验证和未验证的内容
专用工具(nearbyRestaurants、menusV3 和 restaurantV2ByShortUrl)背后的操作已于 2026-10-24 通过桥接浏览器进行实时验证。菜单价格以美元计,TAKE_OUT 和 DELIVERY 均可使用。网关只响应携带访客会话的请求;服务会通过你的浏览器,从 order.toasttab.com 页面自行创建该会话,因此你只需保持该标签页打开即可。
账户工具使用的是 Toast 自己的访客应用查询(从 toast.app 的程序包中原样复制),解析的每种数据形状都经过实时捕获,并经脱敏后保留为测试样本。工具使用你的 toast.app 访问令牌进行身份验证;桥接程序每次调用时都会从该 Cookie 中读取令牌。服务绝不会刷新令牌(刷新会轮换令牌,并使你的浏览器退出登录),因此如果令牌已过期,系统会要求你重新加载 toast.app。系统不会公开已保存的付款方式和账户资料。
安装
- 从 发布页面 安装 ContextMint Bridge 扩展。Chrome 需要解压后的 zip 文件。
- 在
https://order.toasttab.com上打开任意餐厅的订餐页面,并保持该标签页打开。它会转发 API 调用。 对于账户工具,还需保持一个已登录的https://toast.app标签页打开。 - 将该服务添加到你的 MCP 客户端:
{
"mcpServers": {
"toast": { "command": "npx", "args": ["-y", "toasttab-mcp"] }
}
}
需要 Node 22 或更高版本。此处未配置任何凭据。首次运行时,扩展会要求你批准配对。它会列出 toasttab.com 和 toast.app,以及账户工具对 toast-customer-access Cookie 的读取。
配置(均为可选项)
| 变量 | 默认值 | 用途 |
|---|---|---|
TOAST_WS_PORT | 37149 | 桥接 WebSocket 端口 |
FETCHPROXY_WS_HOST | 127.0.0.1 | 桥接绑定接口(仅托管设置使用) |
FETCHPROXY_IDENTITY_DIR | ~/.fetchproxy/identity/ | 桥接身份密钥对的位置 |
故障排除
请先运行 toast_healthcheck。
- “Forbidden” 或 “edge … refused”:你的浏览器尚未通过 Toast 的 Cloudflare 检查。打开
order.toasttab.com,等待页面加载(完成任何检查),然后重试。 - “No order.toasttab.com tab is open”:在运行扩展的浏览器中打开任意
order.toasttab.com/online/<restaurant>页面。 - “not signed in” / “sign-in has expired”(账户工具):打开或重新加载
toast.app并登录,然后重试。 - 夜间返回的目录为空:
nearbyRestaurants只会列出在when指定时间营业的餐厅。请传入白天的when。
条款说明
此服务通过你的浏览器以你的身份访问 Toast,因此使用时须遵守 Toast 的访客服务条款。维护者尚未审查这些条款是否适用于此用途。依赖此服务前,请自行阅读条款。本项目与 Toast, Inc. 无关联,也未获其认可。此项目仅供个人使用:请勿用它批量收集餐厅数据。
开发
npm install
npm test # typecheck + vitest (all mocked, no network)
npm run build # typecheck + esbuild bundle → dist/bundle.js
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。