IBKR TWS MCP服务

一个通过ibapi库为LLMs提供Interactive Brokers Trader Workstation (TWS)功能的MCP服务器。

  • by AxelFooley
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AxelFooley/ibkr-tws-mcp

使用说明

IBKR TWS MCP服务器

MCP(模型上下文协议)服务器,通过ibapi库为LLM提供对盈透证券交易员工作站(TWS)功能的访问。

特性

  • 连接管理:连接/断开TWS,检查连接状态
  • 账户数据:获取账户摘要、托管账户、头寸
  • 订单管理:下单、取消和监控订单
  • 市场数据:实时报价和历史OHLCV数据
  • 合同查询:搜索并获取任何可交易工具的详细信息
  • 执行报告:查看已完成的订单和佣金
  • 损益跟踪:账户和头寸层面的损益
  • 市场扫描器:访问TWS市场扫描仪功能
  • 新闻:历史新闻标题和文章内容

先决条件

  • Python 3.11+
  • 启用API运行的交互式代理TWS或IB网关
  • 配置为允许连接的TWS API设置

TWS配置

  1. 打开TWS或IB网关
  2. 首选 编辑 → 全局配置 → API → 设置
  3. 启用 启用ActiveX和Socket客户端
  4. 集 插座端口 (默认值:7496用于直播,7497用于纸质)
  5. 将您的IP添加到 受信任的IP (或仅从本地主机启用)
  6. 取消勾选 只读API 如果你想下订单

安装

使用紫外线(推荐)

# Clone the repository
git clone https://github.com/AxelFooley/ibkr-tws-mcp.git
cd ibkr-tws-mcp

# Install dependencies
uv sync --all-extras

# Run the server
uv run python -m ibkr_tws_mcp.server

使用pip

pip install ibkr-tws-mcp
ibkr-tws-mcp

使用Docker

# Build and run
docker compose up --build

# Or pull from registry
docker pull ghcr.io/axelfooley/ibkr-tws-mcp:latest
docker run -p 8080:8080 \
  -e TWS_HOST=host.docker.internal \
  -e TWS_PORT=7496 \
  ghcr.io/axelfooley/ibkr-tws-mcp:latest

配置

环境变量

变量 描述 默认值
TWS_HOST TWS/IB网关主机地址 127.0.0.1
TWS_PORT TWS API端口(7496=直播,7497=纸质) 7496
TWS_CLIENT_ID 唯一客户端ID(0-32) 0
TWS_TIMEOUT 请求超时(秒) 30
MCP_HOST MCP服务器绑定地址 0.0.0.0
MCP_HTTP_PORT MCP服务器端口 8080

命令行参数

python -m ibkr_tws_mcp.server \
  --tws-host 127.0.0.1 \
  --tws-port 7496 \
  --tws-client-id 0 \
  --timeout 30 \
  --http-host 0.0.0.0 \
  --http-port 8080

可用工具

连接

  • tws_connect -连接到TWS
  • tws_disconnect -断开与TWS的连接
  • tws_connection_status -检查连接状态
  • tws_get_server_time -获取TWS服务器时间

账户

  • tws_get_managed_accounts -列出管理帐户
  • tws_get_account_summary -获取账户余额、保证金等。

职位

  • tws_get_positions -获取所有当前职位

订单

  • tws_place_order -下新订单
  • tws_cancel_order -取消订单
  • tws_cancel_all_orders -取消所有未结订单
  • tws_get_open_orders -获取此客户的未结订单
  • tws_get_all_open_orders -获取所有未结订单

市场数据

  • tws_get_market_data -获取实时市场数据快照
  • tws_get_historical_data -获取历史OHLCV酒吧

合同

  • tws_get_contract_details -获取合同规范
  • tws_search_contracts -按符号搜索合同

执行

  • tws_get_executions -获取执行报告

损益表

  • tws_get_pnl -获取账户损益
  • tws_get_position_pnl -获取职位级别损益

扫描仪

  • tws_get_scanner_parameters -获取可用的扫描仪参数

新闻

  • tws_get_news_providers -列出新闻提供商
  • tws_get_historical_news -获取历史新闻头条
  • tws_get_news_article -获取新闻文章内容

用法示例

一旦连接到MCP服务器,LLM就可以与TWS交互:

User: Connect to TWS and show me my account summary```