Skip to content

MCP Tool Reference (full auto-generated)

auto-generated

This file is auto-generated by the FutuOpenD-rs build pipeline and refreshed with every daemon release.

This index covers 310 public tools. Category pages document scope / Python SDK equivalent / parameters / alias support / enum dual-accept (int OR string) / deny_unknown_fields behavior / runtime validate rules / JSON-RPC call example.

Conventions

  • Scope: what permission is required (qot:read / acc:read / trade:real | trade:simulate / trade:unlock). The MCP key's scopes array must cover it. Otherwise MCP returns CallToolResult.is_error=true + {"error": "unknown MCP tool …", "status": "error"} or unauthorized.
  • Python SDK equivalent: the corresponding py-futu-api method, to ease Python migration.
  • Required column:
    • ✅ means the field is required
    • ✓ default xxx means serde has #[serde(default = "xxx")] fallback
    • — means Option<T>, may be omitted
  • Alias: synonym field names retained for py-futu-api / legacy client compatibility. Deprecated — new code should use the canonical name (the first column header).
  • Unknown fields: deny_unknown_fields is enforced — typo'd field names (e.g. stock vs the new canonical symbol) return an unknown field error instead of silently dropping (defends against the silent-success anti-pattern).
  • Enum dual-accept: fields like market / sub_types / order_type / kl_type / op (price reminder) accept integer enum values and string names simultaneously. Per-field accepted values are listed in the field description.
  • Responses: all tools return JSON text; on failure, the MCP protocol layer sets is_error=true and the content carries {"error": "...", "status": "error"}.

Common error codes

Error Typical source
unknown MCP tool … tool name typo, or this daemon version does not support the tool (check futu-opend --version)
unauthorized API key lacks the required scope
gateway connect failed: … futu-opend not running / wrong port
unknown field \"…\" deny_unknown_fields triggered (typo'd field name)
backend proto error (ret_type != 0) raw JSON envelope's ret_msg carries the concrete reason

Quick index


Alphabetic tool index