Skip to main content
Glama
osindo-dev

WhaleScope MCP

by osindo-dev

WhaleScope MCP โ€” Binance Futures Market Intelligence

๐Ÿ‡ฎ๐Ÿ‡ฉ Bahasa Indonesia | ๐Ÿ‡ฌ๐Ÿ‡ง English

MCP server yang menyediakan data publik Binance USDS-M Futures (funding rate, open interest, long/short ratio, taker volume, candlestick, order book, volatility) plus pembanding Binance Spot (harga, order book, candlestick, CVD) sebagai tools yang bisa dipanggil Claude. Semua data yang disajikan bersifat publik read-only โ€” tidak ada order/trading, tidak ada akses ke data akun pribadi.

Quick Deploy

Deploy to Cloudflare

Tombol ini clone repo + bikin Worker di akun Cloudflare kamu sendiri, termasuk provision KV namespace & D1 database baru otomatis (Cloudflare generate id/database_id baru buat akun kamu, gak perlu bikin manual). Bukan zero-touch sepenuhnya โ€” biar jujur soal apa yang masih manual: setelah klik, kamu TETAP perlu set secret (Cloudflare gak bisa nebak value dari layanan eksternal) โ€” lihat .dev.vars.example di repo ini buat daftar lengkap, atau Setup Proxy Vercel di bawah. PROXY_URL/PROXY_SECRET WAJIB (33 dari 34 tool butuh), Coinalyze API key OPSIONAL (cuma 1 tool) โ€” skip kalau gak butuh liquidation history.

Related MCP server: binance-intelligence-mcp

Tujuan

Menyediakan gambaran positioning pasar Binance Futures โ€” bukan cuma harga, tapi juga siapa yang lagi buka posisi apa (retail vs top trader), seberapa crowded leverage-nya, dan di harga berapa likuiditas menumpuk โ€” langsung dalam percakapan dengan Claude, tanpa perlu buka dashboard exchange terpisah.

Manfaat

  • Satu pintu buat banyak sinyal. Funding rate, open interest, order book, order flow, dan histori liquidation โ€” semua lewat satu MCP connector, bukan gonta-ganti tab.

  • Bisa bedain retail vs whale. binance_get_top_trader_ratio kasih breakdown murni top-trader (terpisah dari binance_get_long_short_ratio yang blended) โ€” berguna buat lihat kalau posisi retail dan whale lagi divergen.

  • Native Binance di mana itu penting. Harga, funding rate, klines, order book โ€” semua lewat jalur native Binance (bukan derivasi pihak ketiga), supaya presisi terjaga terutama untuk pair kecil/kurang likuid.

  • Gratis buat pemakaian personal โ€” lihat bagian Biaya.

Kelebihan

  • 29 tools mencakup lima sudut analisis: bias arah pasar, area harga kunci (order book), konfirmasi eksekusi (order flow/aggressor), pembanding Futures-vs-Spot (leverage-driven vs demand riil), dan market-wide scan (funding rate ekstrem lintas semua pair, atau bandingkan metrik across beberapa pair) โ€” plus tool composite (binance_analyze_pair) buat overview cepat tanpa banyak tool call, dan config/histori (threshold per-pair, basis time-series) yang tersimpan di Workers KV.

  • Read-only terhadap data pasar Binance โ€” tidak ada order/trading. Satu- satunya tool yang menulis state (binance_set_pair_threshold) cuma nyimpen preferensi threshold kamu sendiri di Workers KV, tidak menyentuh akun Binance/data pihak luar sama sekali.

  • Transparan soal keterbatasan tiap tool (lihat bagian di bawah), bukan dibungkus seolah semua data sempurna.

  • Infrastruktur cukup dengan free tier (Cloudflare Workers + Vercel Hobby + Coinalyze free tier) untuk pemakaian personal.

Kekurangan

  • Bukan stream real-time. Semua tool bersifat request/response (snapshot atau histori periodik) โ€” tidak ada push event detik-demi-detik (misalnya liquidation baru terjadi). Menambah itu butuh komponen infrastruktur tambahan yang di luar cakupan project ini saat ini.

  • Satu tool masih lewat agregator pihak ketiga (Coinalyze, khusus histori liquidation) โ€” lihat bagian Keterbatasan untuk detail.

  • Setup awal butuh proxy Vercel (wajib) โ€” bukan pasang-langsung-jalan, ada langkah konfigurasi manual sekali di awal. Coinalyze API key OPSIONAL (cuma buat 1 dari 34 tool), gak menghalangi setup awal kalau di-skip.

  • Rate limit free tier Coinalyze (40 request/menit per API key) bisa jadi bottleneck kalau dipakai sangat intensif.

  • Tidak ada data wallet on-chain atau data dari exchange selain Binance Futures USDS-M.

Sumber data: dua jalur, tergantung tool.

  • Binance native, lewat proxy relay Vercel. Domain Binance (fapi.binance.com) memblokir traffic dari Cloudflare Workers di level WAF (403, company-wide โ€” sudah dites langsung dari worker ini, bukan asumsi). Vercel pakai IP pool berbeda, jadi tidak kena block yang sama. Worker Cloudflare relay lewat proxy kecil di proxy/ (project Vercel terpisah, lihat proxy/README.md). Ini jalur untuk funding rate (current & histori), klines/OHLCV, bias multi-timeframe, realized volatility, statistik 24 jam, order book depth, aggregate trades, open interest (current & histori), long/short ratio (blended & top-trader), taker buy/sell volume ratio, dan harga spot (proxy juga relay ke Binance Spot API api.binance.com lewat parameter market=spot, lihat proxy/README.md).

  • Coinalyze, sekarang cuma untuk satu tool yang belum dipindah ke jalur native: histori liquidation (binance_get_liquidation_history). Coinalyze meng-agregasi ulang data yang sama (sumber asli tetap Binance) dan API-nya sendiri di-hosting di Cloudflare, jadi tidak kena block yang sama.

Konsekuensinya, worker ini butuh PROXY_URL/PROXY_SECRET (proxy Vercel, wajib buat 33 tool Binance-native) dan, opsional, COINALYZE_API_KEY (cuma buat binance_get_liquidation_history) โ€” lihat bagian Setup di bawah.

Caching & state, tanpa kredensial tambahan. Response upstream (funding rate, klines, OI, dll โ€” kecuali order book & aggregate trades yang butuh freshness ketat) di-cache bertingkat (5 detik-1 jam tergantung endpoint) lewat Cache API bawaan Cloudflare Workers, tidak perlu setup apapun. Threshold custom per-pair tersimpan di Workers KV (binding CONFIG_KV). Time-series (basis+funding+OI, dan 6 skor sinyal binance_detect_mm_activity) tersimpan di D1 (binding DB) โ€” diisi otomatis oleh Cron Trigger tiap 5 menit untuk watchlist tetap 10 pair (BTCUSDT, ETHUSDT, SOLUSDT, BNBUSDT, XRPUSDT, DOGEUSDT, ADAUSDT, AVAXUSDT, LINKUSDT, LTCUSDT).

Cross-exchange, tanpa proxy tambahan. whalescope_compare_funding_across_exchanges akses Bybit/OKX/Hyperliquid LANGSUNG dari worker (dites dari edge Cloudflare beneran, gak kena WAF/geo-block kayak Binance) โ€” gak ada kredensial atau setup tambahan buat 3 exchange itu.

Yang disediakan

Tool

Fungsi

Sumber

binance_get_funding_rate

Funding rate terkini + basis (deviasi mark vs index price)

Binance native

binance_get_funding_rate_history

Tren funding rate dari waktu ke waktu

Binance native

binance_get_spot_price

Harga spot Binance + basis riil vs mark price futures (beda dari basis di atas yang vs index price). Error jelas kalau pair futures-only (tidak listed di Spot)

Binance native (Spot)

binance_scan_funding_extremes

Scan funding rate SEMUA pair Futures sekaligus (1 call bulk), kembalikan top pair paling crowded long/short

Binance native

binance_get_open_interest

OI snapshot terkini

Binance native

binance_get_open_interest_history

Tren OI naik/turun

Binance native

binance_get_long_short_ratio

Rasio long vs short agregat (blended, semua trader) + tren

Binance native

binance_get_top_trader_ratio

Rasio long/short KHUSUS top trader (breakdown murni, akun atau size posisi)

Binance native

binance_get_order_book_depth

Snapshot order book (bid/ask), spread, wall terbesar

Binance native

binance_get_order_book_imbalance

Imbalance volume bid vs ask di depth 5/10/20, dengan label bias (BULLISH/BEARISH/SEIMBANG)

Binance native

binance_get_agg_trades

Trade individual granular (buy/sell aggressor) untuk deteksi absorption

Binance native

binance_get_liquidation_history

Histori liquidation

Coinalyze

binance_get_taker_volume_ratio

Tekanan beli/jual agresif (taker volume), statistik resmi Binance

Binance native

binance_get_klines

Candlestick OHLCV per timeframe, dukung startTime/endTime (histori jauh ke belakang, buat backtest, maks 1500 candle/panggilan)

Binance native

binance_get_multi_timeframe_bias

Bias Bullish/Bearish/Sideways di 5 timeframe sekaligus (1m/5m/15m/1h/1d)

Binance native

binance_get_realized_volatility

Realized volatility historis (15m/1h) dari log-return, untuk kalibrasi lebar grid

Binance native

binance_get_24hr_ticker

Ringkasan statistik 24 jam (rolling window resmi)

Binance native

binance_get_spot_ticker_24hr

Statistik 24 jam versi Spot (harga, %change, VWAP, volume, jumlah trade) โ€” bandingkan dengan versi Futures di atas

Binance native (Spot)

binance_get_spot_book_ticker

Best bid/ask + qty real-time Spot, lebih ringan dari full order book

Binance native (Spot)

binance_get_spot_order_book

Order book depth Spot (bid/ask, spread, wall terbesar)

Binance native (Spot)

binance_get_spot_klines

Candlestick OHLCV Spot per timeframe, dukung startTime/endTime (maks 1000 candle/panggilan)

Binance native (Spot)

binance_get_spot_agg_trades

Trade individual granular Spot (CVD riil, bukan leverage)

Binance native (Spot)

binance_get_spot_avg_price

Harga rata-rata bergerak Spot (window beberapa menit, lebih stabil dari last-trade)

Binance native (Spot)

binance_check_spot_listing

Cek apakah pair listed di Binance Spot + status trading โ€” dipakai sebelum panggil tool Spot lain untuk pair yang belum pasti

Binance native (Spot)

binance_analyze_pair

Overview cepat 1 pair (composite): funding, tren OI, tren top trader, taker volume, order book, bias harga โ€” 6 tool sekaligus dalam 1 call

Binance native

binance_compare_symbols

Bandingkan 1 metrik (funding rate, %change 24h, OI, top trader ratio, taker ratio) across 2-10 pair sekaligus, diurutkan dari paling ekstrem

Binance native

binance_set_pair_threshold

Set threshold funding/basis custom per-pair (override default ยฑ0.03%/ยฑ0.05%), tersimpan di Workers KV

Workers KV

binance_get_pair_threshold

Cek threshold custom yang sudah di-set untuk sebuah pair

Workers KV

binance_get_basis_history

Histori basis+funding+OI time-series (snapshot Cron tiap 5 menit ke D1), watchlist tetap 10 pair โ€” deteksi "basis melebar lalu kembali" tanpa cek manual berkali-kali

D1 + Cron Trigger

binance_detect_mm_activity

Skor + tier (Weak/Moderate/Strong/Extreme) dari 6 sinyal MM/whale sekaligus (absorption, spoofing heuristic, stop-hunt heuristic, basis arbitrage, OI divergence, funding extreme) โ€” ganti 5-6 tool call manual. Skor spoofing & stop-hunt cuma heuristik 1-snapshot, lihat Keterbatasan

Binance native

binance_market_regime

Klasifikasi kondisi pasar: TRENDING_UP/DOWN, RANGING, BREAKOUT, ACCUMULATION, DISTRIBUTION โ€” pakai ADX(14), tren OI, CVD, spike volatilitas/volume

Binance native

binance_backtest_signal

Validasi empiris sinyal binance_detect_mm_activity: win rate/avg return/max drawdown dari histori sinyal D1 (watchlist tetap), forward return dihitung on-demand dari klines historis

D1 + Binance native

whalescope_compare_funding_across_exchanges

Bandingkan funding rate, last price, open interest, 24h change 1 pair across Binance/Bybit/OKX/Hyperliquid, deteksi divergensi โ€” cross-confirm sinyal MM detection antar exchange. Satu-satunya tool yang BUKAN Binance-only

Binance native + Bybit + OKX + Hyperliquid

binance_get_tool_catalog

Daftar semua tool + kategori/token-cost/use-case, filter per kategori โ€” cek ini dulu sebelum manggil banyak tool individual. Nama+description auto dari tool registry (selalu akurat), kategori/token-cost tetap manual

Semi-otomatis

Framework Analisis: Deteksi Market Maker & Whale

Tidak ada tool yang bisa melihat identitas atau posisi spesifik market maker (MM)/whale secara langsung โ€” data Binance yang publik memang tidak menyediakan itu. Yang bisa dilakukan (dan itulah fungsi framework ini): membaca jejak aktivitas mereka dengan menggabungkan beberapa tool di atas, lalu menghitung skor indikasi dari pola yang muncul.

Empat kategori sinyal yang dideteksi:

Sinyal

Tool utama

Contoh pola

Absorption

order book depth, agg trades (futures & spot), open interest

CVD flat/naik tapi harga stagnan = sell pressure sedang diserap (accumulation); OI spike tajam + harga sideways = posisi besar baru dibuka

Spoofing

order book depth, order book imbalance

Wall besar muncul lalu hilang sebelum sempat tereksekusi; spread tiba-tiba melebar lalu normal lagi dalam hitungan detik

Stop hunt

liquidation history, open interest, klines

Spike liquidation di satu sisi + wick panjang di candle pada waktu yang sama + harga reverse dalam 1-3 candle sesudahnya

Basis arbitrage

spot price, funding rate, open interest

Basis spot-futures melebar lalu kembali cepat; funding ekstrem + OI naik (indikasi hedge short futures / long spot)

Rule of thumb: kalau โ‰ฅ3 sinyal align dalam timeframe yang sama, indikasi aktivitas MM cukup kuat untuk ditindaklanjuti โ€” ini heuristik checklist (lihat tier confidence di dokumen lengkap), bukan probabilitas yang terkalibrasi secara statistik.

Dokumen lengkap: docs/mm_detection_framework.md (v4, final) โ€” berisi kriteria detail tiap sinyal, workflow step-by-step, checklist live, dan mapping tool โ†’ sinyal.

Hasil Validasi Empiris

Setiap klaim teknis di framework ini divalidasi langsung ke worker deployed (bukan asumsi) sebelum masuk versi final. Beberapa temuan yang mengoreksi asumsi awal:

Klaim awal

Hasil validasi

Polling <500ms buat deteksi refresh-rate spoofing

โŒ Latency riil 298-898ms/call (rata-rata ~485ms) lewat proxy chain workerโ†’Vercelโ†’Binance โ€” tidak reliable buat itu

Threshold divergence top-trader ratio universal (flat >15% atau tiered 3-15%)

โŒ Tidak pernah trigger โ€” pergerakan riil 4 pair yang dites (SOLUSDT, BNBUSDT, LINKUSDT, AVAXUSDT) dalam window 2 jam cuma 0.40-2.35 poin, jauh di bawah threshold manapun

Retensi historis top-trader ratio "30-90 hari"

โš ๏ธ Dikoreksi โ€” 90 hari tidak tersedia sama sekali dari Binance; 30 hari cuma di resolusi kasar (4h/1d), resolusi 15 menit cuma ~5 hari ke belakang

Liquidation history bisa dipetakan ke level harga

โŒ Field binance_get_liquidation_history cuma {totalLong, totalShort, dominance} per window waktu, tanpa harga sama sekali โ€” perlu cross-check manual ke klines

Kondisi pasar tenang (BTCUSDT) tidak over-trigger

โœ… Terkonfirmasi โ€” skor ~1-1.5/6 (tier Weak) saat pasar sideways, framework tidak salah alarm di kondisi normal

Detail penuh (termasuk raw data test per klaim): Section 10, docs/mm_detection_framework.md.

Keterbatasan yang jujur perlu diketahui

  • Long/short ratio (binance_get_long_short_ratio) adalah rasio agregat BLENDED, bukan breakdown terpisah "global account (retail)" vs "top trader (whale)". Untuk breakdown murni top-trader, pakai binance_get_top_trader_ratio (sudah native Binance, terpisah dari tool ini).

  • Basis funding rate bisa noisy untuk pair kecil/baru listing โ€” index price Binance adalah rata-rata tertimbang dari beberapa exchange spot, salah satunya bisa illikuid untuk pair semacam itu.

  • Order book depth adalah snapshot sesaat โ€” wall besar bisa hilang dalam hitungan detik (potensi spoofing), jangan overinterpretasi satu snapshot.

  • Threshold "top trader" tidak dipublikasikan Binance secara pasti, dan datanya snapshot periodik, bukan real-time tick-by-tick.

  • Data histori OI (binance_get_open_interest_history) dibatasi retensi endpoint resmi Binance (/futures/data/openInterestHist) โ€” tidak selama histori Coinalyze sebelumnya, cek langsung kalau butuh rentang panjang.

  • Tidak ada data wallet on-chain.

  • Coinalyze free tier: rate limit 40 request/menit per API key โ€” sekarang cuma berlaku untuk binance_get_liquidation_history.

  • binance_detect_mm_activity: skor spoofing & stop-hunt cuma heuristik 1-snapshot, BUKAN true detection. Desain aslinya butuh 2 snapshot order book dalam <3 detik (proxy ini latency-nya ~485ms, belum reliable untuk itu) dan data liquidation granular-harga (Coinalyze rate-limited & tidak ada field harga). Confidence 2 sinyal itu lebih rendah dari 4 sinyal lain di tool yang sama โ€” dicatat juga di evidence text tiap response.

  • binance_market_regime: spike volatilitas/volume dihitung relatif ke window fetch yang sama (10 candle terakhir vs 10 sebelumnya), bukan baseline historis jangka panjang.

  • Time-series D1 (market_snapshots, signal_history) HANYA untuk watchlist tetap 10 pair โ€” pair lain di luar itu tidak pernah di-snapshot cron sama sekali, binance_get_basis_history dan binance_backtest_signal cuma bisa dipanggil untuk 10 pair itu.

  • Belum ada pruning/retention buat row D1 โ€” row nambah terus tanpa batas seiring waktu (di 10 pair x ~6.048 row/hari gabungan kedua tabel, D1 free tier 5 juta write/hari & 5GB storage masih longgar untuk waktu yang lama, tapi ini bukan solusi permanen).

  • Migrasi KVโ†’D1 (basis history) TIDAK backfill data lama โ€” histori basis yang sempat tersimpan di Workers KV sebelum migrasi ini hilang, window 24 jam baru keisi ulang natural beberapa jam setelah deploy.

  • binance_backtest_signal: forward return DIHITUNG ON-DEMAND dari klines historis (close candle 1h terdekat ke waktu target), BUKAN simulasi eksekusi order riil โ€” slippage/fee/partial fill tidak dihitung. Sample size kecil (di bawah ~20 sinyal) berarti confidence rendah, jangan simpulkan sinyal "reliable" dari sedikit data historis (baru mulai terkumpul dari kapan fitur ini deploy, bukan retroaktif).

  • whalescope_compare_funding_across_exchanges: Open Interest belum divalidasi silang ke data live antar 4 exchange (SEHARUSNYA base-asset di semua exchange termasuk OKX yang pakai field oiCcy, tapi belum ada pengecekan langsung โ€” cek ulang kalau angkanya kelihatan janggal). Symbol mapping Binanceโ†’exchange lain best-effort (strip suffix USDT) โ€” pair kecil yang gak listed di Bybit/OKX/Hyperliquid bakal muncul "gagal" di baris itu, bukan bikin tool call gagal total.

  • Rate limit self-throttle ke proxy Binance itu best-effort, BUKAN hard global limiter โ€” counter in-memory per-isolate (src/rateLimiter.ts), efektif SELAMA isolate yang sama dipakai ulang buat request beruntun, TAPI worker ini stateless per-request jadi bukan jaminan keras cross-isolate. Threshold 200 request/menit, count-based (bukan weight-based per-endpoint kayak limit asli Binance).

  • binance_get_tool_catalog SEMI-otomatis โ€” nama+description SELALU akurat (ditarik dari tool registry, gak pernah basi/ketinggalan). Tapi category/token-cost/dependencies TETAP manual (CATALOG_METADATA di src/tools/catalog.ts) โ€” tool baru yang belum di-curated bakal muncul dengan category "uncategorized", tetap kelihatan (gak ke-omit diam-diam) tapi belum ter-kategorisasi rapi.

Setup Proxy Vercel (wajib, sekali saja)

Tool berlabel "Binance native" di tabel atas butuh proxy relay di Vercel, karena worker Cloudflare diblokir langsung oleh WAF Binance. Detail deploy proxy ada di proxy/README.md โ€” ringkasnya:

  1. Deploy folder proxy/ sebagai project Vercel terpisah (Root Directory = proxy), set env var PROXY_SECRET di Vercel (string acak, generate sendiri, misal openssl rand -hex 32).

  2. Set dua secret ini di worker Cloudflare:

    npx wrangler secret put PROXY_URL
    npx wrangler secret put PROXY_SECRET

    PROXY_URL = URL project Vercel (contoh https://whale-pearl.vercel.app), PROXY_SECRET = string yang sama persis dengan yang di-set di Vercel.

Tanpa dua secret ini, tool berlabel "Binance native" akan gagal dengan pesan error yang jelas ("PROXY_URL atau PROXY_SECRET belum diset di worker").

Penting: jangan pernah buat secret Cloudflare dengan VALUE sebagai NAME (misal wrangler secret put lalu tidak sengaja paste value di prompt nama). wrangler secret list hanya boleh membocorkan nama secret, tidak pernah value โ€” kesalahan ini membuat value asli bocor lewat command yang seharusnya aman.

Proxy sekunder / failover (opsional)

Kalau proxy primary kena WAF block/rate-limit/5xx, worker otomatis coba proxy sekunder โ€” TAPI cuma kalau dikonfigurasi. Tanpa ini, perilaku persis sama seperti sebelumnya (1 proxy, error langsung dilempar kalau gagal).

  1. Deploy instance Vercel KEDUA dari folder proxy/ yang sama (region beda kalau mau, misal Hong Kong vs Singapore) dengan PROXY_SECRET sendiri (boleh beda dari primary).

  2. Set dua secret tambahan:

    npx wrangler secret put PROXY_URL_2
    npx wrangler secret put PROXY_SECRET_2

Failover cuma jalan untuk error yang berkaitan sama kesehatan proxy (403 WAF block, 429 rate limit, 5xx) โ€” bukan buat error request (400/401/404) yang bakal gagal identik di proxy manapun.

Setup Workers KV (wajib, sekali saja โ€” kalau fork/deploy repo ini sendiri)

id KV namespace di wrangler.toml repo ini terikat ke akun Cloudflare yang bikin โ€” kalau kamu fork/clone dan deploy ke akun sendiri, wajib bikin namespace baru:

npx wrangler kv namespace create WHALESCOPE_CONFIG

Copy id yang muncul ke [[kv_namespaces]] di wrangler.toml, ganti value id yang lama (binding-nya biarkan tetap CONFIG_KV, kode worker rujuk nama binding itu, bukan id). Tanpa ini, binance_set_pair_threshold dan binance_get_pair_threshold akan gagal dengan error jelas ("CONFIG_KV belum ke-bind di worker").

Setup Workers D1 (wajib, sekali saja โ€” kalau fork/deploy repo ini sendiri)

Sama seperti KV di atas, database_id D1 di wrangler.toml repo ini terikat ke akun Cloudflare yang bikin. Kalau fork/deploy ke akun sendiri:

npx wrangler d1 create whalescope-mcp-db

Copy database_id yang muncul ke [[d1_databases]] di wrangler.toml (binding biarkan tetap DB), lalu jalankan migration:

npx wrangler d1 migrations apply whalescope-mcp-db --remote

Tanpa ini, binance_get_basis_history dan binance_backtest_signal akan gagal dengan error jelas ("D1 database (binding DB) belum ke-bind di worker"), dan Cron Trigger snapshot basis+sinyal MM (tiap 5 menit) akan gagal silent tiap tick (ke-log ke Workers Logs, tidak menggagalkan endpoint /mcp lain).

Setup Coinalyze API Key (OPSIONAL โ€” cuma buat 1 dari 34 tool)

Beda dari 3 setup di atas, ini BUKAN prasyarat buat server jalan. Worker deploy & 33 tool lain jalan normal tanpa ini โ€” cuma binance_get_liquidation_history yang butuh.

  1. Daftar gratis di https://coinalyze.net

  2. Ambil API key dari halaman akun

  3. Set sebagai secret worker (bukan di wrangler.toml, bukan hardcode):

    npx wrangler secret put COINALYZE_API_KEY

    (paste API key saat diminta)

Tanpa secret ini, cuma binance_get_liquidation_history yang gagal dengan pesan error jelas ("COINALYZE_API_KEY belum diset") โ€” tool lain gak kepengaruh sama sekali. Skip section ini kalau gak butuh liquidation history.

Admin: Usage Log (OPSIONAL)

Worker publik gampang ditemuin (terdaftar di MCP Server Registry) โ€” jadi ada endpoint kecil buat liat siapa aja yang connect. Ini BUKAN MCP tool (sengaja HTTP endpoint terpisah, gak pernah muncul di tools/list) โ€” kalau dibikin tool biasa, SIAPA AJA yang connect ke server ini bisa liat IP visitor lain, kontradiksi sama tujuannya.

  1. Set secret (tanpa ini, endpoint SELALU balik 403 โ€” fitur nonaktif by default, aman):

    npx wrangler secret put ADMIN_SECRET
  2. Akses:

    curl "https://<worker-url>/admin/usage?key=<ADMIN_SECRET>&hours=24"

    Balikin JSON: total request, jumlah IP unik, top 20 IP (+ negara, count), 20 request terakhir mentah. Default window 24 jam, bisa diubah lewat hours.

Data disimpan di D1 (request_log), di-prune otomatis tiap Cron tick buat row lebih dari 30 hari (tabel ini gak dibatasi watchlist tetap kayak market_snapshots/signal_history, jadi bisa growth kalau ada traffic asing beneran).

Setup Deploy Otomatis (GitHub Actions โ†’ Cloudflare Workers)

Repo ini sudah punya workflow di .github/workflows/deploy.yml yang otomatis menjalankan wrangler deploy setiap kali ada push ke branch main.

Langkah setup (sekali saja)

1. Buat Cloudflare API Token

  1. Buka https://dash.cloudflare.com/profile/api-tokens

  2. Klik "Create Token"

  3. Gunakan template "Edit Cloudflare Workers"

  4. Scope ke akun kamu, lalu buat token

  5. Salin token yang muncul (hanya ditampilkan sekali)

2. Tambahkan token sebagai GitHub Secret

  1. Buka repo ini di GitHub โ†’ Settings โ†’ Secrets and variables โ†’ Actions

  2. Klik New repository secret

  3. Name: CLOUDFLARE_API_TOKEN

  4. Value: token dari langkah 1

  5. Simpan

3. Trigger deploy

Deploy akan otomatis jalan begitu ada push baru ke main. Untuk trigger manual tanpa push baru, buka tab Actions di GitHub repo โ†’ pilih workflow "Deploy to Cloudflare Workers" โ†’ Run workflow.

4. Cek hasil deploy

Setelah workflow selesai (cek tab Actions), worker akan live di:

https://whalescope-mcp.<subdomain-cloudflare-kamu>.workers.dev

Buka URL tersebut โ€” harus muncul JSON status "ok".

Setup Custom Domain (whalescope-mcp.jaringan.dev)

Ini tidak bisa dilakukan lewat GitHub Actions โ€” perlu langkah manual satu kali di dashboard Cloudflare:

  1. Buka https://dash.cloudflare.com โ†’ pilih akun kamu

  2. Buka Workers & Pages โ†’ pilih worker whalescope-mcp

  3. Buka tab Settings โ†’ Domains & Routes

  4. Klik Add โ†’ Custom Domain

  5. Masukkan whalescope-mcp.jaringan.dev

  6. Cloudflare akan otomatis membuat DNS record yang diperlukan jika domain jaringan.dev sudah berada di zona Cloudflare akun yang sama. Kalau domain itu terdaftar di akun/registrar lain, kamu perlu tambahkan CNAME record secara manual mengarah ke target yang ditampilkan Cloudflare.

Setelah custom domain aktif, worker bisa diakses di https://whalescope-mcp.jaringan.dev (bukan lagi domain .workers.dev).

Daftarkan sebagai Custom Connector di Claude

  1. Buka Claude (claude.ai) โ†’ Settings โ†’ Connectors

  2. Pilih Add custom connector

  3. Masukkan URL: https://whalescope-mcp.jaringan.dev/mcp (atau https://whalescope-mcp.<subdomain>.workers.dev/mcp jika belum setup custom domain โ€” perhatikan path /mcp di akhir, wajib)

  4. Simpan, lalu aktifkan connector tersebut untuk percakapan yang kamu mau

Contoh Penggunaan

Setelah connector aktif, tinggal minta lewat percakapan biasa โ€” Claude yang menentukan tool mana yang dipanggil (dan berapa kali) berdasarkan pertanyaan:

  • "Funding rate BTCUSDT sekarang gimana, ada indikasi crowded?" โ†’ binance_get_funding_rate

  • "Pair apa yang funding-nya paling ekstrem sekarang di seluruh market?" โ†’ binance_scan_funding_extremes

  • "Cek overview lengkap ETHUSDT โ€” funding, OI, order book, bias harga" โ†’ binance_analyze_pair (composite, 1 call ganti 6 tool terpisah)

  • "Ada tanda-tanda aktivitas market maker di SOLUSDT belakangan ini?" โ†’ kombinasi beberapa tool (order book, agg trades, OI, liquidation, klines) mengikuti Framework Analisis di atas โ€” sebutkan pair-nya, Claude yang menjalankan workflow deteksinya

  • "Bandingin funding rate BTC, ETH, SOL, sama BNB" โ†’ binance_compare_symbols

Karena semua tool read-only, aman dicoba tanya apapun soal data pasar tanpa risiko memicu order/trading โ€” worker ini tidak punya kemampuan itu sama sekali.

Uji coba manual sebelum daftar ke Claude (disarankan)

Tidak ada test suite otomatis di repo ini โ€” npm run typecheck adalah satu- satunya automated check. Verifikasi tool baru/berubah dilakukan manual lewat wrangler dev + curl JSON-RPC.

npm install
npx wrangler dev

Di terminal lain, contoh untuk tool Binance native:

curl -X POST http://localhost:8787/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "binance_get_funding_rate",
      "arguments": { "symbol": "BTCUSDT" }
    }
  }'

Kalau ini mengembalikan data funding rate + basis BTCUSDT yang valid, jalur proxy Vercel bekerja. Untuk jalur Coinalyze, ganti name ke binance_get_liquidation_history โ€” kalau itu juga valid, jalur Coinalyze bekerja.

Audit & Hasil

Efisiensi Token

Response tool MCP masuk langsung ke context window Claude โ€” beda dari REST API biasa di mana ukuran response relatif "gratis". Repo ini pernah punya beberapa tool yang boros token tanpa disadari; sudah diperbaiki dan diverifikasi ke worker live (2026-08-12):

Temuan

Sebelum

Sesudah

binance_get_klines/spot_klines โ€” structuredContent.candles selalu ikut full array

~14.400 token di limit=500 (57,7KB), sampai ~43.000 token di limit maksimal 1500

Opt-in lewat parameter includeCandles (default false) โ€” default cuma summary (bias, swing high/low, 15 candle terakhir)

6 tool histori (OI history, long/short ratio, top trader ratio, funding rate history, taker volume ratio, liquidation history) โ€” tabel teks tanpa batas baris

20-29KB (~5.000-7.250 token) per call di limit=500

Truncate ke 15 baris terakhir di teks โ€” summary (avg/tren/dominance) tetap dihitung dari SEMUA data yang di-fetch, bukan cuma yang ditampilkan

5 deskripsi tool terpanjang (funding_rate, top_trader_ratio, spot_price, klines, spot_klines)

16.869 karakter total

15.671 karakter (~7%, ~300 token dihemat di one-time tool-list load per sesi)

binance_scan_funding_extremes โ€” structuredContent.crowdedLong/crowdedShort duplikat array yang sudah ada di tabel teks

~2,9KB di limit=50 (maks)

Cuma topSymbolLong/topSymbolShort (1 simbol paling ekstrem tiap sisi) โ€” tabel lengkap tetap di teks

Verifikasi ulang kapan saja:

npm run token-audit

Manggil worker deployed langsung, ukur ukuran skema tool, ukuran response lintas skala limit, dan "Information Density Ratio" (data vs boilerplate) buat beberapa tool representatif, plus simulasi 1 percakapan multi-turn realistis. Bukan bagian npm test/CI (hit worker live + Binance/Coinalyze via itu) โ€” dipakai manual pas mau cek dampak perubahan tool description/ format response terhadap konsumsi token. Estimasi token pakai heuristik chars/4 (gak ada tokenizer resmi Claude yang di-publish sebagai package), jadi angkanya approximate, berguna buat perbandingan relatif (sebelum vs sesudah perubahan), bukan angka token exact.

Keamanan

  • Validasi input simbol pair. symbolSchema (dipakai semua tool yang butuh parameter symbol) dibatasi maksimal 20 karakter dan hanya menerima [A-Z0-9_]. Sebelumnya tidak ada batasan โ€” karena simbol dipakai langsung sebagai bagian key Workers KV (threshold:${symbol}, basis_history:${symbol}), input tanpa batas panjang/karakter berisiko melebihi limit 512-byte key KV atau menyisipkan karakter (titik dua, newline) yang mengacaukan konstruksi key. Batas 20 karakter divalidasi ke data riil (simbol terpanjang di Binance Futures saat ini 17 karakter), dan regex sengaja mengizinkan underscore supaya kontrak dated/quarterly (contoh BTCUSDT_260925) tetap valid.

  • Read-only terhadap akun. Tidak ada tool yang melakukan order/trading atau mengakses data akun pribadi โ€” satu-satunya tool yang menulis state (binance_set_pair_threshold) cuma menyimpan preferensi threshold di Workers KV milik worker sendiri.

  • Kredensial selalu lewat Wrangler secret, tidak pernah di-hardcode atau masuk wrangler.toml/git โ€” lihat peringatan eksplisit di bagian Setup Proxy Vercel soal cara aman set secret.

  • Repo ini di-scan manual untuk memastikan tidak ada API key, secret, atau kredensial nyata yang ter-commit โ€” hanya placeholder/contoh (misal URL proxy whale-pearl.vercel.app di dokumentasi setup adalah nama contoh, bukan endpoint nyata).

Biaya

  • Cloudflare Workers: free tier 100.000 request/hari โ€” untuk pemakaian personal trading analysis ini jauh dari cukup.

  • Vercel (proxy relay): free tier Hobby plan mencakup jutaan invocation/bulan untuk serverless function โ€” tidak akan kena biaya untuk pemakaian personal. Perhatikan: PROXY_SECRET wajib dijaga kerahasiaannya, karena siapapun yang tahu URL + secret bisa memakai quota proxy ini atas nama kamu.

Kemungkinan besar kamu tidak akan pernah kena biaya di kedua platform untuk pemakaian personal.

Disclaimer

Project ini open source dan publik โ€” source code, arsitektur, dan dokumentasi (termasuk framework analisis di docs/) bisa dilihat, di-clone, dan dimodifikasi siapa saja lewat repo GitHub ini. Tidak ada data akun pribadi yang disimpan atau diproses โ€” semua tool bersifat read-only terhadap API publik Binance.

  • Bukan saran finansial. Semua data dan interpretasi (funding rate, OI, order book, framework deteksi MM, dll) bersifat informational โ€” hasil pengolahan data publik, BUKAN rekomendasi trading. Tidak ada jaminan akurasi, kelengkapan, atau ketepatan waktu data โ€” cek Keterbatasan yang jujur perlu diketahui untuk batasan spesifik tiap tool sebelum mengambil keputusan berdasarkan data ini.

  • Tanggung jawab pengguna. Siapapun yang deploy, memakai, atau memodifikasi worker ini bertanggung jawab penuh atas hasil dan konsekuensi pemakaiannya sendiri โ€” termasuk keputusan trading yang diambil berdasarkan output tool-tool ini.

  • Kepatuhan ke Binance API Terms of Use. Worker ini memanggil endpoint publik Binance (Futures & Spot). Pemakaian personal/non-komersial sejalan dengan ketentuan Binance yang berlaku umum; redistribusi ulang data secara komersial atau pemakaian skala besar sebaiknya dicek dulu terhadap Binance API Terms of Use โ€” di luar tanggung jawab project ini.

  • Lisensi: MIT. Bebas dipakai, dimodifikasi, dan didistribusikan ulang (termasuk untuk keperluan komersial), selama notice copyright & lisensi MIT tetap disertakan. Software disediakan "as is", tanpa jaminan apapun โ€” sejalan dengan disclaimer di atas.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for Binance USDT-M Futures trading โ€” exposes tools for market data, account state, order management, and position/margin control.
    23
    6
    Apache 2.0
  • A
    license
    -
    quality
    D
    maintenance
    MCP server providing 12 computed intelligence tools for Binance, including accumulation detection, whale tracking, market impact simulation, and more, using public endpoints with no API keys needed.
    6
    MIT

View all related MCP servers

Related MCP Connectors

  • Read-only MCP server for Robinhood Chain token discovery, research, and due diligence via GMGN.

  • MCP server for Gainium โ€” manage trading bots, deals, and balances via AI assistants

  • Read-only MCP server for live Polymarket, Kalshi, Limitless odds; Manifold sentiment.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/osindo-dev/whalescope-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server