使用说明
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
配置
-
复制示例环境文件:
copy .env.example .env -
编辑
.env使用您的TradeStation API凭证:TS_CLIENT_ID=your_api_key_here TS_CLIENT_SECRET=your_api_secret_here TS_REDIRECT_PORT=3000 -
确保您的API密钥具有
http://localhost:3000在其允许的回调URL中(这是新密钥的默认值)。
首次运行--身份验证
首次启动时,服务器将:
- 打开默认浏览器进入TradeStation登录页面
- 您使用TradeStation凭据登录并授权应用程序
- 浏览器重定向回
localhost:3000其中服务器捕获身份验证代码 - 代币被交换并保存到
~/.tradestation_mcp_tokens.json
后续启动将使用保存的刷新令牌——除非撤销刷新令牌,否则不需要浏览器。
使用GitHub Copilot CLI
GitHub Copilot CLI将MCP服务器配置存储在 ~/.copilot/mcp-config.json。您可以通过两种方式进行设置:
选项A:交互式(在Copilot CLI内)
- 发射
copilot(或gh copilot)在您的终端 - 类型
/mcp add - 填写以下字段:
- 名字:
tradestation - 类型:
stdio - 命令:
tradestation-mcp(如果通过pip安装)
- 名字:
- 按
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 用于开发设置和指南。