跳转至

行情订阅

MCP 工具总览

futu_subscribe

  • Scope: qot:read
  • Python SDK 等价: OpenQuoteContext.subscribe
  • 路由: MCP JSON-RPC tools/call name = "futu_subscribe"

说明:

Subscribe market data for given symbols + sub_types. Push data arrives via SSE notifications (HTTP mode). Python SDK: OpenQuoteContext.subscribe.

请求参数:

字段 类型 必填 Alias 说明
symbols array of string ✅ stocks, code_list, symbol_list, security_list Security symbols to subscribe, e.g. ["HK.00700", "US.AAPL"]. Alias: stocks / code_list / symbol_list / security_list
sub_types array of i32 ✅ sub_type_list Sub-type ids to subscribe. Accept int (1=Basic, 2=OrderBook, 4=Ticker, 5=RT, 6=KL_Day, 7=KL_5Min, 8=KL_15Min, 9=KL_30Min, 10=KL_60Min, 11=KL_1Min, 12=KL_Week, 13=KL_Month, 14=Broker, 15=KL_Quarter, 16=KL_Year, 17=KL_3Min, 18=KL_10Min, 19=KL_120Min, 20=KL_180Min, 21=KL_240Min, 22=OrderBook_Odd) OR string ("Basic" / "OrderBook" / "KL_Day" / "day" / ...). Alias: sub_type_list. Uses the daemon proto mapping: 3 is reserved/None, 4=Ticker, 10=KL_60Min, 13=KL_Month, 18=KL_10Min.
Enum double-accept: Array of SubType enum values; each item accepts integer or string (Basic / OrderBook / KL_Day / KL_1Min / KL_5Min / ...)
is_first_push boolean ✓ 默认 default_is_first_push — If true, backend pushes current snapshot immediately after subscribe (useful for agents needing warm state). Default true.
is_reg_push boolean ✓ 默认 default_is_reg_push — If true, register push on this connection (agent will receive push via SSE notification in HTTP mode). Default true.
extended_time boolean? — extendedTime Qot_Sub.extendedTime: include US pre/post-market data for supported real-time K/RT/Ticker subscriptions. Default false.
session i32? — — Session: 0=NONE, 1=RTH, 2=ETH, 3=ALL. OVERNIGHT is not supported for subscriptions.
is_sub_order_book_detail boolean? — is_sub_order_book_detail, orderbook_detail Qot_Sub.isSubOrderBookDetail: subscribe order-book detail when available. Default false.

⚠️ 未知字段: 启用 deny_unknown_fields — 任何未在表里的字段会返 unknown field error(之前静默 drop)。

运行时校验: 此 request 结构带 validate() 方法 — 在 schema 之外加额外的必填字段 / 枚举取值校验。

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_subscribe",
    "arguments": {
      "symbols": [
        "HK.00700"
      ],
      "sub_types": [
        "Basic",
        "OrderBook"
      ],
      "is_first_push": true,
      "is_reg_push": true
    }
  }
}

返回结构: 与对应 REST endpoint / Python SDK 返回结构一致的 JSON 文本。失败时 MCP CallToolResult.is_error=true + 内容带 {"error": "...", "status": "error"}。

futu_query_subscription

  • Scope: qot:read
  • Python SDK 等价: OpenQuoteContext.query_subscription
  • 路由: MCP JSON-RPC tools/call name = "futu_query_subscription"

说明:

Query current subscription state (subscribed types, quota used/remaining). Python SDK: OpenQuoteContext.query_subscription.

请求参数:

字段 类型 必填 Alias 说明
is_req_all_conn boolean ✓ 默认 default — true=query all connections; false=only this connection (default)

⚠️ 未知字段: 启用 deny_unknown_fields — 任何未在表里的字段会返 unknown field error(之前静默 drop)。

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_query_subscription",
    "arguments": {
      "is_req_all_conn": false
    }
  }
}

返回结构: 与对应 REST endpoint / Python SDK 返回结构一致的 JSON 文本。失败时 MCP CallToolResult.is_error=true + 内容带 {"error": "...", "status": "error"}。

futu_unsubscribe

  • Scope: qot:read
  • Python SDK 等价: OpenQuoteContext.unsubscribe
  • 路由: MCP JSON-RPC tools/call name = "futu_unsubscribe"

说明:

Unsubscribe market data (by symbol+type, or unsub_all to clear this connection). Python SDK: OpenQuoteContext.unsubscribe / unsubscribe_all.

请求参数:

字段 类型 必填 Alias 说明
symbols array of string ✓ 默认 default stocks, code_list, symbol_list, security_list Security symbols to unsubscribe (ignored if unsub_all=true); alias: stocks / code_list / symbol_list / security_list
sub_types array of i32 ✓ 默认 default sub_type_list Sub-type ids to unsubscribe. Accept int (1=Basic, 2=OrderBook, 4=Ticker, 5=RT, 6=KL_Day, 7=KL_5Min, 8=KL_15Min, 9=KL_30Min, 10=KL_60Min, 11=KL_1Min, 12=KL_Week, 13=KL_Month, 14=Broker, 15=KL_Quarter, 16=KL_Year, 17=KL_3Min, 18=KL_10Min, 19=KL_120Min, 20=KL_180Min, 21=KL_240Min, 22=OrderBook_Odd) OR string ("Basic" / "OrderBook" / "KL_Day" / "day" / ...). Alias: sub_type_list. Uses the daemon proto mapping: 3 is reserved/None, 4=Ticker, 10=KL_60Min, 13=KL_Month, 18=KL_10Min.
Enum double-accept: Array of SubType enum values; each item accepts integer or string (Basic / OrderBook / KL_Day / KL_1Min / KL_5Min / ...)
unsub_all boolean ✓ 默认 default unsubscribe_all true=clear all subscriptions on this connection (ignores symbols/sub_types); alias: unsubscribe_all

⚠️ 未知字段: 启用 deny_unknown_fields — 任何未在表里的字段会返 unknown field error(之前静默 drop)。

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_unsubscribe",
    "arguments": {
      "symbols": [
        "HK.00700"
      ],
      "sub_types": [
        "Basic",
        "OrderBook"
      ],
      "unsub_all": false
    }
  }
}

返回结构: 与对应 REST endpoint / Python SDK 返回结构一致的 JSON 文本。失败时 MCP CallToolResult.is_error=true + 内容带 {"error": "...", "status": "error"}。