System / Status¶
futu_get_global_state¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_global_state - Route: MCP JSON-RPC
tools/callwith name ="futu_get_global_state"
Description:
Get gateway global state: per-market trading status, server version / time, quote & trade login status. Python SDK: OpenContext.get_global_state.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_global_state",
"arguments": {}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_user_info¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_user_info - Route: MCP JSON-RPC
tools/callwith name ="futu_get_user_info"
Description:
Get user info: nickname, per-market quote permissions, subscribe quota, history-K quota. Python SDK: OpenContext.get_user_info.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_user_info",
"arguments": {}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_quote_rights¶
- Scope:
qot:read - Python SDK equivalent:
— (gateway user profile / quote-right display surface) - Route: MCP JSON-RPC
tools/callwith name ="futu_get_quote_rights"
Description:
Get quote-rights profile grouped like Futu OpenD GUI: HK/US/CN/SG/JP/crypto permissions, raw values, labels and quota. Set refresh=true to trigger request_highest_quote_right first.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
refresh |
boolean? | — | — | If true, trigger request_highest_quote_right before querying |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_quote_rights",
"arguments": {}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_get_delay_statistics¶
- Scope:
qot:read - Python SDK equivalent:
OpenQuoteContext.get_delay_statistics - Route: MCP JSON-RPC
tools/callwith name ="futu_get_delay_statistics"
Description:
Get delay-statistics summary: counts of quote-push / request-reply / place-order samples. Python SDK: OpenContext.get_delay_statistics. For raw per-segment buckets use REST /api/delay-statistics.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_get_delay_statistics",
"arguments": {}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_verification¶
- Scope:
auth:setup - Python SDK equivalent:
— - Route: MCP JSON-RPC
tools/callwith name ="futu_verification"
Description:
Request or submit the current pre-login verification challenge. c2s_json uses Verification.C2S JSON.
Request arguments:
| Field | Type | Required | Alias | Description |
|---|---|---|---|---|
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. |
⚠️ Unknown fields:
deny_unknown_fieldsis enabled — any field not listed above returns anunknown fielderror (previously silently dropped).
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_verification",
"arguments": {
"c2s_json": "…",
"api_key": "optional-per-call-api-key"
}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_ping¶
- Scope:
qot:read - Python SDK equivalent:
— (gateway-local, no SDK equivalent) - Route: MCP JSON-RPC
tools/callwith name ="futu_ping"
Description:
Ping the Futu gateway. Returns RTT and connection status.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_ping",
"arguments": {}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.
futu_push_subscriber_info¶
- Scope:
acc:read - Python SDK equivalent:
— (daemon-only diagnostics) - Route: MCP JSON-RPC
tools/callwith name ="futu_push_subscriber_info"
Description:
Diagnostic — list active push subscriptions on this MCP server. Returns {total_count, subscriptions: [{session_id, acc_ids, age_secs}]}. Useful to verify whether futu_sub_acc_push registered, check auto-purge timing, or debug missing pushes.
JSON-RPC call example:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "futu_push_subscriber_info",
"arguments": {}
}
}
Response: JSON text matching the corresponding REST endpoint / Python SDK. On failure MCP CallToolResult.is_error=true + content carries {"error": "...", "status": "error"}.