futu-stock

Access Futu stock market data via MCP server - real-time quotes, K-lines, options, account info for HK/US/CN markets

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "futu-stock" with this command: npx skills add shuizhengqi1/futu-stock

futu-stock Skill

基于富途 OpenAPI 的股票行情 Skill,通过 MCP 协议访问港股、美股、A 股实时行情、K 线、期权及账户信息。

MCP 源码: https://github.com/shuizhengqi1/futu-stock-mcp-server


一、整体流程

┌─────────────────────────────────────────────────────────────────────────┐
│  1. 环境检测                                                              │
│     ├─ 检测 python3、futu-mcp-server、mcp 包、OpenD 状态                    │
│     └─ 输出检测结果                                                        │
├─────────────────────────────────────────────────────────────────────────┤
│  2. 依赖处理                                                              │
│     ├─ 若缺少 futu-mcp-server → 执行 pipx install futu-stock-mcp-server   │
│     ├─ 若缺少 mcp 包 → 执行 pip install mcp                                │
│     └─ 若 OpenD 已安装但未启动 → 调用时尝试启动(需配置 OPEND_PATH)          │
├─────────────────────────────────────────────────────────────────────────┤
│  3. 查询逻辑                                                              │
│     ├─ 有明确股票代码(如 HK.00700、US.AAPL)→ 直接调用 get_stock_quote /    │
│     │   get_market_snapshot / get_history_kline 等                         │
│     └─ 无股票代码(如「港股 10–50 元的股票」)→ 使用 get_stock_filter 筛选     │
└─────────────────────────────────────────────────────────────────────────┘

二、环境检测与依赖处理

2.1 执行环境检测

cd {baseDir}
python3 executor.py --check-env

输出示例:

  • python3: OK / 缺失
  • futu-mcp-server: OK / 缺失
  • mcp 包: OK / 缺失
  • OpenD (FUTU_HOST:FUTU_PORT): 监听中 / 未监听

2.2 依赖缺失时的安装

依赖检测方式安装命令
futu-mcp-serverwhich futu-mcp-serverpipx install futu-stock-mcp-serverpip install futu-stock-mcp-server
mcp 包python3 -c "import mcp"pip install mcp
Futu OpenDnetstat -an | grep 11111lsof -i :11111见下方 OpenD 安装

2.3 OpenD 安装与启动

下载: https://openapi.futunn.com/futu-api-doc/opend/opend-cmd.html

配置 FutuOpenD.xml

  • login_account: 富途账号
  • login_pwd: 登录密码
  • api_port: 默认 11111
  • ip: 默认 127.0.0.1

启动

# Linux/macOS
nohup ./FutuOpenD > opend.log 2>&1 &

# Windows
FutuOpenD.exe

2.4 调用时自动启动 OpenD

若已安装 OpenD 但未启动,可设置 OPEND_PATH 环境变量,executor 在检测到端口未监听时会尝试启动:

export OPEND_PATH=/path/to/opend/directory  # 含 FutuOpenD 可执行文件的目录

三、查询逻辑(核心规则)

3.1 有明确股票代码

用户给出具体代码(如 HK.0070000700腾讯 且能映射到代码)时,直接按代码查询:

需求类型推荐工具示例
实时报价get_stock_quoteget_market_snapshot{"tool": "get_market_snapshot", "arguments": {"symbols": ["HK.00700"]}}
历史 K 线get_history_kline{"tool": "get_history_kline", "arguments": {"symbol": "HK.00700", "ktype": "K_DAY", "start": "2026-01-01", "end": "2026-02-25"}}
期权链get_option_chain{"tool": "get_option_chain", "arguments": {"symbol": "HK.00700", "start": "2026-04-01", "end": "2026-06-30"}}
需订阅的数据subscribe 再查见下方「需订阅的工具」

股票代码格式: {市场}.{代码}

  • 港股: HK.00700
  • 美股: US.AAPL
  • 沪市: SH.600519
  • 深市: SZ.000001

3.2 无股票代码(条件筛选)

用户只给条件(如「港股 10–50 元的股票」「纳斯达克涨幅前 20」)时,使用 get_stock_filter

{
  "tool": "get_stock_filter",
  "arguments": {
    "market": "HK.Motherboard",
    "base_filters": [{
      "field_name": 5,
      "filter_min": 10.0,
      "filter_max": 50.0,
      "sort_dir": 1
    }],
    "page": 1,
    "page_size": 50
  }
}

常用 market 值:

  • HK.Motherboard 港股主板
  • HK.GEM 港股创业板
  • US.NASDAQ 纳斯达克
  • US.NYSE 纽交所
  • SH.3000000 沪市主板
  • SZ.3000004 深市创业板

base_filters 常用 field_name(参考富途 StockField):

  • 5: 当前价
  • 6: 涨跌幅
  • 7: 成交量
  • 8: 成交额
  • 1: 排序

四、可用工具

行情

  • get_stock_quote: 报价
  • get_market_snapshot: 快照(含买卖盘)
  • get_cur_kline: 当前 K 线(需先 subscribe)
  • get_history_kline: 历史 K 线
  • get_rt_data: 实时数据(需 subscribe RT_DATA)
  • get_ticker: 逐笔(需 subscribe TICKER)
  • get_order_book: 买卖盘(需 subscribe ORDER_BOOK)
  • get_broker_queue: 经纪队列(需 subscribe BROKER)

订阅

  • subscribe: 订阅 QUOTE / ORDER_BOOK / TICKER / RT_DATA / BROKER / K_1M / K_DAY 等
  • unsubscribe: 取消订阅

期权

  • get_option_chain: 期权链
  • get_option_expiration_date: 到期日
  • get_option_condor: 鹰式策略
  • get_option_butterfly: 蝶式策略

账户

  • get_account_list: 账户列表
  • get_funds: 资金
  • get_positions: 持仓
  • get_max_power: 最大交易力
  • get_margin_ratio: 保证金比例

市场

  • get_market_state: 市场状态
  • get_security_info: 证券信息
  • get_security_list: 证券列表
  • get_stock_filter: 条件筛选(无代码时使用)

五、调用方式

执行工具

cd {baseDir}
python3 executor.py --call '{"tool": "get_market_snapshot", "arguments": {"symbols": ["HK.00700"]}}'

查看工具参数

cd {baseDir}
python3 executor.py --describe get_stock_filter

列出所有工具

cd {baseDir}
python3 executor.py --list

六、常见问题

Q1: futu-mcp-server 找不到

pipx install futu-stock-mcp-server
# 或
pip install futu-stock-mcp-server
which futu-mcp-server

Q2: 连接 OpenD 失败 / 端口未监听

# 检查端口
lsof -i :11111
# 或
netstat -an | grep 11111

# 未监听则启动 OpenD(见 2.3)
# 或配置 OPEND_PATH 让 executor 自动启动(见 2.4)

Q3: mcp 包未安装

pip install mcp

Q4: 股票代码格式错误

必须使用 {市场}.{代码},例如:

  • 港股: HK.00700(不是 00700
  • 美股: US.AAPL(不是 AAPL

Q5: 需要订阅才能用的工具

get_cur_klineget_rt_dataget_tickerget_order_bookget_broker_queue 需先 subscribe

# 1. 先订阅
python3 executor.py --call '{"tool": "subscribe", "arguments": {"symbols": ["HK.00700"], "sub_types": ["QUOTE", "K_DAY"]}}'

# 2. 再查询
python3 executor.py --call '{"tool": "get_cur_kline", "arguments": {"symbol": "HK.00700", "ktype": "K_DAY", "count": 100}}'

Q6: get_stock_filter 限频

  • 每 30 秒最多 10 次
  • 每页最多 200 条
  • 建议不超过 250 个筛选条件

Q7: 历史 K 线限制

  • 30 天内最多 30 只股票
  • 需合理控制 startend 范围

七、配置

7.1 MCP 客户端配置(推荐)

在 MCP 客户端(如 CatPaw / Cursor)的 mcp.json 或 MCP Settings 中添加:

{
  "mcpServers": {
    "futu-stock": {
      "command": "futu-mcp-server",
      "env": {
        "FUTU_HOST": "127.0.0.1",
        "FUTU_PORT": "11111",
        "FUTU_TRADE_ENV": "REAL",
        "FUTU_TRD_MARKET": "HK",
        "FUTU_SECURITY_FIRM": "FUTUSECURITIES",
        "FUTU_ENABLE_POSITIONS": "0",
        "FUTU_ENABLE_TRADING": "0"
      }
    }
  }
}

环境变量说明

变量默认值说明
FUTU_HOST127.0.0.1OpenD 监听地址
FUTU_PORT11111OpenD 监听端口
FUTU_TRADE_ENVSIMULATE交易环境:REAL(真实)/ SIMULATE(模拟)
FUTU_TRD_MARKETHK交易市场:HK / US / CN
FUTU_SECURITY_FIRMFUTUSECURITIES证券公司:FUTUSECURITIES(富途)/ FUTUINC(美国富途)等
FUTU_ENABLE_POSITIONS1是否启用持仓查询工具:1(开启)/ 0(关闭)
FUTU_ENABLE_TRADING0是否启用交易工具(下单/改单/撤单):1(开启)/ 0(关闭,安全默认)
OPEND_PATH-可选,FutuOpenD 可执行文件所在目录,设置后可自动启动 OpenD

⚠️ 安全提示FUTU_ENABLE_TRADING=0 默认关闭交易权限,如需 AI 代为下单请显式设为 1,并充分了解风险。

7.2 项目本地 .env 配置(从源码运行时使用)

复制 .env.example.env 并按需修改:

cp .env.example .env

.env 示例内容:

# OpenD 连接
FUTU_HOST=127.0.0.1
FUTU_PORT=11111

# 功能开关
FUTU_ENABLE_TRADING=0
FUTU_ENABLE_POSITIONS=1

# 交易环境
FUTU_TRADE_ENV=SIMULATE
FUTU_SECURITY_FIRM=FUTUSECURITIES
FUTU_TRD_MARKET=HK

# 调试模式(不建议在 MCP 客户端中开启)
FUTU_DEBUG_MODE=0

7.3 OpenClaw Skill 配置

// ~/.openclaw/openclaw.json
{
  skills: {
    entries: {
      "futu-stock": {
        enabled: true,
        env: {
          FUTU_HOST: "127.0.0.1",
          FUTU_PORT: "11111",
          FUTU_TRADE_ENV: "REAL",          // REAL / SIMULATE
          FUTU_TRD_MARKET: "HK",           // HK / US / CN
          FUTU_SECURITY_FIRM: "FUTUSECURITIES",
          FUTU_ENABLE_POSITIONS: "1",      // 持仓查询
          FUTU_ENABLE_TRADING: "0",        // 交易操作(谨慎开启)
          OPEND_PATH: "/path/to/opend"     // 可选,自动启动 OpenD
        }
      }
    }
  }
}

八、使用流程速查

8.1 首次接入流程

第一步:确认 OpenD 运行
   └─ lsof -i :11111  → 看到 FutuOpenD 进程即正常

第二步:安装 MCP Server(如未安装)
   └─ pipx install futu-stock-mcp-server

第三步:配置 MCP 客户端
   └─ 将 7.1 节的 JSON 添加到 mcp.json / MCP Settings

第四步:验证连接
   └─ python3 executor.py --check-env

第五步:开始查询
   └─ 行情:get_stock_quote / get_market_snapshot
   └─ 账户:get_account_list / get_funds / get_positions

8.2 日常使用决策流程

  1. 先做环境检测python3 executor.py --check-env
  2. 有缺失:按 2.2 安装缺失依赖
  3. 查账户信息get_account_listget_funds / get_positions
  4. 有股票代码:用 get_stock_quote / get_market_snapshot / get_history_kline
  5. 无股票代码:用 get_stock_filter 按条件筛选
  6. 需订阅:先 subscribe 再查
  7. 出错:按第六节常见问题排查

8.3 账户查询示例

# 查账户列表
python3 executor.py --call '{"tool": "get_account_list", "arguments": {}}'

# 查资产(模拟账户)
python3 executor.py --call '{"tool": "get_funds", "arguments": {}}'

# 查持仓(需 FUTU_ENABLE_POSITIONS=1)
python3 executor.py --call '{"tool": "get_positions", "arguments": {}}'

# 查持仓列表(带过滤)
python3 executor.py --call '{"tool": "get_position_list", "arguments": {"trd_env": "REAL"}}'

账户类工具的 trd_env 参数优先于环境变量 FUTU_TRADE_ENV,可临时切换真实/模拟环境。


本 Skill 通过 MCP 协议访问富途 OpenAPI,数据来自 https://github.com/shuizhengqi1/futu-stock-mcp-server

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Web3

Stock Market Intelligence

Market data API for AI agents. Equities, fixed income, crypto, and macro. Bitcoin Lightning micropayments.

Registry SourceRecently Updated
1.1K6Profile unavailable
General

Xanadu Stock Screener

Screen stocks by fundamental metrics, technical indicators, sector, and market to find and save stocks matching specific financial criteria and trends.

Registry SourceRecently Updated
1300Profile unavailable
General

Massive Financial Connector

Full Massive (Polygon) market-data connector with secure local key handling. Starts the official MCP server and supports endpoint discovery, endpoint docs, g...

Registry SourceRecently Updated
1470Profile unavailable
General

QVerisAI

Search and execute dynamic tools via QVeris API. Use when needing to find and call external APIs/tools dynamically — covers weather, search, stocks, finance, economics, geolocation, AIGC, news, social media, health data, and thousands more. Requires QVERIS_API_KEY environment variable.

Registry SourceRecently Updated
6890Profile unavailable