평균이 아닌,
결정론적 시장 상태
Deterministic market state,
not averages.
에이전트가 그대로 읽는 인터페이스. 어떤 모델도 밸류에이션 못 하는 자산의 현재 상태를 — 결정론적으로 라벨하고, 매일 공개로 채점합니다. An interface your agent can read — the current state of assets no model can value, labeled deterministically and scored in public every day.
curl -s https://api.decker-ai.com/api/v1/public/demo | jq .
MCP는 Claude·Cursor 쓰는 사람용이에요. 그냥 빠르게 써보려면 → 텔레그램 · 웹앱 MCP is for Claude / Cursor users. Just want to try it fast? → Telegram · Web app
14 도구 — 무엇을 반환하나14 tools — what each returns
모두 결정론 — 엔진이 영속시킨 값을 재계산 없이 직독. 실시간 LLM 호출 0(당신 에이전트가 LLM). 11개는 상태 읽기이지 매매 지시가 아닙니다 — 단 place_order·close_position·update_protective_stops 3개는 예외로 Decker 자체 실행엔진이 실제로 주문을 넣거나 바꿉니다(아래 참조).All deterministic — persisted engine values read as-is, zero recompute. No on-demand LLM call (your agent is the LLM). 11 are state readings, not trade instructions — except place_order, close_position, and update_protective_stops, which actually place or modify orders through Decker's own execution engine (see below).
get_view(symbol)get_market_state(symbol, timeframe)get_reading(symbol, tf)get_signals(symbols, action_gate, …)get_trigger_history.Active signals — with your skill overlay applied. Filter by symbols · gate (GO/WATCH/HOLD) · progress. Reflects only the current moment (the GO filter is often 0 rows) — for past trigger history use get_trigger_history.get_trigger_history(symbol, timeframe?, since?, limit?)get_assembly(symbol?)validate_intent(symbol, side)place_order/close_position으로 Decker가 직접 집행하기 전에도 동일 적용) 의도(종목+방향)를 엔진 상태에 대조: action_gate(자세) · 활성 시그널과의 방향 정합(aligned/opposed) · 무효선. 승인/거부가 아니라 상태 읽기 — 매 판정이 감사 원장에 영속(check_id).Pre-trade gate check — before placing any order through any execution tool (e.g. a broker MCP), or before Decker itself executes via place_order/close_position below, check the intent (symbol + side) against engine state: action_gate (posture) · side alignment vs the active signal (aligned/opposed) · invalidation. A stance reading, not an approval — every check is persisted to an auditable ledger (check_id).get_state_timeline(symbol, timeframe, since)get_user_skills()set_skill_overlay(skill_id)get_positions()place_order 전에 중복진입/과노출 확인용.Your actual exposure — real open positions (with live stop/target), virtual open positions, and the last 10 closed round-trips per mode. No money moved — check this before place_order to avoid duplicate/over-exposure.place_order(symbol, side, notional_usd)update_protective_stops를 이어서 부르세요.Market order executes — through Decker's own execution engine (not your own broker). Crypto-6 only — GOLD, Samsung, etc. are read-only via the tools above, you can't order them here. Real execution requires a separately linked exchange key + PRO tier on decker-ai.com — otherwise silently downgrades to virtual; the response's execution_mode field is always authoritative. ⚠ This call alone attaches no stop-loss/take-profit (same as any manual order) — follow it with update_protective_stops below.close_position(symbol, close_fraction?)update_protective_stops(symbol, sl_price?, tp_price?, mode?)decker://rules(공개 룰북 원문) · decker://track-record(일일 자기채점 장부) — 에이전트가 "왜 HOLD인가"를 설명할 때 정본을 직접 인용할 수 있어요.Two MCP resources are also served: decker://rules (the public rulebook) and decker://track-record (the daily self-scoring ledger) — so your agent can quote the canonical source when explaining "why HOLD".payload enum 사전payload enum reference
에이전트가 그대로 읽는 값의 의미. 이 사전이 있어야 에이전트가 추론으로 때우지 않습니다.What the values your agent reads mean — so the agent doesn't have to guess.
c_state 구조 상태structural stateA_FORMING직전 움직임이 진짜였는지 확인 중confirming the prior move was realB_FORMING자리를 시험하는 구간testing whether the level holdsB_OBSERVING시험 자리를 관찰하는 구간observing the tested levelB_SET자리 확정 — 다음 시도 대기level confirmed — awaiting next attemptC_SET새 시도가 진행 중a new attempt in progressBREAK_PLUS / _MINUS기준선 위 돌파 / 아래 이탈broke above / below the baselineaction_gate 자세 (명령 아님)posture, not an orderGO움직임 신호가 켜진 자세movement signal is onWATCH주시 자세watchingHOLD지켜보는 자세holdingverdict 사후 자기채점 (리시트)self-scored after the facthit뷰대로 전개됨the view played outmiss목표 미달 / 반대로 감missed target / went againstinvalidated무효선 터치 = 시나리오 종료invalidation touched = scenario over한 인터페이스, 세 시장One interface, three markets
모든 심볼이 같은 스키마로 나옵니다 — get_market_state("005930.KRX","1d") 든 get_market_state("BTCUSDT","4h") 든. 신선도는 시장마다 다르며, 응답에 정직하게 실립니다.Every symbol returns the same schema — get_market_state("005930.KRX","1d") or get_market_state("BTCUSDT","4h"). Freshness differs per market and is reported honestly in every response.
6종 · 30m–1d 봉 · 장중 갱신.6 assets · 30m–1d bars · updated intraday.
symbol:
BTCUSDTHL 합성 8종 · 같은 판독 스키마.8 synthetics · same reading schema.
symbol:
XYZ_GOLDUSD, XYZ_KR200USDKOSPI + KOSDAQ · 약 2,770 종목 · 종가 판정. 포트폴리오 자세 ADD / HOLD / REDUCE / EXIT.KOSPI + KOSDAQ · ~2,770 tickers · close-of-day. Portfolio posture ADD / HOLD / REDUCE / EXIT.
symbol:
005930.KRX (삼성전자)(Samsung)get_market_state·get_signals가 세 시장을 같은 스키마로 반환해요.Crypto, commodities and indices update on intraday bars; Korean equities settle once daily at the close. MCP get_market_state and get_signals return all three with the same schema.붙이기 전에, 받게 될 걸 먼저 보세요See what you'll get, before you set anything up
curl 한 줄 → MCP 한 줄 → 에이전트가 좌표와 리시트로 답합니다.one curl → one MCP line → the agent answers with coordinates and receipts.
MCP로 붙이기Connect over MCP
쓰는 앱을 고르세요. 앱마다 붙이는 방식이 조금 달라요 — 탭을 고르면 딱 맞는 설정이 나옵니다.Pick your app. Each one connects a little differently — choose a tab and you get the exact config for it.
무료 API 키 발급Get a free API key
decker-ai.com → Settings → API Keys. 텔레그램이면 @deckerclawbot에 /apikey. At decker-ai.com → Settings → API Keys. On Telegram, send /apikey to @deckerclawbot.
curl https://api.decker-ai.com/api/v1/mcp/health → tools 목록이 보이면 OK.Before touching config, check the server is up (no key needed): curl https://api.decker-ai.com/api/v1/mcp/health → you should see the tools list.설정에 붙여넣기Paste the config
Claude Desktop → Settings → Developer → Edit Config 버튼을 누르면 설정 파일이 열립니다. 아래를 붙여넣으세요. (Claude Desktop은 원격 MCP를 mcp-remote 브리지로 붙여요 — Node/npx 필요.)Claude Desktop → Settings → Developer → Edit Config opens the file. Paste the block below. (Claude Desktop reaches remote MCP through the mcp-remote bridge — Node/npx required.)
{
"mcpServers": {
"decker": {
"command": "npx",
"args": ["-y", "mcp-remote",
"https://api.decker-ai.com/api/v1/mcp",
"--header", "X-API-Key:${DECKER_API_KEY}"],
"env": { "DECKER_API_KEY": "dk_live_YOUR_KEY" }
}
}
}
Cursor → Settings → MCP → Add new, 또는 ~/.cursor/mcp.json을 직접 열어 붙여넣으세요. Cursor는 원격 MCP 서버(Streamable HTTP)를 직접 지원해서 브리지가 필요 없어요.Cursor → Settings → MCP → Add new, or open ~/.cursor/mcp.json directly. Cursor supports remote MCP servers (Streamable HTTP) natively — no bridge needed.
{
"mcpServers": {
"decker": {
"url": "https://api.decker-ai.com/api/v1/mcp",
"headers": { "X-API-Key": "dk_live_YOUR_KEY" }
}
}
}
Codex(ChatGPT 앱 내장) 는 ~/.codex/config.toml에 MCP 서버를 등록합니다. 최신 버전은 원격 MCP 를 네이티브로 지원해서 브리지가 필요 없어요 — 아래를 먼저 써보세요.Codex (bundled with the ChatGPT app) registers MCP servers in ~/.codex/config.toml. Recent versions support remote MCP natively — no bridge needed. Try this first.
[mcp_servers.decker]
url = "https://api.decker-ai.com/api/v1/mcp"
http_headers = { "X-API-Key" = "dk_live_YOUR_KEY" }
/sse를 붙이면 405 Method Not Allowed로 실패해요 — 반드시 /api/v1/mcp로 끝나야 합니다 (뒤에 아무것도 붙이지 마세요).⚠ Appending /sse to the url fails with 405 Method Not Allowed — it must end exactly at /api/v1/mcp (nothing after).위 방식이 도구를 못 찾으면 (구버전 Codex CLI), 브리지로 등록하세요 (TOML · Node/npx 필요).If the above doesn't pick up the tools (older Codex CLI), register through the bridge instead (TOML · Node/npx required).
[mcp_servers.decker]
command = "npx"
args = ["-y", "mcp-remote",
"https://api.decker-ai.com/api/v1/mcp",
"--header", "X-API-Key:${DECKER_API_KEY}"]
env = { DECKER_API_KEY = "dk_live_YOUR_KEY" }
앱 재시작 후 물어보기Restart, then ask
앱을 완전히 종료했다 다시 켜야 MCP가 로드됩니다. 그다음 아래처럼 물어보세요.You must fully quit and reopen the app for the MCP to load. Then ask something like below.
decker가 뜨고, 답변에 좌표(기준·목표·무효선)와 최근 판정이 나오면 성공.How to know it worked: decker shows in the tool list, and the reply comes back with coordinates (ref / target / invalidation) and recent verdicts.
탐색 → 내 설정 → 결정 → 실행 → 관리Explore → your settings → decide → execute → manage
아래는 금(GOLD, XYZ_GOLDUSD) — HL 합성 8종 중 하나, 비트코인이 아닌 이종 자산 — 으로 실제 라이브 호출한 순서다. 탐색·결정 3단계는 크립토·상품·KRX 어떤 심볼이든 동일 스키마로 그대로 통한다. 단 실행(4단계)은 crypto-6 전용이라 GOLD는 여기서 끊기고, 마지막 두 단계는 크립토 심볼(예: ETH)로 이어야 한다 — 이 경계 자체가 정직한 설계다.Below is the actual live call order for Gold (XYZ_GOLDUSD) — one of the 8 HL-synthetic symbols, not Bitcoin. The first 3 phases work identically for any symbol — crypto, commodity, or KRX. Execution (phase 4) is crypto-6 only, so GOLD's journey stops there — the last two phases continue with a crypto symbol (e.g. ETH). That boundary is by design, not an oversight.
1. 탐색 — 지금 상태가 뭐야1. Explore — what's the state right now
4개 도구, 넓게 봤다가 좁혀 들어가는 순서.4 tools, wide-to-narrow.
get_viewget_readingget_assemblyget_state_timelineget_market_state: 위 4개와 달리 사람 질문으로 잘 안 닿는 유일한 도구. 엔진 원어(c_state·R_*) 그대로 나오는 raw 계기라, 다른 도구/에이전트가 정밀값이 필요할 때 쓴다. 해석된 답이 필요하면 위 get_view·get_reading을 쓸 것.Developer aside — get_market_state: the one tool that doesn't map to a natural customer question. It's a raw instrument (engine-native c_state/R_* vocabulary, unfiltered) for another tool/agent that needs the precise value — for an interpreted answer use get_view/get_reading above instead.2. 내 설정 — 어떤 리스크 성향으로 볼까2. Your settings — through which risk lens
2개 도구, 이후 모든 신호에 즉시 반영됨.2 tools, take effect on every signal immediately after.
get_user_skillsset_skill_overlayget_signals 호출부터 바로 반영(사이즈·손절·목표 전부). 되돌리려면 같은 방식으로 원래 스킬 다시 지정."Switch me to scalp" — takes effect immediately, the very next get_signals call reflects it (size, stop, target). Revert the same way by naming your original skill.3. 결정 — 그래서 살 수 있어?3. Decide — so, can I buy?
3개 도구. 여기까지는 GOLD·삼성전자·크립토 무엇이든 동일하게 작동.3 tools. Everything up to here works identically for GOLD, Samsung, or any crypto.
get_signalsget_assembly의 defects 필드와 교차확인 권장."Any signal I can act on right now?" — actual entry/target/stop coordinates with your skill overlay applied. ⚠ can carry inverted-looking risk geometry with no warning on this tool alone — cross-check get_assembly's defects field.get_trigger_historyvalidate_intent4–5. 실행 & 관리 — crypto-6 전용, 여기서부터 GOLD는 못 감4–5. Execute & manage — crypto-6 only, GOLD's journey ends here
4개 도구. Decker 자체 실행엔진이 실제로 주문을 넣거나 바꾸는 유일한 구간 — BTC/ETH/SOL/BNB/XRP/DOGE 6종만 되고, GOLD·KRX는 여기서부터 조회 전용으로 남는다.4 tools. The only stretch where Decker's own execution engine actually places or changes orders — BTC/ETH/SOL/BNB/XRP/DOGE only; GOLD and KRX stay read-only from here on.
place_orderupdate_protective_stopsget_positionsclose_position막힐 때Troubleshooting
◆ 도구가 안 보여요The tool doesn't appear
앱을 완전히 종료했다 다시 켰나요? MCP는 재시작 후에만 로드됩니다 (Claude Desktop은 Cmd+Q). mcp-remote를 쓰는 앱은 Node/npx가 깔려 있어야 해요.Did you fully quit and reopen? MCP loads only after a restart (Cmd+Q on Claude Desktop). Clients using mcp-remote need Node/npx installed.
◆ 키 오류가 나요Key / auth error
X-API-Key에 dk_live_ 키를 넣었는지 확인하세요. 서버·도구는 키 없이도 확인돼요: curl .../api/v1/mcp/health. 키는 decker-ai.com → Settings → API Keys.Check that X-API-Key holds your dk_live_ key. Server + tools are checkable without a key: curl .../api/v1/mcp/health. Get a key at decker-ai.com → Settings → API Keys.
◆ 설정 파일이 어디죠?Where's the config file?
Claude Desktop은 Settings → Developer → Edit Config가 열어줍니다. Cursor는 ~/.cursor/mcp.json, Codex는 ~/.codex/config.toml.Claude Desktop opens it via Settings → Developer → Edit Config. Cursor uses ~/.cursor/mcp.json, Codex ~/.codex/config.toml.
◆ 터미널이 없어요No terminal
맨 위 curl 대신 이 링크를 그냥 브라우저에서 열면 결과가 보입니다: api.decker-ai.com/…/public/demoSkip the curl — just open this link in a browser to see the output: api.decker-ai.com/…/public/demo