Skip to main content
Glama

decker.set_symbol_skill

Turn the per-symbol integrated skill on or off for this user's paper (virtual, default) or live (execution_mode=real, quantity required) account. When on, the symbol verdict's entry event (decker.get_assembly) opens an order and the same verdict's exit / opposite-entry events close it — same algorithm in both modes; per-timeframe rules never close a position this skill opened. Defaults: paper notional quantity, engine stop/target. replace_timeframe_rules=true pauses this user's paper per-timeframe rules for the symbol and hands their open positions to the skill (adopted_position_ids); paused_rule_ids restore the rules via enabled=false + restore_rule_ids. Current state: decker.get_user_skills → symbol_skills.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "symbol": "<symbol>",
      "enabled": "<enabled>"
    },
    "name": "decker.set_symbol_skill"
  }
}

Input Schema

NameRequiredDescriptionDefault
symbolYese.g. BTCUSDT, XYZ_GOLDUSD (a symbol with an engine verdict).
enabledYestrue = on (idempotent), false = off (rule kept, paused).
horizonNoHorizon timeframe to hold: orders every just-born signal at or below it toward that timeframe's next cell (≥2%), exits on that timeframe's action. own (default) = each signal's own timeframe. Omitted = keep.
quantityNoOptional order size. Omitted = paper default notional. Required when execution_mode=real.
execution_modeNovirtual (default) = paper account; real = live exchange (Binance USDT-M futures / Hyperliquid), same verdict→order→exit algorithm. With enabled=false: turn off only that mode's skill.
restore_rule_idsNoWith enabled=false: re-activate these paused per-timeframe rules.
replace_timeframe_rulesNoPause this user's paper per-timeframe rules for the symbol (default false).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / execution_mode
      Added value: +{
      +  "description": "virtual (default) = paper account; real = live exchange (Binance USDT-M futures / Hyperliquid), same verdict→order→exit algorithm. With enabled=false: turn off only that mode's skill.",
      +  "enum": [
      +    "virtual",
      +    "real"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / quantity / description
      Previous value: -"Optional order size. Omitted = paper default notional."New value: +"Optional order size. Omitted = paper default notional. Required when execution_mode=real."
  2. Changed2 schema fields changed
    • removedInput schema / properties / against_frame
      Removed value: -{
      -  "description": "Also order lower-timeframe pieces opposite to the symbol frame (default off).",
      -  "type": "boolean"
      -}
    • addedInput schema / properties / horizon
      Added value: +{
      +  "description": "Horizon timeframe to hold: orders every just-born signal at or below it toward that timeframe's next cell (≥2%), exits on that timeframe's action. own (default) = each signal's own timeframe. Omitted = keep.",
      +  "enum": [
      +    "own",
      +    "30m",
      +    "1h",
      +    "4h",
      +    "8h",
      +    "1d",
      +    "1w"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses that enabling ties order entry/exit to the verdict's events, that per-timeframe rules will not close skill-opened positions, that enabled=true is idempotent, that enabled=false pauses rather than deletes, and that replace_timeframe_rules hands open positions to the skill (adopted_position_ids). It omits auth/permission requirements and what the response returns.

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

Conciseness3/5

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

The content is valuable but packed into two long, clause-heavy sentences with the restore workflow and state-check pointer stacked at the end. Front-loading the mode/quantity rule and breaking the replace/restore logic into separate sentences would improve scanability without losing information.

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

Completeness4/5

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

For a 7-parameter mutation tool with real-money implications and no output schema, the description covers modes, defaults, side effects, and state inspection. The remaining gap is the result shape and any authorization requirements, which the agent would need before calling safely.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description still adds meaning by tying quantity to execution_mode, explaining replace_timeframe_rules in terms of pausing rules and adopting positions, and describing the restore_rule_ids pairing with enabled=false. Minor parameters such as horizon receive no extra explanation in the prose, but the schema covers them thoroughly.

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 first sentence gives a specific verb+resource ('turn the per-symbol integrated skill on or off') and immediately scopes it to paper vs live accounts. It is clearly distinguishable from siblings such as decker.set_skill_overlay and decker.get_user_skills, which are named where relevant.

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

Usage Guidelines4/5

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

The description explains the two modes, the defaults for virtual vs real (quantity required when execution_mode=real), and routes the agent to decker.get_user_skills → symbol_skills to inspect current state. It also explains the replace/restore workflow. It stops short of explicit when-not-to-use guidance or preconditions such as account setup.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.