cabal-hunter-mcp 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -9
- package/demo/python_demo.py +6 -4
- package/demo/typescript_demo.ts +4 -3
- package/example_bot.py +2 -1
- package/package.json +8 -3
- package/server/index.mjs +4 -3
package/README.md
CHANGED
|
@@ -28,11 +28,11 @@ Your autonomous trading agent is reading rug.check scores, liquidity locks, and
|
|
|
28
28
|
|
|
29
29
|
**None of that catches a cabal.**
|
|
30
30
|
|
|
31
|
-
A
|
|
31
|
+
A handful of wallets take the bottom of a launch, the chart looks clean — contract fine, LP burned, everything green — and then they sell into whoever bought after them. You are the exit liquidity.
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
This template integrates **[Cabal-Hunter](https://api.cabal-hunter.com)** as a pre-trade safety check, so your agent can see who is holding and who has already positioned to sell before it signs a swap.
|
|
34
34
|
|
|
35
|
-
This
|
|
35
|
+
> **A note on what we do and don't claim.** This README used to open with "15 fresh wallets funded from the same master wallet, accumulating 25-40% of supply." We went looking for that pattern and could not find it. Tracing 323 pump.fun launches at the bonding curve turned up **zero coordinated funding clusters**, and showed why: the median launch has about **five successful buyers**, because on one representative token **1,260 of the curve's 1,266 transactions failed**. Launch capture is a sniper *race* between competing bots, not a quiet cabal. The detection layers below are the ones we can actually evidence — holder concentration, same-block bundles, coordinated selling and deployer history. The pre-launch funding tracer was withdrawn; the [full write-up is here](https://github.com/paulf280-ui/cabal-hunter-mcp#a-note-on-the-withdrawn-trace_funding-tool).
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
@@ -40,7 +40,7 @@ This template integrates **[Cabal-Hunter](https://api.cabal-hunter.com)** — a
|
|
|
40
40
|
|
|
41
41
|
The classic pump.fun exit-liquidity setup: wallets positioned before the crowd take the bottom of a launch, then dump on the retail (and bots) that pile in after. Cabal-Hunter's headline output is a single **Exit-Liquidity Risk** verdict (`LOW | ELEVATED | HIGH`) that synthesises every signal below into the only thing that matters before you sign a swap: *are the insiders positioned to dump on you?*
|
|
42
42
|
|
|
43
|
-
## What Cabal-Hunter Does
|
|
43
|
+
## What Cabal-Hunter Does
|
|
44
44
|
|
|
45
45
|
```
|
|
46
46
|
Token mint address
|
|
@@ -50,9 +50,14 @@ Token mint address
|
|
|
50
50
|
rug dev) into LOW | ELEVATED | HIGH: are insiders set up to dump on
|
|
51
51
|
a buyer? The one number a trading agent needs.
|
|
52
52
|
↓
|
|
53
|
-
1. FUNDING
|
|
54
|
-
by the same
|
|
55
|
-
|
|
53
|
+
1. HOLDER FUNDING LINEAGE — the CURRENT top holders walked back: were
|
|
54
|
+
they seeded by the same wallet? Only System-owned accounts count as
|
|
55
|
+
a funder, so pools, vaults and routers can never be mistaken for a
|
|
56
|
+
person (that mistake is exactly what got our pre-launch tracer
|
|
57
|
+
withdrawn). Every cluster carries evidence_txs[] — the actual
|
|
58
|
+
funding transactions on Solscan. This layer is genuinely rare to
|
|
59
|
+
fire; treat a hit as significant and its absence as no evidence
|
|
60
|
+
either way.
|
|
56
61
|
↓
|
|
57
62
|
2. SAME-BLOCK BUNDLE DETECTION — holders whose token accounts were
|
|
58
63
|
created in the EXACT same slot bought in one Jito bundle. Catches
|
|
@@ -165,7 +170,7 @@ Your agent will call `check_cabal_risk(mintAddress)` before any swap and abort i
|
|
|
165
170
|
|
|
166
171
|
### 4. Direct REST API
|
|
167
172
|
|
|
168
|
-
For headless scripts, custom bots, or any language. **The first
|
|
173
|
+
For headless scripts, custom bots, or any language. **The first 250 calls/month are free — no key, no signup.** Just call it:
|
|
169
174
|
|
|
170
175
|
```bash
|
|
171
176
|
curl "https://api.cabal-hunter.com/api/scan-cabal?mintAddress=YOUR_MINT_ADDRESS"
|
|
@@ -353,7 +358,7 @@ After that, pick whatever matches how hard your bot works (priced at cost — it
|
|
|
353
358
|
|
|
354
359
|
Prepaid keys: send USDC once → `POST /api/buy-key` with the tx signature → use header `X-API-Key` on every scan. Or pay per-call via x402 (`X-Payment-Signature` header). No credit card, no account, no lock-in.
|
|
355
360
|
|
|
356
|
-
**Does it pay for itself?**
|
|
361
|
+
**Does it pay for itself?** Work it out with your own numbers rather than ours: the Unlimited tier is $9 a month, so it pays for itself the first time it keeps you out of a position bigger than $9 that goes to zero. Whether that happens once a month or once a week depends on what you trade and how often — we are not going to invent an average for you.
|
|
357
362
|
|
|
358
363
|
Payment is native on Solana — no credit card, no account, no subscription lock-in.
|
|
359
364
|
|
package/demo/python_demo.py
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
Cabal-Hunter API demo — Python
|
|
3
3
|
Checks a Solana token for coordinated wallet clusters before buying.
|
|
4
4
|
|
|
5
|
-
First
|
|
6
|
-
After that: $0.
|
|
5
|
+
First 250 scans/month are FREE — no signup, no API key, no payment.
|
|
6
|
+
After that: $0.001 USDC per scan via X-Payment-Signature, or a prepaid
|
|
7
|
+
key ($9/month unlimited, fair use 50k) via X-API-Key.
|
|
7
8
|
|
|
8
9
|
Run: python demo/python_demo.py
|
|
9
10
|
"""
|
|
@@ -20,7 +21,8 @@ DEMO_MINT = "Axpzs7FEMYzpcfqVcDjDMQb2rsgMYVJADNpUZe7bpump"
|
|
|
20
21
|
def check_token(mint: str) -> dict:
|
|
21
22
|
"""
|
|
22
23
|
Query Cabal-Hunter for a token.
|
|
23
|
-
Free for first
|
|
24
|
+
Free for the first 250 scans/month. After that, pass X-Payment-Signature
|
|
25
|
+
or X-API-Key.
|
|
24
26
|
"""
|
|
25
27
|
resp = requests.post(API, json={"mintAddress": mint}, timeout=30)
|
|
26
28
|
|
|
@@ -54,7 +56,7 @@ if __name__ == "__main__":
|
|
|
54
56
|
|
|
55
57
|
free_left = report.get("free_queries_remaining")
|
|
56
58
|
if free_left is not None:
|
|
57
|
-
print(f"✅ Free tier — {free_left} free
|
|
59
|
+
print(f"✅ Free tier — {free_left} free scans remaining this month\n")
|
|
58
60
|
|
|
59
61
|
print(f"Token: {report.get('token_name', '?')}")
|
|
60
62
|
print(f"Risk: {report.get('risk')}")
|
package/demo/typescript_demo.ts
CHANGED
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
* Cabal-Hunter API demo — TypeScript/Node.js
|
|
3
3
|
* Checks a Solana token for coordinated wallet clusters before buying.
|
|
4
4
|
*
|
|
5
|
-
* First
|
|
6
|
-
* After that: $0.
|
|
5
|
+
* First 250 scans/month are FREE — no signup, no payment required.
|
|
6
|
+
* After that: $9/month unlimited, or $0.001 USDC per scan via x402
|
|
7
|
+
* (X-Payment-Signature header).
|
|
7
8
|
*
|
|
8
9
|
* Run: npx tsx demo/typescript_demo.ts
|
|
9
10
|
*/
|
|
@@ -66,7 +67,7 @@ async function main() {
|
|
|
66
67
|
if (!report) process.exit(1)
|
|
67
68
|
|
|
68
69
|
if (report.free_queries_remaining !== undefined) {
|
|
69
|
-
console.log(`✅ Free tier — ${report.free_queries_remaining} free
|
|
70
|
+
console.log(`✅ Free tier — ${report.free_queries_remaining} free scans remaining this month\n`)
|
|
70
71
|
}
|
|
71
72
|
|
|
72
73
|
console.log(`Token: ${report.token_name}`)
|
package/example_bot.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Example: Integrate Cabal-Hunter into a Solana trading bot.
|
|
3
3
|
Checks for coordinated wallet clusters before executing any swap.
|
|
4
|
-
Cost: $0.
|
|
4
|
+
Cost: 250 scans/month free, then $0.001 USDC per check (or $9/month
|
|
5
|
+
unlimited). Pays for itself the first time it blocks a rug.
|
|
5
6
|
"""
|
|
6
7
|
|
|
7
8
|
import requests
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cabal-hunter-mcp",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.2",
|
|
4
|
+
"description": "MCP server for Cabal-Hunter \u2014 Solana token rug & cabal detection for AI agents. Wallet clusters, same-block bundles, deployer track record with peak market caps, honeypot and authority traps. 250 free scans/month, no signup.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"cabal-hunter-mcp": "server/index.mjs"
|
|
@@ -24,5 +24,10 @@
|
|
|
24
24
|
"trading",
|
|
25
25
|
"model-context-protocol"
|
|
26
26
|
],
|
|
27
|
-
"license": "MIT"
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"repository": {
|
|
29
|
+
"type": "git",
|
|
30
|
+
"url": "git+https://github.com/paulf280-ui/solana-safe-sniper-mcp-template.git"
|
|
31
|
+
},
|
|
32
|
+
"homepage": "https://api.cabal-hunter.com"
|
|
28
33
|
}
|
package/server/index.mjs
CHANGED
|
@@ -10,9 +10,10 @@
|
|
|
10
10
|
* pump-and-dump history) and live coordinated dumps on any Solana mint before it
|
|
11
11
|
* signs a swap.
|
|
12
12
|
*
|
|
13
|
-
* Free tier:
|
|
14
|
-
*
|
|
15
|
-
*
|
|
13
|
+
* Free tier: 250 scans/month per IP, no signup. Beyond that it is $9/month
|
|
14
|
+
* unlimited (fair use), or $0.001 USDC per scan via x402 on Solana — when a
|
|
15
|
+
* scan needs payment the API returns HTTP 402 with the payment instructions,
|
|
16
|
+
* which this tool surfaces to the caller.
|
|
16
17
|
*
|
|
17
18
|
* Uses the low-level Server API + JSON-Schema tool definitions for maximum
|
|
18
19
|
* compatibility across @modelcontextprotocol/sdk versions.
|