使用说明
盈透证券Windows版MCP服务器
一种模型上下文协议(MCP)服务器,提供通过TWS API或IB网关与交互式代理(IBKR)交互的工具。
特性
- 账户管理:获取账户摘要、头寸和投资组合信息
- 市场数据:股票的实时和历史市场数据
- 订单管理:下达市价单和限价单、取消订单、查看未结订单
- 交易执行:查看最近的交易执行情况
- 期权交易:获取股票期权链
先决条件
-
盈透证券账户:您需要一个有效的IBKR帐户
-
TWS或IB网关:安装:
- 交易员工作站(TWS)-完整的交易平台
- IB网关-轻量级API网关
下载地址:https://www.interactivebrokers.com/en/trading/tws.php
-
Python 3.8+:运行MCP服务器所需
-
启用API访问:在TWS/网关设置中:
- File → 全局配置→ API → 设置
- 启用“启用ActiveX和Socket客户端”
- 请注意Socket端口(7497用于纸质交易,7496用于实时交易)
- 将127.0.0.1添加到受信任的IP
安装
步骤1:安装Python依赖项
打开命令提示符或PowerShell并运行:
pip install -r requirements.txt
或者单独安装软件包:
pip install mcp ib_insync pydantic
步骤2:配置TWS/IB网关
- 启动TWS或IB网关
- 使用您的凭据登录
- 首选 File → 全局配置→ API → 设置
- 选中“启用ActiveX和Socket客户端”
- 如果要下订单,请取消选中“只读API”
- 注意套接字端口:
- 7497 纸张交易
- 7496 用于实时交易
- 添加 127.0.0.1 到受信任的IP
- 点击 好的 并重新启动TWS/网关
用法
启动MCP服务器
python server.py
服务器将运行并等待MCP客户端通过stdio连接。
与Claude Desktop集成
将此配置添加到您的Claude Desktop配置文件中:
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"ibkr": {
"command": "python",
"args": ["C:\\path\\to\\ibkr-mcp-server\\server.py"]
}
}
}
替换 C:\\path\\to\\ibkr-mcp-server\\ 使用您保存此项目的实际路径。
可用工具
1. connect_ibkr
连接到盈透证券TWS或网关。
{
"host": "127.0.0.1",
"port": 7497,
"client_id": 1
}
port:7497(纸面交易)或7496(实时交易)- 在使用其他工具之前必须调用
2. disconnect_ibkr
断开IBKR的连接。
3. get_count_summary
获取包括现金、权益和损益在内的账户摘要。
退货:
{
"TotalCashValue": "50000.00 USD",
"NetLiquidation": "52000.00 USD",
"BuyingPower": "200000.00 USD",
"RealizedPnL": "500.00 USD",
"UnrealizedPnL": "2000.00 USD"
}
4. get_positions
获取所有当前位置。
返回包含符号、数量、平均成本、市场价值和损益的头寸数组。
5. 获取市场数据
获取某个交易品种的实时市场数据。
{
"symbol": "AAPL",
"exchange": "SMART",
"currency": "USD"
}
返回买入价、卖出价、最后价、交易量、高价、低价。
6. 获取历史数据
获取历史市场数据。
{
"symbol": "AAPL",
"duration": "1 D",
"bar_size": "1 hour",
"what_to_show": "TRADES"
}
持续时间选项:“1D”、“1W”、“1M”、“1Y” 酒吧大小选项:“1分钟”、“5分钟”、”1小时”、“1天”
7. 下单
下达交易订单。
市场秩序:
{
"symbol": "AAPL",
"action": "BUY",
"quantity": 100,
"order_type": "MKT"
}
限价订单:
{
"symbol": "AAPL",
"action": "SELL",
"quantity": 100,
"order_type": "LMT",
"limit_price": 150.50
}
8. 取消订单
取消现有订单。
{
"order_id": 123
}
9. get_open_orders
获取所有未结订单。
10. getexecutions
获取最近的交易执行情况。
{
"days": 1
}
11. get_option_chain
获取符号的选项链。
{
"symbol": "AAPL",
"exchange": "SMART"
}
与克劳德的对话示例
配置后,您可以询问Claude:
- “连接到我的IBKR纸质交易账户”
- “我的活期账户余额是多少?”
- “显示我的所有位置”
- “获取AAPL的当前价格”
- “显示TSLA上周的历史数据”
- “下市场订单购买10股微软股票”
- “我的公开订单是什么?”
- “获取SPY的期权链”
安全说明
⚠️ 重要安全注意事项:
- 纸品交易优先:在使用真实账户之前,始终使用纸质交易(端口7497)进行测试
- 订单确认:服务器允许下订单-谨慎使用
- API访问:只有在活动使用API时才启用该访问
- 防火墙:确保防火墙允许连接到TWS/网关
- 凭证:切勿共享您的IBKR证书或API密钥
故障排除
连接失败
- 确保TWS或IB网关正在运行
- 验证API设置是否已启用
- 检查端口号(7497表示纸质,7496表示实时)
- 确认127.0.0.1位于受信任的IP地址中
无市场数据
- 您的IBKR帐户需要订阅市场数据
- 实时数据需要主动订阅
- 延迟/快照数据可能无需订阅即可使用
下单失败
- 确保在TWS设置中取消选中“只读API”
- 确认你有足够的购买力
- 检查市场是否对证券开放
未找到模块
pip install --upgrade mcp ib_insync pydantic
发展
运行测试
python -m pytest tests/
日志记录
日志被写入控制台。在中调整日志记录级别 server.py:
logging.basicConfig(level=logging.DEBUG)
许可证
MIT许可证-有关详细信息,请参阅许可证文件
免责声明
此软件用于教育目的。交易涉及风险。请自行决定使用。作者不对任何经济损失负责。
资源
支持
关于以下问题:
- API IBKR公司:联系盈透证券支持
- MCP 服务器:在GitHub上打开一个问题
- 取消:查看ib_insync文档
更新日志
版本1.0.0
- 初始版本
- 支持基本账户操作
- 市场数据检索
- 订单管理
- 历史数据查询
- 选项链检索