Token导航 LogoToken导航TokenDH.com
Ibkr MCP Docker logo
金融服务未说明官方级别未说明来源级核验

Ibkr MCP Docker

MCP Server

一个通过Docker提供的Interactive Brokers交易桥接服务,支持实时市场数据查询、账户监控和程序化交易执行。

工具数

10

提示词数

0

GitHub Stars

0

资源数

0
金融交易市场数据Python

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

metaif

提供方

metaif

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

IBKR MCP Docker

中文文档 |英语

一个模型上下文协议(MCP)服务器,通过Docker提供盈透证券(IBKR)交易功能。

______________________________________________________________________

⚠️ 重要免责声明

本软件仅用于信息和教育目的。使用本软件即表示您承认并同意:

  • 你全权负责 用于通过此软件进行的所有交易决策和操作
  • 您使用此软件 风险自负。作者和贡献者不对任何经济损失、损害或责任负责
  • 此软件连接到您的 真实金融账户使用不当可能导致重大经济损失
  • 总是 测试与 票据交易 在与真实账户一起使用之前,请先使用模式
  • 在使用之前,您应该充分了解自动交易和盈透证券平台的风险

使用风险自负。没有任何形式的保证。

______________________________________________________________________

这个项目是做什么的?

该项目提供了 在模型上下文协议(MCP)和盈透证券交易平台之间。它允许AI助手和应用程序:

  1. 查询实时市场数据 -获取实时股票价格、历史数据和期权链
  2. 监控帐户状态 -检查余额、头寸和投资组合绩效
  3. 执行交易 -以编程方式下达市价单、限价单和止损单
  4. 与AI工作流程集成 -使用自然语言与您的经纪账户进行交互

特性

此MCP服务器提供以下功能:

账户管理

  • 查询账户现金流量和余额
  • 查看账户摘要和净清算价值

职位管理

  • 查询当前职位
  • 查看未实现和已实现损益

订单管理

  • 查询订单状态(未结订单和已完成订单)
  • 下达限价订单
  • 下达市场订单
  • 下达止损订单

市场数据

  • 获取实时股票价格 *(需要订阅市场数据)*
  • 查询历史库存数据
  • 访问选项链 *(需要订阅市场数据)*

建筑

该项目整合了两项服务:

  1. IB网关 -用途 提供盈透证券网关

主要特点:

  • FastMCP集成:使用基于装饰器的工具注册来生成干净的Python代码
  • Pydantic模型:所有响应均使用Pydantic模型进行结构化、验证数据的键入
  • 类型安全:完整的类型提示和从函数签名自动生成模式
  • HTTP/SSE传输:通过HTTP在以下位置公开MCP服务器 http://127.0.0.1:8080/mcp
  • 只读模式:可选的只读模式,用于禁用订单下达、修改和取消

这两个服务都是通过单个 .env 为了简单起见,请使用文件。

先决条件

  • Docker和Docker Compose
  • 盈透证券账户(纸盘交易或实时交易)
  • IBKR帐户凭据
  • 市场数据订阅 (实时价格数据和期权数据所需)
备注:某些功能需要主动订阅IBKR市场数据。如果没有订阅,您可能会收到某些市场的延迟数据或没有数据。

快速入门(推荐:使用预构建图像)

我们建议使用预构建的Docker镜像 更容易设置和自动更新。预构建的图像包括:

  • ✅ 经过测试和验证
  • ✅ 多平台(amd64/arm64)
  • ✅ 根据版本自动构建
  • ✅ 无需本地构建

使用预构建图像

  1. 创建 .env 示例中的文件:
cp .env.example .env
  1. 编辑 .env 使用您的IBKR凭据进行归档(请参阅 配置 下节)
  1. 启动服务:
docker-compose up -d

替代方案:从源代码构建

如果您更喜欢从源代码构建:

  1. 克隆此存储库:
git clone https://github.com/metaif/ibkr-mcp-docker.git
cd ibkr-mcp-docker
  1. 创建 .env 示例中的文件:
cp .env.example .env
  1. 编辑 .env 提交您的IBKR凭据:
# IBKR Gateway Configuration
IBKR_USERID=your_username
IBKR_PASSWORD=your_password
IBKR_TRADING_MODE=paper  # or 'live' for live trading
IBKR_GATEWAY_PORT=4002

# MCP Server Configuration
SERVER_PORT=8080  # MCP server will be available at http://127.0.0.1:8080/mcp

# Read-Only Mode (optional)
READONLY=false  # Set to 'true' to disable order operations

# Optional: VNC password for monitoring the gateway
VNC_PASSWORD=your_vnc_password
  1. 更新 docker-compose.yml 从源代码构建:

用构建配置替换图像行:

services:
  mcp-server:
    build: .
    # Remove or comment out: image: ghcr.io/metaif/ibkr-mcp-docker:latest
  1. 构建并启动服务:
docker-compose up -d --build

配置

环境变量

所有配置都是通过 .env 文件。以下是对每个参数的详细解释:

IBKR网关配置

变量描述默认值必填
IBKR_TRADING_MODE交易方式: paper 对于纸质交易, live 用于实时交易paper是的
IBKR_USERIDIBKR实时交易用户名-是(实时)
IBKR_PASSWORDIBKR实时交易密码-是(实时)
IBKR_USERID_PAPERIBKR纸质交易用户名-是(纸质)
IBKR_PASSWORD_PAPERIBKR纸质交易密码-是(纸质)
IBKR_GATEWAY_LIVE_PORTIB网关端口用于实时交易4003没有
IBKR_GATEWAY_PAPER_PORT用于票据交易的IB网关端口4004没有
VNC_PASSWORD用于监视网关UI的VNC密码-

MCP服务器配置

变量描述默认值必填
SERVER_PORTMCP服务器HTTP端口。服务器将位于 `http://127.0.0.1:
/mcp`8080没有
READONLY只读模式。设置为 true/1/yes 禁用订单操作false没有

配置示例

编辑您的 .env 文件:

# For Paper Trading
IBKR_TRADING_MODE=paper
IBKR_USERID_PAPER=your_paper_username
IBKR_PASSWORD_PAPER=your_paper_password
IBKR_GATEWAY_PAPER_PORT=4004

# For Live Trading - BE CAREFUL!
# IBKR_TRADING_MODE=live
# IBKR_USERID=your_live_username
# IBKR_PASSWORD=your_live_password
# IBKR_GATEWAY_LIVE_PORT=4003

# MCP Server
SERVER_PORT=8080

# Safety: Enable read-only mode to prevent accidental trades
READONLY=true

# Optional: VNC for monitoring
VNC_PASSWORD=12345678

用法

启动服务

启动IB网关和MCP服务器:

docker-compose up -d

这将:

  • 启动IB网关容器并连接到IBKR
  • 启动MCP服务器容器
  • 在以下位置公开MCP服务器 http://127.0.0.1:8080/mcp

使用MCP服务器

MCP服务器可通过HTTP/SSE访问:

# Access the MCP endpoint
curl http://localhost:8080/mcp

该端点与基于HTTP的MCP客户端兼容,可以集成到您的应用程序中。

监控

您可以在端口5900上使用VNC监视IB网关:

# Using a VNC client, connect to:
localhost:5900

查看日志:

# All services
docker-compose logs -f

# Just the MCP server
docker-compose logs -f mcp-server

# Just the IB Gateway
docker-compose logs -f ib-gateway

可用的MCP API工具

MCP服务器公开了以下工具。每个工具都使用Pydantic模型返回键入的、经过验证的响应。

帐户和投资组合API

这些API不需要市场数据订阅:

  1. get_account_summaryAccountSummary

- 获取账户余额和现金流信息 - 退货: net_liquidation, cash_balance, total_cash_value, buying_power, gross_position_value - 无需订阅市场数据

  1. get_positionsList[Position]

- 获取所有当前职位 - 每个职位包括: symbol, quantity, avg_cost, market_price, unrealized_pnl, realized_pnl - 无需订阅市场数据

  1. get_ordersList[OrderInfo]

- 获取所有订单(已打开和已完成) - 包括: order_id, symbol, action, order_type, status, filled, avg_fill_price - 无需订阅市场数据

市场数据API

这些API需要订阅市场数据:

  1. get_stock_priceStockPrice

- 获取实时股票价格 - 参数: symbol (必填), exchange (可选,默认:“SMART”) - 退货: bid, ask, last, close, volume, timestamp - ⚠️ 需要订阅市场数据 - 备注:如果没有订阅,可能会返回延迟的数据或在某些市场失败

  1. get_historical_dataList[HistoricalBar]

- 获取历史库存数据 - 参数: symbol (必填), duration (默认值:“1D”), bar_size (默认值:“1小时”), exchange (可选) - 返回:每个条的OHLCV数据(date, open, high, low, close, volume) - 根据所请求的数据,可能需要订阅市场数据

  1. get_option_chainList[OptionChain]

- 获取股票的期权链 - 参数: symbol (必填), exchange (可选) - 退货:可用 strikes, expirations, multipliers - ⚠️ 期权需要市场数据订阅

交易API

这些API不需要订阅市场数据,但可以修改您的帐户:

  1. place_limit_orderOrderResult

- 下达限价订单 - 参数: symbol, action (买入/卖出), quantity, limit_price, exchange (可选) - ⚠️ 启用READONLY模式时禁用 - ⚠️ 小心:这是真正的订单!

  1. place_market_orderOrderResult

- 下达市价订单 - 参数: symbol, action (买入/卖出), quantity, exchange (可选) - ⚠️ 启用READONLY模式时禁用 - ⚠️ 小心:这是真正的订单!

  1. place_stop_orderOrderResult

- 下达止损单 - 参数: symbol, action (买入/卖出), quantity, stop_price, exchange (可选) - ⚠️ 启用READONLY模式时禁用 - ⚠️ 小心:这是真正的订单!

  1. cancel_orderCancelResult

- 取消现有订单 - 参数: order_id (必填) - ⚠️ 启用READONLY模式时禁用

所有工具使用 Pydantic模型 用于类型安全、经过验证的响应,具有清晰的字段描述。

只读模式

启用只读模式以防止下单、修改和取消:

READONLY=true

启用时:

  • ✅ 所有查询操作(头寸、订单、价格等)正常工作
  • ❌ 下单工具(place_limit_order, place_market_order, place_stop_order, cancel_order)将返回拒绝状态
  • 👍 可用于无交易风险的监控和分析

停止服务

docker-compose down

要同时删除卷,请执行以下操作:

docker-compose down -v

配置参考

完整的环境变量参考

请参阅 配置 以上部分为详细的参数说明。

变量类型默认值描述
IBKR_TRADING_MODE字符串paperpaperlive
IBKR_USERIDstring-实时交易用户名
IBKR_PASSWORDstring-实时交易密码
IBKR_USERID_PAPERstring-纸质交易用户名
IBKR_PASSWORD_PAPERstring-纸质交易密码
IBKR_GATEWAY_LIVE_PORT整数4003实时交易端口
IBKR_GATEWAY_PAPER_PORT整数4004纸张贸易港
SERVER_PORT整数8080MCP服务器端口
READONLY布尔值false启用只读模式
VNC_PASSWORDstring-VNC密码

故障排除

连接问题

如果MCP服务器无法连接到IB网关:

  1. 检查两个容器是否都在运行:
   docker-compose ps
  1. 验证IB网关是否接受连接:
   docker-compose logs ib-gateway
  1. 确保您的IBKR凭据在 .env 文件

身份验证问题

如果您的IBKR帐户启用了2FA:

  1. 网关将等待2FA完成
  2. 监控VNC连接以完成2FA
  3. TWOFA_TIMEOUT_ACTION=restart 如果2FA超时,设置将重新启动网关

纸上交易vs现场交易

  • 票据交易 (IBKR_TRADING_MODE=paper):使用端口4004,连接到IBKR纸币交易

- ✅ 测试安全 - 不涉及真钱

  • 实时交易 (IBKR_TRADING_MODE=live):使用端口4003,连接到实时IBKR帐户

- ⚠️ 危险:真钱有风险! - 所有订单都会影响您的真实账户

⚠️ 警告:切换到实时交易模式时要格外小心!始终先在纸上交易中进行彻底测试。

市场数据订阅

某些API需要从盈透证券订阅市场数据:

所需订阅

  • 实时股票报价:需要订阅相关交易所(纽约证券交易所、纳斯达克等)
  • 选项数据:需要OPRA(期权价格报告机构)订阅
  • 延迟的数据:根据市场情况,可能免费提供,延迟15-20分钟

如何检查订阅

  1. 登录您的IBKR帐户https://www.interactivebrokers.com
  2. 首选 账户管理设置市场数据订阅
  3. 查看您的活动订阅并添加任何需要的订阅

无订阅

如果没有订阅,可能会出现以下情况:

  • get_stock_price:对于某些市场,可能会返回延迟数据(延迟15-20分钟)或错误
  • get_option_chain:可能会失败或不返回任何数据
  • get_historical_data:可能适用于某些数据范围,但实时条形图将失败

许可证

麻省理工学院

参考文献

目录标签

目录标签

金融交易市场数据Python本地部署自动化交易账户管理Docker服务

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP