README
🚀 MCP优步服务器
这是一个MCP(模型上下文协议)服务器,用于通过AI助手预订优步(Uber)出行服务。它能帮助开发者轻松集成优步的叫车功能到自己的AI应用中,为用户提供便捷的出行预订体验。
✨ 主要特性
- 支持与优步的OAuth 2.0认证。
- 获取出行价格预估。
- 发起优步出行请求。
- 查看出行状态。
- 取消出行请求。
📦 安装指南
使用npm(全局安装)
npm install -g mcp-uber
使用npx(无需安装)
npx mcp-uber
🚀 快速开始
步骤1:创建优步开发者账户
- 访问 优步开发者控制台。
- 点击“登录”,你可以选择:
- 使用现有的优步乘客/司机账户。
- 创建一个专门用于开发的新账户。
💡 使用建议
对于企业用户,建议创建一个邮件别名(例如,dev@yourcompany.com),而不是使用个人账户,这样便于所有权的转移。
步骤2:创建新应用
- 在 开发者控制台 中,点击右上角的“创建应用”。
- 填写所需信息:
- 应用名称:你的应用名称。
- 描述:简要描述你的应用功能。
- 点击“创建”。
步骤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_get_price_estimates - 获取出行价格预估。
- uber_request_ride - 发起优步出行请求。
- uber_get_ride_status - 查看出行请求状态。
- uber_cancel_ride - 取消出行请求。
OAuth流程
- 使用
uber_get_auth_url获取授权URL。 - 用户访问该URL并授权你的应用。
- 回调后,用授权码换取访问令牌。
- 使用
uber_set_access_token存储令牌。 - 现在你可以进行API调用。
📚 详细文档
配置
环境变量
MCP服务器需要以下环境变量:
| 属性 | 详情 |
|------|------|
| UBER_CLIENT_ID | 你的优步应用客户端ID |
| UBER_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服务器(请参阅 GitHub仓库 中的
examples/oauth-server.js)。 - 生产环境中,在你的应用中实现一个安全的回调处理程序。
- 回调URL必须与你在优步应用中配置的完全一致。
- 测试时,你可以使用一个简单的Express服务器(请参阅 GitHub仓库 中的
🔧 技术细节
沙盒与生产环境
-
沙盒模式(默认):
- 模拟出行和司机。
- 无实际费用。
- 非常适合测试。
- 仅限于你的开发者账户。
-
生产环境:
- 真实出行和收费。
- 特权权限范围需要优步批准。
- 必须通过优步的审核流程。
安全最佳实践
- 切勿提交凭证:妥善保管你的客户端密钥。
- 使用环境变量:不要硬编码凭证。
- 实现适当的令牌存储:当前的内存存储仅用于演示。
- 验证重定向URI:确保你的回调URL配置正确。
API限制
- 存在速率限制(请查看优步的文档)。
- 特权权限范围在生产环境使用需要批准。
- 与生产环境相比,沙盒模式有一些限制。
故障排除
- “无效权限范围”错误:你的应用在生产环境中使用特权权限范围需要批准。
- “无效重定向URI”:确保你的重定向URI与优步控制台中配置的完全一致。
- “未授权”错误:检查你的访问令牌是否有效且未过期。
📄 许可证
文档未提及相关信息。
Scan to contact