- 使用说明内容(Markdown格式)
IBKR MCP Server(Rust 版)使用指南
项目简介
这是一个基于 MCP(Model Context Protocol)标准的服务器端实现,核心职责包括:向 MCP 客户端提供资源与数据访问、注册并执行工具、以及定义/渲染的 Prompt 模板等能力。当前实现使用 Rust + Axum 构建,提供 JSON-RPC 风格的 MCP 入口和多种 API 路由,能够与 IBKR TWS/Gateway 进行模拟或真实连接,支持账户信息、仓位、下单、行情等操作的工具调用。
主要功能点
- MCP 协议支持
- 处理常见 MCP 请求并返回标准化的 JSON-RPC 响应
- 提供工具清单、工具调用以及初始化/状态通知等基本能力
- IBKR 集成能力(模拟实现/可扩展)
- 登录/连接 IBKR,查询账户信息、仓位、下单、取消订单、行情数据、历史数据等
- 具备断线重连等基础容错能力
- 服务端架构
- 基于 Rust 的高性能实现,使用 Axum 构建 HTTP/WebSocket 服务
- 以共享状态方式暴露 IBKR 客户端和配置信息,方便路由处理
- 可扩展性
- 具备清晰的模块划分(mcp、ibkr、models、tools 等),后续可以逐步扩展更多 MCP 工具与资源类型
安装步骤
- 搭建环境
- 安装 Rust(以及 Cargo)
- 构建 binaries
- 在项目根目录执行构建,得到 ibkr-mcp-server 的可执行文件
- 启动服务器
- 运行生成的可执行文件,启动 MCP 服务
- 服务启动后将监听 MCP 配置中的主机和端口,接受 MCP 客户端连接
注:仓库中提供了多种语言的实现草案与示例,核心可运行的 MCP 服务实现主要集中在 ibkr-mcp-server-rust 目录下的 Rust 代码,包含服务器入口、路由、工具调用等核心逻辑。
服务器配置
MCP 客户端需要了解如何连接到 MCP 服务器,配置以 JSON 的形式描述,包含 server name、command、args 等字段,便于将来通过统一的客户端配置进行对接。以下为示例配置描述(非代码块,便于理解): { "serverName": "ibkr-mcp-server", "command": "./target/release/ibkr-mcp-server", "args": [], "description": "Rust 实现的 MCP 服务器主进程,启动时会读取环境变量配置 IBKR、MCP 和日志设置。", "environmentExamples": { "MCP__HOST": "0.0.0.0", "MCP__PORT": "8080", "IBKR__HOST": "127.0.0.1", "IBKR__PORT": "4002", "IBKR__CLIENT_ID": "1", "LOGGING__LEVEL": "INFO" } } 说明与要点
- serverName 表示 MCP 服务的逻辑名称,便于在客户端侧进行区分。
- command 指向运行 MCP 服务器的可执行文件路径(在本地构建后得到的二进制名,例如 ibkr-mcp-server),args 可以为空或带有运行参数。
- environmentExamples 给出在运行时常用的环境变量前缀和字段,用于影响 IBKR 连接、MCP 服务器监听等行为。
- 注意:MCP 客户端实际并不要求提供完整的 env 变量,只要服务器在启动时能正确读取所需配置即可;本示例仅用于帮助客户端完成对接信息的了解。
基本使用方法
- 启动运行
- 启动 MCP 服务器后,服务器将尝试连接 IBKR(若可用),并对外提供 MCP 入口接口,供 MCP 客户端进行工具调用、数据查询等操作。
- 调用工具
- MCP 客户端通过指定工具名称(如 get_account_summary、place_order 等)与参数,触发服务器端对应实现,获得统一的 JSON 形式响应。
- 运行与测试
- 服务器在启动阶段会输出状态信息,若网络正常,将能够处理来自 MCP 客户端的请求,返回执行结果或错误信息。
- 集成提示
- 若将来需要对接 Claude Desktop 等环境,可通过配置中的 serverName、command、args 提供统一的启动指令,使 Claude 等工具能通过 MCP 客户端与本服务器进行交互。
基本使用流程建议
- 先确保 IBKR TWS/Gateway 已开启 API 访问端口(默认 4002),并配置 Client ID。
- 启动 MCP 服务器二进制,监听配置的 MCP 端口。
- 使用 MCP 客户端向服务器发起请求(如 initialize、tools/list、tools/call 等等),观察服务器返回的 JSON-RPC 风格响应。
- 如需扩展,参考项目中的模块划分(mcp、tools、ibkr、models 等)继续实现更多工具与资源。
信息
分类
商业系统