IBKR TWS MCP服务器
MCP(模型上下文协议)服务器,通过ibapi库为LLM提供对盈透证券交易员工作站(TWS)功能的访问。
特性
- 连接管理:连接/断开TWS,检查连接状态
- 账户数据:获取账户摘要、托管账户、头寸
- 订单管理:下单、取消和监控订单
- 市场数据:实时报价和历史OHLCV数据
- 合同查询:搜索并获取任何可交易工具的详细信息
- 执行报告:查看已完成的订单和佣金
- 损益跟踪:账户和头寸层面的损益
- 市场扫描器:访问TWS市场扫描仪功能
- 新闻:历史新闻标题和文章内容
先决条件
- Python 3.11+
- 启用API运行的交互式代理TWS或IB网关
- 配置为允许连接的TWS API设置
TWS配置
- 打开TWS或IB网关
- 首选 编辑 → 全局配置 → API → 设置
- 启用 启用ActiveX和Socket客户端
- 集 插座端口 (默认值:7496用于直播,7497用于纸质)
- 将您的IP添加到 受信任的IP (或仅从本地主机启用)
- 取消勾选 只读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-连接到TWStws_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```