IBKR投资组合MCP服务器
用于盈透证券账户访问的模型上下文协议服务器
使AI代理(如Claude)能够在对话期间访问您的IBKR投资组合、账户余额、保证金要求和市场数据。建立在 交易核心 用于可靠的IBKR连接。
特性
🔍 账户监控
- 实时账户余额和购买力
- 保证金要求和使用
- 未实现和已实现损益
📊 投资组合分析
- 当前头寸及入场价格
- 按头寸划分的实时市场价值和损益
- 收益/损失百分比
📈 市场数据
- 任何符号的历史OHLCV数据
- 支持股票、期货、外汇等
- 灵活的时间框架和酒吧大小
📋 订单追踪
- 活动订单及其状态
- 填写价格和数量
- 订单类型(限价、市价、止损)
⚡ 订单执行 ⚠️ 新
- 下达市价单、限价单和止损单
- 执行前的实时价格检查
- 订单状态监控
- 取消单个或所有订单
- 内置安全确认
💬 Web仪表板和聊天界面 ⚠️ 新
- 用于投资组合监控的漂亮web UI
- 对话式AI交易助手
- 自然语言排序
- 通过Tailscale VPN进行远程访问
- 实时帐户更新
先决条件
- 交易核心 -必须安装和配置
git clone https://github.com/YoungMoneyInvestments/TradingCore
cd TradingCore
make quick-start- 盈透证券
- TWS(交易员工作站)或IB网关正在运行 - 在TWS/网关设置中启用API连接 - 端口7497(纸质)或7496(实时)打开
- 克劳德桌面 (或任何MCP客户端)
安装
1.克隆此存储库
cd ~
git clone https://github.com/YoungMoneyInvestments/ibkr-portfolio-mcp
cd ibkr-portfolio-mcp2.安装依赖项
pip install -e .3.配置环境
cp .env.example .env
nano .env # Edit with your TradingCore path在 .env:
TRADING_CORE_PATH=/Users/yourname/TradingCore4.配置克劳德桌面
增添 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"ibkr-portfolio": {
"command": "python",
"args": [
"/Users/yourname/ibkr-portfolio-mcp/ibkr_mcp_server.py"
],
"env": {
"TRADING_CORE_PATH": "/Users/yourname/TradingCore"
}
}
}
}重要提示: 替换 /Users/yourname/ 使用您的实际主目录路径。
5.重新启动克劳德桌面
当Claude需要IBKR数据时,MCP服务器将自动连接。
用法
首先启动TWS/网关
重要: 在使用MCP服务器之前,请确保TWS或IB网关正在运行。
纸品交易(建议测试):
- 端口: 7497
- 在TradingCore中配置
config/.env
实时交易:
- 端口: 7496
- ⚠️ 小心使用——真钱!
向克劳德询问你的投资组合
配置后,您可以向Claude提出以下问题:
账户信息:
- “我的账户余额和购买力是多少?”
- “我使用了多少保证金?”
- “显示我未实现的损益”
投资组合分析:
- “我目前担任哪些职位?”
- “哪个头寸的收益/损失最大?”
- “我的投资组合总价值是多少?”
市场数据:
- “给我SPY的最新价格”
- “显示ES期货的1小时柱状图”
- “上周AAPL的价格走势如何?”
订单管理:
- “我有任何未完成的订单吗?”
- “显示我的待处理限价订单”
战略讨论:
- “我在考虑在特斯拉增加一个职位——我有足够的购买力吗?”
- “考虑到我目前的保证金使用情况,我应该减少风险敞口吗?”
Web仪表板和交易界面🆕
通过对话式交易的漂亮网络界面访问您的投资组合:
./start_web.sh访问权限:
- 当地: http://localhost:8000
- 远程(尾秤): http://:8000
特征:
- 投资组合仪表板
- 实时账户余额和购买力 - P&L的当前头寸 - 未结订单跟踪
- 快速交易表格
- 下达市价单、限价单和止损单 - 实时价格显示 - 安全确认
- 对话式交易助理
- 自然语言命令:“AAPL的价格是多少?” - 下单:“购买10股TSLA” - 投资组合查询:“显示我的头寸” - 账户信息:“我的余额是多少?”
⚠️ 重要: 阅读 TRADING_SAFETY.md 在执行任何交易之前!
安装指南:
- 看
REMOTE_ACCESS.md用于尾秤设置 - 看
TWS_API_SETUP.md用于TWS配置 - 看
TRADING_SAFETY.md风险管理
可用的MCP工具
服务器将这些工具暴露给AI代理:
| 工具 | 说明 |
|---|---|
| 投资组合和账户 | |
get_account_summary | 账户余额、购买力、利润 |
get_positions | 当前持有量和成本 |
get_portfolio | 实时损益的完整投资组合 |
get_open_orders | 活动订单及其状态 |
get_connection_status | 检查IBKR连接状态 |
| 市场数据 | |
get_market_data | 任何符号的历史OHLCV条 |
get_current_price | 交易品种的实时价格 |
| 订单执行 ⚠️ | |
place_market_order | 下达市价单(立即执行) |
place_limit_order | 按指定价格下限价订单 |
place_stop_order | 下达止损单(止损) |
cancel_order | 按ID取消特定订单 |
cancel_all_orders | 取消所有未结订单 |
get_order_status | 检查特定订单的状态 |
建筑
┌─────────────────┐
│ Claude/AI │
│ Agent │
└────────┬────────┘
│ MCP Protocol
▼
┌─────────────────┐
│ IBKR MCP │
│ Server │
└────────┬────────┘
│ Python Import
▼
┌─────────────────┐
│ TradingCore │
│ IBKRManager │
└────────┬────────┘
│ ib_insync
▼
┌─────────────────┐
│ TWS / IB │
│ Gateway │
└─────────────────┘安全
🔒 凭证
- 永不承诺
.env文件 - 存储在TradingCore中的IBKR凭据
config/.env - MCP服务器具有只读访问权限(无交易执行)
⚠️ 纸与生活
- 默认值:纸面交易(端口7497)
- 实时交易需要明确的端口更改为7496
- 始终先用纸质账户进行测试
故障排除
“导入TradingCore失败”
- 验证
TRADING_CORE_PATH在.env - 检查TradingCore是否安装正确
- 如果使用某个venv,请确保TradingCore的venv已激活
“未连接到IBKR”
- 确保TWS/IB网关正在运行
- 检查端口号(7497表示纸质,7496表示实时)
- 验证在TWS设置中启用的API连接
- 检查TradingCore的
config/.env具有正确的IBKR设置
“没有可用的帐户数据”
- 连接后等待几秒钟
- 尝试直接使用TradingCore运行测试脚本
- 检查TWS/网关日志是否有错误
MCP服务器未在Claude中显示
- 验证
claude_desktop_config.json语法 - 检查文件路径是否为绝对路径(而非相对路径)
- 完全重新启动克劳德桌面
- 查看克劳德的日志:
~/Library/Logs/Claude/mcp*.log
发展
运行测试
pytest tests/格式码
black ibkr_mcp_server.py手动测试
# Test connection
python -c "from trading_core.ibkr_manager import IBKRManager; m = IBKRManager(); m.connect(); print(m.get_account_summary())"贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 通过纸上交易进行彻底测试
- 提交拉取请求
许可证
麻省理工学院
免责声明
使用风险自负。 此软件连接到您的盈透证券帐户。虽然MCP服务器是只读的(没有订单执行),但始终使用纸质交易进行测试。作者不对任何交易损失或账户问题负责。
相关项目
______________________________________________________________________
问题? 在GitHub上打开一个问题。
