mcpField
T
toasttab-mcp

toasttab-mcp

本地服务
github.com/chrischall地图与出行02 天前更新

关于 toasttab-mcp

toasttab-mcp 是用于查询 Toast 餐厅与菜单的 MCP 服务,登录后还可通过浏览器桥接读取账户数据。只读工具涵盖餐厅发现、菜单、订单、忠诚度计划和 Toast Cash。

主要功能

  1. 01查找营业中的外卖或配送餐厅
  2. 02读取线上菜单和收银系统菜单
  3. 03查看历史订单及收据详情
  4. 04查看忠诚度进度和 Toast Cash
  5. 05通过浏览器桥接提供只读工具

适用场景

  1. 01查找指定时段可用的 Toast 餐厅
  2. 02比较线上菜单与店内菜单
  3. 03查看历史订单及总额
  4. 04查询餐厅奖励余额

MCP 相关

通过 MCP 工具提供 Toast 餐厅、菜单、订单、忠诚度计划和钱包查询。调用经由用户浏览器中的 ContextMint Bridge 扩展转发;所有工具均为只读。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chrischall-toasttab": {
"command": "npx",
"args": [
"-y",
"toasttab-mcp"
],
"env": {
"TOAST_WS_PORT": "<TOAST_WS_PORT>",
"FETCHPROXY_WS_HOST": "<FETCHPROXY_WS_HOST>",
"FETCHPROXY_IDENTITY_DIR": "<FETCHPROXY_IDENTITY_DIR>"
}
}
}
}
启动命令npx -y toasttab-mcp
需要配置的环境变量
TOAST_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmtoasttab-mcp1.0.1

工具

9

收录的工具列表 · 更新于 1 天前

参数类型必填说明
namestring否仅返回名称包含此字符串的餐厅(不区分大小写和标点)。
viewenum否响应格式:"compact"(默认)会省略响应中其他位置已有的字段;"full" 会返回此服务端理解的所有字段。compact(默认)返回经过整理的结果;"full" 原样返回 Toast 网关的 `data` 对象。compact | full
whenstring否订单履行时间的 ISO-8601 日期时间。默认值:现在。
limitinteger否返回的餐厅数量上限(默认 25)。
latitudenumber是搜索中心点的纬度,十进制度数。
longitudenumber是搜索中心点的经度,十进制度数。
radius_milesnumber否搜索半径,单位为英里(0.1–25,默认 2)。Toast 单次最多返回 300 家餐厅。
dining_optionenum否TAKE_OUT(默认)或 DELIVERY。DELIVERY 仅列出可配送到该地点的餐厅。TAKE_OUT | DELIVERY

详细介绍

Toast MCP

CI npm license

一个 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。系统不会公开已保存的付款方式和账户资料。

安装

  1. 从 发布页面 安装 ContextMint Bridge 扩展。Chrome 需要解压后的 zip 文件。
  2. 在 https://order.toasttab.com 上打开任意餐厅的订餐页面,并保持该标签页打开。它会转发 API 调用。 对于账户工具,还需保持一个已登录的 https://toast.app 标签页打开。
  3. 将该服务添加到你的 MCP 客户端:
{
  "mcpServers": {
    "toast": { "command": "npx", "args": ["-y", "toasttab-mcp"] }
  }
}

需要 Node 22 或更高版本。此处未配置任何凭据。首次运行时,扩展会要求你批准配对。它会列出 toasttab.com 和 toast.app,以及账户工具对 toast-customer-access Cookie 的读取。

配置(均为可选项)
变量默认值用途
TOAST_WS_PORT37149桥接 WebSocket 端口
FETCHPROXY_WS_HOST127.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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。