AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Claude·Cursor·VS Code·ChatGPT를 KOL·스마트 머니 지갑 데이터와 연결, 21개 읽기 전용 도구 제공, 무료 API 키
Connect Claude, Cursor, VS Code or ChatGPT to live KOL and Smart Money wallet data. Remote MCP server with 21 read-only tools on 5 chains. Free API key.
개발 도구Python · DockerfileGitHub @CabalSpy온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기KOL API and smart money wallet tracker as an MCP server — query onchain KOL trades, whale wallets, PnL, copy-trading signals and Jito bundle detection across Solana, Base, BNB Chain, Ethereum and Robinhood Chain from Claude, Cursor or any AI assistant.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
CabalSpy MCP server — KOL and smart money wallet tracking for AI assistants
Realtime KOL API and onchain wallet tracking for AI assistants. CabalSpy monitors labeled wallets — key opinion leaders (KOLs), smart money and whales — across Solana, Base, BNB Chain, Ethereum and Robinhood Chain, and exposes the data as Model Context Protocol tools.
Connect it to Claude, Cursor, or any MCP client and ask about onchain trading activity in plain language. No code, no SDK, no integration work.README 전문 보기 ↗Realtime KOL API and onchain wallet tracking for AI assistants. CabalSpy monitors labeled wallets — key opinion leaders (KOLs), smart money and whales — across Solana, Base, BNB Chain, Ethereum and Robinhood Chain, and exposes the data as Model Context Protocol tools.
Connect it to Claude, Cursor, or any MCP client and ask about onchain trading activity in plain language. No code, no SDK, no integration work.
What people use it for: vetting a KOL call before following it, checking whether a launch was bundled, finding which wallets accumulate together, building copy-trading shortlists, and answering "who is this address" in one line.
New in 2.3: CabalSpy ID, the SocialFi layer. CabalSpy ID links traders' X accounts to the wallets they proved on-chain, gives KOLs a reviewed badge, and lets token holders post theses that carry their live position and PnL. Eight csid_ tools bring that into your assistant: "What do verified holders think about $BONK?", "Who owns this wallet?"
The multichain one. Most onchain KOL tooling is Solana only. CabalSpy tracks labeled wallets on five chains — Solana, Base, BNB Chain, Ethereum and Robinhood Chain — through one connection and one set of tools. The same question works everywhere: "who bought this?"
Powering labeled-wallet data inside Axiom, Trojan, o1.exchange and 20+ other trading tools.
https://mcp.cabalspy.xyz/mcpX-CabalSpy-Key header — or none at all, see Try it without a key| Chain | Identifier | Currency | Wallet types |
|---|---|---|---|
| Solana | solana | SOL | kol, smart, whale |
| Base | base | ETH | kol, smart |
| BNB Chain | bnb | BNB | kol, smart |
| Ethereum | eth | ETH | kol |
| Robinhood Chain | rh | ETH | kol, smart |
The deepest coverage of the five. Solana is the only chain with whale wallets, live market cap, pump.fun bonding curve progress, and detect_bundles, which finds KOL wallets buying through Jito bundles alongside side wallets they control.
"Was this token bundled?" · "Which whales are accumulating right now?"
Both kol and smart wallets, denominated in ETH. EVM address format.
"Which Base smart money wallets are up the most this month?"
Both kol and smart wallets, denominated in BNB.
"What are BNB Chain KOLs buying today?"
Mainnet carries kol wallets only. Smart money signals are unavailable there.
"Show me the Ethereum KOL leaderboard for the last 7 days."
Robinhood Chain is Robinhood's Ethereum L2 on the Arbitrum Orbit stack, with ETH as the gas token. Both kol and smart wallets are tracked.
"How much volume did Robinhood Chain KOLs do in the last 24 hours?"
29 tools: 21 covering the full CabalSpy v1 API and 8 for CabalSpy ID. All read-only.
| Tool | What it does |
|---|---|
lookup_wallet | Identify an address across all chains and wallet types |
get_wallet_tracker | Realized PnL, win rate, volume, trade counts for one wallet |
get_leaderboard | Top wallets by performance for a chain, type and period |
list_wallets | Browse all tracked wallets for a chain and type |
get_wallet_history | Lifetime trading history, paginated, per token |
get_wallet_holdings | Current onchain positions, read live |
get_pnl_calendar | Daily and monthly realized profit and loss |
get_wallet_connections | Wallets that trade the same tokens |
compare_wallets | Up to 100 wallets in one request |
| Tool | What it does |
|---|---|
get_token_stats | Who traded a token, buying pressure, entries |
get_token_holders | Who still holds it, with market cap on Solana |
get_token_transactions | Individual buys and sells, most recent first |
compare_tokens | Up to 100 tokens in one request |
detect_bundles | Jito bundle detection with confidence and evidence. Solana only |
| Tool | What it does |
|---|---|
get_recent_trades | The live feed, optionally windowed to the last N minutes |
get_activity_metrics | Trade count, unique wallets and volume over up to 24 hours |
get_signals | Cluster, entry and exit signals |
get_signal_history | Past signals for backtesting |
get_analytics | Volume trend, most traded, win rate, top performers |
| Tool | What it does |
|---|---|
csid_profile | Verified identity by X handle, CSID id, X id or wallet: X account, Telegram, KOL badge, verified wallets per chain, 7-day activity |
csid_wallet_owner | Who proved ownership of a wallet (1 to 100 addresses), or verified: false |
csid_kols | KOLs with a reviewed CabalSpy ID badge, per chain |
csid_token_theses | Holder sentiment for one token: bull/bear summary and theses with each author's live position and PnL |
csid_latest_theses | Newest theses across all tokens |
csid_user_theses | Every thesis one person posted |
csid_thesis | One thesis with its replies |
csid_leaderboard | Your instance's verified traders ranked by volume, PnL, win rate or trades (all CabalSpy ID users on Enterprise) |
csid_profile, csid_wallet_owner and csid_kols use the CabalSpy API and work on the keyless demo with sandbox identities only (try csid_sandbox_kol). The theses and leaderboard tools use the CabalSpy ID Data API: they need your own key, enabled for CabalSpy ID, and a CabalSpy ID instance — create one (free plan available) at apidashboard.cabalspy.xyz/csid. Theses are global: every key reads the theses of every platform. If your account has several instances, pass instance (the client_id) or set an X-CSID-Instance header on the connection.
| Tool | What it does |
|---|---|
get_started | Keyless demo, free key, pricing, coverage and the data caveats |
get_api_status | Health and what the API currently covers |
Connect to https://mcp.cabalspy.xyz/mcp with no key and every CabalSpy tool still works, on the public demo (for CabalSpy ID: csid_profile, csid_wallet_owner and csid_kols, on sandbox identities):
demo block, so the model knows the data is not liveWhen the 20 are used up, tools return demo_limit_reached. A free test key gives 1000 real-time requests; set it as shown below and the limits go away.
The web connector cannot send custom headers — it only speaks OAuth. Put the key in the URL instead:
https://mcp.cabalspy.xyz/mcp?api_key=your_key
Settings → Connectors → Add custom connector, paste that URL, and leave the OAuth client fields empty. Filling them starts an OAuth flow this server does not implement, and you get a 404 on /authorize.
Claude Desktop reads a config file, so the header works and is preferred:
{
"mcpServers": {
"cabalspy": {
"type": "http",
"url": "https://mcp.cabalspy.xyz/mcp",
"headers": { "X-CabalSpy-Key": "your_key" }
}
}
}
{
"mcpServers": {
"cabalspy": {
"type": "http",
"url": "https://mcp.cabalspy.xyz/mcp",
"headers": { "X-CabalSpy-Key": "your_key" }
}
}
}
CabalSpy does not return samples. A 30-day wallet report covers every token the wallet touched, every trade, and the full PnL curve — routinely tens of thousands of data points. That depth is why trading terminals run on this data.
A language model works within a context window, so this server delivers that depth in a shape a model can actually reason about. Every summary block comes through complete: period stats, win-rate distribution, holder counts, PnL totals, profiles. Long detail lists are shortened, and the response states exactly how many entries were left out, so a model never mistakes an excerpt for the whole picture.
Responses that already fit are returned untouched.
Need every row? That is what the SDKs and the REST API are for. Nothing is lost here, it is one call away.
A model that guesses about data semantics will state something confidently wrong. So the tool descriptions spell out how to read the numbers:
realized_pnl is sales minus purchases. A wallet that has bought and not yet sold therefore
shows its open position as negative. still_holding tells the two apart.lookup_wallet searches every chain. EVM addresses are identical across chains, so a wallet
tracked on several returns the first match; pass a chain to the other tools when you need a
specific one.private means the author holds the token but keeps trading details private.sandbox: true. They are never real people.The key is read from the X-CabalSpy-Key header where the client can send one, and from an
api_key query parameter where it cannot. It is then forwarded to the CabalSpy API as an
Authorization: Bearer header, never as a query parameter.
The query parameter path is a deliberate compromise: claude.ai's web connector offers no way to set a header and expects OAuth, so without it the server is unusable there. The cost is that the key appears in the reverse proxy's access log. Keep those logs short, and prefer the header in every client that supports one.
The key is never accepted as a tool argument, so a model can neither see it nor write it into a
transcript. Every tool is annotated readOnlyHint; none of them modifies state. The CabalSpy ID
tools send the same key to the CabalSpy ID Data API (api-id.cabalspy.xyz); what a key may see
(own instance, global on Enterprise) is decided there, not here.
mcp.cabalspy.xyz runs the code in this repository. To run your own instance instead:
docker build -t cabalspy-mcp .
docker run -p 8081:8081 cabalspy-mcp
Settings: CABALSPY_API_BASE (default https://api.cabalspy.xyz), CSID_API_BASE (default https://api-id.cabalspy.xyz), MCP_HOST, MCP_PORT. The systemd unit in cabalspy-mcp.service shows a hardened setup.
pip install -r requirements.txt
python3 test_server.py
The suite starts a mock API and exercises every tool, the auth paths, the client-side guards, the error translation and the response shaping. It needs no API key and no network.
KOL stands for Key Opinion Leader: a trader or crypto personality whose token calls move markets. CabalSpy tracks their onchain wallets with a public identity attached — name, avatar, Twitter and Telegram handle — so a call can be checked against what the wallet actually did.
A KOL is identified by influence, a smart money wallet by track record. KOL trades carry social signal, smart money trades carry statistical signal. Both are wallet types on the same tools, so you can ask for either or merge them.
On Solana, KOL wallets often buy through Jito bundles together with side wallets they control, which hides the true size of their position. detect_bundles groups those wallets, reports a confidence score and exposes the evidence: matching fees, block index, adjacency to the KOL transaction.
No, and it should not. MCP is request and response; a model cannot read a feed while it is answering. get_recent_trades and get_activity_metrics give you the current picture as a snapshot. For a genuine live stream, use the WebSocket gateway with one of the SDKs.
Not to try it: the keyless demo covers every CabalSpy tool and the CabalSpy ID identity tools. For live data, use your own key: a free test key with 1000 requests is at apidashboard.cabalspy.xyz. The CabalSpy ID theses and leaderboard tools additionally need a CabalSpy ID instance on that account. Call get_started from inside your assistant and it will hand you the links.
If you are writing code rather than asking questions, the same API is available as cabalspy on npm, PyPI and crates.io, including the WebSocket streams this server deliberately does not expose.
| File | Purpose |
|---|---|
MCP_server.py | the server (deployed as cabalspy_mcp.py) |
tests/ | offline tests for the CabalSpy ID tools (pytest), no key or network needed |
server.json | MCP registry entry |
glama.json | Glama directory listing |
smithery-config-schema.json | config schema shown to Smithery users |
Dockerfile | self-hosting and directory sandboxes |
cabalspy-mcp.service | hardened systemd unit |
MIT