使用说明
项目简介
mcp-tradovate 是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当 LLM 应用(如 Claude Desktop)与 Tradovate 交易平台之间的桥梁。通过这个服务器,AI 助手可以理解和执行用户关于 Tradovate 账户的自然语言指令,例如查询账户信息、下单交易、管理风险设置以及获取市场数据。
主要功能点
- Tradovate API 集成: 完整实现了 Tradovate API 的各项功能。
- 安全认证: 安全地处理 Tradovate 账户的身份验证。
- 实时市场数据: 提供实时的市场数据访问能力。
- 账户管理: 支持查看和管理 Tradovate 交易账户。
- 风险管理: 允许配置和调整账户的风险管理参数。
- 订单交易: 支持执行订单的创建、修改和取消等交易操作。
- 全面的测试覆盖: 具有全面的测试用例,保证服务的稳定性。
安装步骤
方法一:通过 Smithery 自动安装 (推荐 Claude Desktop 用户使用)
如果你的 MCP 客户端是 Claude Desktop,可以使用 Smithery 命令行工具一键安装:
npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude
方法二:手动安装
-
克隆仓库:
git clone https://github.com/0xjmp/mcp-tradovate.git cd mcp-tradovate -
安装依赖: 确保你已安装 Go 语言环境,然后执行以下命令下载依赖:
go mod download -
构建项目:
go build ./cmd/mcp-tradovate -
运行服务器:
./mcp-tradovate
服务器配置
MCP 服务器需要 Tradovate 平台的 API 凭据才能正常工作。你需要在项目根目录下创建一个 '.env' 文件,并填入以下 Tradovate 凭据信息:
TRADOVATE_USERNAME=你的Tradovate用户名 TRADOVATE_PASSWORD=你的Tradovate密码 TRADOVATE_APP_ID=你的Tradovate应用ID TRADOVATE_APP_VERSION=你的应用版本号 (例如: 1.0) TRADOVATE_CID=你的客户端ID (Client ID) TRADOVATE_SEC=你的客户端密钥 (Client Secret)
MCP 客户端配置 (以 JSON 格式提供,用于 MCP 客户端连接服务器):
{ "serverName": "mcp-tradovate", "command": "./mcp-tradovate", "transport": "stdio", "args": [], "capabilities": [ "tools" ] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。
- 'command': 启动 MCP 服务器的可执行文件路径。这里假设你已经在项目根目录下构建并运行服务器,所以使用 './mcp-tradovate'。
- 'transport': 传输协议,这里使用 'stdio',表示通过标准输入输出流进行通信。
- 'args': 启动服务器时需要传递的命令行参数。本服务器默认不需要额外参数,所以为空数组 '[]'。
- 'capabilities': 声明服务器提供的能力,这里声明了 'tools' 能力,表示该服务器提供工具调用功能。
将以上 JSON 配置信息填入你的 MCP 客户端(例如 Claude Desktop)的服务器配置中,即可连接到 mcp-tradovate 服务器。
基本使用方法
- 确保 MCP 服务器已成功启动并运行。
- 在你的 MCP 客户端中配置并连接到 'mcp-tradovate' 服务器。
- 使用 MCP 客户端提供的界面或方式,调用服务器提供的工具。
可用的工具 (Tools):
-
Authentication (身份验证)
- 'authenticate': 连接到 Tradovate API (无需参数)
-
Account Management (账户管理)
- 'getAccounts': 列出所有交易账户 (无需参数)
- 'getPositions': 查看当前持仓 (无需参数)
- 'getRiskLimits': 获取风险管理设置 (需要参数: 'account_id' - 账户ID)
- 'setRiskLimits': 配置风险管理设置 (需要参数: 'account_id', 'day_max_loss', 'max_drawdown', 'max_position_qty', 'trailing_stop')
-
Trading Operations (交易操作)
- 'placeOrder': 提交新订单 (需要参数: 'account_id', 'contract_id', 'order_type', 'quantity', 'time_in_force',可选参数: 'price')
- 'cancelOrder': 取消现有订单 (需要参数: 'order_id' - 订单ID)
- 'getFills': 获取特定订单的成交记录 (需要参数: 'order_id' - 订单ID)
-
Market Data (市场数据)
- 'getContracts': 列出可用合约 (无需参数)
- 'getMarketData': 获取实时市场数据 (需要参数: 'contract_id' - 合约ID)
- 'getHistoricalData': 获取历史价格数据 (需要参数: 'contract_id', 'start_time', 'end_time', 'interval')
请参考仓库的 README.md 文件获取更详细的工具参数说明和使用示例。
信息
分类
商业系统