内容
# moomoo-mcp
[](https://github.com/iwanbk/moomoo-mcp/actions/workflows/ci.yml)
[](https://github.com/iwanbk/moomoo-mcp/releases/latest)
MCP服务端,为Moomoo交易平台提供只读交易工具(系统健康、市场数据、账户信息),通过MCP标准输入输出传输,适用于与Claude Desktop或任何MCP客户端配合使用。
## 可用工具
| 已完成 | 分类 | 工具 | 描述 |
|:----:|-------------|--------------------------|----------------------------------------------------------------------|
| ✅ | 系统 | `check_health` | 检查与OpenD网关的连接性。 |
| ✅ | 市场数据 | `get_stock_quote` | 一个或多个证券的实时基本报价。 |
| ✅ | 市场数据 | `get_market_snapshot` | 一个或多个证券的当前价格快照。 |
| ✅ | 市场数据 | `get_historical_klines` | 历史K线(蜡烛图)数据。 |
| ✅ | 市场数据 | `get_order_book` | 证券的当前买卖订单簿。 |
| ✅ | 账户 | `get_accounts` | 此OpenD会话可见的交易账户列表。 |
| ✅ | 账户 | `get_assets` | 账户的资金/资产信息(现金、购买力、市值)。 |
| ✅ | 账户 | `get_positions` | 账户的开放仓位。 |
| ✅ | 账户 | `get_account_summary` | 账户的综合资产+仓位摘要。 |
| ✅ | 账户 | `get_max_tradable` | 账户下证券的最大交易数量。 |
| ✅ | 账户 | `get_margin_ratio` | 账户下一个或多个证券的保证金比例信息。 |
| ✅ | 账户 | `get_cash_flow` | 账户在给定日期的交易现金流摘要。 |
| ✅ | 观察列表 | `get_user_security_group`| 用户的观察列表组。 |
| ✅ | 观察列表 | `get_user_security` | 观察列表组内的证券列表。 |
| ✅ | 订单历史 | `get_orders` | 账户今日的订单。 |
| ✅ | 订单历史 | `get_deals` | 账户今日已成交的订单。 |
| ✅ | 订单历史 | `get_history_orders` | 账户的历史订单。 |
| ✅ | 订单历史 | `get_history_deals` | 账户的历史成交订单。 |
| ⬜ | 交易 | `unlock_trade` | 解锁一个真实账户进行交易(使用`MOOMOO_TRADE_PASSWORD`/`_MD5`和`MOOMOO_SECURITY_FIRM`)。 |
| ⬜ | 交易 | `place_order` / `modify_order` / `cancel_order` | 提交、修改或取消订单。 |
> 当前服务端仅为只读模式 — 无法下单。 交易工具计划在后续阶段实现。
## 前置条件
1. 从 https://www.moomoo.com/download/OpenAPI 下载并运行 **OpenD**。
2. 使用您的Moomoo/Futu账户登录OpenD。
3. OpenD默认监听地址为 `127.0.0.1:11111`。
## 配置
| 环境变量 | 默认值 | 描述 |
|----------------------------|---------------|----------------------------------------------------------|
| `MOOMOO_OPEND_HOST` | `127.0.0.1` | OpenD主机 |
| `MOOMOO_OPEND_PORT` | `11111` | OpenD端口 |
| `MOOMOO_TRADE_PASSWORD` | – | 真实账户访问的安全门(见下文)。其值暂未发送到OpenD — 交易功能暂未实现。 |
| `MOOMOO_TRADE_PASSWORD_MD5`| – | `MOOMOO_TRADE_PASSWORD`的MD5形式;效果相同。 |
| `MOOMOO_SECURITY_FIRM` | – | 暂未使用;为未来的`unlock_trade`工具预留。 |
默认情况下(未设置交易密码),服务端仅为**模拟模式**:账户工具(`get_assets`、`get_positions`等)只能查询模拟账户,带有`trd_env=REAL`的请求将被拒绝。设置`MOOMOO_TRADE_PASSWORD`(或 `_MD5`)可解除此限制,使只读账户工具也能查询真实账户 — 但不解锁交易功能本身。一旦交易工具实现,`MOOMOO_TRADE_PASSWORD`/`_MD5`和`MOOMOO_SECURITY_FIRM`也将用于授权真实账户的`unlock_trade`。
## 安装
### 下载预编译二进制文件
macOS、Linux和Windows(amd64/arm64)的预编译二进制文件已发布在
[发布页面](https://github.com/iwanbk/moomoo-mcp/releases/latest)。下载适用于您平台的存档,解压后将`moomoo-mcp`(或`moomoo-mcp.exe`)放置在您的`PATH`中。
### 从源码编译
```bash
go build -o moomoo-mcp ./cmd/moomoo-mcp
```
## 使用
```bash
# 运行(仅模拟模式,无交易密码)
./moomoo-mcp
# 运行(允许查询真实账户)
export MOOMOO_TRADE_PASSWORD="your-password"
export MOOMOO_SECURITY_FIRM="FUTUSG"
./moomoo-mcp
```
### Claude Desktop
Claude Desktop官方支持macOS和Windows。配置文件位置:
| 操作系统 | 路径 |
|---------|--------------------------------------------------------------|
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
在`mcpServers`下添加`moomoo`条目:
```json
{
"mcpServers": {
"moomoo": {
"command": "/path/to/moomoo-mcp",
"env": {
"MOOMOO_OPEND_HOST": "127.0.0.1",
"MOOMOO_OPEND_PORT": "11111"
}
}
}
}
```
保存后重启Claude Desktop。
### Claude Code CLI
使用`claude mcp add`注册服务端。`-s`标志控制配置文件存储位置:
```bash
# 用户级(适用于所有项目,存储在 ~/.claude.json)
claude mcp add -s user moomoo /path/to/moomoo-mcp
# 项目级(存储在项目目录的 .mcp.json 中,可通过 git 共享)
claude mcp add -s project moomoo /path/to/moomoo-mcp
```
使用环境变量(例如允许查询真实账户):
```bash
claude mcp add -s user moomoo \
-e MOOMOO_TRADE_PASSWORD=your-password \
-e MOOMOO_SECURITY_FIRM=FUTUSG \
-- /path/to/moomoo-mcp
```
验证服务端已注册且健康:
```bash
claude mcp list
claude mcp get moomoo
```
## 许可证
Apache-2.0 — 见 [LICENSE](LICENSE)。