TradeStation API服务

一个将TradeStation API作为工具暴露给LLM应用的MCP服务器,支持市场数据、经纪业务和订单执行功能。

  • by theelderwand
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 theelderwand/tradestation-mcp

使用说明

TradeStation MCP服务器

一 MCP(模型上下文协议) 公开完整信息的服务器 API贸易站 作为Claude Desktop、VS Code Copilot和其他MCP客户端等LLM驱动应用程序的工具。

特性

  • 36个MCP工具 涵盖所有三个TradeStation API类别:
    • 市场数据 (17个工具):报价、历史柱状图、期权链、市场深度、交易品种搜索、流媒体
    • 经纪业务占比 (11个工具):账户、余额、头寸、订单、订单历史、流媒体
    • 订单执行 (8个工具):下单/确认/替换/取消订单、团体订单(OCO/Bracket)、路线
  • 5 MCP提示 用于常见工作流程:投资组合审查、股票查找、交易配售、期权分析、每日摘要
  • 内置OAuth2身份验证:打开浏览器进行安全的TradeStation登录——无需手动令牌管理
  • 自动令牌刷新:访问令牌会自动刷新(每20分钟过期一次)
  • 流媒体支持:通过有时限的收集窗口实时更新市场数据和订单
  • 智能帐户解析:当未指定ID时,经纪工具会自动检测您的帐户
  • 丰富的工具描述:域名标记的描述确保LLM正确地将“我的余额是多少?”路由到经纪工具,将“股价是多少

先决条件

  • Python 3.10+
  • TradeStation账户 具有API访问权限
  • TradeStation API密钥 — 在这里买一个

安装

来自PyPI(推荐)

pip install tradestation-mcp

来源(开发)

# Clone the repository
git clone https://github.com/theelderwand/tradestation-mcp.git
cd tradestation-mcp

# Create and activate a virtual environment
python -m venv .venv

# Windows
.venv\Scripts\activate

# macOS/Linux
# source .venv/bin/activate

# Install in development mode with dev dependencies
pip install -e ".[dev]"

使用uvx快速运行(无需安装)

uvx tradestation-mcp

配置

  1. 复制示例环境文件:

    copy .env.example .env
    
  2. 编辑 .env 使用您的TradeStation API凭证:

    TS_CLIENT_ID=your_api_key_here
    TS_CLIENT_SECRET=your_api_secret_here
    TS_REDIRECT_PORT=3000
    
  3. 确保您的API密钥具有 http://localhost:3000 在其允许的回调URL中(这是新密钥的默认值)。

首次运行--身份验证

首次启动时,服务器将:

  1. 打开默认浏览器进入TradeStation登录页面
  2. 您使用TradeStation凭据登录并授权应用程序
  3. 浏览器重定向回 localhost:3000 其中服务器捕获身份验证代码
  4. 代币被交换并保存到 ~/.tradestation_mcp_tokens.json

后续启动将使用保存的刷新令牌——除非撤销刷新令牌,否则不需要浏览器。

使用GitHub Copilot CLI

GitHub Copilot CLI将MCP服务器配置存储在 ~/.copilot/mcp-config.json。您可以通过两种方式进行设置:

选项A:交互式(在Copilot CLI内)

  1. 发射 copilot (或 gh copilot)在您的终端
  2. 类型 /mcp add
  3. 填写以下字段:
    • 名字: tradestation
    • 类型: stdio
    • 命令: tradestation-mcp (如果通过pip安装)
  4. 按 Ctrl+S 节省

选项B:直接编辑配置文件

创建或编辑 ~/.copilot/mcp-config.json:

{
  "mcpServers": {
    "tradestation": {
      "type": "stdio",
      "command": "tradestation-mcp",
      "env": {
        "TS_CLIENT_ID": "your_api_key",
        "TS_CLIENT_SECRET": "your_api_secret"
      }
    }
  }
}

备注:如果从源代码而不是pip安装,请替换 "command": "tradestation-mcp" 带有Python可执行文件的完整路径并使用 "args": ["-m", "tradestation_mcp.server"].

验证它是否正常工作

在Copilot CLI中,键入 /mcp 查看您配置的服务器并确认 tradestation 已列出。然后尝试:

Use the tradestation MCP server to get a quote for MSFT

允许使用未经手动批准的工具(可选)

copilot --allow-tool 'tradestation'

或者拒绝使用特定的危险工具,同时允许使用其他工具:

copilot --allow-tool 'tradestation' --deny-tool 'tradestation(place_order)' --deny-tool 'tradestation(place_group_order)'

使用Claude Desktop

添加到您的Claude Desktop配置(%APPDATA%\Claude\claude_desktop_config.json 在Windows上):

{
  "mcpServers": {
    "tradestation": {
      "command": "tradestation-mcp",
      "env": {
        "TS_CLIENT_ID": "your_api_key",
        "TS_CLIENT_SECRET": "your_api_secret"
      }
    }
  }
}

使用VS代码(复制品/MCP)

添加到您的VS代码 .vscode/mcp.json:

{
  "servers": {
    "tradestation": {
      "command": "tradestation-mcp",
      "env": {
        "TS_CLIENT_ID": "your_api_key",
        "TS_CLIENT_SECRET": "your_api_secret"
      }
    }
  }
}

工具参考

市场数据工具

工具 说明 查询示例
get_quote_snapshots 当前报价 “微软的股价是多少?”
get_bars 历史OHLCV柱状图 “显示上个月AAPL日线图”
stream_bars 直播酒吧 “为TSLA直播1分钟酒吧”
get_crypto_symbol_names 列出加密货币对 “有哪些可用的加密货币符号?”
get_symbol_details 交易品种信息/元数据 “微软在哪个交易所交易?”
get_option_expirations 期权到期日期 “AAPL期权何时到期?”
get_option_risk_reward 风险/回报分析 “此点差的最大利润是多少?”
get_option_spread_types 可用策略 “存在哪些期权价差类型?”
get_option_strikes 可用罢工 “显示AAPL选项的罢工”
stream_option_chain 实时期权链 “显示AAPL期权链”
stream_option_quotes 实时期权定价 “为这些合约流式传输祝福”
stream_quotes 实时报价流 “流式传输微软、苹果的实时价格”
stream_market_depth_quotes 二级数据 “显示微软的市场深度”
stream_market_depth_aggregates 聚合深度 “显示SPY的聚合订单簿”
suggest_symbols 符号自动补全 “查找特斯拉的符号”
search_symbols 高级交易品种搜索 “搜索ES期货”
stream_tick_bars 基于刻度的条形图 “显示MSFT的刻度条”

经纪工具

工具 说明 查询示例
get_accounts 列出帐户 “我有哪些帐户?”
get_balances 当前余额 “我的账户余额是多少?”
get_balances_bod 期初余额 “我在开盘时的余额是多少?”
get_positions 当前持有量 “我持有哪些股票?”
get_orders 今天的订单 “我有未结订单吗?”
get_orders_by_id 具体订单查询 “显示订单123456789”
get_historical_orders 过去的订单历史 “显示我上周的交易”
get_historical_orders_by_id 特定历史订单 “查找历史订单123456789”
stream_orders 实时订单更新 “流式传输我的订单状态更新”
stream_orders_by_id 实时特定订单 “观看订单123456789进行填充”
stream_positions 实时头寸更新 “流式传输我的投资组合损益”

订单执行工具

工具 说明 查询示例
confirm_order 预览订单成本 “购买100 MSFT需要多少钱?”
place_order 执行交易 “购买100股微软股票”
confirm_group_order 预览组顺序 “预览我的括号顺序”
place_group_order 放置OCO/括号 “在AAPL上放置括号顺序”
replace_order 修改未结订单 “将我的限额更改为150美元”
cancel_order 取消未结订单 “取消订单123456789”
get_activation_triggers 条件触发器 “有哪些可用的触发器类型?”
get_routes 订购路线 “我可以使用哪些路线?”

安全说明

  • 令牌存储:令牌以明文形式保存在 ~/.tradestation_mcp_tokens.json。此文件包含您的刷新令牌,可用于获取新的访问令牌。确保您的主目录具有适当的权限。
  • 刷新令牌:默认情况下,TradeStation刷新令牌不会过期。您可以联系TradeStation客户体验部启用轮换(30分钟到期)。
  • 订单安全:The place_order 工具描述指示LLM始终调用 confirm_order 首先,但这是指导——工具本身并不强制执行。
  • API生产:此服务器连接到TradeStation的生产API。所有订单都是真实的。

故障排除

“TS_CLIENT_ID环境变量是必需的”

  • 确保您的 .env 文件存在或直接设置环境变量。

浏览器未打开进行身份验证

  • 手动访问stderr日志中打印的URL。
  • 确保端口3000(或您配置的端口)未被使用。

“令牌刷新失败”

  • 删除 ~/.tradestation_mcp_tokens.json 并重新启动以重新进行身份验证。

“未找到经纪账户”

  • 请确保您的API密钥配置了正确的登录。联系TradeStation客户体验部。

贡献

看 贡献.md 用于开发设置和指南。

许可证

麻省理工学院

链接