ubereats-mcp
Allows AI to interact with Uber Eats using the user's own logged-in Chrome session: search stores and products, view menus, add items to cart with options and quantities, review checkout snapshots, place orders only after explicit confirmation with a confirm_token, and track ongoing delivery orders.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ubereats-mcpfind a good sushi place and add a California roll to my cart"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ubereats-mcp

介绍页:https://saekisui.github.io/ubereats-mcp/
让 AI 在你自己的 Chrome 里帮你点 Uber Eats(有 Uber Eats 的国家都能用,日本站实测最多):搜店 / 搜商品、看菜单、加购、看结算快照,你点头之后才下单,下单后跟配送。
一个 MCP server + 一套 OpenCLI adapter。AI 用的是你 Chrome 里的真实登录态,地址和支付方式只用账号里已经存好的,对话里从不出现卡号或地址。
非官方项目,与 Uber 无关。只在你自己的账号上、花你自己的钱。
它做什么,不做什么
做
搜店、搜菜、搜商品。按商品名搜(ポカリスエット、風邪薬…)会返回超市 / 药店,并附上命中的商品和价格
看菜单:餐厅照常;超市 / 便利店 / 药店的首页只放几排推荐,可以用
query走店内搜索加购:支持选项(多级选项逐级匹配,例如 套餐 → ドリンクM → コカ・コーラ)和数量
结算快照:店名、商品、各项费用、合计、ETA、配送地址、支付方式
下单:只能在 review 之后、拿着 confirm_token 下
查进行中订单的配送进度
不做
不碰支付密码、卡号、地址簿(弹出要编辑地址的框会直接停住)
不过人机验证,不替你预约配送时间
不会自己下单。必须走
ue_review→ 你在对话里明确同意 →ue_place
Related MCP server: DoorDash MCP Server
安全设计
关卡 | 做法 |
价格从哪来 | 只信 |
防串台 | 两个独立锚点:draft 本体的店 uuid 必须等于购物车列表里的店;接口回的商品必须覆盖购物车里的商品。任一不符直接报错,绝不返回混合了两辆车的快照 |
confirm_token | review 时发,10 分钟有效,只能用一次,绑定 draft。place 前再读一次快照,总价 / 店名 / 购物车变了就拒绝 |
上限 |
|
下单那一刻 | 页面合计必须等于接口合计才点;凑单弹窗只点「スキップ」,里面任何带 ¥ 的商品按钮都不碰;认不出的弹窗一律停下,并把按钮列表带回来 |
状态不明 | 返回 |
国家和界面语言
Uber Eats 网址里的 /jp 管的是界面语言,不是国家:显示哪些店、用什么币种,跟着你账号的配送地址走。所以这套东西不分国家,只分界面语言:
| 界面 | 状态 |
| 英文 | 读的部分(搜店 / 菜单 / 购物车 / 结算快照)按同一套接口走;下单这一步还没人在英文界面上真跑过 |
| 日文 | 实测最多:十几单真单,凑单弹窗、地址确认框、假阴性这些坑都踩过 |
价格不认币种(¥ / $ / NT$ / HK$ / £ / € 都能读,12,34 这种逗号小数也认),「当天」按 policy.json 的 timezone(不写就是电脑的时区)算。
在日本以外的地方第一次用,请这样走一遍:
只读命令都跑一下:
whoami/search/store/cart/reviewopencli ubereats place --draft <draft_id> --dry-run:会走到结算页、做完所有校验就停,不下单第一单真下的时候,人在旁边看着。脚本认不出的弹窗会停下,并把弹窗里的按钮列表带回来——把那段报错发个 issue,就能把这个国家的流程补上
准备
Node 20+,以及 OpenCLI(在 1.8.6 上测过):
npm i -g @jackwener/opencli按 OpenCLI 的说明装好 Chrome 的 Browser Bridge 扩展,确认
opencli doctor通过。在这个 Chrome 里登录 ubereats.com,设好配送地址。
拿到本仓库,把 adapter 同步到 OpenCLI(OpenCLI 不认软链目录,必须复制过去;以后改了 adapter 也要再跑一次):
git clone https://github.com/Saekisui/ubereats-mcp.git && cd ubereats-mcp npm run sync先用命令行试一下,都是只读的:
opencli ubereats whoami opencli ubereats search ramen --limit 5想用日文界面就在命令前加
UE_LOCALE=jp。想让 AI 能下单的话,编辑
policy.json,把"enabled"改成true,按自己的情况调上限(账号币种),需要的话写上"timezone"(如"America/New_York")。不改就只能搜、看、加购,不能下单。注册 MCP。以 Claude Code 为例:
claude mcp add ubereats -- node /绝对路径/ubereats-mcp/mcp/server.js要日文界面就加
-e UE_LOCALE=jp;如果 opencli 不在~/.npm-global/bin/opencli,再加-e OPENCLI_BIN=/path/to/opencli。
一单怎么走
你:「帮我点份拉面」
AI:ue_search → ue_store(看菜单)→ ue_add(选好规格)→ ue_cart
AI:ue_review → 把快照原样给你看(店 / 品 / 费用 / 合计 / 地址 / 支付)
你:「好」
AI:ue_place → ue_orders(确认下成、之后跟配送)工具 | 读 / 写 |
| 读:开关、上限、今天已花多少、登录状态 |
| 读 |
| 读( |
| 写:加购物车 |
| 读:每家店一辆车,给出 draft_id |
| 读:结算快照 + confirm_token |
| 写·花钱 |
| 读 |
每次调用都会记一行到本地的 ledger.jsonl(已 gitignore),当日上限按它来算。
不经过 MCP,直接用命令行
opencli ubereats store <店id> --query ポカリ
opencli ubereats add <商品id> --spec "コーラ ポテト(L)" --qty 1
opencli ubereats cart
opencli ubereats review --draft <draft_id>
opencli ubereats place --draft <draft_id> --dry-run # 走到结算页、做完校验就停,不点下单
opencli ubereats orders已知限制
日本 + 日文界面实测最多;英文界面的下单步骤、其他国家的结算流程(比如美国的小费)还没人真跑过,认不出就会停下。Uber 的页面和接口随时会变,坏了先看 PITFALLS.md。
请求别太密。 Uber 有 reCAPTCHA 风控:请求太频繁时,接口会回 403(
botdefense: challenge)。这时去 Chrome 里打开 ubereats.com 手动搜一下、过了验证再用;脚本不会、也不该去碰验证码。浏览器命令请串行跑,别并发。第一次真下单,请人在旁边看着。
药品之类可能弹问诊或确认框,脚本认不出就会停下,需要你自己在 app 里完成。
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Pickup orders at Japanese restaurants for AI agents: find stores, read menus, place orders. No auth.
AI food ordering across Canada — 17,000+ restaurants, 89 cities, real UberEats + DoorDash.
Order food from Cordering white-label restaurants: browse menus, confirm, then place an order.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to discover and order food from multiple delivery services (DoorDash, UberEats, Grubhub) using A2A protocol and process payments via Stripe with AP2 protocol mandates for cryptographically signed user authorization.1MIT
- AlicenseBqualityDmaintenanceEnables AI agents to search restaurants, browse menus, and manage DoorDash carts through structured JSON data. It leverages a background browser to handle authentication and direct GraphQL API calls for efficient interaction.76 npm2MIT
- AlicenseBqualityDmaintenanceEnables AI agents to search restaurants, browse menus, manage carts, and place orders on DoorDash programmatically. It utilizes a headless browser to interact with DoorDash's GraphQL API and bypass anti-bot protections for the full delivery lifecycle.226 npm4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to autonomously order food from Grubhub, including searching restaurants, browsing menus, managing cart, placing orders, and tracking delivery.48 npm1MIT