项目简介
'IB_MCP' 是一个将盈透证券(Interactive Brokers, IBKR)Web API 封装为Model Context Protocol (MCP) 服务器的项目。它利用 FastAPI 和 FastMCP 库,将 IBKR 的各项金融服务功能(如订单管理、市场数据、账户查询、投资组合管理等)以标准化的工具形式提供给LLM(大型语言模型)客户端。该项目旨在使用现代、灵活的Web API,并支持容器化部署,为LLM应用提供便捷、可扩展的金融上下文服务。
主要功能点
- 盈透证券Web API封装: 将 IBKR Web API 的众多功能(包括警报、合约信息、交易订单、市场数据、投资组合、会话管理等)转化为MCP可调用的工具。
- MCP服务器实现: 采用 FastMCP 框架构建,符合 Model Context Protocol 标准,能够与支持MCP协议的LLM客户端进行通信。
- 容器化部署: 提供 Docker Compose 配置,方便用户快速部署 IBKR 客户端门户网关和 MCP 服务器。
- 自动化会话管理: 集成了会话保持机制(通过 '/tickle' 端点),确保与 IBKR 网关的连接持续有效。
- 灵活的模块选择: 支持通过环境变量配置包含或排除特定的API模块,实现定制化的功能暴露。
安装步骤
- 克隆仓库:
git clone https://github.com/rcontesti/IB_MCP.git cd IB_MCP - 配置环境变量: 复制 '.env.example' 文件为 '.env',并根据您的实际需求编辑,例如设置 MCP 服务器的端口、IBKR 网关的URL等。
cp .env.example .env # 根据需要编辑 .env 文件,例如确保 MCP_SERVER_HOST=0.0.0.0, MCP_SERVER_PORT=5002, MCP_SERVER_PATH=/mcp - 构建并启动Docker容器:
docker compose up --build -d - 盈透证券账户认证: 在容器启动后,访问 'https://{GATEWAY_BASE_URL}:{GATEWAY_PORT}' (例如 'https://localhost:5055/'),使用您的 IBKR 账户凭证登录,完成认证。您可以在API网关容器的日志中找到登录URL。
服务器配置
MCP客户端(如VS Code Copilot Chat)需要配置连接到本MCP服务器。根据本项目部署方式,这是一个通过HTTP协议提供服务的远程MCP服务器。您需要将以下JSON配置添加到您的MCP客户端配置文件中(例如,VS Code 的 'settings.json' 文件中的 'mcp.servers' 部分,或者项目根目录下的 '.vscode/mcp.json' 文件):
{ "servers": { "ib-mcp-server": { "type": "http", "url": "http://localhost:5002/mcp/" } }, "inputs": [] }
- 'ib-mcp-server': 这是为您的MCP服务器指定的名称,您可以自定义。
- 'type': 指示MCP服务器的连接类型。对于本HTTP服务,应设置为 '"http"'。
- 'url': MCP服务器的完整网络地址,客户端将通过此URL与服务器通信。请确保 'http://localhost:5002/mcp/' 与您在 '.env' 文件中配置的 'MCP_SERVER_HOST', 'MCP_SERVER_PORT', 'MCP_SERVER_PATH' 变量相匹配。
- 'inputs': (可选)此字段用于定义客户端向MCP服务器提供额外输入,本项目通常无需配置。
基本使用方法
一旦MCP服务器成功运行并配置到您的MCP客户端(例如VS Code Copilot Chat),LLM客户端将能够通过此服务器访问盈透证券API提供的各种功能。您可以直接在LLM客户端中发出自然语言指令,例如:
- "查询我的盈透证券账户余额。"
- "获取股票 'AAPL' 的实时市场价格。"
- "为合同ID 265598 下达一个限价买入订单,价格175,数量100股。"
- "列出我的所有未完成订单。" LLM客户端将通过MCP协议调用服务器上对应的工具,服务器再转发请求到盈透证券Web API并返回结果。
信息
分类
商业系统