MCP优步服务器
一个MCP(模型上下文协议)服务器,用于通过人工智能助手预订优步乘车。
特性
- 使用Uber进行OAuth 2.0身份验证
- 获取游乐设施的价格估算
- 请求乘坐优步
- 检查游乐设施状态
- 取消游乐设施
安装
使用npm(全局安装)
npm install -g mcp-uber使用npx(无需安装)
npx mcp-uber设置
步骤1:创建优步开发者帐户
- 首选 优步开发者仪表板
- 点击“登录”,然后:
- 使用现有的优步乘客/司机帐户 - 创建一个专门用于开发的新帐户
💡 提示: 对于组织,创建电子邮件别名(例如。,dev@yourcompany.com)而不是使用个人账户更容易转移所有权。
第二步:创建新应用
- 在 开发者面板,点击“创建应用程序”(右上角)
- 填写所需信息:
- 应用程序名称:您的应用程序名称 - 描述:简要说明你的应用程序的功能
- 点击“创建”
步骤3:获取您的API凭据
- 在仪表板中导航到您的应用程序
- 转到 认证 标签
- 你会发现:
- 客户端ID:应用程序的公共标识符 - 客户端密钥:私钥(确保安全!) - 服务器令牌:用于服务器端请求
步骤4:配置OAuth设置
- 在 认证 选项卡,添加您的重定向URI:
- 对于本地测试: http://localhost:3000/callback - 用于生产:您的实际回调URL
- 选择所需范围:
- 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"
}
}
}
}可用工具
- uber_get_auth_url -获取OAuth授权URL
- uber_set_access_token -设置用户的访问令牌
- uber_price_estimates -获取乘车价格估算
- uber_request_ride -请求乘坐优步
- uber_getride_status -检查骑行请求状态
- uber_cancel-ride -取消乘车请求
OAuth流
- 使用
uber_get_auth_url获取授权URL - 用户访问URL并授权您的应用程序
- 回调后,将代码交换为访问令牌
- 使用
uber_set_access_token存储令牌 - 现在您可以进行API调用
配置
环境变量
MCP服务器需要以下环境变量:
UBER_CLIENT_ID:您的优步应用程序客户端IDUBER_CLIENT_SECRET:您的优步应用程序客户端机密UBER_REDIRECT_URI:OAuth回调URL(默认值:http://localhost:3000/callback)UBER_ENVIRONMENT:要么sandbox或production(默认值:sandbox)
测试您的集成
- 使用沙盒模式 用于测试:
- 集 UBER_ENVIRONMENT=sandbox 在您的环境中 - 沙盒模式在没有真实驾驶员的情况下模拟骑行请求 - 非常适合开发和测试
- 测试OAuth流:
- 使用 uber_get_auth_url 获取授权URL的工具 - 访问URL并授权您的应用程序 - 授权后,优步将使用代码重定向到您的回叫URL - 将代码交换为访问令牌(您需要设置自己的回调处理程序) - 使用 uber_set_access_token 将令牌存储在MCP服务器中
- 设置回调处理程序:
- 对于测试,您可以使用简单的Express服务器(请参阅 examples/oauth-server.js 在 ) - 对于生产环境,在应用程序中实现一个安全的回调处理程序 - 回调URL必须与您的优步应用程序中配置的URL完全匹配
重要提示
沙盒vs生产
- 沙盒模式 (默认):
- 模拟游乐设施和司机 - 无实际费用 - 非常适合测试 - 仅限于您的开发者帐户
- 生产模式:
- 实际乘车和收费 - 需要优步批准特权范围 - 必须通过优步的审查程序
安全最佳实践
- 从不提交凭据:确保您的客户机密安全
- 使用环境变量:不要硬编码凭据
- 实施适当的令牌存储:当前内存存储仅用于演示
- 验证重定向URI:确保正确配置了回调URL
API限制
- 适用费率限制(查看优步的文件)
- 特权范围需要批准才能用于生产
- 与生产相比,沙盒模式有一些局限性
故障排除
- “无效范围”错误:您的应用程序需要获得生产中特权作用域的批准
- “重定向URI无效”:确保你的重定向URI与优步仪表板中配置的完全匹配
- “未经授权”的错误:检查您的访问令牌是否有效且未过期
