Skip to main content
Glama
drasticstatic

hummingbot-mcp

manage_controllers

Manage controller templates and saved configurations for reusable strategy definitions. Supports list, describe, upsert, and delete actions. Does not affect running bots—use manage_bots for live updates.

Instructions

Manage controller templates and saved configurations (design-time).

Works with reusable strategy definitions and parameter sets for future deployments.
Does NOT affect running bots. To modify a live bot's config, use manage_bots with action='update_config'.

⚠️ NOTE: For most trading strategies (grid, DCA, position trading), use manage_executors() instead.
Only use controllers when the user EXPLICITLY asks for "controllers", "bots", or needs advanced
multi-strategy bot deployments with centralized risk management.

Exploration flow:
1. action="list" → List all controllers and their configs
2. action="list" + controller_type → List controllers of that type with config counts
3. action="describe" + controller_name → Show config parameters template + list existing configs
4. action="describe" + config_name → Show specific config values + its controller's parameters
5. action="describe" + include_code=True → Also include the full controller source code

Modification flow:
6. action="upsert" + target="controller" → Create/update a controller template
7. action="upsert" + target="config" → Create/update a saved controller config
8. action="delete" + target="controller" → Delete a controller template
9. action="delete" + target="config" → Delete a controller config

Common Enum Values for Controller Configs:

Position Mode (position_mode):
- "HEDGE" - Allows holding both long and short positions simultaneously
- "ONEWAY" - Allows only one direction position at a time

Trade Side (side):
- 1 or "BUY" - For long/buy positions
- 2 or "SELL" - For short/sell positions
- Note: Numeric values are required for controller configs

Order Type (order_type, open_order_type, take_profit_order_type, etc.):
- 1 or "MARKET" - Market order
- 2 or "LIMIT" - Limit order
- 3 or "LIMIT_MAKER" - Limit maker order (post-only)
- Note: Numeric values are required for controller configs

Args:
    action: "list", "describe", "upsert" (create/update), or "delete"
    target: "controller" (template) or "config" (instance). Required for upsert/delete.
    controller_type: Type of controller (e.g., 'directional_trading', 'market_making', 'generic').
    controller_name: Name of the controller to describe or modify.
    controller_code: Code for controller (required for controller upsert).
    config_name: Name of the config to describe or modify.
    config_data: Configuration data (required for config upsert). Must include 'controller_type' and 'controller_name'.
    confirm_override: Required True if overwriting existing items.
    include_code: If True, include full controller source code in describe output. Default False.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYes
targetNo
controller_typeNo
controller_nameNo
controller_codeNo
config_nameNo
config_dataNo
confirm_overrideNo
include_codeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.4

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool works with design-time items and does not affect running bots. However, it omits potential destructions (e.g., deleting controllers) and authorization needs, though this is partially mitigated by the note about confirm_override.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured: it front-loads key information, uses numbered flows, and separates concerns. A bit verbose, but the organization justifies the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters, no annotations, and no output schema, the description is remarkably complete. It covers purpose, usage, parameter details, enum values, and alternatives, providing an agent with all necessary context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description compensates extensively. It explains each action-target combination, provides example flows, and documents common enum values (position_mode, side, order_type) with numeric requirements, far exceeding schema information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages controller templates and saved configurations at design-time. It explicitly distinguishes itself from sibling tools like manage_bots (for live bot configs) and manage_executors (for most trading strategies), ensuring correct tool selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (for controllers, bots, advanced multi-strategy deployments) and when not to (for most strategies, use manage_executors). It also details the exploration and modification flows, offering clear instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.