Skip to main content
Glama

decker.update_protective_stops

Axis③ (Order/Execution) — modifies the stop-loss and/or take-profit on an EXISTING open position. There is no cancel_order tool because Decker only places market orders (there is no resting order to cancel) — the actual gap this fills is modifying protective stops on a position you already hold. real: cancels the old exchange stop/take-profit order(s) and places new ones at the given price(s) (new order placed first, old one canceled only after — no unprotected window). virtual: updates the paper position's stop_loss/take_profit columns directly (polled by the paper monitor). Provide at least one of sl_price/tp_price — the other side, if omitted, is left at its current value. If both a real and a virtual position are open for this symbol, pass mode explicitly or the call is rejected asking which one.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoOnly required when both a real and a virtual position are open for this symbol — says which one to modify.
symbolYese.g. BTCUSDT — must be a symbol you currently hold.
sl_priceNoNew stop-loss price. Omit to leave the current stop unchanged.
tp_priceNoNew take-profit price. Omit to leave the current target unchanged.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden. It discloses the exact behavior for real vs virtual modes: real cancels old exchange orders and places new ones, with the new order placed first to avoid an unprotected window; virtual directly updates paper position columns polled by the paper monitor. It also explains the condition for mode and the rejection outcome, providing deep transparency beyond just 'modifies stops.'

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 longer than average but every sentence carries important information. It is logically structured: purpose, rationale for no cancel tool, real-mode behavior, virtual-mode behavior, parameter requirements, and mode ambiguity rule. While not as terse as a two-sentence description, the complexity of the tool justifies the length and no sentence is wasted.

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 the tool's complexity (dual real/virtual modes, partial updates, no cancel sibling), the description is remarkably complete. It covers what the tool does, when to use it, how each mode behaves, parameter constraints, and edge case (mode required for dual positions). There is no output schema, but the description doesn't need to explain return values for this modification tool; the invocation semantics are fully specified.

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?

The schema already provides 100% parameter descriptions, so the baseline is 3. The description adds value by stating the 'at least one of sl_price/tp_price' requirement and clarifying that omitted parameters retain current values, which reinforces and clarifies the schema's 'Omit to leave current stop unchanged' wording. It also explains when mode is necessary, going beyond the schema's note. This elevates it above baseline, though the schema already does much of the work.

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 starts with a clear verb+resource: 'modifies the stop-loss and/or take-profit on an EXISTING open position.' It also distinguishes itself from siblings by explicitly noting there is no cancel_order tool and that this tool fills the gap of modifying protective stops on an already-held position, differentiating it from place_order.

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?

It provides explicit when-to-use context (existing position), explains why there is no cancel tool (market orders only), and gives concrete usage rules: 'Provide at least one of sl_price/tp_price', the other side is left unchanged, and mode is required only when both real and virtual positions are open. It even describes the rejection behavior if mode is omitted, which is clear guidance for the agent.

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.

TDQS

A4.3/5.0
Disambiguation3/5

Execution and settings tools are clearly separated, but there is a dense cluster of analytical getters (get_view, get_reading, get_signals, get_assembly) that all return market verdicts and coordinates; their boundaries are only clear after reading the long descriptions. get_market_state versus get_state_timeline is cleaner, but the overlap among the analysis-verdict tools could still cause misselection.

Naming Consistency5/5

All tools share the decker_ prefix and a consistent snake_case verb_noun pattern (get_* for reads, place_order/close_position/update_protective_stops/set_skill_overlay/validate_intent for actions). There is no mixing of naming conventions or vague generic verbs.

Tool Count5/5

Thirteen tools is within the ideal well-scoped range for an execution-plus-analysis server. Each tool maps to a distinct responsibility (state reading, timeline history, signals, execution, position management, user settings, pre-trade validation), so none feels like filler.

Completeness4/5

The lifecycle is well covered: validate_intent → place_order → get_positions → update_protective_stops → close_position, with signal/analysis and skill-overlay tools around it. Minor gaps like a dedicated account-balance or full order-history tool are absent, but the execution engine handles caps server-side and closed round-trips are included in get_positions.