返回市场
罗宾汉-MCP服务器

罗宾汉-MCP服务器

作者:rohitsingh-iitd24 星标更新:2025-06-18

项目介绍

MseeP.ai 安全评估徽章

Robinhood MCP 服务器 - 用户指南

概述

Robinhood MCP 服务器提供了与 Robinhood Crypto API 的全面接口。该服务器通过 REST API 和 WebSocket 接口处理身份验证、账户管理、市场数据检索和交易操作。

目录

特性

  • 用于账户管理和交易操作的 REST API
  • 支持实时市场数据和订单更新的 WebSocket
  • 全面的错误处理和日志记录
  • 速率限制和最佳安全实践
  • 通过环境变量轻松配置

前提条件

  • Python 3.8 或更高版本
  • pip(Python 包管理器)
  • Robinhood API 凭证

安装

  1. 克隆仓库

    git clone https://github.com/rohitsingh-iitd/robinhood-mcp-server
    cd robinhood-mcp-server
    
  2. 设置虚拟环境(推荐):

    # 创建虚拟环境
    python -m venv venv
    
    # 激活虚拟环境
    # 在 macOS/Linux 上:
    source venv/bin/activate
    # 在 Windows 上:
    # .\venv\Scripts\activate
    
  3. 安装依赖项

    pip install -r requirements.txt
    

配置

  1. 在项目根目录创建一个 .env 文件,内容如下:

    # 必需
    ROBINHOOD_API_KEY=your_api_key_here
    ROBINHOOD_PRIVATE_KEY=your_base64_encoded_private_key_here
    
    # 可选(带有默认值)
    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
    
  2. 用实际的 Robinhood API 凭证替换占位符值

运行服务器

使用以下命令启动服务器:

python -m src.main

这将启动:

  • REST API 服务器在 http://localhost:8000
  • WebSocket 服务器在 ws://localhost:8001

生产环境运行

对于生产使用,考虑使用生产级 ASGI 服务器如 Uvicorn 和 Gunicorn:

pip install gunicorn uvicorn[standard]
gunicorn src.main:app --worker-class uvicorn.workers.UvicornWorker --bind 0.0.0.0:8000

REST API 端点

身份验证

  • GET /auth/status - 检查身份验证状态

账户

  • GET /account - 获取账户信息
  • GET /account/holdings - 获取账户持仓(可选查询参数:asset_code

市场数据

  • GET /market/best-price - 获取最优买入/卖出价格(可选查询参数:symbol
  • GET /market/estimated-price - 获取数量的估算价格(必需查询参数:symbolsidequantity

交易

  • GET /trading/pairs - 获取可用交易对(可选查询参数:symbol
  • GET /trading/orders - 获取订单历史(可选查询参数:status
  • GET /trading/orders/{id} - 获取订单详情
  • POST /trading/orders - 下新订单
    • 必需字段:symbolsidequantity
    • 可选字段:typepricetime_in_forcestop_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 - 每周期最大请求次数(默认:1100)
  • RATE_LIMIT_PERIOD - 速率限制周期(秒)(默认:60)

安全注意事项

  • API 密钥和密钥存储在环境变量中,而不是代码中
  • 所有敏感数据都得到妥善处理
  • 对所有 API 端点实施输入验证
  • 实施速率限制以防止滥用
  • 正确的错误处理以避免泄露敏感信息

故障排除

如果遇到问题:

  1. 查看日志文件获取详细的错误消息
  2. 核实您的 API 凭证是否正确
  3. 确保您具有正确的网络连接
  4. 检查 Robinhood API 是否可用

许可

本项目根据 MIT 许可证发布 - 详见 LICENSE 文件。

免责声明

作者不对因使用本项目而可能发生的任何损失或损害负责。

smithery 徽章