mcp-server-madeonsol 1.26.0 → 1.27.0

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 CHANGED
@@ -13,6 +13,8 @@ MCP server for [MadeOnSol](https://madeonsol.com) Solana KOL intelligence API. U
13
13
 
14
14
  > Real-time Solana trading intelligence: track 1,069 KOL wallets with <3s latency on paid keys and x402 pay-per-call (free-tier live feeds are 5-min delayed), score 23,000+ Pump.fun deployers, surface deshred deploy signals **~500ms before on-chain confirmation**, detect multi-KOL coordination, surface bundle-cohort holdings (which same-slot wallets still hold a token's supply), verify any wallet's CURRENT on-chain holdings straight from its token accounts, and stream every DEX trade across 9+ programs. Free tier: 200 requests/day across 40+ endpoints (live feeds 5-min delayed) — no signup payment. Get a key at [madeonsol.com/pricing](https://madeonsol.com/pricing).
15
15
 
16
+ > **New in 1.27.0 — top traders, sniper watchlist management, and two update tools (104 tools total).** Six additions found by an internal agentic-infra coverage audit. `madeonsol_token_top_traders` (`GET /tokens/{mint}/top-traders`, PRO/ULTRA) ranks a token's wallets by realized PnL or ROI, enriched with KOL/alpha-wallet identity — this endpoint already existed on the REST API and x402 rail but had no MCP tool. `madeonsol_sniper_watchlist_list` / `_add` / `_remove` (PRO+/ULTRA) manage your custom sniper-deploy watchlist (`madeonsol_sniper_recent(watchlist: true)` narrows to it) — previously only reachable via raw HTTP. `madeonsol_update_webhook` (PATCH) changes a webhook's URL, events, or active state without deleting and recreating it. `madeonsol_wallet_tracker_relabel` (PATCH) renames or clears a tracked wallet's label.
17
+ >
16
18
  > **New in 1.26.0 — deployer reputation as-of a date, and creator-fee rewards.** Two new tools (PRO+, keyed `msk_` API only — no x402 route). `madeonsol_deployer_as_of` binds `GET /deployer-hunter/{wallet}/as-of`: the deployer's reputation exactly as it stood on `date` (default today, UTC) — the latest write-on-change snapshot at or before it, so an agent backtests without look-ahead bias. `snapshot.snapshot_date` can predate `date` (write-on-change); `snapshot.carried: true` marks that. No snapshot at or before `date` → `as_of: false, snapshot: null` — nothing is ever synthesized. `date` must be ≥ 2026-04-07 and not in the future. `madeonsol_deployer_rewards` binds `GET /deployer-hunter/{wallet}/rewards`: pump.fun creator-fee rewards, answered two ways that are never merged — `collected` (what actually reached the wallet: direct vault claims kept 90 days, social-handle claims, shareholder payouts on **any** token) and `attributed` (every payout on the tokens it **deployed**, split `to_self`/`to_others` + `redirected_pct`). Every money field is `{sol, usdc, usd}`; `usd` is `null` (never a silent 0) when a SOL amount exists and no SOL price was available. `top_tokens`/`top_recipients` (≤10, USD-sorted) show where attributed fees went. Works for non-deployers too (`is_deployer: false`, `attributed` empty).
17
19
 
18
20
  > **New in 1.25.0 — token surges & revivals: momentum fires with the honest half attached.** The new `madeonsol_tokens_surges` tool binds `GET /tokens/surges` (PRO+, keyed `msk_` API only — no x402 route): every token momentum fire, newest first. Two kinds, one row shape. **`surge`** — a token < 30 min old whose market cap runs hard against its *launch* MC, in three tiers that each fire at most once per mint: `early` (≤10 min, ≥$12k, ≥3× launch), `strong` (≤30 min, ≥$30k, ≥6× launch **and** ≥2× the lowest sample of the last 3 min — it is climbing *now*), `breakout` (≤2 min, ≥$45k, ≥8×). A tier must be **sustained** (current tick *and* a sample ≥10 s older; nothing fires before 20 s of age) — a same-slot bundle marked to $475k at age 1 s is a spike, not a surge. **`revival`** — a token with no 1-minute trade candle for ≥24 h that starts trading again, confirmed **only by the tape** (≥5 buys, ≥$500 buy volume, MC ≥1.5× the pre-dormancy close), never by the price mark; `tier` is `null`. Hard gates on both: liquidity ≥$1.5k and ≥2 % of MC, and the MC gained must be **paid for** by buy volume (a price mark in a spoof pool moves MC on ~$0). Every row carries the burst `tape` (`source` candles / wallet_trades; `unique_buyers` only where the mint is in trade coverage — `wallet_data_available:false` otherwise, never an inferred zero), `kol` buyers, the first-20 `early_buyers` cohort (bundled / sold / sniper wallets), `deployer` reputation and `risk_flags[]` (`bundled_launch`, `few_buyers`, `wash_pattern`, `thin_liquidity`, `cold_deployer`, `sniper_heavy`, `early_buyers_exiting`, `sell_pressure`, `no_tape_trades`, `no_prior_price`, `mint_authority_active`, `transfer_fee` — empty means no flag raised, not verified clean). Rows ≥65 min old carry the +1 h `outcome`; `stats=1` prints per-(kind, tier) hit-rates (`up_1h_pct`, `median_peak_multiple`, `doubled_1h_pct`) — out-of-sample by construction. Filters `kind`, `tier`, `mint`, `launchpad`, `deployer_tier`, `min_mc_usd` / `max_mc_usd`, `min_buys`, `exclude_flags`, `only_clean`; cursors `since` / `before`. Pushed live on the new **`token:surges`** WS channel (events `token:surge` / `token:revival`; subscribe filters `kinds[]`, `tiers[]`, `launchpads[]`, `exclude_flags[]`, `min_mc_usd` / `max_mc_usd`, `deployer_tier[]`) and accepted by `madeonsol_create_webhook` as events `token:surge` / `token:revival` with the same filters. The response echoes the live thresholds in `definitions`.
package/dist/index.d.ts CHANGED
File without changes
package/dist/index.js CHANGED
@@ -375,6 +375,49 @@ function registerTools(server) {
375
375
  }
376
376
  return { content: [{ type: "text", text: JSON.stringify(await res.json(), null, 2) }] };
377
377
  });
378
+ server.tool("madeonsol_sniper_watchlist_list", "List your custom sniper watchlist (tracked deployer wallets, any tier). PRO+/ULTRA only. Added 2026-09-10.", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async () => {
379
+ if (authMode !== "madeonsol")
380
+ return { content: [{ type: "text", text: "Sniper watchlist requires MADEONSOL_API_KEY (msk_)." }] };
381
+ const res = await fetch(`${BASE_URL}/api/v1/sniper/watchlist`, { headers: apiKeyHeaders() });
382
+ if (!res.ok) {
383
+ const body = await res.text().catch(() => "");
384
+ return { content: [{ type: "text", text: `Error ${res.status}: ${body}` }] };
385
+ }
386
+ return { content: [{ type: "text", text: JSON.stringify(await res.json(), null, 2) }] };
387
+ });
388
+ server.tool("madeonsol_sniper_watchlist_add", "Add one or many deployer wallets to your sniper watchlist — narrows madeonsol_sniper_recent(watchlist:true) to just these. PRO+/ULTRA only. Added 2026-09-10.", {
389
+ wallet: z.string().optional().describe("Single deployer wallet address (base58) — provide this or `wallets`"),
390
+ wallets: z.array(z.string()).optional().describe("Multiple deployer wallet addresses (base58, up to 50) — provide this or `wallet`"),
391
+ label: z.string().optional().describe("Optional human-readable label"),
392
+ }, { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }, async ({ wallet, wallets, label }) => {
393
+ if (authMode !== "madeonsol")
394
+ return { content: [{ type: "text", text: "Sniper watchlist requires MADEONSOL_API_KEY (msk_)." }] };
395
+ const body = {};
396
+ if (wallet)
397
+ body.wallet = wallet;
398
+ if (wallets)
399
+ body.wallets = wallets;
400
+ if (label)
401
+ body.label = label;
402
+ const res = await fetch(`${BASE_URL}/api/v1/sniper/watchlist`, { method: "POST", headers: { "Content-Type": "application/json", ...apiKeyHeaders() }, body: JSON.stringify(body) });
403
+ if (!res.ok) {
404
+ const respBody = await res.text().catch(() => "");
405
+ return { content: [{ type: "text", text: `Error ${res.status}: ${respBody}` }] };
406
+ }
407
+ return { content: [{ type: "text", text: JSON.stringify(await res.json(), null, 2) }] };
408
+ });
409
+ server.tool("madeonsol_sniper_watchlist_remove", "Remove a deployer wallet from your sniper watchlist. PRO+/ULTRA only. Added 2026-09-10.", {
410
+ wallet: z.string().describe("Deployer wallet address (base58) to remove"),
411
+ }, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ wallet }) => {
412
+ if (authMode !== "madeonsol")
413
+ return { content: [{ type: "text", text: "Sniper watchlist requires MADEONSOL_API_KEY (msk_)." }] };
414
+ const res = await fetch(`${BASE_URL}/api/v1/sniper/watchlist/${encodeURIComponent(wallet)}`, { method: "DELETE", headers: apiKeyHeaders() });
415
+ if (!res.ok) {
416
+ const body = await res.text().catch(() => "");
417
+ return { content: [{ type: "text", text: `Error ${res.status}: ${body}` }] };
418
+ }
419
+ return { content: [{ type: "text", text: JSON.stringify(await res.json(), null, 2) }] };
420
+ });
378
421
  server.tool("madeonsol_discovery", "List all available MadeOnSol API endpoints with prices and parameter docs. Free, no auth required. The keyless x402 catalog now covers 25 endpoints — recent additions: token candles ($0.01), almost-bonded ($0.01), top-traders ($0.02), cap-table ($0.02), sniper recent deploys ($0.01), token flow ($0.01), and deployer trajectory ($0.01).", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }, async () => {
379
422
  const res = await fetch(new URL("/api/x402", BASE_URL).toString());
380
423
  const data = await res.json();
@@ -414,6 +457,12 @@ function registerTools(server) {
414
457
  }, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ wallet_address }) => ({
415
458
  content: [{ type: "text", text: await walletTrackerRequest("DELETE", `/wallet-tracker/watchlist/${encodeURIComponent(wallet_address)}`) }],
416
459
  }));
460
+ server.tool("madeonsol_wallet_tracker_relabel", "Rename (or clear) the label on a wallet already in your watchlist. Added 2026-09-10.", {
461
+ wallet_address: z.string().describe("Solana wallet address (base58) already on your watchlist"),
462
+ label: z.string().nullable().describe("New label, or null to clear it"),
463
+ }, { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ wallet_address, label }) => ({
464
+ content: [{ type: "text", text: await walletTrackerRequest("PATCH", `/wallet-tracker/watchlist/${encodeURIComponent(wallet_address)}`, { label }) }],
465
+ }));
417
466
  server.tool("madeonsol_wallet_tracker_trades", "Historical swap and transfer events for all your watched wallets. BASIC: truncated wallets, no tx_signature.", {
418
467
  wallet: z.string().optional().describe("Filter to a specific wallet address"),
419
468
  action: z.enum(["buy", "sell", "transfer_in", "transfer_out"]).optional().describe("Filter by action type"),
@@ -570,6 +619,21 @@ function registerTools(server) {
570
619
  }, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ id }) => ({
571
620
  content: [{ type: "text", text: await restQuery("DELETE", `/webhooks/${id}`) }],
572
621
  }));
622
+ server.tool("madeonsol_update_webhook", "Update a webhook's URL, subscribed events, or active state. Only the fields you pass are changed. Added 2026-09-10.", {
623
+ id: z.number().describe("Webhook ID to update"),
624
+ url: z.string().url().optional().describe("New HTTPS webhook URL"),
625
+ events: z.array(z.enum(["kol:trade", "kol:coordination", "deployer:alert", "deployer:bond"])).optional().describe("Replace the subscribed event types"),
626
+ is_active: z.boolean().optional().describe("Enable or disable this webhook"),
627
+ }, webhookAnnotations, async ({ id, url, events, is_active }) => {
628
+ const body = {};
629
+ if (url !== undefined)
630
+ body.url = url;
631
+ if (events !== undefined)
632
+ body.events = events;
633
+ if (is_active !== undefined)
634
+ body.is_active = is_active;
635
+ return { content: [{ type: "text", text: await restQuery("PATCH", `/webhooks/${id}`, body) }] };
636
+ });
573
637
  server.tool("madeonsol_test_webhook", "Send a sample event payload to a webhook URL to verify it works. Returns status code and response time.", {
574
638
  webhook_id: z.number().describe("ID of the webhook to test"),
575
639
  }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ webhook_id }) => ({
@@ -849,6 +913,26 @@ function registerTools(server) {
849
913
  const path = `/tokens/${encodeURIComponent(mint)}/flow${query ? `?${query}` : ""}`;
850
914
  return { content: [{ type: "text", text: await restQuery("GET", path) }] };
851
915
  });
916
+ server.tool("madeonsol_token_top_traders", "The wallets that made (or lost) the most on a token, ranked by realized PnL or ROI (up to 25 on PRO, 100 on ULTRA). Each trader enriched with KOL identity and alpha-wallet reputation (bot_confidence, historical win rate/PnL) so you can tell smart money from bots. Added 2026-09-10 — this tool was missing despite the endpoint existing on every other surface. PRO/ULTRA only.", {
917
+ mint: z.string().describe("Token mint address (base58)"),
918
+ limit: z.number().min(1).max(100).optional().describe("Max traders returned — 1-25 PRO, 1-100 ULTRA (default 10)"),
919
+ sort: z.enum(["pnl", "roi"]).optional().describe("Rank by realized PnL (default) or ROI"),
920
+ window_days: z.number().min(1).max(180).optional().describe("Lookback window in days (default 90)"),
921
+ min_bought_sol: z.number().optional().describe("Exclude traders below this total SOL bought (default 0.1)"),
922
+ }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ mint, limit, sort, window_days, min_bought_sol }) => {
923
+ const qs = new URLSearchParams();
924
+ if (limit !== undefined)
925
+ qs.set("limit", String(limit));
926
+ if (sort !== undefined)
927
+ qs.set("sort", sort);
928
+ if (window_days !== undefined)
929
+ qs.set("window_days", String(window_days));
930
+ if (min_bought_sol !== undefined)
931
+ qs.set("min_bought_sol", String(min_bought_sol));
932
+ const query = qs.toString();
933
+ const path = `/tokens/${encodeURIComponent(mint)}/top-traders${query ? `?${query}` : ""}`;
934
+ return { content: [{ type: "text", text: await restQuery("GET", path) }] };
935
+ });
852
936
  server.tool("madeonsol_token_trades", "Mint-scoped trade tape — cursor-paginated raw trades for one token, newest first (the backfill/history complement to the live DEX firehose stream). Each trade: tx_signature, wallet_address, action (buy|sell), sol_amount, token_amount, price_sol|null, price_usd|null, market_price_sol|null, market_price_usd|null, early_buyer_rank|null, slot|null, block_time (unix sec), traded_at (ISO). TWO PRICES, and picking the wrong one gives wrong answers: price_sol is THIS trade's executed price (sol_amount / token_amount — the trader's all-in rate, including swap fee and any account rent, not the pool mid), while market_price_sol is the canonical pool price sampled near that slot and is SHARED by every trade in the slot. Use price_sol for cost basis, fills and PnL; use market_price_sol for a per-token price series independent of trade size and direction. Filters: action, wallet, since/until (unix seconds — defaults to FULL history, not 90d). Pass next_cursor from the previous response to page older trades; has_more tells you when to stop. Coverage honesty: capture starts 2026-04-12 and is pump.fun-pipeline scoped — the response carries coverage.history_start + coverage.scope so agents can reason about gaps. PRO/ULTRA only.", {
853
937
  mint: z.string().describe("Token mint address (base58)"),
854
938
  limit: z.number().min(1).max(500).default(100).describe("Trades per page (1-500, default 100)"),
@@ -1260,6 +1344,7 @@ async function main() {
1260
1344
  { name: "madeonsol_token_buyer_quality", description: "0–100 buyer quality score for a token's first-buyer cohort." },
1261
1345
  { name: "madeonsol_token_depth", description: "Per-pool price impact / slippage — quotes per SOL buy size + SOL to move price 1%/5%/10%; unsupported pools flagged with a reason. PRO+." },
1262
1346
  { name: "madeonsol_token_candles", description: "Historical OHLCV price candles (1m–1d). PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, full history." },
1347
+ { name: "madeonsol_token_top_traders", description: "The wallets that made or lost the most on a token, ranked by PnL or ROI, enriched with KOL/alpha-wallet identity. PRO/ULTRA." },
1263
1348
  { name: "madeonsol_token_trades", description: "Mint-scoped trade tape — cursor-paginated raw trades for one token, full history from 2026-04-12. PRO+." },
1264
1349
  { name: "madeonsol_tokens_batch_buyer_quality", description: "Bulk buyer-quality scoring for up to 50 mints. Shares the LRU cache." },
1265
1350
  { name: "madeonsol_tokens_batch_risk", description: "Bulk rug-risk/safety scoring for up to 50 mints — same shape as madeonsol_token_risk + as_of; untracked mints don't fail the batch. PRO+." },
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.26.0";
1
+ export declare const VERSION = "1.27.0";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // AUTO-GENERATED by ../gen-version.mjs (npm prebuild) from package.json. Do not edit.
2
- export const VERSION = "1.26.0";
2
+ export const VERSION = "1.27.0";
package/glama.json CHANGED
@@ -1,277 +1,437 @@
1
- {
2
- "name": "mcp-server-madeonsol",
3
- "maintainers": [
4
- "madeonsol"
5
- ],
6
- "display_name": "MadeOnSol — Solana memecoin intelligence",
7
- "description": "Real-time Solana memecoin trading intelligence — track 1,000+ KOL wallets with <3s latency on paid keys and x402 (free-tier live feeds are 5-min delayed), score 15,500+ Pump.fun deployers, surface multi-KOL coordination signals, run server-side copy-trade rules, and stream every DEX trade across 14 programs. Backtested first-touch scout signal (S-tier scouts attract ≥3 follow-on KOLs ~50% of the time vs 14% baseline). Free tier 200 requests per day (live feeds 5-min delayed), no payment to start; auth via msk_ API key or x402 micropayments.",
8
- "version": "1.26.0",
9
- "homepage": "https://madeonsol.com/solana-api",
10
- "repository": "https://github.com/madeonsol/mcp-server-madeonsol",
11
- "license": "MIT",
12
- "categories": [
13
- "blockchain",
14
- "finance",
15
- "web3"
16
- ],
17
- "tags": [
18
- "mcp",
19
- "claude",
20
- "cursor",
21
- "solana",
22
- "memecoin",
23
- "kol",
24
- "kol-tracker",
25
- "alpha-bot",
26
- "first-touch",
27
- "coordination",
28
- "deployer-hunter",
29
- "pump-fun",
30
- "copy-trade",
31
- "smart-money",
32
- "x402",
33
- "micropayments",
34
- "defi",
35
- "trading",
36
- "api"
37
- ],
38
- "tools": [
39
- {
40
- "name": "madeonsol_kol_feed",
41
- "description": "Real-time Solana KOL trade feed from 1,000+ tracked wallets."
42
- },
43
- {
44
- "name": "madeonsol_kol_coordination",
45
- "description": "Multi-KOL convergence with 0-100 score, peak-density window, exits."
46
- },
47
- {
48
- "name": "madeonsol_kol_first_touches",
49
- "description": "First-KOL-touch events — backtested scout signal, filter by tier S/A/B/C."
50
- },
51
- {
52
- "name": "madeonsol_kol_leaderboard",
53
- "description": "KOL PnL + win-rate rankings over today, 7d, 30d, 90d, 180d."
54
- },
55
- {
56
- "name": "madeonsol_kol_pairs",
57
- "description": "KOL affinity matrix — which KOLs co-trade the same tokens."
58
- },
59
- {
60
- "name": "madeonsol_kol_hot_tokens",
61
- "description": "KOL momentum tokens — accelerating buy interest."
62
- },
63
- {
64
- "name": "madeonsol_kol_trending_tokens",
65
- "description": "Tokens ranked by KOL buy volume across 5m–12h windows."
66
- },
67
- {
68
- "name": "madeonsol_kol_token_entry_order",
69
- "description": "Ranked KOL first-buyers for a specific token."
70
- },
71
- {
72
- "name": "madeonsol_kol_compare_wallets",
73
- "description": "Side-by-side comparison of 2-5 KOL wallets with overlap analysis."
74
- },
75
- {
76
- "name": "madeonsol_kol_alerts_recent",
77
- "description": "Unified live KOL alert feed: clusters, fresh buys, heating-up wallets."
78
- },
79
- {
80
- "name": "madeonsol_kol_pnl",
81
- "description": "Deep per-wallet PnL: equity curve, risk metrics, closed + open positions."
82
- },
83
- {
84
- "name": "madeonsol_kol_timing",
85
- "description": "KOL entry/exit timing profile — average hold, win rate by hour."
86
- },
87
- {
88
- "name": "madeonsol_deployer_alerts",
89
- "description": "Pump.fun deployer alerts with KOL enrichment, filter by tier."
90
- },
91
- {
92
- "name": "madeonsol_deployer_trajectory",
93
- "description": "Deployer skill curve — streaks, rolling bond rate, trend."
94
- },
95
- {
96
- "name": "madeonsol_alpha_leaderboard",
97
- "description": "Top profitable early-buyer wallets — 25,000+ scored, up to 500 on ULTRA."
98
- },
99
- {
100
- "name": "madeonsol_alpha_wallet",
101
- "description": "Full alpha profile + bot-signal flags for one wallet."
102
- },
103
- {
104
- "name": "madeonsol_alpha_linked",
105
- "description": "Behaviorally linked wallets (co-bought 3+ tokens within 2s)."
106
- },
107
- {
108
- "name": "madeonsol_tokens_list",
109
- "description": "Filtered token directory — MC band, liquidity, MEV-share, velocity, primary DEX, authority flags, momentum/trending sorts."
110
- },
111
- {
112
- "name": "madeonsol_almost_bonded",
113
- "description": "Pre-bond pump.fun tokens near graduation, ranked by velocity (Δprogress/min) — progress, eta, stalled, deployer tier."
114
- },
115
- {
116
- "name": "madeonsol_token_get",
117
- "description": "Single token detail — MC, holders, velocity, MEV-share, history age."
118
- },
119
- {
120
- "name": "madeonsol_token_batch",
121
- "description": "Bulk token detail fetch — up to 50 mints per call."
122
- },
123
- {
124
- "name": "madeonsol_token_cap_table",
125
- "description": "First non-deployer early buyers for a token, enriched with PnL/KOL/bot flags."
126
- },
127
- {
128
- "name": "madeonsol_token_buyer_quality",
129
- "description": "0-100 buyer-quality score for a token's first-buyer cohort."
130
- },
131
- {
132
- "name": "madeonsol_tokens_batch_buyer_quality",
133
- "description": "Bulk buyer-quality scoring — up to 50 mints per call."
134
- },
135
- {
136
- "name": "madeonsol_tokens_batch_risk",
137
- "description": "Bulk rug-risk/safety scoring — up to 50 mints per call, same shape as madeonsol_token_risk + as_of; untracked mints don't fail the batch."
138
- },
139
- {
140
- "name": "madeonsol_token_trades",
141
- "description": "Mint-scoped trade tape — cursor-paginated raw trades for one token, full history from 2026-04-12, pump.fun-pipeline scoped. PRO+."
142
- },
143
- {
144
- "name": "madeonsol_tokens_surges",
145
- "description": "Token surges & revivals — momentum fires with tape, KOL, early-buyer, deployer context and risk_flags[]; surge tiers early/strong/breakout vs launch MC, revivals confirmed by tape buys; +1 h outcomes and per-tier hit-rates. PRO+."
146
- },
147
- {
148
- "name": "madeonsol_wallet_tracker_watchlist",
149
- "description": "List tracked wallets and remaining capacity (Free 10 / Pro 50 / Ultra 100)."
150
- },
151
- {
152
- "name": "madeonsol_wallet_tracker_add",
153
- "description": "Add a wallet to your watchlist with optional label."
154
- },
155
- {
156
- "name": "madeonsol_wallet_tracker_remove",
157
- "description": "Remove a wallet from your watchlist."
158
- },
159
- {
160
- "name": "madeonsol_wallet_tracker_trades",
161
- "description": "Historical swap/transfer events for watched wallets (120-day retention)."
162
- },
163
- {
164
- "name": "madeonsol_wallet_tracker_summary",
165
- "description": "Per-wallet stats: swap counts, SOL bought/sold, last event."
166
- },
167
- {
168
- "name": "madeonsol_wallet_batch_classify",
169
- "description": "Bulk reputation flags for 1-100 wallets in one call — is_sniper/is_bundler/is_dumper/is_kol, bot_confidence (none/low/medium/high), dump_cluster cohorts. PRO+."
170
- },
171
- {
172
- "name": "madeonsol_copytrade_list",
173
- "description": "List your copy-trade rules."
174
- },
175
- {
176
- "name": "madeonsol_copytrade_create",
177
- "description": "Create a copy-trade rule with webhook + WS delivery (HMAC-signed)."
178
- },
179
- {
180
- "name": "madeonsol_copytrade_get",
181
- "description": "Get one copy-trade rule."
182
- },
183
- {
184
- "name": "madeonsol_copytrade_update",
185
- "description": "Update or toggle a copy-trade rule."
186
- },
187
- {
188
- "name": "madeonsol_copytrade_delete",
189
- "description": "Delete a copy-trade rule."
190
- },
191
- {
192
- "name": "madeonsol_copytrade_signals",
193
- "description": "Recent fired copy-trade signals (up to 7 days, 1-500)."
194
- },
195
- {
196
- "name": "madeonsol_coordination_alerts_list",
197
- "description": "List your KOL coordination alert rules (PRO=5, ULTRA=20)."
198
- },
199
- {
200
- "name": "madeonsol_coordination_alerts_create",
201
- "description": "Create a coordination alert rule — pg_notify push, sub-second delivery."
202
- },
203
- {
204
- "name": "madeonsol_coordination_alerts_get",
205
- "description": "Get one coordination alert rule."
206
- },
207
- {
208
- "name": "madeonsol_coordination_alerts_update",
209
- "description": "Update or toggle a coordination alert rule."
210
- },
211
- {
212
- "name": "madeonsol_coordination_alerts_delete",
213
- "description": "Delete a coordination alert rule."
214
- },
215
- {
216
- "name": "madeonsol_first_touch_subscriptions_list",
217
- "description": "List your first-touch webhook subscriptions (ULTRA, up to 10)."
218
- },
219
- {
220
- "name": "madeonsol_first_touch_subscriptions_create",
221
- "description": "Create a first-touch webhook subscription — push on every S-tier scout buy."
222
- },
223
- {
224
- "name": "madeonsol_first_touch_subscriptions_get",
225
- "description": "Get one first-touch subscription."
226
- },
227
- {
228
- "name": "madeonsol_first_touch_subscriptions_update",
229
- "description": "Update or toggle a first-touch subscription."
230
- },
231
- {
232
- "name": "madeonsol_first_touch_subscriptions_delete",
233
- "description": "Delete a first-touch subscription."
234
- },
235
- {
236
- "name": "madeonsol_create_webhook",
237
- "description": "Register a webhook for real-time push notifications (PRO/ULTRA)."
238
- },
239
- {
240
- "name": "madeonsol_list_webhooks",
241
- "description": "List your registered webhooks (PRO/ULTRA)."
242
- },
243
- {
244
- "name": "madeonsol_delete_webhook",
245
- "description": "Delete a webhook by ID (PRO/ULTRA)."
246
- },
247
- {
248
- "name": "madeonsol_test_webhook",
249
- "description": "Send a test payload to verify a webhook (PRO/ULTRA)."
250
- },
251
- {
252
- "name": "madeonsol_stream_token",
253
- "description": "Issue your WebSocket streaming token (Pro/Ultra) — never expires; same token on every call, rotate=true to replace it. Includes dex_ws_url on ULTRA."
254
- },
255
- {
256
- "name": "madeonsol_stream_sessions_list",
257
- "description": "List live WebSocket streaming sessions — id, service, tier, channels, connected_at, messages_sent (Pro/Ultra)."
258
- },
259
- {
260
- "name": "madeonsol_stream_session_kill",
261
- "description": "Evict a live WebSocket streaming session by id — frees its connection slot (Pro/Ultra)."
262
- },
263
- {
264
- "name": "madeonsol_me",
265
- "description": "Account/quota introspection — tier, remaining requests, per-feature usage."
266
- },
267
- {
268
- "name": "madeonsol_discovery",
269
- "description": "List all available endpoints with x402 prices (free, no auth)."
270
- }
271
- ],
272
- "transports": [
273
- "stdio",
274
- "http"
275
- ],
276
- "runtime": "node"
277
- }
1
+ {
2
+ "name": "mcp-server-madeonsol",
3
+ "maintainers": [
4
+ "madeonsol"
5
+ ],
6
+ "display_name": "MadeOnSol — Solana memecoin intelligence",
7
+ "description": "Real-time Solana memecoin trading intelligence — track 1,000+ KOL wallets with <3s latency on paid keys and x402 (free-tier live feeds are 5-min delayed), score 15,500+ Pump.fun deployers, surface multi-KOL coordination signals, run server-side copy-trade rules, and stream every DEX trade across 14 programs. Backtested first-touch scout signal (S-tier scouts attract ≥3 follow-on KOLs ~50% of the time vs 14% baseline). Free tier 200 requests per day (live feeds 5-min delayed), no payment to start; auth via msk_ API key or x402 micropayments.",
8
+ "version": "1.26.0",
9
+ "homepage": "https://madeonsol.com/solana-api",
10
+ "repository": "https://github.com/madeonsol/mcp-server-madeonsol",
11
+ "license": "MIT",
12
+ "categories": [
13
+ "blockchain",
14
+ "finance",
15
+ "web3"
16
+ ],
17
+ "tags": [
18
+ "mcp",
19
+ "claude",
20
+ "cursor",
21
+ "solana",
22
+ "memecoin",
23
+ "kol",
24
+ "kol-tracker",
25
+ "alpha-bot",
26
+ "first-touch",
27
+ "coordination",
28
+ "deployer-hunter",
29
+ "pump-fun",
30
+ "copy-trade",
31
+ "smart-money",
32
+ "x402",
33
+ "micropayments",
34
+ "defi",
35
+ "trading",
36
+ "api"
37
+ ],
38
+ "tools": [
39
+ {
40
+ "name": "madeonsol_kol_feed",
41
+ "description": "Real-time Solana KOL trade feed from 1,000+ tracked wallets."
42
+ },
43
+ {
44
+ "name": "madeonsol_kol_coordination",
45
+ "description": "Multi-KOL convergence with 0-100 score, peak-density window, exits."
46
+ },
47
+ {
48
+ "name": "madeonsol_kol_leaderboard",
49
+ "description": "KOL PnL + win-rate rankings over today, 7d, 30d, 90d, 180d."
50
+ },
51
+ {
52
+ "name": "madeonsol_deployer_alerts",
53
+ "description": "Pump.fun deployer alerts with KOL enrichment, filter by tier."
54
+ },
55
+ {
56
+ "name": "madeonsol_kol_pairs",
57
+ "description": "KOL affinity matrix — which KOLs co-trade the same tokens."
58
+ },
59
+ {
60
+ "name": "madeonsol_kol_timing",
61
+ "description": "KOL entry/exit timing profile — average hold, win rate by hour."
62
+ },
63
+ {
64
+ "name": "madeonsol_deployer_trajectory",
65
+ "description": "Deployer skill curve — streaks, rolling bond rate, trend."
66
+ },
67
+ {
68
+ "name": "madeonsol_deployer_stats",
69
+ "description": "Ecosystem-wide Pump.fun deployer stats — tracked_count (how many deployers we grade), signals_today, bonds_detected, the chain-wide bond_..."
70
+ },
71
+ {
72
+ "name": "madeonsol_deployer_leaderboard",
73
+ "description": "Pump.fun deployer reputation leaderboard, ranked by bonding rate, recent form, total bonded, or last deploy."
74
+ },
75
+ {
76
+ "name": "madeonsol_deployer_profile",
77
+ "description": "One Pump.fun deployer's profile — tier, lifetime bonding_rate, recent_bond_rate, total deployed/bonded, first seen, last deploy, average..."
78
+ },
79
+ {
80
+ "name": "madeonsol_deployer_tokens",
81
+ "description": "Every token deployed by one Pump.fun wallet, paginated — each row with deployed_at, bonded_at, time-to-bond and peak market cap."
82
+ },
83
+ {
84
+ "name": "madeonsol_deployer_alert_stats",
85
+ "description": "Deployer alert volume over a lookback window, with bond-rate and market-cap-multiplier distributions (pct_2x / pct_5x / pct_10x / pct_50x..."
86
+ },
87
+ {
88
+ "name": "madeonsol_deployer_best_tokens",
89
+ "description": "Best-performing recent tokens launched by RANKED (non-unranked) Pump.fun deployers, by peak market cap multiple over the alert price."
90
+ },
91
+ {
92
+ "name": "madeonsol_deployer_recent_bonds",
93
+ "description": "Tokens from tracked Pump.fun deployers that just graduated to Raydium, newest first, each with time_to_bond_minutes, mc_at_bond, peak mar..."
94
+ },
95
+ {
96
+ "name": "madeonsol_kol_hot_tokens",
97
+ "description": "KOL momentum tokens — accelerating buy interest."
98
+ },
99
+ {
100
+ "name": "madeonsol_kol_token_entry_order",
101
+ "description": "Ranked KOL first-buyers for a specific token."
102
+ },
103
+ {
104
+ "name": "madeonsol_kol_compare_wallets",
105
+ "description": "Side-by-side comparison of 2-5 KOL wallets with overlap analysis."
106
+ },
107
+ {
108
+ "name": "madeonsol_kol_alerts_recent",
109
+ "description": "Unified live KOL alert feed: clusters, fresh buys, heating-up wallets."
110
+ },
111
+ {
112
+ "name": "madeonsol_kol_pnl",
113
+ "description": "Deep per-wallet PnL: equity curve, risk metrics, closed + open positions."
114
+ },
115
+ {
116
+ "name": "madeonsol_kol_trending_tokens",
117
+ "description": "Tokens ranked by KOL buy volume across 5m–12h windows."
118
+ },
119
+ {
120
+ "name": "madeonsol_sniper_recent",
121
+ "description": "Deshred pre-confirm pump.fun deploy feed — new launches surface ~500ms before they confirm on-chain (reconstructed from shred-level data)."
122
+ },
123
+ {
124
+ "name": "madeonsol_sniper_by_deployer",
125
+ "description": "Deshred pre-confirm deploys filtered to a single deployer wallet — audit a deployer's recent launches before tracking them."
126
+ },
127
+ {
128
+ "name": "madeonsol_discovery",
129
+ "description": "List all available endpoints with x402 prices (free, no auth)."
130
+ },
131
+ {
132
+ "name": "madeonsol_wallet_tracker_watchlist",
133
+ "description": "List tracked wallets and remaining capacity (Free 10 / Pro 50 / Ultra 100)."
134
+ },
135
+ {
136
+ "name": "madeonsol_wallet_tracker_add",
137
+ "description": "Add a wallet to your watchlist with optional label."
138
+ },
139
+ {
140
+ "name": "madeonsol_wallet_tracker_remove",
141
+ "description": "Remove a wallet from your watchlist."
142
+ },
143
+ {
144
+ "name": "madeonsol_wallet_tracker_trades",
145
+ "description": "Historical swap/transfer events for watched wallets (120-day retention)."
146
+ },
147
+ {
148
+ "name": "madeonsol_wallet_tracker_summary",
149
+ "description": "Per-wallet stats: swap counts, SOL bought/sold, last event."
150
+ },
151
+ {
152
+ "name": "madeonsol_wallet_stats",
153
+ "description": "Aggregate stats for any Solana wallet over the last 90 days plus cross-product flags (is_kol, is_alpha_tracked with bot_confidence + win_..."
154
+ },
155
+ {
156
+ "name": "madeonsol_wallet_pnl",
157
+ "description": "Full FIFO cost-basis PnL for any wallet: realized + unrealized SOL, profit factor, max drawdown, avg + median hold minutes, daily UTC PnL..."
158
+ },
159
+ {
160
+ "name": "madeonsol_wallet_positions",
161
+ "description": "Open positions only for any wallet — lighter slice of madeonsol_wallet_pnl for use cases that don't need the full PnL summary or curve."
162
+ },
163
+ {
164
+ "name": "madeonsol_wallet_holdings",
165
+ "description": "Verified CURRENT on-chain holdings for any wallet — reads the wallet's actual SPL + Token-2022 token accounts and SOL balance directly fr..."
166
+ },
167
+ {
168
+ "name": "madeonsol_wallet_trades",
169
+ "description": "Cursor-paginated raw trades for any wallet."
170
+ },
171
+ {
172
+ "name": "madeonsol_wallet_batch_classify",
173
+ "description": "Bulk reputation flags for 1-100 wallets in one call — is_sniper/is_bundler/is_dumper/is_kol, bot_confidence (none/low/medium/high), dump_cluster cohorts. PRO+."
174
+ },
175
+ {
176
+ "name": "madeonsol_create_webhook",
177
+ "description": "Register a webhook for real-time push notifications (PRO/ULTRA)."
178
+ },
179
+ {
180
+ "name": "madeonsol_list_webhooks",
181
+ "description": "List your registered webhooks (PRO/ULTRA)."
182
+ },
183
+ {
184
+ "name": "madeonsol_delete_webhook",
185
+ "description": "Delete a webhook by ID (PRO/ULTRA)."
186
+ },
187
+ {
188
+ "name": "madeonsol_test_webhook",
189
+ "description": "Send a test payload to verify a webhook (PRO/ULTRA)."
190
+ },
191
+ {
192
+ "name": "madeonsol_stream_token",
193
+ "description": "Issue your WebSocket streaming token (Pro/Ultra) — never expires; same token on every call, rotate=true to replace it. Includes dex_ws_url on ULTRA."
194
+ },
195
+ {
196
+ "name": "madeonsol_stream_sessions_list",
197
+ "description": "List live WebSocket streaming sessions — id, service, tier, channels, connected_at, messages_sent (Pro/Ultra)."
198
+ },
199
+ {
200
+ "name": "madeonsol_stream_session_kill",
201
+ "description": "Evict a live WebSocket streaming session by id — frees its connection slot (Pro/Ultra)."
202
+ },
203
+ {
204
+ "name": "madeonsol_me",
205
+ "description": "Account/quota introspection — tier, remaining requests, per-feature usage."
206
+ },
207
+ {
208
+ "name": "madeonsol_tokens_list",
209
+ "description": "Filtered token directory — MC band, liquidity, MEV-share, velocity, primary DEX, authority flags, momentum/trending sorts."
210
+ },
211
+ {
212
+ "name": "madeonsol_almost_bonded",
213
+ "description": "Pre-bond pump.fun tokens near graduation, ranked by velocity (Δprogress/min) — progress, eta, stalled, deployer tier."
214
+ },
215
+ {
216
+ "name": "madeonsol_alpha_leaderboard",
217
+ "description": "Top profitable early-buyer wallets — 25,000+ scored, up to 500 on ULTRA."
218
+ },
219
+ {
220
+ "name": "madeonsol_alpha_wallet",
221
+ "description": "Full alpha profile + bot-signal flags for one wallet."
222
+ },
223
+ {
224
+ "name": "madeonsol_alpha_linked",
225
+ "description": "Behaviorally linked wallets (co-bought 3+ tokens within 2s)."
226
+ },
227
+ {
228
+ "name": "madeonsol_token_cap_table",
229
+ "description": "First non-deployer early buyers for a token, enriched with PnL/KOL/bot flags."
230
+ },
231
+ {
232
+ "name": "madeonsol_token_buyer_quality",
233
+ "description": "0-100 buyer-quality score for a token's first-buyer cohort."
234
+ },
235
+ {
236
+ "name": "madeonsol_token_risk",
237
+ "description": "Transparent 0–100 token rug-risk/safety score (higher = riskier)."
238
+ },
239
+ {
240
+ "name": "madeonsol_token_bundle",
241
+ "description": "Bundle-cohort holdings for a token — which same-slot bundle wallets bought it and how much of supply they still hold (held_pct_of_supply)."
242
+ },
243
+ {
244
+ "name": "madeonsol_token_pools",
245
+ "description": "Per-venue liquidity map for a Solana token — every DEX pool it trades in (pump.fun/PumpSwap/Raydium/Meteora/Orca) with per-pool liquidity..."
246
+ },
247
+ {
248
+ "name": "madeonsol_token_holders",
249
+ "description": "Live holder census + concentration for a Solana token — WHO HOLDS NOW (madeonsol_token_cap_table is who bought first)."
250
+ },
251
+ {
252
+ "name": "madeonsol_token_locks",
253
+ "description": "Token locks & vesting on ONE Solana mint — every on-chain lock / vesting contract from Streamflow, Jupiter Lock and Bonfida token-vesting..."
254
+ },
255
+ {
256
+ "name": "madeonsol_token_locks_feed",
257
+ "description": "Cross-token feed of NEW token lock / vesting contracts — who just locked tokens, of what mint, how much, until when — newest first, acros..."
258
+ },
259
+ {
260
+ "name": "madeonsol_token_unlocks",
261
+ "description": "Upcoming token UNLOCK EVENTS across all active lock / vesting contracts inside a window — cliffs, periodic releases (hourly or coarser) a..."
262
+ },
263
+ {
264
+ "name": "madeonsol_token_fee_shares",
265
+ "description": "pump.fun creator-fee SHARING on one coin — who receives what share of its creator fees."
266
+ },
267
+ {
268
+ "name": "madeonsol_token_fee_claims",
269
+ "description": "pump.fun FEE-EVENT feed, newest first, across all coins: every decoded pump_fees / pump event — type = distribution (creator fees paid ou..."
270
+ },
271
+ {
272
+ "name": "madeonsol_tokens_surges",
273
+ "description": "Token surges & revivals — momentum fires with tape, KOL, early-buyer, deployer context and risk_flags[]; surge tiers early/strong/breakout vs launch MC, revivals confirmed by tape buys; +1 h outcomes and per-tier hit-rates. PRO+."
274
+ },
275
+ {
276
+ "name": "madeonsol_token_depth",
277
+ "description": "Per-pool price-impact / slippage for a token — answers 'how much SOL moves this token's price N%' and the impact of each buy size, per po..."
278
+ },
279
+ {
280
+ "name": "madeonsol_deployer_history",
281
+ "description": "A pump.fun deployer's daily reputation time-series (bonding_rate, recent_bond_rate, tier, avg_peak_mc per day)."
282
+ },
283
+ {
284
+ "name": "madeonsol_deployer_as_of",
285
+ "description": "A pump.fun deployer's reputation exactly as it stood on a given date — the latest write-on-change snapshot at or before it, so an agent b..."
286
+ },
287
+ {
288
+ "name": "madeonsol_deployer_rewards",
289
+ "description": "pump.fun creator-fee rewards for a wallet, answered two ways that are never merged: collected (what actually reached the wallet — direct..."
290
+ },
291
+ {
292
+ "name": "madeonsol_token_candles",
293
+ "description": "Historical OHLCV price candles for a token, aggregated from the on-chain trade firehose."
294
+ },
295
+ {
296
+ "name": "madeonsol_token_flow",
297
+ "description": "Trade-flow aggregate for a token — an organic-vs-fake volume read over a 1h/24h window."
298
+ },
299
+ {
300
+ "name": "madeonsol_token_trades",
301
+ "description": "Mint-scoped trade tape — cursor-paginated raw trades for one token, full history from 2026-04-12, pump.fun-pipeline scoped. PRO+."
302
+ },
303
+ {
304
+ "name": "madeonsol_tokens_batch_buyer_quality",
305
+ "description": "Bulk buyer-quality scoring — up to 50 mints per call."
306
+ },
307
+ {
308
+ "name": "madeonsol_tokens_batch_risk",
309
+ "description": "Bulk rug-risk/safety scoring — up to 50 mints per call, same shape as madeonsol_token_risk + as_of; untracked mints don't fail the batch."
310
+ },
311
+ {
312
+ "name": "madeonsol_token_get",
313
+ "description": "Single token detail — MC, holders, velocity, MEV-share, history age."
314
+ },
315
+ {
316
+ "name": "madeonsol_token_batch",
317
+ "description": "Bulk token detail fetch — up to 50 mints per call."
318
+ },
319
+ {
320
+ "name": "madeonsol_copytrade_list",
321
+ "description": "List your copy-trade rules."
322
+ },
323
+ {
324
+ "name": "madeonsol_copytrade_create",
325
+ "description": "Create a copy-trade rule with webhook + WS delivery (HMAC-signed)."
326
+ },
327
+ {
328
+ "name": "madeonsol_copytrade_get",
329
+ "description": "Get one copy-trade rule."
330
+ },
331
+ {
332
+ "name": "madeonsol_copytrade_update",
333
+ "description": "Update or toggle a copy-trade rule."
334
+ },
335
+ {
336
+ "name": "madeonsol_copytrade_delete",
337
+ "description": "Delete a copy-trade rule."
338
+ },
339
+ {
340
+ "name": "madeonsol_copytrade_signals",
341
+ "description": "Recent fired copy-trade signals (up to 7 days, 1-500)."
342
+ },
343
+ {
344
+ "name": "madeonsol_coordination_alerts_list",
345
+ "description": "List your KOL coordination alert rules (PRO=5, ULTRA=20)."
346
+ },
347
+ {
348
+ "name": "madeonsol_coordination_alerts_create",
349
+ "description": "Create a coordination alert rule — pg_notify push, sub-second delivery."
350
+ },
351
+ {
352
+ "name": "madeonsol_coordination_alerts_get",
353
+ "description": "Get one coordination alert rule."
354
+ },
355
+ {
356
+ "name": "madeonsol_coordination_alerts_update",
357
+ "description": "Update or toggle a coordination alert rule."
358
+ },
359
+ {
360
+ "name": "madeonsol_coordination_alerts_delete",
361
+ "description": "Delete a coordination alert rule."
362
+ },
363
+ {
364
+ "name": "madeonsol_kol_first_touches",
365
+ "description": "First-KOL-touch events — backtested scout signal, filter by tier S/A/B/C."
366
+ },
367
+ {
368
+ "name": "madeonsol_first_touch_subscriptions_list",
369
+ "description": "List your first-touch webhook subscriptions (ULTRA, up to 10)."
370
+ },
371
+ {
372
+ "name": "madeonsol_first_touch_subscriptions_create",
373
+ "description": "Create a first-touch webhook subscription — push on every S-tier scout buy."
374
+ },
375
+ {
376
+ "name": "madeonsol_first_touch_subscriptions_get",
377
+ "description": "Get one first-touch subscription."
378
+ },
379
+ {
380
+ "name": "madeonsol_first_touch_subscriptions_update",
381
+ "description": "Update or toggle a first-touch subscription."
382
+ },
383
+ {
384
+ "name": "madeonsol_first_touch_subscriptions_delete",
385
+ "description": "Delete a first-touch subscription."
386
+ },
387
+ {
388
+ "name": "madeonsol_price_alerts_list",
389
+ "description": "List your price alerts."
390
+ },
391
+ {
392
+ "name": "madeonsol_price_alerts_create",
393
+ "description": "Create a price alert."
394
+ },
395
+ {
396
+ "name": "madeonsol_price_alerts_get",
397
+ "description": "Get one price alert by id."
398
+ },
399
+ {
400
+ "name": "madeonsol_price_alerts_update",
401
+ "description": "Update alert name, delivery mode, webhook URL, or is_active."
402
+ },
403
+ {
404
+ "name": "madeonsol_price_alerts_delete",
405
+ "description": "Delete a price alert and its event history."
406
+ },
407
+ {
408
+ "name": "madeonsol_price_alerts_events",
409
+ "description": "Fired price alert event history (30-day retention)."
410
+ },
411
+ {
412
+ "name": "madeonsol_scout_leaderboard",
413
+ "description": "Scout leaderboard — top KOLs ranked by scout score, first-touch frequency, and swarm attraction rate (% of first-touched tokens that attr..."
414
+ },
415
+ {
416
+ "name": "madeonsol_coordination_history",
417
+ "description": "Coordination history — past coordination alert fires with token, coordination score, KOL count, and timing."
418
+ },
419
+ {
420
+ "name": "madeonsol_kol_consensus",
421
+ "description": "KOL consensus on a specific token: total buyers/sellers, exit rate, net SOL flow, median entry MC."
422
+ },
423
+ {
424
+ "name": "madeonsol_peak_history",
425
+ "description": "Peak MC history for a token: all-time high MC, decline from peak %, MC at bond, MC at 1h/6h/24h/7d after bond, time-to-bond, and deploy/b..."
426
+ },
427
+ {
428
+ "name": "madeonsol_signal_performance",
429
+ "description": "Signal performance stats for a named signal — hit rate, sample size, median outcome, and confidence window."
430
+ }
431
+ ],
432
+ "transports": [
433
+ "stdio",
434
+ "http"
435
+ ],
436
+ "runtime": "node"
437
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-madeonsol",
3
- "version": "1.26.0",
3
+ "version": "1.27.0",
4
4
  "mcpName": "io.github.MadeOnSol/madeonsol",
5
5
  "description": "MCP server for MadeOnSol Solana KOL intelligence API — use from Claude, Cursor, or any MCP client. Free tier 200 req/day (live feeds 5-min delayed; paid is real-time), no payment to start.",
6
6
  "type": "module",
@@ -59,7 +59,7 @@
59
59
  "@x402/fetch": "^2.8.0",
60
60
  "@x402/core": "^2.8.0",
61
61
  "@x402/svm": "^2.8.0",
62
- "@solana/kit": "^5.5.1",
62
+ "@solana/kit": ">=5.5.1 <9.0.0",
63
63
  "@scure/base": "^2.0.0"
64
64
  },
65
65
  "peerDependenciesMeta": {