get_current_priceLABSCO SUMMARY
The safety harness is the product.
Read tools are the easy half; what distinguishes this one is that a mutating call cannot happen by accident. Trading is disabled by default, per-call amount and notional caps have to be set positively before any order runs, mass-cancel needs confirm_cancel_all=true, and on mainnet every mutating call additionally needs confirm_live_trade=true — so a session configured for testnet cannot quietly hit the live book. Two things to weigh before you commit: the channel wakeup pipeline depends on an unreleased Claude Code feature surface and its contract may change, and with test mode off these tools spend real money.
What it is
An independent MCP server for Deribit, run as a long-lived container. It covers the exchange's read surface (tickers, OHLCV candles, order books, Greeks, funding, liquidations) and its mutating surface (market, limit, stop, trailing and bracket orders, combos, mass-cancel, position close), and pairs both with an alert engine and a sidecar that can push events back into a running Claude Code session as native channel notifications.
What you get
- 60+ tools covering Deribit's read and write surface, from instrument metadata to every order primitive and its edit, cancel and close counterparts
- Market data with freshness you can reason about:
get_current_pricereturnssourceandage_seconds, andskip_cacheforces a fresh REST fetch before a time-sensitive call —get_current_price,get_ticker,get_instruments,get_instrument - Order books two ways — a one-shot REST read, or a WebSocket-cached snapshot plus a delta against the last one, so a tight loop does not pay per-tick latency —
get_order_book,get_orderbook_live,get_orderbook_diff,unsubscribe_orderbook,get_book_summary - OHLCV candles at 1/3/5/10/15/30/60/120/180/360/720-minute or daily resolution, plus the public trade tape, captured liquidations, funding history, realized volatility and options Greeks —
get_chart_data,get_last_trades_by_instrument,get_recent_liquidations,get_funding_rate_history,get_historical_volatility,get_greeks - A pre-trade audit that is enforced, not advisory: every mutating tool requires a
decision_idminted byrecord_decisionand validated against the database before the Deribit call, and the id rides through as the order label so fills join back to the reasoning - Self-scheduling alerts — threshold, cross and percentage-change price conditions, plus time alerts the agent sets to wake itself up later —
set_price_alert,set_time_alert - An external news webhook: anything that can POST can stash a headline with a structured payload and push it into the agent's session, with
dedupe_keymaking repeated aggregator posts idempotent —news_list - An operator dashboard at
/dashboard/showing health, registered sidecar consumers, positions, alerts, timers, recent decisions, order audits, outbox events and the latest news
Requirements
A Deribit account with API credentials — DERIBIT_API_KEY and DERIBIT_API_SECRET — and DERIBIT_TEST_MODE, which defaults to true and points at test.deribit.com. Trading is off until you set DERIBIT_TRADING_ENABLED, and it stays off unless all four caps are positive numbers: DERIBIT_MAX_AMOUNT_INVERSE, DERIBIT_MAX_AMOUNT_LINEAR, DERIBIT_MAX_AMOUNT_OPTION and DERIBIT_MAX_NOTIONAL_USD. Transport is chosen by MCP_TRANSPORT — stdio for local use, http for a gateway, where MCP_SHARED_SECRET must be sent in the X-Deribit-MCP-Secret header. DERIBIT_EVENT_ADMIN_TOKEN guards consumer registration, the news endpoints and the dashboard. The documented path is Docker: fill .env, docker compose pull, docker compose up -d, and the MCP endpoint is /mcp/ on port 8000. State lives in one SQLite file on a mounted volume.
Setup effort
Follow the published steps
USE CASES
Letting an agent watch a market without polling it
Set price alerts on the levels that matter and time alerts for the checks that are calendar-driven, then let the session sleep until the alert engine wakes it through the channel pipeline.
Reconstructing why an order was placed
Read the decision that was recorded before the call and join it to the order audit rows written either side of the Deribit request — the decision id rides through as the order label.
Pricing an options position
Pull the instrument list for the currency and kind, read Greeks and implied volatility per contract, and check the book summary before sizing.
Feeding your own signals into the session
POST a headline, summary and structured payload to the news endpoint with a dedupe key, and have the agent pull the full item when the channel wakes it.
Rehearsing the whole thing before risking money
Leave test mode on, run against test.deribit.com through every mutating tool, and only then consider the mainnet switch and the per-call live confirmation it demands.
60 tools
Listed in project docs. Your client may show a different list.
get_tickerget_greeksget_instrumentsget_instrumentget_order_bookget_orderbook_liveget_orderbook_diffunsubscribe_orderbookget_book_summaryget_chart_dataget_last_trades_by_instrumentget_last_trades_by_currencyget_recent_liquidationsget_funding_rate_historyget_historical_volatilityget_combosget_combo_idsget_combo_detailsget_leg_pricesget_account_summaryget_account_summariesget_positionsget_positionget_open_ordersget_open_orders_by_labelget_order_stateget_order_state_by_labelfind_order_by_client_idget_user_tradesget_order_historyget_trigger_order_historyget_settlement_historyget_transaction_logget_order_marginget_marginsget_rate_limit_statusset_price_alertset_time_alertlist_alertsremove_alertrecord_decisionupdate_decision_outcomelist_decisionsadd_notelist_notesupdate_notedelete_notenews_savenews_listbuysellplace_bracketedit_orderedit_order_by_labelcancel_ordercancel_orders_by_labelcancel_all_ordersclose_positioncreate_comboBEFORE YOU INSTALL
What to know first
Tools you get
60 tools named in the project's documentation. The ten trading tools refuse to run unless DERIBIT_TRADING_ENABLED is on and all four limits are positive, so a fresh install can use 50. buy, sell, place_bracket and close_position are among them.
Requires
- DERIBIT_API_KEY in your environment
- DERIBIT_API_SECRET in your environment
INSTALLATION
Connect your client
Server setup
Setup
git clone https://github.com/schroejahr2/deribit-mcp.git
cd deribit-mcpConfigure: cp .env.example .env, then edit DERIBIT_API_KEY/SECRET, TELEGRAM_BOT_TOKEN/CHAT_ID, MCP_SHARED_SECRET (openssl rand -hex 32), DERIBIT_EVENT_ADMIN_TOKEN (openssl rand -hex 32), and the trading limits if you flip DERIBIT_TRADING_ENABLED=true
Pull the published image and start: docker compose pull then docker compose up -d
Health check: curl http://<YOUR_DERIBIT_HOST>:8000/health → {"ok":true}
Open the operator dashboard at http://<YOUR_DERIBIT_HOST>:8000/dashboard/ and use DERIBIT_EVENT_ADMIN_TOKEN when it asks for a token
Wire it into your MCP client / gateway — transport: streamable-http, url: http://<YOUR_DERIBIT_HOST>:8000/mcp/, headers: {"X-Deribit-MCP-Secret": "<YOUR_DERIBIT_MCP_SECRET>"} (MCP_TRANSPORT=stdio is also supported for local dev)
Verify end-to-end on the TESTNET before anything else: follow SMOKE-PLAYBOOK.md with DERIBIT_TEST_MODE=true — "Run it BEFORE you ever flip DERIBIT_TEST_MODE=false"
Optional, for the wakeup pipeline: mint a sidecar consumer token via POST /events/register with the admin bearer, and install the Bun/TS sidecar plugin from channel-plugin/
docker
docker compose pull && docker compose up -dMCP Clients
Any MCP client — HTTP
{
"mcpServers": {
"deribit-mcp": {
"type": "http",
"url": "http://<YOUR_DERIBIT_HOST>:8000/mcp/",
"headers": {
"X-Deribit-MCP-Secret": "<YOUR_DERIBIT_MCP_SECRET>"
}
}
}
}