关于 MCP Tradovate Server
MCP Tradovate Server 是一个用于 Tradovate 交易平台的 MCP 服务,使 Claude Desktop 等 AI 助手能够通过自然语言管理交易账户。项目使用 Go 编写,提供账户、订单、风控和市场数据相关工具。
主要功能
- 01账户与持仓查询
- 02下单、撤单与成交查询
- 03风险限额设置
- 04合约列表与实时行情
- 05历史价格数据获取
适用场景
- 01通过自然语言查询交易账户与持仓
- 02设置每日最大亏损等风控限额
- 03获取指定合约的历史价格数据
MCP 相关
该项目是一个 MCP 服务,向 Claude Desktop 等 MCP 客户端提供 authenticate、get_accounts、place_order 等工具,用于访问 Tradovate API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Tradovate 服务
用于在 Claude Desktop 中集成 Tradovate 的模型上下文协议(MCP)服务。此服务支持 AI 助手通过自然语言交互管理 Tradovate 交易账户。
功能
- ✅ 完整集成 Tradovate API
- 🔒 安全处理身份验证
- 📈 实时访问市场数据
- 💼 账户管理
- 📊 风险管理控制
- 🔄 下单与订单管理
- 📝 全面的测试覆盖
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 Tradovate MCP 服务:
npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude
手动安装
- 克隆仓库:
git clone https://github.com/0xjmp/mcp-tradovate.git
cd mcp-tradovate
- 安装依赖项:
go mod download
- 构建项目:
go build ./cmd/mcp-tradovate
- 运行:
./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:(number)要获取限制的账户 ID
- 必需参数:
-
set_risk_limits:配置风险管理设置- 必需参数:
account_id:(number)要设置限制的账户 IDday_max_loss:(number)每日最大亏损限额max_drawdown:(number)最大回撤限额max_position_qty:(number)最大持仓数量trailing_stop:(number)移动止损百分比
- 必需参数:
交易操作
-
place_order:提交新订单- 必需参数:
account_id:(number)下单账户的 IDcontract_id:(number)要交易的合约 IDorder_type:(string)订单类型(Market、Limit 等)quantity:(number)要交易的合约数量time_in_force:(string)订单有效时限(Day、GTC、IOC 等)
- 可选参数:
price:(number)订单价格(Limit 订单必需)
- 必需参数:
-
cancel_order:取消现有订单- 必需参数:
order_id:(number)要取消的订单 ID
- 必需参数:
-
get_fills:获取指定订单的成交记录- 必需参数:
order_id:(number)要获取成交记录的订单 ID
- 必需参数:
市场数据
-
get_contracts:列出可用合约- 无需参数
-
get_market_data:获取实时市场数据- 必需参数:
contract_id:(number)要获取市场数据的合约 ID
- 必需参数:
-
get_historical_data:获取历史价格数据- 必需参数:
contract_id:(number)要获取数据的合约 IDstart_time:(string)ISO 8601 格式的开始时间end_time:(string)ISO 8601 格式的结束时间interval:(string)时间间隔(1m、5m、15m、1h、1d)
- 必需参数:
开发
运行测试
运行所有测试并生成覆盖率报告:
go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...
代码风格
遵循 Go 最佳实践和惯例:
go fmt ./...
go vet ./...
故障排除
常见问题
-
身份验证失败
- 检查
.env文件中的 Tradovate 凭据 - 确保已在 Tradovate 中启用 API 访问权限
- 检查
-
连接问题
- 检查网络连接
- 确认 Tradovate API 的状态
- 确保防火墙未阻止连接
-
速率限制
- 在请求之间设置适当的延迟
- 监控 API 使用限额
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
本项目基于 MIT License 许可,详情请参阅 LICENSE 文件。
支持
如果遇到问题或有疑问,请在 GitHub 仓库中提交 issue。
作者
Jake Peterson (@0xjmp)
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。