Skip to main content
Glama

decker.get_reading

AI-synthesized market reading for a symbol/timeframe, in customer-facing language: current state description, directional bias scores, bidirectional break targets, MTF verdict per timeframe, and an execution hint (stance + long/short setups). Engine-native raw fields are NOT exposed here — use the REST raw contract (GET /public/reading) or decker.get_market_state for those — except object_context (W1-C1 standard object block, explicit exception: my_anchor/opp_anchor/judgment_ref/geometry/reverse_branch + why limited to action_gate/trigger_kind (internal reason codes scrubbed on this customer surface), present when a recent trigger bar exists, null otherwise incl. individual KRX stocks). object_context.reverse_direction_conflict is present only when a local reversal shows stage='confirmed' but the swing's confirmed direction still disagrees — read it before treating reverse_branch.stage='confirmed' as a swing-level reversal. execution_hint.preferred_direction is derived from key_direction alone and is NOT guaranteed to have a matching long_setup/short_setup (they come from an independent break-target resolver) — check that the setup for the preferred side is non-null before treating preferred_direction as an actionable side.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tfNo4h
symbolYese.g. BTCUSDT
include_tfsNoComma-separated additional TFs (e.g. '1h,4h,1d').

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals that object_context is present only when a recent trigger bar exists and null otherwise (including for individual KRX stocks), that internal reason codes are scrubbed, that reverse_direction_conflict appears only under specific conditions, and that execution_hint.preferred_direction is independent of the setups. This is rich, transparent context beyond any structured data.

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 description is a single, densely packed paragraph with long nested clauses and parentheticals (e.g., the object_context exception, the scrubbing note, the reverse_direction_conflict condition). While every detail is relevant, the lack of sentence breaks and structured formatting makes it hard to digest. It could be improved by separating the main purpose from the detailed field behavior.

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?

Since there is no output schema, the description must explain the return values. It does this thoroughly: the main output fields (current state, bias scores, break targets, MTF verdict, execution hint) are listed, and important edge cases (null object_context, scrubbed fields, conflict detection, setup mismatch) are covered. While not exhaustive (e.g., it doesn't enumerate all possible values of stance), it provides sufficient detail for an agent to correctly interpret the tool's output for a complex domain.

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

Parameters3/5

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

Schema description coverage is 67% (symbol and include_tfs have descriptions, tf has enum/default but no description). The tool description does not go into parameter semantics; it only generically mentions 'symbol/timeframe' and 'MTF verdict per timeframe'. It adds little beyond the schema, and since coverage is moderate (not high or low), the baseline of 3 is appropriate.

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 the tool's purpose: 'AI-synthesized market reading for a symbol/timeframe' and lists the specific content (current state, bias scores, break targets, MTF verdict, execution hint). It explicitly contrasts with sibling tool decker.get_market_state by stating that 'Engine-native raw fields are NOT exposed here — use the REST raw contract (GET /public/reading) or decker.get_market_state for those', which differentiates it from its siblings.

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 alternatives: 'use the REST raw contract (GET /public/reading) or decker.get_market_state for those' when raw fields are needed. It also gives actionable usage caveats about execution_hint, warning that the preferred side must have a non-null setup before treating it as actionable, and explains when object_context.reverse_direction_conflict matters.

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.