Skip to main content
Glama

decker.get_engine_state_raw

[DEPRECATED — use decker.get_market_state (consumer contract CR1). Kept only for KRX symbols and until usage telemetry shows zero calls; will be removed.] Market State v0 — current engine structural state for a symbol/timeframe (latest evaluated bar, persisted engine emit read as-is, zero recompute). DOMAIN FRAME (why this engine exists): the market is read as a TARGET GAME — every coordinate comes from a verified anchor (a past level where a triggered move actually succeeded). The game block tells you the context that matters: game.status = forming_target (new anchor set, awaiting test) | testing_target (price is testing whether the declared target holds) | direction_resolved (game decided, price traveling); game.target = WHO is being judged (anchor id/phase/band); game.progress_dest = where price goes if the move proceeds (the opposing verified anchor to conquer); game.reverse_dest = where it goes if the move fails (the opposite house — also the stop logic's home); game.why_gate = full gate derivation chain; game.zt_regime = output canonicality (restored = deterministic delta lineage). action_gate alone (GO/WATCH/HOLD) is only a posture — the game context is the information. RAW CONTRACT: fields are engine-native vocabulary (c_state, hold_reason, R_* risk enums …), NOT customer-facing prose — for a human-language view use decker.get_view (with tf) or decker.get_reading. layer=STATE: this is a market-state reading, NOT a trade instruction. Absent fields are null (engine did not emit that axis — no filling). IMPORTANT: top-level state.c_state/action_gate/trigger_kind reflect the TRIGGER SNAPSHOT (only populated on a bar that actually had a trigger event) — null on most bars is normal, not a data gap. For the always-present, every-bar-populated view of the same axes use game.phase.c_state / game.phase.action_gate instead (different freshness, same underlying engine state machine). Don't read a null top-level field as 'engine has no state' — check game.phase first. current_price (top-level, 2026-09-03): {price, bar_ts} — the single latest completed-bar close for this symbol ACROSS ALL timeframes (not just the requested tf), useful when comparing multiple timeframes' target bands against one 'now' price. null for KRX individual-stock symbols. Before placing any order through any execution tool, check the intent with decker.validate_intent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYese.g. BTCUSDT
timeframeYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: it discloses raw engine-native vocabulary (c_state, hold_reason, R_*), that absent fields are null rather than filled, that top-level state.c_state/action_gate/trigger_kind reflect a trigger snapshot and are normally null, and that current_price spans all timeframes. It does not state permission/auth or rate-limit characteristics, so it falls just short of full disclosure.

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?

Front-loading is excellent: the deprecation/successor notice leads, so an agent immediately knows not to prefer this tool. However, the body is a dense wall of domain framing and field-level caveats that is long relative to a two-parameter raw read, and several paragraphs (e.g. the anchor/target-game exposition) could be trimmed or deferred.

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?

For a complex, no-output-schema tool the description compensates well: it explains the likely return shape (game block sub-fields, phase axes), null semantics, snapshot-vs-always-present freshness divergence, and the special current_price field. An agent has enough to interpret the response without an output schema.

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 coverage is 50% (symbol has only 'e.g. BTCUSDT', timeframe is an enum). The description references a symbol/timeframe pair and notes current_price is null for KRX individual-stock symbols and spans all timeframes, which adds marginal context, but it never defines the timeframe semantics or any constraints on the parameters themselves.

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 operative clause states a specific verb and resource: 'current engine structural state for a symbol/timeframe (latest evaluated bar, persisted engine emit read as-is, zero recompute).' It explicitly distinguishes itself from siblings by naming decker.get_market_state as the successor, decker.get_view/get_reading for prose, and marking itself deprecated and KRX-only.

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?

Gives explicit routing: use decker.get_market_state instead, this is kept only for KRX symbols and until telemetry hits zero. It also directs to decker.get_view (with tf) / decker.get_reading for human-language output and to decker.validate_intent before placing any order. When-to-use and alternatives are both spelled out.

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.