返回市场
麦普交易通

麦普交易通

作者:0xjmp9 星标更新:2025-03-07

项目介绍

MCP Tradovate 服务器

smithery 徽章 Go 报告卡 codecov Go 参考 MIT 许可证

这是一个用于 Claude Desktop 中 Tradovate 集成的模型上下文协议(MCP)服务器。该服务器使AI助手能够通过自然语言交互管理Tradovate交易账户。

功能

  • ✅ 完整的 Tradovate API 集成
  • 🔒 安全的身份验证处理
  • 📈 实时市场数据访问
  • 💼 账户管理
  • 📊 风险管理控制
  • 🔄 订单下单与管理
  • 📝 全面的测试覆盖

安装

通过 Smithery 安装

要通过 Smithery 自动安装用于 Claude Desktop 的 Tradovate MCP 服务器:

npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude

手动安装

  1. 克隆仓库:
git clone https://github.com/0xjmp/mcp-tradovate.git
cd mcp-tradovate
  1. 安装依赖项:
go mod download
  1. 构建项目:
go build ./cmd/mcp-tradovate
  1. 运行:
./mcp-tradovate

配置

在项目根目录创建一个 .env 文件,并添加您的 Tradovate 凭据:

TRADOVATE_USERNAME=your_username
TRADOVATE_PASSWORD=your_password
TRADOVATE_APP_ID=your_app_id
TRADOVATE_APP_VERSION=your_app_version
TRADOVATE_CID=your_client_id
TRADOVATE_SEC=your_client_secret

可用工具

身份验证

  • authenticate: 连接到 Tradovate API
    • 不需要参数

账户管理

  • get_accounts: 列出所有交易账户

    • 不需要参数
  • get_positions: 查看当前持仓

    • 不需要参数
  • get_risk_limits: 获取风险管理设置

    • 必需参数:
      • account_id: (数字) 获取限制的账户ID
  • set_risk_limits: 配置风险管理设置

    • 必需参数:
      • account_id: (数字) 设置限制的账户ID
      • day_max_loss: (数字) 每日最大亏损限额
      • max_drawdown: (数字) 最大回撤限额
      • max_position_qty: (数字) 最大持仓数量
      • trailing_stop: (数字) 跟踪止损百分比

交易操作

  • place_order: 提交新订单

    • 必需参数:
      • account_id: (数字) 下单的账户ID
      • contract_id: (数字) 交易的合约ID
      • order_type: (字符串) 订单类型(市价、限价等)
      • quantity: (数字) 交易的合约数量
      • time_in_force: (字符串) 有效时间(当日、GTC、IOC等)
    • 可选参数:
      • price: (数字) 订单价格(限价订单必需)
  • cancel_order: 取消现有订单

    • 必需参数:
      • order_id: (数字) 要取消的订单ID
  • get_fills: 获取特定订单的成交信息

    • 必需参数:
      • order_id: (数字) 要获取成交信息的订单ID

市场数据

  • get_contracts: 列出可用合约

    • 不需要参数
  • get_market_data: 获取实时市场数据

    • 必需参数:
      • contract_id: (数字) 获取市场数据的合约ID
  • get_historical_data: 获取历史价格数据

    • 必需参数:
      • contract_id: (数字) 获取数据的合约ID
      • start_time: (字符串) 开始时间,ISO 8601 格式
      • end_time: (字符串) 结束时间,ISO 8601 格式
      • interval: (字符串) 时间间隔(1m, 5m, 15m, 1h, 1d)

开发

运行测试

运行所有带有覆盖率的测试:

go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...

代码风格

遵循 Go 最佳实践和约定:

go fmt ./...
go vet ./...

故障排除

常见问题

  1. 身份验证失败

    • 验证 .env 文件中的 Tradovate 凭据
    • 确保在 Tradovate 中启用了 API 访问
  2. 连接问题

    • 检查您的互联网连接
    • 验证 Tradovate API 状态
    • 确保防火墙没有阻止连接
  3. 速率限制

    • 在请求之间实现适当的延迟
    • 监控 API 使用量限制

贡献

欢迎贡献!请随时提交拉取请求。

许可证

本项目采用 MIT 许可证 - 详情参见 LICENSE 文件。

支持

如果您遇到任何问题或有疑问,请在 GitHub 仓库中提交问题。

作者

Jake Peterson (@0xjmp)