mcpField
U
ubereats

ubereats

本地服务
github.com/markswendsen-code地图与出行332 周前更新

关于 ubereats

ubereats 是一个供 AI Agent 操作 Uber Eats 的 MCP 服务,可搜索餐厅、查看菜单、下单并跟踪配送。它通过浏览器登录并在本地持久保存会话,结账前支持确认步骤。

主要功能

  1. 01按名称、菜系或食物搜索餐厅
  2. 02查看菜单、商品详情和价格
  3. 03管理购物车及特殊说明
  4. 04确认后提交订单
  5. 05跟踪订单状态和配送进度
  6. 06跨重启保存登录会话

适用场景

  1. 01按配送地址查找餐厅
  2. 02比较菜单并挑选菜品
  3. 03预览购物车后确认下单
  4. 04查看已下订单的配送进度

MCP 相关

该 MCP 服务向兼容客户端提供 Uber Eats 登录状态、餐厅搜索、菜单浏览、购物车、结账和订单跟踪工具。下单需要显式确认。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"markswendsen-code-ubereats": {
"command": "npx",
"args": [
"-y",
"@striderlabs/mcp-ubereats"
]
}
}
}
启动命令npx -y @striderlabs/mcp-ubereats

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@striderlabs/mcp-ubereats0.1.0

工具

11

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

@striderlabs/mcp-ubereats

npm MCP Registry License: MIT

Uber Eats 的 MCP 服务——让 AI Agent 搜索餐厅、浏览菜单、下单并追踪配送。

由 Strider Labs 构建。

功能

  • 按名称、菜系或食物类型搜索餐厅
  • 浏览完整菜单,查看菜品详情和价格
  • 将菜品添加到购物车,并设置数量和特殊说明
  • 清空购物车并重新开始
  • 下单前必须经过确认步骤
  • 追踪进行中订单的状态和配送进度
  • 会话持久化——重启后仍保持登录状态

安装

npm install -g @striderlabs/mcp-ubereats

也可以使用 npx 直接运行:

npx @striderlabs/mcp-ubereats

配置

添加到 MCP 客户端配置中(例如,Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "ubereats": {
      "command": "npx",
      "args": ["-y", "@striderlabs/mcp-ubereats"]
    }
  }
}

身份验证

此连接器使用 Playwright 浏览器自动化。首次使用时:

  1. 调用 ubereats_status——它会返回登录 URL
  2. 在浏览器中打开该 URL 并登录 Uber Eats
  3. 再次运行 ubereats_status,确认会话已保存
  4. 会话 Cookie 保存在 ~/.strider/ubereats/cookies.json
  5. 会话会在重启后自动保留

要退出登录或重置会话:

ubereats_logout

可用工具

会话管理
工具描述
ubereats_status检查登录状态;如果尚未通过身份验证,则返回登录 URL
ubereats_login获取用于在浏览器中打开的登录 URL
ubereats_logout清除已存储的会话 Cookie(退出登录)
配送
工具描述
ubereats_set_address搜索前设置配送地址
餐厅和菜单
工具描述
ubereats_search按名称、食物类型或菜系搜索餐厅
ubereats_get_restaurant获取餐厅详情和完整菜单
购物车和下单
工具描述
ubereats_add_to_cart将菜品添加到购物车,并设置数量和特殊说明
ubereats_view_cart查看当前购物车内容和总价
ubereats_clear_cart移除购物车中的所有菜品
ubereats_checkout预览或下单(设置 confirm=true 即可下单)
ubereats_track_order追踪进行中订单的状态和预计送达时间

使用示例

检查登录状态
{
  "tool": "ubereats_status"
}
设置配送地址
{
  "tool": "ubereats_set_address",
  "arguments": {
    "address": "123 Main St, San Francisco, CA 94102"
  }
}
搜索餐厅
{
  "tool": "ubereats_search",
  "arguments": {
    "query": "sushi",
    "cuisine": "japanese"
  }
}
获取餐厅菜单
{
  "tool": "ubereats_get_restaurant",
  "arguments": {
    "restaurantId": "nobu-restaurant-sf"
  }
}
添加到购物车
{
  "tool": "ubereats_add_to_cart",
  "arguments": {
    "restaurantId": "nobu-restaurant-sf",
    "itemName": "Spicy Tuna Roll",
    "quantity": 2,
    "specialInstructions": "No wasabi please"
  }
}
下单前预览订单
{
  "tool": "ubereats_checkout",
  "arguments": {
    "confirm": false
  }
}
下单
{
  "tool": "ubereats_checkout",
  "arguments": {
    "confirm": true
  }
}
追踪订单
{
  "tool": "ubereats_track_order",
  "arguments": {
    "orderId": "abc123"
  }
}

典型工作流

1. ubereats_status          — check if logged in
2. ubereats_set_address     — set where to deliver
3. ubereats_search          — find restaurants
4. ubereats_get_restaurant  — browse the menu
5. ubereats_add_to_cart     — add items
6. ubereats_view_cart       — review cart
7. ubereats_checkout        — preview (confirm=false), then place (confirm=true)
8. ubereats_track_order     — track delivery

要求

  • Node.js 18+
  • Playwright(首次运行时会自动安装 Chromium 浏览器)
  • 拥有已保存付款方式的有效 Uber Eats 账户

工作原理

  1. 无头 Chrome — Playwright 在后台运行真实浏览器
  2. 隐身模式 — 浏览器指纹模拟真实用户,以避免被检测
  3. Cookie 持久化 — 登录会话会自动保存并重新加载
  4. 结构化响应 — 所有工具输出均为 JSON,便于解析

安全性

  • 会话 Cookie 在本地存储于 ~/.strider/ubereats/cookies.json
  • 不存储凭据——身份验证使用基于浏览器的 Uber 登录流程
  • Cookie 不会离开你的设备

限制

  • Uber Eats 必须在你所在的地区提供服务
  • 自定义菜单(修改项、选项)可能需要额外交互
  • 下单需要 Uber Eats 账户中有有效的付款方式
  • 动态定价和商品供应情况可能与显示内容不同

开发

git clone https://github.com/markswendsen-code/mcp-ubereats.git
cd mcp-ubereats
npm install
npm run build
npm start

许可证

MIT © Strider Labs

相关项目

评论

支持 Markdown

第一次接触 MCP?

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

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