返回 MCP 目录
public公开dns本地运行

mcp-uber

MCP Uber Server是一个通过AI助手预订Uber出行的模型协议服务器,提供OAuth认证、价格预估、叫车、状态查询和取消行程等功能。

article

README

🚀 MCP优步服务器

这是一个MCP(模型上下文协议)服务器,用于通过AI助手预订优步(Uber)出行服务。它能帮助开发者轻松集成优步的叫车功能到自己的AI应用中,为用户提供便捷的出行预订体验。

✨ 主要特性

  • 支持与优步的OAuth 2.0认证。
  • 获取出行价格预估。
  • 发起优步出行请求。
  • 查看出行状态。
  • 取消出行请求。

📦 安装指南

使用npm(全局安装)

npm install -g mcp-uber

使用npx(无需安装)

npx mcp-uber

🚀 快速开始

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

  1. 访问 优步开发者控制台
  2. 点击“登录”,你可以选择:
    • 使用现有的优步乘客/司机账户。
    • 创建一个专门用于开发的新账户。

💡 使用建议

对于企业用户,建议创建一个邮件别名(例如,dev@yourcompany.com),而不是使用个人账户,这样便于所有权的转移。

步骤2:创建新应用

  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_get_price_estimates - 获取出行价格预估。
  4. uber_request_ride - 发起优步出行请求。
  5. uber_get_ride_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 | 可以是 sandboxproduction(默认:sandbox) |

测试集成

  1. 使用沙盒模式进行测试

    • 在你的环境中设置 UBER_ENVIRONMENT=sandbox
    • 沙盒模式模拟出行请求,无需真实司机。
    • 非常适合开发和测试。
  2. 测试OAuth流程

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

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

🔧 技术细节

沙盒与生产环境

  • 沙盒模式(默认):

    • 模拟出行和司机。
    • 无实际费用。
    • 非常适合测试。
    • 仅限于你的开发者账户。
  • 生产环境

    • 真实出行和收费。
    • 特权权限范围需要优步批准。
    • 必须通过优步的审核流程。

安全最佳实践

  1. 切勿提交凭证:妥善保管你的客户端密钥。
  2. 使用环境变量:不要硬编码凭证。
  3. 实现适当的令牌存储:当前的内存存储仅用于演示。
  4. 验证重定向URI:确保你的回调URL配置正确。

API限制

  • 存在速率限制(请查看优步的文档)。
  • 特权权限范围在生产环境使用需要批准。
  • 与生产环境相比,沙盒模式有一些限制。

故障排除

  • “无效权限范围”错误:你的应用在生产环境中使用特权权限范围需要批准。
  • “无效重定向URI”:确保你的重定向URI与优步控制台中配置的完全一致。
  • “未授权”错误:检查你的访问令牌是否有效且未过期。

📄 许可证

文档未提及相关信息。

📚 资源

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端