MCP App Store
by KeenEthics

Overview

DEBYKO collects market data from 22 venues — 19 perpetual-futures venues such as Binance, Bybit, OKX, Hyperliquid, dYdX, Kraken Futures, Deribit, GMX and Avantis, and 3 spot markets — and lets an AI client read it and set up alerts on it. Every value comes with its venue, the time the venue published it, the time DEBYKO received it and its age; a value that is not current comes back as stale with a reason, never as a number. Each day of stored history is sealed on Base, and any row can be checked against it. With this connector Claude can: - compare funding rates, open interest and order books across venues, with the age of every number; - find instruments that match a condition across venues with one query, e.g. "funding above 0.01% per 8 hours on at least three venues"; - reconstruct the market at a past moment: snapshots as they stood then, completed candles, gaps shown as gaps; - set up an alert from a sentence ("alert me in Telegram when BTC funding turns negative on two venues"): link Telegram, restate the condition in plain words, create the rule, show what it answers now and how to turn it off; webhooks are signed (Standard Webhooks); - manage alerts: list, pause, resume, edit, delete, or stop all at once; - check any stored row against the daily root on Base. Nothing places orders, moves money or changes your plan, keys or billing. When something is in the way — no account, no channel, a plan limit — the server says what to do in plain steps. Sign in with your DEBYKO account through OAuth (a code sent to your email). A new address gets a Free account with no card and every venue; paid plans add history, request capacity and more alert rules.

Tools

account

ChatGPT
What this key sees and what is left of it today: the plan, the platform venues (venues.included), the layers, the limits, and today's counters against them (requests with the remainder and by class, DQL, streams, Agent evaluations, archive files). Read-only. Needs a key; free: it is not counted as a request on the key. Use this when you need your plan's venues, limits or what is left of them today, before a long job or after a call was refused for the plan; for every venue DEBYKO collects use venues.

admin_account

ChatGPT
Staff only. One account as its Admin panels show it: plan and trial, calls and refusals by tool (of its latest 500 calls), rules with their state, mails sent, where it came from. The address of this one account is in the answer. Use this when asked about a specific user.

admin_calls

ChatGPT
Staff only. The call record's rows as an account's drill-down shows them, newest first: tool, endpoint, arguments (venue, instrument, timeframe, depth, DQL where), outcome, refusal code, latency. Accounts are hashes unless account is given; never an address, IP or browser. Use this when asked which calls were made or refused.

admin_funnel

ChatGPT
Staff only. The Dash page and the funnel for a period: sign-ups per source and per day, the Dash path counts, drop-offs before an account, funnel steps, retention (1 d, 7 d), first-call errors, limits hit, trials started/ended/paid, top tools and instruments. Counts only, no account rows. Use this when asked what happened in the funnel.

admin_listings

ChatGPT
Staff only. The Listings, Resolution and Storage pages. Without arguments: per venue the catalogue, collecting, not triaged, gone, open gaps, GB per dataset and class, and the resolution line. With venue or lookup: per listing its group, classes in force, GB per dataset, since, open gaps (at most 500). Both carry the resolution queue (unresolved listings with the reason). Use this for questions about what is collected and stored.

admin_system

ChatGPT
Staff only. The Storage and Status pages: disk used, free and net growth per day, days until full, venues live, open gaps. What no Admin page shows (deploys, incidents, Agent run latency, pending backfill, Sentry) is named in absent. Use this when asked how the platform is doing.

agent_channel_connect

ChatGPT
Connects a channel for Agent alerts. {kind: "telegram"} returns a one-time link to @debyko_bot (it works once, for 10 minutes) and the steps; {kind: "email"} emails a confirmation link to the account's address; {kind: "webhook", url} adds the webhook, sends it a test message and returns its status. First ask the user which they want, and for a webhook its public https:// address. Give the user next as numbered steps, link exactly as returned; after they say they pressed Start or confirmed, check with agent_channels. The webhook's signing key is never returned here: next says where the user gets it. Not counted on your key. Use this when the account has no channel for an alert, or the user wants another one; to see the channels it has use agent_channels.

agent_channels

ChatGPT
Where the account's Agent alerts can go, and in what state: Telegram (linked with the chat, pending while a link waits for Start, not_linked, or disabled with the reason), email (not_confirmed until confirmed) and webhooks (masked address, working, failing or not_set_up, last delivery), the plan's channel limits and shortest check interval, today's notifications against the daily limit (notifications, with PLAN_NOTIFICATION_LIMIT and retry_after once used), and whether Agent is on. Call it before agent_rule_create, and again after the user says they pressed Start in Telegram. With no channel, ask the user whether they want Telegram, email or a webhook and follow next. Not counted on your key. Use this when you need to know where the account's alerts can be sent; to add a channel use agent_channel_connect.

agent_rule_create

ChatGPT
Creates an Agent alert rule: DEBYKO checks a DQL condition every interval_s seconds and notifies the chosen channels the first time it turns from false to true, with the user's label and the facts (instrument, venue, value, time UTC), never buy or sell. Before calling, make the condition concrete with the user: DEBYKO has no user positions, so if the user describes a loss or an entry ('when I'm down 5%'), ask for the entry price and compute the level; never guess. Write the DQL only with names listed in docs://dql (see "Plain language → DQL") and venue codes from venues; every plan can use every venue and instrument. Before saving, restate the DQL to the user in plain words and let them correct it. Ask the user for the label. Call agent_channels first, and when it shows more than one channel ask which ones. After: show the dry run (dry_run, per venue values, and notifications.text: notifications per firing and how many of the day's are used): if currently is true, say what next says and offer to adjust the level; then tell the user how to turn it off (turn_off). A refusal (no channel, a plan limit, a stopped Agent) carries next: give it to the user as written. Not counted on your key. Use this when the user wants to be notified when a market condition turns true; to change or pause a rule use agent_rule_set, to test a condition without saving use screen.

agent_rule_delete

ChatGPT
Deletes an Agent rule: it stops at once and sends nothing more; its past firings stay at agent.debyko.com/firings. It cannot be undone: confirm with the user which rule (by its label) before calling; to stop a rule for a while, pause it with agent_rule_set instead. Not counted on your key. Use this when the user wants an alert gone for good; to pause it use agent_rule_set with enabled: false.

agent_rule_get

ChatGPT
Reads one of your saved DEBYKO Agent alert rules by rule_id or exact label. Returns its original persisted DQL condition, label, status, interval, channels, last firing and history (times it would have fired in 30 days; past fact). Sends nothing, no evaluation budget. No webhook URL or credential. Requires an account key. Not counted on your key. Use this when the user asks what a named DEBYKO rule checks, requests its DQL, or wants that rule explained (also: что проверяет правило); for current true/false state use agent_state.

agent_rule_result

ChatGPT
Reads the persisted live candle result for one rule, instrument and UTC bar_end: true, false or unknown with reason, data_as_of, actual evaluation times, attempt, final and receipt_id. Absence of webhook never means false; not_measured means no retained observation. Results are retained seven days. Use agent_state to resolve rule_id. Counts as one request on your key. Use this when comparing an independent candle calculation or distinguishing false from missing inputs for a particular candle; for current account-wide rule states use agent_state.

agent_rule_set

ChatGPT
Changes an Agent rule: enabled false pauses it and true resumes it; label, interval_s and channels change what it says, how often it is checked and where it sends. Setting the same values again changes nothing. Change only what the user asked for; rule_id comes from agent_rule_create or agent_state. After, tell the user the rule's status as returned. Not counted on your key. Use this when the user wants to pause, resume or edit an alert; to remove it for good use agent_rule_delete.

agent_set_enabled

ChatGPT
Turns Agent on or off for the whole account. Off is the kill switch: no rule is checked and nothing is sent until it is on again; on resumes the rules that stopped with it. Agent is on by default: call this with enabled: true only when the user asks for it (for example after a rule came back with code AGENT_STOPPED), and with false only when the user asks to stop everything. Tell the user what changed. Not counted on your key. Use this when the user wants every alert stopped, or Agent turned back on; for one rule use agent_rule_set.

agent_state

ChatGPT
The state of the account's Agent rules, polled: per rule state (true, false or unknown, with a reason when it is unknown), previous_state (what this key was told the last time it asked about the rule, null the first time), evaluated_at and effective_interval, and what Agent states of it: label, enabled, channels, last_fired_at and, when DEBYKO paused it, paused_reason; the top-level agent is on or stopped. rule_id narrows to those rules (UUIDs, comma separated); leave it out for every rule of the account. fresh=true evaluates the rules now instead of reading the last scheduled evaluation, and is charged against the plan's evaluations/day budget. Counts as one request on your key. Use this when the user asks for their DEBYKO rules, alerts, signals, active conditions or when a rule last fired (also: правила, алерты, сигналы, moi pravila); for the saved DQL of one rule use agent_rule_get.

anchor_proof

ChatGPT
A row of DEBYKO's stored history and the Merkle path from it to the root of its UTC day, which is posted to a contract on Base within 24 hours of the day's end: the canonical text of the row, its hash, index of rows, the audit path to the partition, the partition's leaf and the path to day_root, and where that root is on the chain. Verify it with SHA-256 alone (docs.debyko.com/attest/verify). The anchor proves the data did not change after the anchor time; it proves nothing about its correctness at collection. A day not yet anchored, a row never stored or already dropped by retention, and a row changed since the anchor are each their own error code. Counts as one request on your key. Use this when you need to prove that a stored history row has not changed since its day was anchored; for the row's values use history.

candles

ChatGPT
Completed price bars (open, high, low, close, volume) for the selected listings, one per period, in any stored timeframe and price type; a period nobody reported is a gap, never invented. Up to 100 listings and 1,500 bars per listing a call. Every plan reads every timeframe; the depth varies by plan and timeframe: Free 1m 48 hours, 5m/15m 7 days, 1h 30 days, 4h/1d 90 days; Mini 7/30/90/180 days; Standard a year; Pro all. Past it, PLAN_LIMIT names the depth, the deeper plan, the earliest from and a ready retry_with. Counts as one request on your key. Use this when you need open, high, low and close bars over a window; for a layer's values at past instants use history, for the latest values use snapshots.

funding_settlements

ChatGPT
One row for each time a venue settled a listing's funding, newest first: the settlement time, the rate as the venue published it for its own interval (rate_8h restates it), the interval in force and its interval_check against the venue's published one (a mismatch is flagged, never corrected), origin (live recorded as it settled, backfill read from the venue's history), and cap, floor, at_cap. A print with no rate is missing, never zero; not_recorded names venues with no prints. Window (from, to], a week by default; 1,000 rows a page, follow next_cursor. Depth is the plan's history (PLAN_LIMIT with earliest_from and retry_with). min/max over a window → history with summary. Counts as one request on your key. Use this when you need what a venue actually charged at each funding settlement; for the current funding rate and next settlement use snapshots, for sampled values over a window use history.

history

ChatGPT
The same snapshot (same layers: ticker, mark, funding, oi, book, stats, venue_depth) as it stood in the past: one row per period (interval), per named instant (at; use the served_at of an earlier answer to replay exactly what it showed) or per message as it arrived (raw), with gaps written out as gaps and their cause (coverage). Up to 100 listings a call, 2,000 rows per layer with interval and 100,000 rows with raw. min/max over a window → history with summary. Counts as one request on your key. Use this when you need a layer's values as they stood at past instants or over a past window; for the latest values use snapshots, for price bars use candles.

instruments

ChatGPT
A bounded page of listings (instrument on a venue): venue symbol, market kind, contract specification and collected dataset policy. kind selects perpetual (default), spot or all. where selects (DQL selection grammar), as_of asks about the past, mapped filters mapped/unmapped listings, and collected filters listings collected by current policy. limit defaults to 500 (maximum 500); follow next_cursor until null to read the complete catalogue. Pages share registry_revision. Free: not counted on your key. Use this when you need listing symbols, market kinds, contract specifications or collection policy; for market values use snapshots. To read the full catalogue, follow next_cursor with the same filters until it is null; restart from the first page if the cursor is rejected.

screen

ChatGPT
Run a DQL query across venues and return the instruments that match, a page at a time. Give exactly one of query (DQL text) and query_object (the same query as a JSON object). Each value carries its venue, arrival time and age; computed values say derived: true, and an instrument the data could not decide is dropped unless include_unknown is set. Write the query only with fields, functions and periods listed in docs://dql (its section "Plain language → DQL" gives units and common shapes) and venue codes from venues; when the user asked in words, say the query back in plain words next to the result. Counts as one request on your key. Use this when you need the instruments that meet a condition across venues; for the values of listings you already know use snapshots.

snapshots

ChatGPT
The latest reading of each layer (layers: ticker, mark, funding, oi, book, stats, venue_depth; all of them when omitted) for the selected listings, each value with its venue and market kind, when it arrived and how old it is. kind selects perpetual (default), spot or all; DQL selection still evaluates perpetual listings only. Up to 500 listings a call. A layer that is not current is not hidden: it comes back with its status (stale, missing, not_published, off), its reason and its dates, and no value (allow_stale puts a stale value under withheld). missing lists a pair no venue lists (not_listed). Counts as one request on your key. Use this when you need the latest values now; for values at past instants use history, for price bars use candles, for a condition across venues use screen.

venues

ChatGPT
A bounded page of venues DEBYKO collects, with public code, market kind, listing counts and collection coverage. kind selects perpetual (default), spot or all. limit defaults to 500 (maximum 500); follow next_cursor until null to read the complete catalogue. Pages share registry_revision. Free: not counted on your key. Use this when you need venue codes or collection coverage; for venue listings use instruments. To read the full catalogue, follow next_cursor with the same filters until it is null; restart from the first page if the cursor is rejected.

account

Claude

agent_channel_connect

Claude

agent_channels

Claude

agent_rule_create

Claude

agent_rule_delete

Claude

agent_rule_get

Claude

agent_rule_result

Claude

agent_rule_set

Claude

agent_set_enabled

Claude

agent_state

Claude

anchor_proof

Claude

candles

Claude

history

Claude

instruments

Claude

screen

Claude

snapshots

Claude

venues

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps