mcpbeat Sign in

Decker MCP Server

answering

Decker is answering right now. Last checked 3 min ago. It exposes 12 tools. Last commit 18 Sep 2026.

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

Uptime history 47 days of history · worst day 98%
47 days agonow
98.9%
Uptime 24h
91 of 92 checks
12
Tools
read from the server
549 ms
Response time
average over 24h
3
Stars
last commit 18 Sep 2026

What changed 2

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 9 August 2026. No other catalogue keeps this.

9 Aug 2 tools changed the parameters they ask for decker.get_signals, decker.validate_intent

What the code does

We read the source, 20 h ago · tools taken from the live server · rules 3dff92dd89df

In the project's build, not in the package

Found in continuous integration, deployment or infrastructure files, or in a neighbouring package of the same monorepo. None of this is installed when you add the server: it describes how the project is built and released. We list it because a leaked key in a build pipeline is still a real problem, but it is not something this server does on your machine.

Builds a database query by concatenation .github/workflows/track-record.yml:23
      - name: Update track record
        env:
          DECKER_API_KEY: ${{ secrets.DECKER_API_KEY }}   # optional — richer scorecard if set

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

Decker missed 2 checks this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 3 min ago.

run in your terminal
claude mcp add decker --transport http https://api.decker-ai.com/api/v1/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "decker": {
      "url": "https://api.decker-ai.com/api/v1/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.decker]
url = "https://api.decker-ai.com/api/v1/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "decker": {
      "url": "https://api.decker-ai.com/api/v1/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "decker": {
      "url": "https://api.decker-ai.com/api/v1/mcp"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, but it did not say what kind of credentials it expects.

Available tools 12

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

decker
decker.close_position
Axis③ (Order/Execution) — closes (or partially reduces) an existing position through DECKER'S OWN execution engine (see decker.place_order for what that means — same account-linkage requirement applies here for real positions). Unlike place_order, there is no crypto-6 restriction — this reduces risk, not adds it, so any symbol you actually hold (including HL-synthetic/KRX paper positions) can be closed. Mode is NOT chosen by the caller — this looks up whatever position(s) actually exist for the symbol (real via live exchange query, virtual via the paper ledger) and closes whichever are open; if both a real and a virtual position exist for the same symbol, both are closed and the response reports execution_mode as 'mixed'. No open position for the symbol = a clean not-found response, not an error — safe to call speculatively.
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.
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.
decker.get_positions
Axis③ (Order/Execution) — this user's actual exposure: real open futures positions (execution_mode=real, with live sl_price/tp_price), virtual (paper) open positions, and the last 10 closed round-trips per mode. This is what your money actually did, distinct from decker.get_signals (axis②, what the engine recommends) — use this before deciding whether to place another order (avoid duplicate/over-exposure) and to check current protective stop/target on a real position.
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.
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.
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).
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.
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.
decker.place_order
Axis③ (Order/Execution) — unlike every other tool here, this one moves money. It places a market order through DECKER'S OWN execution engine (same path as the decker-ai.com chat trading UI, source='mcp') — it does NOT hand off to your own broker connection or exchange account; Decker executes using whatever exchange credentials this user has separately linked to their Decker account on the website. execution_mode (virtual|real) is NOT chosen by the caller — it is resolved server-side from this user's account settings (user_settings.execution_mode) AND the platform's real-trading kill switch; a real-money order requires both an explicit user opt-in AND role/tier eligibility (PRO/ENTERPRISE or admin) AND passing the tier's hard notional/leverage/daily-count caps (checked here before dispatch — violation blocks the order, does not downgrade it to virtual). The response always states which mode actually executed — treat 'virtual' in the response as authoritative even if you expected real. Restricted to the crypto-6 universe (BTCUSDT/ETHUSDT/SOLUSDT/BNBUSDT/XRPUSDT/DOGEUSDT) for this MCP path — HL-synthetic and KRX symbols are read-only via other tools. Call decker.validate_intent first to read the engine's current stance; this tool does not check it for you.
decker.set_skill_overlay
Change active trading skill overlay for this user. Immediately affects all subsequent get_signals calls and downstream channels.
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).

Endpoints

URLTransportStateLatencyChecked
https://api.decker-ai.com/api/v1/mcp streamable-http needs auth 513 ms 3 min ago

Alternatives to Decker

same job, measured the same way
I
Backend
by aiguardrail

Deterministic pre-trade risk checks for autonomous AI trading agents.

5 tools answering
Flatland
by flatlandfi

Financial reasoning infrastructure for AI agents: typed models, deterministic compilation, receipts

40 installs/wk local only
Crossingkey MCP
by crossingkeyintelligence

CrossingKey MCP for agent commerce, x402 payments, deterministic execution, and verifiable receipts.

18 tools answering
QuantContext
by zomma-dev

Deterministic stock screening, backtesting, and factor analysis for AI trading agents

75 installs/wk local only
DJZS Trust MCP
by djzs

Deterministic pre-execution audit for trading agents. PASS/WAIT/FAIL, reproducible verdict_hash.

4 tools answering
Base Multi Wallet MCP
by lordbasilaiassistant-sudo

MCP server for AI agents to manage multiple wallets with coordinated trading and batch operations on

238 installs/wk local only
TradingCalc MCP: Crypto Futures Math
by skalinin909

Deterministic crypto futures, on-chain risk, and prediction-market math. 31 tools. Not AI estimates.

31 tools answering
Thousand API
by thousand-api

Certainty for AI Agents. Deterministic MCP tools for dates, crypto, finance. 84 tools.

84 tools answering

Decker — questions

Answers built from our own checks of this server.

What can Decker do?
It exposes 12 tools, read directly from the server on our last check. Among them: decker.close_position, decker.get_assembly, decker.get_market_state, decker.get_positions, decker.get_reading, decker.get_signals and 6 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Decker working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 92 checks got a reply (98.9%), average response time 549 ms. The bar chart above shows every period we have measured.
How do I connect Decker?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You will need your own credentials: it refuses anonymous clients.
Does Decker need an API key?
Yes. Every time we knock, Decker answers with an authorization challenge instead of its tool list — that is how we know it is running and gated rather than broken. Bring your own credentials and it will talk.
How fast is Decker?
It answers our handshake in 549 ms on average, which is faster than 25% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is Decker open source?
Yes — it is published under the MIT licence, written in Python, 3 stars on GitHub and 1 open issue. The source link is on this page, so you can read exactly what it does with your data before you connect it.