IBKR MCP服务器

一个为AI模型提供安全访问Interactive Brokers交易数据和功能的MCP服务器。

  • by happy-shine
  • Python
  • 本地部署
  • 18 星标
  • 更新于
在 GitHub 查看 happy-shine/ibkr_mcp

使用说明

IBKR MCP服务器

模型上下文协议(MCP)服务器,通过TWS API为人工智能模型提供对交互式经纪人(IBKR)交易数据和功能的安全访问。

⚠️⚠️⚠️ 免责声明⚠️⚠️⚠️

此软件用于教育和开发目的。使用风险自负。作者不对因使用本软件而产生的任何经济损失负责。在使用真钱之前,一定要先用纸交易进行测试。

🚀 特性

  • 账户管理:获取头寸、投资组合详细信息和账户摘要
  • 市场数据:检索历史价格数据和实时市场信息
  • 交易操作:下订单、管理职位和跟踪执行情况
  • MCP集成:与支持MCP协议的AI模型无缝集成
  • 一键式命令行界面:按命令连接执行断开连接以快速编写脚本
  • 自动TWS发射 (macOS):一个命令启动TWS并自动填充TOTP 2FA
  • 克劳德代码技能:通过捆绑的自然语言交易 skills/ibkr-trading
  • 安全特性:只读模式、可配置的交易限制和全面的验证
  • 高可用性:自动重新连接、心跳监测和优雅的错误处理

📋 先决条件

  • Python 3.10+
  • 盈透证券TWS或IB网关
  • 活跃的IBKR账户(建议进行纸质交易测试)

🛠️ 安装

  1. 克隆仓库:

    git clone https://github.com/happy-shine/ibkr_mcp.git
    cd ibkr_mcp
    
  2. 安装依赖项:

    pip install -r requirements.txt
    
  3. 配置TWS/IB网关:

    • 在TWS/网关设置中启用API连接
    • 设置套接字端口(默认值:纸面交易7497,实时交易7496)
    • 如果需要,配置受信任的IP地址
  4. 配置服务器:

    cp config/config.yaml.example config/config.yaml
    # Edit config/config.yaml with your settings
    

🚀 用法

选项A:MCP服务器

python run.py

服务器将:

  1. 连接到TWS/IB网关
  2. 在配置的端口上启动MCP服务器
  3. 开始心跳监测
  4. 记录所有活动

选项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对话框 内置

设置:

  1. 按照macOS说明安装IBC(通常在 ~/ibc/).
  2. 在 ~/ibc/config.ini,设置:
    • TradingMode=live (或 paper)
    • SecondFactorDevice=Mobile Authenticator
    • 您的IBKR证书
  3. 将您的IBKR TOTP密钥(身份验证器二维码中的Base32字符串)保存到 ~/.ibkr-totp-secret 或 将其导出为 TOTP_SECRET.
  4. 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

🔗 相关链接和积分