Kraken MCP Connector
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kraken MCP Connector What's the current price and 24h change for BTC/USD on Kraken?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kraken MCP Connector
Server MCP remoto che espone i dati di mercato pubblici di Kraken (spot) come connettore personalizzato per Claude. Stesso ruolo del connettore Crypto.com già presente nel catalogo di claude.ai, ma ospitato da noi.
Trasporto Streamable HTTP (endpoint
/mcp), stateless, nessuna sessione da mantenere.Nessuna chiave API: usa solo gli endpoint pubblici di Kraken. Sola lettura.
Funziona anche in locale via stdio (Claude Desktop, Claude Code).
Pronto per Docker, Fly.io, Render, Railway o qualsiasi host Node 20+.
Tool esposti
Tool | Cosa restituisce | Endpoint Kraken |
| Bid/ask, ultimo prezzo, volume, VWAP, high/low 24h, variazione % dall'apertura |
|
| Più coppie in una chiamata, oppure tutto il mercato filtrato per valuta quote e ordinato per volume |
|
| Candele OHLCV (1m … 2w), fino a 720 per chiamata |
|
| Order book fino a 500 livelli per lato, con spread |
|
| Ultimi scambi (fino a 1000), con cursore |
|
| Campioni recenti di spread bid/ask |
|
| Elenco coppie, filtrabile per testo, base o quote |
|
| Dettaglio di una coppia: decimali, minimo ordine, tick, commissioni, leva |
|
| Asset conosciuti da Kraken |
|
| Stato dell'exchange e ora del server |
|
Le coppie si possono scrivere come BTC/USD, BTCUSD, XBTUSD, XXBTZUSD o in
stile Crypto.com BTC_USDT: il server prova le varianti e, se Kraken risponde
"Unknown asset pair", riprova con i codici storici (XBT, XDG).
I prezzi sono restituiti come stringhe, esattamente come li manda Kraken, per non introdurre arrotondamenti.
Related MCP server: polymarket-book-mcp
Avvio locale
npm install
npm run dev # http://127.0.0.1:3000/mcp
curl http://127.0.0.1:3000/healthzTest (usano un finto Kraken locale, non serve rete):
npm testSmoke test contro il vero Kraken, a server avviato:
npm run smoke # locale
npm run smoke -- https://TUO-HOST/mcp # deploymentDeploy
Il server ascolta su PORT (default 3000) e HOST (default 0.0.0.0). Tutte
le variabili sono in .env.example.
Docker (qualsiasi host)
docker build -t kraken-mcp-connector .
docker run --rm -p 3000:3000 kraken-mcp-connectorFly.io
# cambia `app` in fly.toml con un nome libero, poi:
fly launch --no-deploy --copy-config
fly deploy
fly status # l'URL sarà https://<app>.fly.dev/mcpRender
"New +" → "Blueprint", scegli questo repo: render.yaml crea il servizio dal
Dockerfile. L'URL sarà https://<servizio>.onrender.com/mcp.
Railway
"New project" → "Deploy from GitHub repo": Railway rileva il Dockerfile. Genera
un dominio pubblico dalle impostazioni del servizio e usa https://<dominio>/mcp.
Collegarlo a Claude
claude.ai (connettore personalizzato)
Verifica che
https://TUO-HOST/healthzrisponda{"ok":true}.Su claude.ai: Customize → Connectors → "+" → Add custom connector.
Nome:
Kraken. URL:https://TUO-HOST/mcp. Lascia vuoti i campi OAuth.Salva e attiva il connettore nella chat.
Sui piani Team ed Enterprise il connettore va prima aggiunto all'organizzazione da un Owner, poi ogni utente lo abilita.
Nota: l'interfaccia di claude.ai non permette di impostare header
personalizzati, quindi per claude.ai il server va lasciato senza
MCP_BEARER_TOKEN. I dati sono comunque pubblici.
Claude Code
claude mcp add --transport http kraken https://TUO-HOST/mcp
# con token (se MCP_BEARER_TOKEN è impostato sul server):
claude mcp add --transport http kraken https://TUO-HOST/mcp --header "Authorization: Bearer IL-TUO-TOKEN"Claude Desktop (stdio, senza deploy)
npm run buildPoi in claude_desktop_config.json:
{
"mcpServers": {
"kraken": {
"command": "node",
"args": ["/percorso/assoluto/kraken-mcp-connector/dist/stdio.js"]
}
}
}Variabili d'ambiente
Variabile | Default | Note |
|
| Porta HTTP |
|
| Interfaccia di ascolto |
|
| Cambiala solo per test o proxy |
|
| Distanza minima fra due chiamate a Kraken (limite per IP) |
|
| Riuso di una risposta identica per questo tempo |
| vuoto | Se impostato, |
| vuoto | Lista di hostname ammessi nell'header |
Limiti e note
Solo endpoint pubblici: niente saldi, ordini o prelievi. Per questo non servono chiavi e non c'è nulla da rubare sul server.
Kraken limita le chiamate pubbliche per IP. Il throttle e la cache interni bastano per un uso conversazionale; per carichi alti alza
KRAKEN_CACHE_TTL_MS.Il server è stateless: ogni richiesta HTTP crea un'istanza MCP nuova. Si può replicare su più macchine senza coordinamento.
Il trasporto SSE legacy non è servito. Claude usa Streamable HTTP.
Struttura
src/kraken.ts client REST Kraken: normalizzazione coppie, throttle, cache, errori
src/tools.ts definizione dei tool MCP e formattazione delle risposte
src/http.ts entry point remoto (Streamable HTTP, /healthz, bearer opzionale)
src/stdio.ts entry point locale (stdio)
test/ mock di Kraken + test unitari ed end-to-end con il client MCP
scripts/smoke.ts verifica dal vivo contro api.kraken.comLicenza
MIT.
Available Tools
10 toolsget_assetsList assetsARead-onlyIdempotent
Assets known to Kraken (code, display name, decimals, status). Pass assets to look up specific ones.
Inputs: assets.
get_bookGet order bookBRead-onlyIdempotent
Order-book snapshot (bids and asks) for a pair, up to 500 levels per side, best prices first.
Inputs: pair (required), depth.
get_candlestickGet candles (OHLC)ARead-onlyIdempotent
OHLCV candles for a pair. Kraken returns up to 720 candles per call, most recent last. Use since (Unix seconds) to page further back.
Inputs: pair (required), limit, since, interval.
get_instrumentGet instrumentARead-onlyIdempotent
Full detail for one pair: precision, minimum order, tick size, fee schedule, leverage.
Inputs: pair (required).
get_instrumentsList instrumentsARead-onlyIdempotent
List tradable spot pairs. Filter by substring (search), base or quote asset. Returns compact rows; use get_instrument for fees and full detail.
Inputs: base, limit, quote, search.
get_spreadGet recent spreadsBRead-onlyIdempotent
Recent best bid/ask spread samples for a pair (time, bid, ask).
Inputs: pair (required), limit, since.
get_system_statusExchange statusARead-onlyIdempotent
Kraken system status (online, maintenance, cancel_only, post_only) and server time.
Inputs: no named parameters.
get_tickerGet tickerARead-onlyIdempotent
Current snapshot for one pair: best bid/ask, last trade, 24h volume, VWAP, high, low, trade count and percent change since the daily open.
Inputs: pair (required).
get_tickersGet several tickersARead-onlyIdempotent
Snapshots for a list of pairs in one call, or for every pair on the exchange when pairs is omitted (optionally filtered by quote asset, sorted by 24h volume).
Inputs: limit, pairs, quote.
get_tradesGet recent tradesARead-onlyIdempotent
Most recent public trades for a pair (up to 1000). since is the opaque last cursor from a previous call, or a Unix timestamp in nanoseconds.
Inputs: pair (required), count, since.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool targets a distinct market-data resource or granularity: singular vs. list snapshots, candles, order book, trades, spread samples, instrument list vs. detail, assets, and system status. The singular/plural pairs are clearly differentiated by their descriptions, and no two tools appear to do the same thing.
All tools use a consistent snake_case get_<noun> pattern, with intentional singular/plural distinctions for snapshot vs. list operations. There are no mixed conventions or vague verbs.
Ten tools is well-scoped for a read-only Kraken market-data connector. Each tool earns its place by covering a distinct data type without excessive fragmentation.
The surface thoroughly covers public market data: tickers, candles, order book, trades, spreads, instruments, assets, and system status. The main gap is the absence of private/account or trading endpoints, which may matter if the connector is intended to cover more than public market data.
Related MCP Connectors
Historical tick, order book and settlement data for Polymarket and Predict.fun crypto up/down markets, plus smart-money lists and backtest quotes, over a read-only MCP server.
Real-time crypto market data: candles, tickers, orderbooks across 13+ exchanges via MCP.
Public Gate market data MCP for spot, futures, margin, options, delivery, earn, and alpha.
Hyperliquid MCP — read-only market data from Hyperliquid's public info API.
Related MCP Servers
- AlicenseAqualityBmaintenanceRead-only MCP server for Blocksize real-time market data: crypto VWAP, bid/ask, FX, metals and tokenized equities, with pricing, coverage and x402 endpoint lookup. Signed-in users of the Claude, ChatGPT and Cursor connectors get 30,000 free live-data credits every month (1 credit = $0.001); subscriptions from EUR 49/month.71MIT
- AlicenseAqualityDmaintenanceRead-only MCP server for Polymarket, providing order books, market metadata, and price history via public GET endpoints. It requires no private keys and cannot place trades.5MIT
- AlicenseAqualityCmaintenanceEnables MCP clients to retrieve TradingView market data, including historical OHLCV candles, quotes, technical indicators, and screener results over stdio or SSE.4MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to read Sierra Chart study outputs, chart discovery, and study metadata/history via read-only tools over Streamable HTTP or stdio.MIT