关于 Robinhood Mcp Server
Robinhood MCP Server 是一个 MCP 服务,封装了 Robinhood Crypto API,提供认证、账户管理、行情数据查询和交易操作。它同时提供 REST API 与 WebSocket 接口,适合需要通过程序访问 Robinhood 加密货币账户的开发者。
主要功能
- 01认证状态查询与账户信息获取
- 02账户持仓与订单历史查询
- 03最优买卖价与预估成交价查询
- 04下单、查询与撤销订单
- 05WebSocket 实时行情与订单更新订阅
- 06通过环境变量配置,支持速率限制
适用场景
- 01查询 Robinhood 加密货币账户的持仓情况
- 02获取 BTC-USD、ETH-USD 等交易对的实时行情
- 03通过 MCP 客户端下单或撤销加密货币订单
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露账户、行情和交易相关的操作,具体工具列表未在说明中以 MCP 形式列出。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e ROBINHOOD_API_KEY -e ROBINHOOD_PRIVATE_KEY -e HOST -e PORT -e DEBUG -e LOG_LEVEL -e RATE_LIMIT_ENABLED -e RATE_LIMIT_REQUESTS -e RATE_LIMIT_PERIOD robinhood-mcp-serverROBINHOOD_API_KEY密钥ROBINHOOD_PRIVATE_KEY密钥HOSTPORTDEBUGLOG_LEVELRATE_LIMIT_ENABLEDRATE_LIMIT_REQUESTSRATE_LIMIT_PERIOD本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Robinhood MCP 服务 - 用户指南
概述
Robinhood MCP 服务为 Robinhood Crypto API 提供全面的接口。该服务通过 REST API 和 WebSocket 接口处理身份验证、账户管理、市场数据检索和交易操作。
目录
功能
- 用于账户管理和交易操作的 REST API
- 支持通过 WebSocket 获取实时市场数据和订单更新
- 全面的错误处理和日志记录
- 速率限制和安全最佳实践
- 通过环境变量轻松配置
先决条件
- Python 3.8 或更高版本
- pip(Python 包管理器)
- Robinhood API 凭据
安装
-
克隆仓库:
git clone https://github.com/rohitsingh-iitd/robinhood-mcp-server cd robinhood-mcp-server -
设置虚拟环境(推荐):
# Create a virtual environment python -m venv venv # Activate the virtual environment # On macOS/Linux: source venv/bin/activate # On Windows: # .\venv\Scripts\activate -
安装依赖项:
pip install -r requirements.txt
配置
-
在项目根目录中创建
.env文件,内容如下:# Required ROBINHOOD_API_KEY=your_api_key_here ROBINHOOD_PRIVATE_KEY=your_base64_encoded_private_key_here # Optional (with defaults) HOST=0.0.0.0 PORT=8000 WEBSOCKET_PORT=8001 DEBUG=False LOG_LEVEL=INFO LOG_FILE=robinhood_mcp_server.log RATE_LIMIT_ENABLED=True RATE_LIMIT_REQUESTS=100 RATE_LIMIT_PERIOD=60 -
将占位值替换为你实际的 Robinhood API 凭据。
运行服务
使用以下命令启动服务:
python -m src.main
这将启动:
- REST API 服务,地址为
http://localhost:8000 - WebSocket 服务,地址为
ws://localhost:8001
在生产环境中运行
在生产环境中使用时,可考虑使用生产级 ASGI 服务,例如搭配 Gunicorn 使用 Uvicorn:
pip install gunicorn uvicorn[standard]
gunicorn src.main:app --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000
运行服务
使用以下命令启动服务:
python -m src.main
这将同时启动 REST API 服务(默认端口为 8000)和 WebSocket 服务(默认端口为 8001)。
REST API 端点
身份验证
GET /auth/status- 检查身份验证状态
账户
GET /account- 获取账户信息GET /account/holdings- 获取账户持仓(可选查询参数:asset_code)
市场数据
GET /market/best-price- 获取最佳买入/卖出价格(可选查询参数:symbol)GET /market/estimated-price- 获取指定数量的预估价格(必需查询参数:symbol、side、quantity)
交易
GET /trading/pairs- 获取可用交易对(可选查询参数:symbol)GET /trading/orders- 获取订单历史记录(可选查询参数:status)GET /trading/orders/{id}- 获取订单详情POST /trading/orders- 下达新订单- 必需字段:
symbol、side、quantity - 可选字段:
type、price、time_in_force、stop_price
- 必需字段:
DELETE /trading/orders/{id}- 取消订单
WebSocket API
WebSocket 服务提供市场数据和订单状态的实时更新。
连接
连接到以下地址的 WebSocket 服务:
ws://localhost:8001
市场数据订阅
订阅市场数据更新:
{
"type": "market_data",
"action": "subscribe",
"symbols": ["BTC-USD", "ETH-USD"]
}
取消订阅市场数据更新:
{
"type": "market_data",
"action": "unsubscribe",
"symbols": ["BTC-USD", "ETH-USD"]
}
订单更新订阅
订阅订单更新:
{
"type": "orders",
"action": "subscribe"
}
取消订阅订单更新:
{
"type": "orders",
"action": "unsubscribe"
}
Ping/Pong
发送 ping 以保持连接:
{
"type": "ping"
}
服务将作出如下响应:
{
"type": "pong"
}
测试
运行验证测试,确保服务正常工作:
python -m tests.test_server
配置选项
可在 .env 文件中配置以下环境变量:
ROBINHOOD_API_KEY- Robinhood API 密钥ROBINHOOD_PRIVATE_KEY- 经过 base64 编码的私钥HOST- 服务主机(默认值:0.0.0.0)PORT- REST API 服务端口(默认值:8000)DEBUG- 启用调试模式(默认值:False)LOG_LEVEL- 日志级别(默认值:INFO)LOG_FILE- 日志文件路径(默认值:robinhood_mcp_server.log)RATE_LIMIT_ENABLED- 启用速率限制(默认值:True)RATE_LIMIT_REQUESTS- 每个时间段内的最大请求数(默认值:100)RATE_LIMIT_PERIOD- 速率限制周期(秒,默认值:60)
安全注意事项
- API 密钥和机密信息存储在环境变量中,绝不写入代码
- 妥善处理所有敏感数据
- 为所有 API 端点实施输入验证
- 强制执行速率限制以防止滥用
- 妥善处理错误,避免泄露敏感信息
故障排除
如果遇到问题:
- 查看日志文件以获取详细的错误信息
- 确认 API 凭据正确
- 确保网络连接正常
- 检查 Robinhood API 是否可用
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
免责声明
对于因使用本项目而可能造成的任何损失或损害,作者概不负责。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
