跳转至

交易账户

MCP 工具总览

futu_list_accounts

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_acc_list
  • 路由: MCP JSON-RPC tools/call name = "futu_list_accounts"

说明:

List all trading accounts (real + simulate) visible to the gateway login.

JSON-RPC 调用示例:

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

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

futu_get_funds

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.accinfo_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_funds"

说明:

Get account funds summary (total assets, cash, market value, buying power) for a given account + market.

Cash semantics: top-level cash field is backend's summary cash in the response currency (i.e. union_currency for futures/universal, primary market currency for legacy accounts). It is NOT the sum of cash_info_list[].cash across currencies (different currencies cannot be summed without FX conversion). For per-currency breakdown, read cash_info_list. To match Futu mobile app's '现金总值 in HKD' display, client-side compute sum(cash_info_list[i].cash * fx_rate(currency[i], HKD)) — daemon does not perform FX aggregation.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64? — — Trading account ID (u64). Either acc_id OR card_num is required. card_num accepts the 4-digit suffix shown in the App or the full 16-digit card number.
card_num string? — — App-visible card number. Accepts 4-digit suffix or 16-digit full card number. Either acc_id OR card_num is required; if both are passed, daemon validates they refer to the same account.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.
currency string? — — Optional currency for fund response unit (HKD|USD|CNH|JPY|SGD|AUD|CAD|MYR|NZD). If omitted, daemon uses the broker/account default view currency. Explicit values are validated against the account; single-market accounts may ignore explicit currency and return their base currency.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_funds",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_positions

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.position_list_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_positions"

说明:

Get current positions (holdings) for an account in a given market.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA|CRYPTO) OR INT per Trd_Common.TrdMarket.
acc_id u64? — — Trading account ID (u64). Either acc_id OR card_num is required.
card_num string? — — App-visible card number. Accepts 4-digit suffix or 16-digit full card number.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
api_key string? — — Optional per-call API key plaintext.
currency string? — — Optional position view currency (HKD|USD|CNH|JPY|SGD|AUD|CAD|MYR|NZD). Crypto accounts require an explicit view currency; non-crypto accounts may ignore it.
option_strategy_view boolean ✓ 默认 default optionStrategyView Request option strategy/combo position view. Defaults to false.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_positions",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "api_key": "optional-per-call-api-key",
      "option_strategy_view": false
    }
  }
}

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

futu_get_orders

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.order_list_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_orders"

说明:

Get today's orders (including pending / filled / cancelled) for an account in a given market.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64? — — Trading account ID (u64). Either acc_id OR card_num is required. card_num accepts the 4-digit suffix shown in the App or the full 16-digit card number.
card_num string? — — App-visible card number. Accepts 4-digit suffix or 16-digit full card number. Either acc_id OR card_num is required; if both are passed, daemon validates they refer to the same account.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.
currency string? — — Optional currency for fund response unit (HKD|USD|CNH|JPY|SGD|AUD|CAD|MYR|NZD). If omitted, daemon uses the broker/account default view currency. Explicit values are validated against the account; single-market accounts may ignore explicit currency and return their base currency.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_orders",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_deals

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.deal_list_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_deals"

说明:

Get today's deals / order fills for an account in a given market.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64? — — Trading account ID (u64). Either acc_id OR card_num is required. card_num accepts the 4-digit suffix shown in the App or the full 16-digit card number.
card_num string? — — App-visible card number. Accepts 4-digit suffix or 16-digit full card number. Either acc_id OR card_num is required; if both are passed, daemon validates they refer to the same account.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.
currency string? — — Optional currency for fund response unit (HKD|USD|CNH|JPY|SGD|AUD|CAD|MYR|NZD). If omitted, daemon uses the broker/account default view currency. Explicit values are validated against the account; single-market accounts may ignore explicit currency and return their base currency.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_deals",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_margin_ratio

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_margin_ratio
  • 路由: MCP JSON-RPC tools/call name = "futu_get_margin_ratio"

说明:

Query margin ratio (long/short permissions, short-pool remaining, long/short initial margin ratios) by symbol list. Python SDK: OpenTradeContext.get_margin_ratio.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default; omitting or inventing an id fails.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
codes array of string ✅ symbols, code_list, symbol_list Symbols in MARKET.CODE format (e.g. HK.00700, US.AAPL); alias: symbols / code_list / symbol_list

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_margin_ratio",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "codes": [
        "HK.00700"
      ]
    }
  }
}

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

futu_get_order_fee

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.order_fee_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_order_fee"

说明:

Query order fee breakdown (commission / platform fee / stamp duty) by order_id_ex list. Python SDK: OpenTradeContext.order_fee_query.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default; omitting or inventing an id fails.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
order_id_ex_list array of string ✅ order_ids_ex, order_ids Order_id_ex list (strings) — returned by place_order response; alias: order_ids_ex / order_ids

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_order_fee",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "order_id_ex_list": []
    }
  }
}

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

futu_get_max_trd_qtys

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.acctradinginfo_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_max_trd_qtys"

说明:

Max buy/sell/short/buy-back qtys before placing an order. Python SDK: OpenTradeContext.acctradinginfo_query. For NORMAL (limit) orders, price is required. order_type aligns with Trd_Common.OrderType enum (1=limit, 2=market, etc).

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default; omitting or inventing an id fails.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
order_type i32 ✅ — Order type. Accepts both INTEGER (1=NORMAL/limit, 2=MARKET, 5=AUCTION, 6=ABSOLUTE_LIMIT, 7=SPECIAL_LIMIT) and STRING enum (NORMAL|MARKET|AUCTION|ABSOLUTE_LIMIT|SPECIAL_LIMIT). Example: 1 or "NORMAL".
Enum double-accept: Accepts integer or OrderType enum string (NORMAL|LIMIT|MARKET|ABSOLUTE_LIMIT|AUCTION|AUCTION_LIMIT|SPECIAL_LIMIT)
code string ✅ symbol, stock Security code WITHOUT market prefix (e.g. 00700 / AAPL); alias: symbol / stock
price float ✅ — Limit price (pass 0.0 for market orders)
jp_acc_type i32? — jpAccType JP sub-account type (Trd_Common.TrdSubAccType / TrdHeader.jpAccType). Required for JP accounts unless order_id/position context supplies the sub-account. Alias: jpAccType.
order_id u64? — — Existing order_id (for modify-order max-qty calc, optional)

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_max_trd_qtys",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "order_type": "NORMAL",
      "code": "00700",
      "price": 300.0,
      "order_id": "123456789"
    }
  }
}

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

futu_get_history_orders

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.history_order_list_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_history_orders"

说明:

Query historical orders (filled / cancelled) with optional time range + code filter. Python SDK: OpenTradeContext.history_order_list_query.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default; omitting or inventing an id fails.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
code_list array of string ✓ 默认 default symbols, symbol_list Filter by codes (empty = all). Each item is bare code without market prefix. Alias: symbols / symbol_list
begin_time string? — begin, start_time, from Begin time 'yyyy-MM-dd HH🇲🇲ss' (optional); alias: begin / start_time / from
end_time string? — end, to End time 'yyyy-MM-dd HH🇲🇲ss' (optional); alias: end / to

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_history_orders",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "code_list": [
        "HK.00700"
      ],
      "begin_time": "2026-01-01",
      "end_time": "2026-12-31"
    }
  }
}

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

futu_get_history_deals

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.history_deal_list_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_history_deals"

说明:

Query historical deals / fills with optional time range + code filter. Python SDK: OpenTradeContext.history_deal_list_query.

请求参数:

字段 类型 必填 Alias 说明
market string ✅ — Trade market — accepts STRING (HK|US|CN|HKCC|FUTURES|SG|AU|JP|MY|CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 5=Futures, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default; omitting or inventing an id fails.
env string ✓ 默认 default_env trd_env Trade environment: real|simulate (default real); alias: trd_env
code_list array of string ✓ 默认 default symbols, symbol_list Filter by codes (empty = all). Each item is bare code without market prefix. Alias: symbols / symbol_list
begin_time string? — begin, start_time, from Begin time 'yyyy-MM-dd HH🇲🇲ss' (optional); alias: begin / start_time / from
end_time string? — end, to End time 'yyyy-MM-dd HH🇲🇲ss' (optional); alias: end / to

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_history_deals",
    "arguments": {
      "market": "HK",
      "acc_id": 123456,
      "env": "real",
      "code_list": [
        "HK.00700"
      ],
      "begin_time": "2026-01-01",
      "end_time": "2026-12-31"
    }
  }
}

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

futu_get_flow_summary

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.acc_cash_flow_query (summary variant)
  • 路由: MCP JSON-RPC tools/call name = "futu_get_flow_summary"

说明:

Alias of futu_get_acc_cash_flow (MCP-REST naming symmetry with /api/flow-summary). Account cash-flow statement for a clearing date. Python SDK: OpenTradeContext.get_acc_cash_flow.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real); alias: trd_env
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default.
market string ✅ — Trade market — accepts STRING (HK / US / CN / HKCC / SG / AU / JP / MY / CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
clearing_date string ✅ date, query_date Clearing date (yyyy-MM-dd); queries flow entries for that day; alias: date / query_date
direction i32? — flow_direction Direction: 1=InFlow, 2=OutFlow, omit for both; alias: flow_direction

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_flow_summary",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "clearing_date": "2026-04-20",
      "direction": 1
    }
  }
}

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

futu_get_cash_log

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.cash_flow_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_cash_log"

说明:

Fetch detailed account cash log entries with richer filters than futu_get_acc_cash_flow. Native time range, business group / currency / keyword / symbol / direction filters, cursor-based pagination. When max_cnt is omitted the daemon uses the mobile default of 50.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64). Call futu_list_accounts first.
market string? — — Optional legacy market hint. Accepted for backward compatibility (HK/US/CN/HKCC/FUTURES/SG/CRYPTO/AU/JP/MY/CA/HKFUND/USFUND/SGFUND/MYFUND/JPFUND or ½/¾/⅚/⅞/15/111/112/113/123/124/125/126), but cash-log identity does not trust this field: daemon derives backend market from acc_id/account cache.
begin_time u64? — — Begin time (epoch seconds, optional)
end_time u64? — — End time (epoch seconds, optional)
biz_group_id u32? — — Business group ID filter (default all)
biz_sub_group_id u32? — — Business sub-group ID filter (optional; value from futu_get_biz_group sub_groups)
in_out u32? — — In/out direction: 1=in, 2=out, 0/omit=all
keyword string? — — Search keyword (optional)
symbol string? — — Stock symbol (e.g. AAPL.US, 00700.HK), exact match (optional)
stock_id u64? — — Backend stock_id filter (optional; use when available from upstream/account UI data)
log_id string? — — Cursor: log_id from previous response next_log_id (omit for first page)
max_cnt u32? — — Max entries per response (daemon uses mobile default 50 if omit)
currency string? — — Currency filter: CNY/HKD/USD/JPY/SGD (optional)

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_cash_log",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "begin_time": "2026-01-01",
      "end_time": "2026-12-31",
      "symbol": "HK.00700"
    }
  }
}

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

futu_get_cash_detail

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.cash_flow_query (detail variant)
  • 路由: MCP JSON-RPC tools/call name = "futu_get_cash_detail"

说明:

Fetch a single cash log entry detail. Use after futu_get_cash_log; log_id comes from monthly_logs[].entries[].log_id.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64)
market string? — — Optional legacy market hint; accepted for backward compatibility but ignored. Daemon derives backend market from acc_id/account cache.
log_id string ✅ — Cash log ID (from futu_get_cash_log response)

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_cash_detail",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "log_id": "…"
    }
  }
}

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

futu_get_biz_group

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_biz_group
  • 路由: MCP JSON-RPC tools/call name = "futu_get_biz_group"

说明:

Fetch cash log business group, currency, and direction metadata for client UI filters. Returns biz_groups with sub_groups, currencies, and directions.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64)
market string? — — Optional legacy market hint; accepted for backward compatibility but ignored. Daemon derives backend market from acc_id/account cache.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_biz_group",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK"
    }
  }
}

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

futu_get_margin_info

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_margin_info
  • 路由: MCP JSON-RPC tools/call name = "futu_get_margin_info"

说明:

Per-account margin info: buying power, leverage, risk status, liquidity, HK margin fields, and mobile risk metadata. Supports HK / US / CN_AH markets (mobile cmd 3101/3102/3107). Complements futu_get_margin_ratio, which is per-security.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64). Call futu_list_accounts first.
market string ✅ — Market: HK / US / CN_AH (only these 3 supported; mobile cmd 3101/3102/3107). Other markets: use futu_get_margin_ratio (per-security ratio).

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_margin_info",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK"
    }
  }
}

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

futu_get_account_flag

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_account_flag
  • 路由: MCP JSON-RPC tools/call name = "futu_get_account_flag"

说明:

Query account compliance flag (product access, risk disclosure, opt-in status). Common flag_id values: 5=US options, 22=derivatives disclosure, 10=fund KYC R1-R5, 16=PDT, 23=US OTC, 11=HK options. The response includes item_present and flag_value_present so clients can distinguish a missing flag record from an explicit flag_value=0.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64) for per-broker routing
flag_id u32 ✅ — Flag ID to query. Common: 5=US 期权确认, 8=期权测评, 10=基金 KYC (R1~R5), 11=HK 期权确认, 16=PDT 风披, 22=衍生品风批 (合并新), 23=美股 OTC, 24=港股期权测评, 25=算法交易风披, 34=人脸识别风批, 46=OpenAPI 免责. Full 36+ list in proto header.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_account_flag",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "flag_id": 0
    }
  }
}

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

futu_get_bond_total_asset

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_bond_total_asset
  • 路由: MCP JSON-RPC tools/call name = "futu_get_bond_total_asset"

说明:

Bond account total asset and P&L summary for HK/US/SG bond accounts. Returns total_asset, position_incomes, today_incomes, accrued_interest, and ccy.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64) for per-broker routing
market string ✅ — Market: HK / US / SG; aliases USA and SG_UNIVERSAL are accepted

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_bond_total_asset",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK"
    }
  }
}

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

futu_get_bond_single_asset

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_bond_single_asset
  • 路由: MCP JSON-RPC tools/call name = "futu_get_bond_single_asset"

说明:

Single bond position for HK/US/SG bond accounts, including market value, quantity, cost, expiry, dividend schedule, accrued interest, legacy notice fields, notice_list, currency, and price.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64) for per-broker routing
market string ✅ — Market: HK / US / SG; aliases USA and SG_UNIVERSAL are accepted
symbol string ✅ — Bond symbol (债券代码, 如 HK1234 或 11000018)

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_bond_single_asset",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "symbol": "HK.00700"
    }
  }
}

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

futu_get_bond_position_list

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_bond_position_list
  • 路由: MCP JSON-RPC tools/call name = "futu_get_bond_position_list"

说明:

Bond account position list for HK/US/SG bond accounts. Returns total and bond_list items with name, symbol, market value, quantity, price, cost, incomes, accrued interest, notice, call flag, and ccy.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64) for per-broker routing
market string ✅ — Market: HK / US / SG; aliases USA and SG_UNIVERSAL are accepted

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_bond_position_list",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK"
    }
  }
}

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

futu_get_bond_answer_state

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_bond_answer_state
  • 路由: MCP JSON-RPC tools/call name = "futu_get_bond_answer_state"

说明:

Query whether the user needs to answer a suitability questionnaire before bond trading. Returns need_to_answer plus notice fields such as title, content, and confirm_url.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64) for per-broker routing
market string ✅ — Market: HK / US / SG; aliases USA and SG_UNIVERSAL are accepted
symbol string ✅ — Bond symbol (债券代码, 如 HK1234 或 11000018)

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_bond_answer_state",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "symbol": "HK.00700"
    }
  }
}

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

futu_get_bond_trade_reminder

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.get_bond_trade_reminder
  • 路由: MCP JSON-RPC tools/call name = "futu_get_bond_trade_reminder"

说明:

Bond trade reminders for buy/sell availability, complex product, high risk, and pre-qualification. Returns ReminderItem fields for tradeable, complex_product, high_risk, sell_tradeable, and pre_qualification.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real)
acc_id u64 ✅ — Trading account ID (u64) for per-broker routing
market string ✅ — Market: HK / US / SG; aliases USA and SG_UNIVERSAL are accepted
symbol string ✅ — Bond symbol (债券代码, 如 HK1234 或 11000018)

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_bond_trade_reminder",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "symbol": "HK.00700"
    }
  }
}

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

futu_get_token_state

  • Scope: acc:read
  • Python SDK 等价: — (gateway local token diagnostics)
  • 路由: MCP JSON-RPC tools/call name = "futu_get_token_state"

说明:

Query Futu Token / moomoo Token enable + bind state. Returns 4 fields: nn_token_enable, nn_token_bind, mm_token_enable, mm_token_bind (1=enabled/bound, 0=disabled/unbound). Use case: when /api/unlock-trade fails with -20011 ("please enable Futu Token"), call this tool first to diagnose which side is missing token binding.

JSON-RPC 调用示例:

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

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

futu_get_acc_cash_flow

  • Scope: acc:read
  • Python SDK 等价: OpenTradeContext.acc_cash_flow_query
  • 路由: MCP JSON-RPC tools/call name = "futu_get_acc_cash_flow"

说明:

Account cash-flow statement for a clearing date. Python SDK: OpenTradeContext.get_acc_cash_flow.

请求参数:

字段 类型 必填 Alias 说明
env string ✓ 默认 default_env trd_env Trade env: real / simulate (default real); alias: trd_env
acc_id u64 ✅ — Trading account ID (u64). ⚠️ Call futu_list_accounts first to discover — gateway does NOT infer a default.
market string ✅ — Trade market — accepts STRING (HK / US / CN / HKCC / SG / AU / JP / MY / CA) OR INT (1=HK, 2=US, 3=CN, 4=HKCC, 6=SG, 8=AU, 15=JP, 111=MY, 112=CA per Trd_Common.TrdMarket).
clearing_date string ✅ date, query_date Clearing date (yyyy-MM-dd); queries flow entries for that day; alias: date / query_date
direction i32? — flow_direction Direction: 1=InFlow, 2=OutFlow, omit for both; alias: flow_direction

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_acc_cash_flow",
    "arguments": {
      "env": "real",
      "acc_id": 123456,
      "market": "HK",
      "clearing_date": "2026-04-20",
      "direction": 1
    }
  }
}

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

futu_get_combo_max_trd_qtys

  • Scope: acc:read
  • Python SDK 等价: OpenSecTradeContext.get_combo_max_trd_qtys
  • 路由: MCP JSON-RPC tools/call name = "futu_get_combo_max_trd_qtys"

说明:

Get maximum trade quantity for a combo-option order. Futu API v10.7: OpenSecTradeContext.get_combo_max_trd_qtys. c2s_json must include header.acc_id.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_combo_max_trd_qtys",
    "arguments": {
      "c2s_json": "…",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_preview_order_impact

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_preview_order_impact"

说明:

Preview fee, margin and risk sidecars before placing a typed single, modify, combo or crypto order. Estimate only; local extension v1.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_preview_order_impact",
    "arguments": {
      "c2s_json": "…",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_asset_trend

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_get_asset_trend"

说明:

Get the server-calculated customer and broker-area asset timeline. Local extension v1; experimental reads must be enabled.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_asset_trend",
    "arguments": {
      "c2s_json": "…",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_yield_trend

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_get_yield_trend"

说明:

Get the server-calculated customer and broker-area yield timeline and benchmark comparisons. Local extension v1.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_yield_trend",
    "arguments": {
      "c2s_json": "…",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_return_calendar

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_get_return_calendar"

说明:

Get the server-calculated customer and broker-area monthly or yearly return calendar. Local extension v1.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_return_calendar",
    "arguments": {
      "c2s_json": "…",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_order_relations

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_get_order_relations"

说明:

Read a complete cached order relation graph by order or group id. Returns explicit not-available or stale status and never contacts a backend.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_order_relations",
    "arguments": {
      "c2s_json": "…",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_get_position_corporate_actions

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_get_position_corporate_actions"

说明:

Read position-related stock and option-underlying corporate-action risk from a fresh account position snapshot. Requires --enable-v18-experimental-reads; default OFF; live backend unverified.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_get_position_corporate_actions",
    "arguments": {
      "c2s_json": "{\"header\":{\"trd_env\":1,\"acc_id\":900000001,\"trd_market\":2},\"extension_version\":1}",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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

futu_algo_order_logs

  • Scope: acc:read
  • Python SDK 等价: —
  • 路由: MCP JSON-RPC tools/call name = "futu_algo_order_logs"

说明:

Query algorithm parent/child execution reports with zero-based pagination or fetch_all. Requires --enable-v18-experimental-reads.

请求参数:

字段 类型 必填 Alias 说明
c2s_json string ✅ — Official generated C2S JSON. Field names use generated proto serde snake_case, e.g. multi_legs / combo_legs / order_type.
api_key string? — — Optional per-call API key plaintext. HTTP scope mode still requires a valid Bearer on every /mcp request; this field overrides that identity for the tool handler. In stdio mode: tool argument > startup key.

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

JSON-RPC 调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "futu_algo_order_logs",
    "arguments": {
      "c2s_json": "{\"header\":{\"trd_env\":1,\"acc_id\":900000001,\"trd_market\":2},\"algo_order_id\":\"server-algo-order-id\",\"page_index\":0,\"page_size\":50,\"fetch_all\":false,\"extension_version\":1}",
      "api_key": "optional-per-call-api-key"
    }
  }
}

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