neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
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.
Developer toolsPython · DockerfileGitHub @CabalSpyOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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