Uber叫车服务协议服务器

一个通过AI助手预订Uber叫车服务的MCP(Model Context Protocol)服务器,提供OAuth 2.0认证、价格预估、叫车请求、状态查询和取消功能。

  • by 199-mcp
  • JavaScript
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 199-biotechnologies/mcp-uber

使用说明

MCP优步服务器

一个MCP(模型上下文协议)服务器,用于通过人工智能助手预订优步乘车。

特性

  • 使用Uber进行OAuth 2.0身份验证
  • 获取游乐设施的价格估算
  • 请求乘坐优步
  • 检查游乐设施状态
  • 取消游乐设施

安装

使用npm(全局安装)

npm install -g mcp-uber

使用npx(无需安装)

npx mcp-uber

设置

步骤1:创建优步开发者帐户

  1. 首选 优步开发者仪表板
  2. 点击“登录”,然后:
    • 使用现有的优步乘客/司机帐户
    • 创建一个专门用于开发的新帐户

💡 提示: 对于组织,创建电子邮件别名(例如。,dev@yourcompany.com)而不是使用个人账户更容易转移所有权。

第二步:创建新应用

  1. 在 开发者面板,点击“创建应用程序”(右上角)
  2. 填写所需信息:
    • 应用程序名称:您的应用程序名称
    • 描述:简要说明你的应用程序的功能
  3. 点击“创建”

步骤3:获取您的API凭据

  1. 在仪表板中导航到您的应用程序
  2. 转到 认证 标签
  3. 你会发现:
    • 客户端ID:应用程序的公共标识符
    • 客户端密钥:私钥(确保安全!)
    • 服务器令牌:用于服务器端请求

步骤4:配置OAuth设置

  1. 在 认证 选项卡,添加您的重定向URI:
    • 对于本地测试: http://localhost:3000/callback
    • 用于生产:您的实际回调URL
  2. 选择所需范围:
    • profile -用户基本资料信息
    • request -代表用户请求乘车
    • ride_request -查看和管理当前骑行请求

⚠️ 注: 这 request 该范围享有特权,需要优步批准才能用于生产。在开发过程中,您的帐户可以在未经批准的情况下使用它。

步骤5:设置环境变量

使用您的凭据创建环境变量(请参阅下面的配置部分)

使用Claude Desktop

使用npm(全局安装)

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "uber": {
      "command": "mcp-uber",
      "env": {
        "UBER_CLIENT_ID": "your_client_id",
        "UBER_CLIENT_SECRET": "your_client_secret",
        "UBER_REDIRECT_URI": "http://localhost:3000/callback",
        "UBER_ENVIRONMENT": "sandbox"
      }
    }
  }
}

使用npx

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "uber": {
      "command": "npx",
      "args": ["mcp-uber"],
      "env": {
        "UBER_CLIENT_ID": "your_client_id",
        "UBER_CLIENT_SECRET": "your_client_secret",
        "UBER_REDIRECT_URI": "http://localhost:3000/callback",
        "UBER_ENVIRONMENT": "sandbox"
      }
    }
  }
}

可用工具

  1. uber_get_auth_url -获取OAuth授权URL
  2. uber_set_access_token -设置用户的访问令牌
  3. uber_price_estimates -获取乘车价格估算
  4. uber_request_ride -请求乘坐优步
  5. uber_getride_status -检查骑行请求状态
  6. uber_cancel-ride -取消乘车请求

OAuth流

  1. 使用 uber_get_auth_url 获取授权URL
  2. 用户访问URL并授权您的应用程序
  3. 回调后,将代码交换为访问令牌
  4. 使用 uber_set_access_token 存储令牌
  5. 现在您可以进行API调用

配置

环境变量

MCP服务器需要以下环境变量:

  • UBER_CLIENT_ID:您的优步应用程序客户端ID
  • UBER_CLIENT_SECRET:您的优步应用程序客户端机密
  • UBER_REDIRECT_URI:OAuth回调URL(默认值: http://localhost:3000/callback)
  • UBER_ENVIRONMENT:要么 sandbox 或 production (默认值: sandbox)

测试您的集成

  1. 使用沙盒模式 用于测试:

    • 集 UBER_ENVIRONMENT=sandbox 在您的环境中
    • 沙盒模式在没有真实驾驶员的情况下模拟骑行请求
    • 非常适合开发和测试
  2. 测试OAuth流:

    • 使用 uber_get_auth_url 获取授权URL的工具
    • 访问URL并授权您的应用程序
    • 授权后,优步将使用代码重定向到您的回叫URL
    • 将代码交换为访问令牌(您需要设置自己的回调处理程序)
    • 使用 uber_set_access_token 将令牌存储在MCP服务器中
  3. 设置回调处理程序:

    • 对于测试,您可以使用简单的Express服务器(请参阅 examples/oauth-server.js 在 GitHub仓库)
    • 对于生产环境,在应用程序中实现一个安全的回调处理程序
    • 回调URL必须与您的优步应用程序中配置的URL完全匹配

重要提示

沙盒vs生产

  • 沙盒模式 (默认):

    • 模拟游乐设施和司机
    • 无实际费用
    • 非常适合测试
    • 仅限于您的开发者帐户
  • 生产模式:

    • 实际乘车和收费
    • 需要优步批准特权范围
    • 必须通过优步的审查程序

安全最佳实践

  1. 从不提交凭据:确保您的客户机密安全
  2. 使用环境变量:不要硬编码凭据
  3. 实施适当的令牌存储:当前内存存储仅用于演示
  4. 验证重定向URI:确保正确配置了回调URL

API限制

  • 适用费率限制(查看优步的文件)
  • 特权范围需要批准才能用于生产
  • 与生产相比,沙盒模式有一些局限性

故障排除

  • “无效范围”错误:您的应用程序需要获得生产中特权作用域的批准
  • “重定向URI无效”:确保你的重定向URI与优步仪表板中配置的完全匹配
  • “未经授权”的错误:检查您的访问令牌是否有效且未过期

资源