使用说明

项目简介

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

方法二:手动安装

  1. 克隆仓库:

    git clone https://github.com/0xjmp/mcp-tradovate.git
    cd mcp-tradovate
  2. 安装依赖: 确保你已安装 Go 语言环境,然后执行以下命令下载依赖:

    go mod download
  3. 构建项目:

    go build ./cmd/mcp-tradovate
  4. 运行服务器:

    ./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 服务器。

基本使用方法

  1. 确保 MCP 服务器已成功启动并运行。
  2. 在你的 MCP 客户端中配置并连接到 'mcp-tradovate' 服务器。
  3. 使用 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 文件获取更详细的工具参数说明和使用示例。

信息

分类

商业系统