IBKR MCP服务器
模型上下文协议(MCP)服务器,通过TWS API为人工智能模型提供对交互式经纪人(IBKR)交易数据和功能的安全访问。
⚠️⚠️⚠️ 免责声明⚠️⚠️⚠️
此软件用于教育和开发目的。使用风险自负。作者不对因使用本软件而产生的任何经济损失负责。在使用真钱之前,一定要先用纸交易进行测试。
🚀 特性
- 账户管理:获取头寸、投资组合详细信息和账户摘要
- 市场数据:检索历史价格数据和实时市场信息
- 交易操作:下订单、管理职位和跟踪执行情况
- MCP集成:与支持MCP协议的AI模型无缝集成
- 一键式命令行界面:按命令连接执行断开连接以快速编写脚本
- 自动TWS发射 (macOS):一个命令启动TWS并自动填充TOTP 2FA
- 克劳德代码技能:通过捆绑的自然语言交易
skills/ibkr-trading - 安全特性:只读模式、可配置的交易限制和全面的验证
- 高可用性:自动重新连接、心跳监测和优雅的错误处理
📋 先决条件
- Python 3.10+
- 盈透证券TWS或IB网关
- 活跃的IBKR账户(建议进行纸质交易测试)
🛠️ 安装
- 克隆仓库:
git clone https://github.com/happy-shine/ibkr_mcp.git
cd ibkr_mcp- 安装依赖项:
pip install -r requirements.txt- 配置TWS/IB网关:
- 在TWS/网关设置中启用API连接 - 设置套接字端口(默认值:纸面交易7497,实时交易7496) - 如果需要,配置受信任的IP地址
- 配置服务器:
cp config/config.yaml.example config/config.yaml
# Edit config/config.yaml with your settings🚀 用法
选项A:MCP服务器
python run.py服务器将:
- 连接到TWS/IB网关
- 在配置的端口上启动MCP服务器
- 开始心跳监测
- 记录所有活动
选项B:一键式命令行界面
轻量级CLI,按命令连接并退出——适用于shell脚本或即席查询。
python cli.py positions
python cli.py summary
python cli.py quote AAPL
python cli.py history AAPL --duration "1 M" --bar "1 day"
python cli.py buy AAPL 10 --type MKT --confirm
python cli.py orders跑 python cli.py --help 查看完整的命令列表。
报价数据说明:如果您没有实时市场数据订阅, quote 通过历史数据(没有实时字段)回退到最近的每日柱状图。选项C:自动TWS启动(仅限macOS)
start_tws.py 通过以下方式启动TWS 国际银行业务中心,检测 第二因素身份验证对话框,生成TOTP代码 pyotp,并通过AppleScript键入 (osascript)--完全自动登录,无需触摸键盘。
python start_tws.py # launch and auto-fill 2FA
python start_tws.py --wait # also block until API port 7496 is listening要求(macOS):
| 组件 | 目的 | 链接 |
|---|---|---|
| 国际银行业务中心 | 自动启动TWS和登录输入 | https://github.com/IbcAlpha/IBC |
| pyotp | RFC 6238 TOTP代码生成 | https://github.com/pyauth/pyotp |
osascript /AppleScript | 随macOS一起提供;驱动2FA对话框 | 内置 |
设置:
- 按照macOS说明安装IBC(通常在
~/ibc/). - 在
~/ibc/config.ini,设置:
- TradingMode=live (或 paper) - SecondFactorDevice=Mobile Authenticator - 您的IBKR证书
- 将您的IBKR TOTP密钥(身份验证器二维码中的Base32字符串)保存到
~/.ibkr-totp-secret 或 将其导出为 TOTP_SECRET.
- Grant终端(或您的Python启动器) 无障碍 许可在
*系统设置→ 隐私和安全→ 无障碍* --AppleScript需要 以与TWS窗口交互。
平台说明:start_tws.py依赖于AppleScript/osascript并且是 仅限macOS. Linux/Windows用户应直接使用IBC或调整GUI自动化层 (例如。xdotool在Linux上,pywinauto在Windows上)。
可用的MCP工具
帐户工具
get_positions()-获取当前账户头寸get_account_summary()-获取账户余额和指标get_portfolio()-获取详细的投资组合信息
市场数据工具
get_historical_data(symbol, duration, bar_size)-获取历史价格数据get_market_data(symbol)-获取实时市场数据get_quote_from_history(symbol)-最后一个每日酒吧作为报价(无需订阅)get_contract_details(symbol)-获取合同规范get_option_chain-获取选项数据
交易工具
place_order(symbol, action, quantity, order_type, ...)-下达买入/卖出订单get_orders(status)-获取订单历史和状态cancel_order(order_id)-取消待处理订单get_trades()-获取执行历史记录
AI交互示例
AI: "What are my current positions?"
→ Calls get_positions() tool
AI: "Buy 100 shares of AAPL at market price"
→ Calls place_order(symbol="AAPL", action="BUY", quantity=100, order_type="MKT")
AI: "Show me AAPL's price history for the last week"
→ Calls get_historical_data(symbol="AAPL", duration="1 W", bar_size="1 day")🤖 克劳德代码技能
伴侣技能生活在 skills/ibkr-trading/SKILL.md。它让 克劳德代码 从以下位置分派上述CLI命令 自然语言提示(例如。 *“显示我的位置”*, *“引用AAPL”*).
要安装,请将其符号链接到您的Claude Code技能目录中:
ln -s "$(pwd)/skills/ibkr-trading" ~/.claude/skills/ibkr-trading🔗 相关链接和积分
- 互动经纪人TWS API -官方Python API(
ibapi) - IBC——盈透证券控制员 --TWS自动发射器(由
start_tws.py) - pyotp --TOTP/HOTP库(由使用
start_tws.py) - 模型上下文协议规范
- FastMCP框架
- 克劳德代码 --使用捆绑技能的AI结对编程CLI
