# decker MCP server

Deterministic market-state engine for trading agents — state, gate, coordinates, with receipts.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-gigshow-decker
- Repository: https://github.com/gigshow/decker-ai
- Website: https://decker-ai.com/mcp

## Install
- Endpoint: https://api.decker-ai.com/api/v1/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Remote header: X-API-Key (required; secret)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://api.decker-ai.com/api/v1/mcp
- Header: X-API-Key

## Tools
- decker.get_signals - Active trading signals for the current user (with Skill Overlay applied), in customer-facing shape: coordinates (entry/target/stop), decision (ENTER/WAIT/SKIP), action_gate posture (GO/WATCH/HOLD — a stance, not an order command), progress, MTF verdict, and a plain-language summary_ko line. risk_reward_ratio is computed on the DISPLAYED coordinates (after overlay). Signals are retained rather than cut when they age (turn-retention policy) — read freshness_state (open|aged) / age_bars / freshness_sec before treating an old PENDING row as current. Filtered by symbols / min_progress / action_gate. Before placing any order through any execution tool, check the intent with decker.validate_intent. Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.get_assembly - Multi-timeframe optimal-path assembly per symbol (STRATEGY_LAYER §8): one deterministic machine verdict combining all live timeframes — direction, grade (aligned | structure+pullback | exhaustion-reversal), entry (now vs wait, with source TF), stop (risk stop), target (upper-TF target), RR, and a conditional switch coordinate on mixed structure. Upper TF supplies the target (slower = higher success), lower TF supplies the entry. This is the single judgment authority — narrate or filter it, do not re-decide coordinates. Omit symbol for all 14 universe symbols. Endpoint: https://api.decker-ai.com/api/v1/mcp
- 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. Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.get_view - The engine's VIEW for a symbol — the same composed card the daily briefing sends (single composer, verbatim): overall verdict, big/main timeframe alignment, the current game narrative in plain language, coordinates (baseline ref_price / target / invalidation), 'at this price, this view', and recent self-scoring verdicts (receipts). layer=STATE_VIEW: a market-state reading, NOT a trade instruction. Prefer this over get_market_state when you want the interpreted view instead of raw engine fields. Before placing any order through any execution tool, check the intent with decker.validate_intent. Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.get_market_state - 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). Before placing any order through any execution tool, check the intent with decker.validate_intent. Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.get_state_timeline - Market State v0 — per-bar state timeline for a symbol/timeframe (same schema as decker.get_market_state, except each item carries a SLIM `game` tag {status, target_id, zt_regime, provenance} instead of the full game block — read status transitions across bars to see how the target game unfolded (forming → testing → resolved/failed); ascending by bar_ts). Bars the engine did not emit are simply absent (honest gaps, no filling). Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.get_user_skills - Trading skill catalog + currently active overlay for this user. Returns 3 base skills (conservative_v0/standard_v0/aggressive_v0) and the user's selected one. Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.set_skill_overlay - Change active trading skill overlay for this user. Immediately affects all subsequent get_signals calls and downstream channels. Endpoint: https://api.decker-ai.com/api/v1/mcp
- decker.validate_intent - Pre-trade gate check for a proposed order intent. Call this BEFORE placing any order through any execution tool (e.g. a broker MCP's review→place flow). Checks the intent (symbol + side) against Decker's deterministic market state: engine action_gate (GO/WATCH/HOLD — a transition posture, not an order command), current structural state, and the active signal's direction / invalidation (stop) coordinates. Returns a stance reading, NOT an approval or rejection: the vocabulary is the engine gate as-is plus a mechanical side_alignment (aligned/opposed vs the active signal's direction). covered=false means the engine does not emit state for this symbol — treat as unknown, not as HOLD. The order decision and responsibility remain with the calling agent/user. Every check is persisted to an auditable decision ledger (check_id). Endpoint: https://api.decker-ai.com/api/v1/mcp

## Resources
- decker://rules - Decker operation rules — public policy layer The published deterministic rulebook governing signal operations (the public policy layer; rules decide, the LLM only explains). Canonical source: https://github.com/gigshow/decker-ai/blob/main/operation_rules/RULES.yaml MIME type: application/yaml
- decker://track-record - Decker public track record — daily self-scoring ledger Daily self-scored view ledger — losses published as-is, corrections stay in git history. Canonical source: https://github.com/gigshow/decker-ai/blob/main/TRACK_RECORD.md MIME type: text/markdown

## Prompts
Not captured

## Metadata
- Owner: io.github.gigshow
- Version: 1.10.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 12, 2026
- Source: https://registry.modelcontextprotocol.io
