mcp-server-madeonsol 1.25.1 → 1.26.1

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,10 +13,12 @@ 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.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
+
16
18
  > **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`.
17
19
 
18
- > **New in 1.24.1 — stream tokens never expire.** `madeonsol_stream_token` (`POST /stream/token`) now returns the **same token on every call, forever**. It stops working only if your subscription lapses or you call the tool with `rotate: true` to replace it (the previous value keeps working for 60 s). `expires_at` and the new `next_refresh_at` are always `null` (kept for wire compatibility — do not schedule refreshes on them); the response gains `rotated` (boolean) and `lifetime` (string). The server never rotates on its own and never sends `token_refresh` unless you rotated; a `4001` close means "mint again" (lapsed or rotated), never a timer. Prefer `Authorization: Bearer <token>` on the WebSocket handshake — `?token=` still works and is masked in access logs.
19
-
20
+ > **New in 1.24.1 — stream tokens never expire.** `madeonsol_stream_token` (`POST /stream/token`) now returns the **same token on every call, forever**. It stops working only if your subscription lapses or you call the tool with `rotate: true` to replace it (the previous value keeps working for 60 s). `expires_at` and the new `next_refresh_at` are always `null` (kept for wire compatibility — do not schedule refreshes on them); the response gains `rotated` (boolean) and `lifetime` (string). The server never rotates on its own and never sends `token_refresh` unless you rotated; a `4001` close means "mint again" (lapsed or rotated), never a timer. Prefer `Authorization: Bearer <token>` on the WebSocket handshake — `?token=` still works and is masked in access logs.
21
+
20
22
  > **New in 1.24.0 — token locks & vesting, upcoming unlocks, and pump.fun creator-fee sharing / claims.** Five new tools (all PRO+, keyed `msk_` API only — no x402 route). `madeonsol_token_locks` binds `GET /tokens/{mint}/locks`: every on-chain lock / vesting contract on a mint (Streamflow, Jupiter Lock, Bonfida vesting) with the schedule, the terms (`cancelable_by_sender` = the locker can pull it — funds are locked against the recipient, not the locker) and a live-derived view (`locked_*`, `claimable_*`, `next_unlock`) plus a `summary` with 7d / 30d forward unlock totals. `madeonsol_token_locks_feed` (`GET /tokens/locks`) is the cross-token feed of NEW contracts (cursor `pagination.next_since`, or push on WS channel **`token:locks`**), `madeonsol_token_unlocks` (`GET /tokens/unlocks`) lists upcoming unlock EVENTS (cliff / period / final / tranche) inside a 1h–90d window sorted by soonest / largest_usd / largest_pct. **LP locks are not included** — token/vesting locks only. `madeonsol_token_fee_shares` (`GET /tokens/{mint}/fee-shares`) decodes a pump.fun coin's on-chain `SharingConfig` — shareholders with `share_bps`, `is_admin`, `is_social_pda` (fees earmarked for an X identity: `social.platform` 2 = X, `user_id` = the numeric platform id, not the handle), `redirected_bps`, `is_default: true` = 100% to the creator — plus a distributions rollup and config history; `madeonsol_token_fee_claims` (`GET /tokens/fee-claims`) is the fee-event feed (`distribution` with per-address `payouts[]`, `social_claim`, `shares_created/updated/reset`, `creator_transferred`, `creator_claim` only when asked via `type=`), pushed on WS channel **`token:fee_claims`**. **Fee-event history starts 2026-08-17.** All base-unit amounts are digit **strings**; ui / usd / pct are `null` when decimals or price are unknown.
21
23
 
22
24
  > **New in 1.23.0 — live holder census: exact holder count, labelled holders, and pools that are named, not just excluded.** The new `madeonsol_token_holders` tool binds `GET /tokens/{mint}/holders` (PRO+): every token account of the mint read from the ledger at `confirmed` and merged per owner, so `concentration.holder_count` is EXACT (distinct non-zero owners minus pools / bonding curves / burns) — never a trade-derived estimate; it is `null` only when the provider refuses the census for a mega-cap, in which case you get the top-20 view and `source.census_fallback_reason` says so. Each disclosed owner carries our labels (`deployer` / `kol` / `early_buyer` / `bundle` / `bot` / `dump_cluster` — empty means unknown to us, not clean), and `excluded[]` NAMES what was taken out of the circulating denominator: `reason` = `pool` (with `dex` + `pool_address`), `bonding_curve` (pump.fun / LaunchLab), `burn`, or `program_account` only when we genuinely cannot attribute the PDA; `pool_pct` / `burned_pct` / `program_pct` split the exclusion. Amounts are raw u64 **strings**. Disclosure: PRO ranks 1–10, ULTRA 1–50, BUSINESS 1–100 — the maths is tier-independent. Big tokens take 5–30 s upstream: you get `503 holder_scan_in_progress` with `retry_after_seconds: 20` while the scan finishes into the cache, and the retry is instant.
package/dist/index.js CHANGED
@@ -801,6 +801,23 @@ function registerTools(server) {
801
801
  const path = `/deployer-hunter/${encodeURIComponent(wallet)}/history${query ? `?${query}` : ""}`;
802
802
  return { content: [{ type: "text", text: await restQuery("GET", path) }] };
803
803
  });
804
+ server.tool("madeonsol_deployer_as_of", "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 backtests without look-ahead bias. snapshot.snapshot_date can predate the requested date (snapshots are write-on-change); snapshot.carried=true marks that. No snapshot at or before the date returns as_of:false, snapshot:null — nothing is ever synthesized. date must be >= 2026-04-07 and not in the future. PRO/ULTRA only — BASIC receives HTTP 403.", {
805
+ wallet: z.string().describe("Deployer wallet address (base58)"),
806
+ date: z.string().optional().describe("YYYY-MM-DD (UTC). Default: today. Must be >= 2026-04-07 and not in the future."),
807
+ }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ wallet, date }) => {
808
+ const qs = new URLSearchParams();
809
+ if (date !== undefined)
810
+ qs.set("date", date);
811
+ const query = qs.toString();
812
+ const path = `/deployer-hunter/${encodeURIComponent(wallet)}/as-of${query ? `?${query}` : ""}`;
813
+ return { content: [{ type: "text", text: await restQuery("GET", path) }] };
814
+ });
815
+ server.tool("madeonsol_deployer_rewards", "pump.fun creator-fee rewards for a wallet, 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 (up to 10, USD-sorted) show where attributed fees went. Works for non-deployers too (is_deployer:false, attributed empty). PRO/ULTRA only — BASIC receives HTTP 403.", {
816
+ wallet: z.string().describe("Wallet address (base58)"),
817
+ }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ wallet }) => {
818
+ const path = `/deployer-hunter/${encodeURIComponent(wallet)}/rewards`;
819
+ return { content: [{ type: "text", text: await restQuery("GET", path) }] };
820
+ });
804
821
  server.tool("madeonsol_token_candles", "Historical OHLCV price candles for a token, aggregated from the on-chain trade firehose. Each candle carries t/open/high/low/close/volume_usd/trades/market_cap_usd. Timeframes: 1m/5m/15m/1h/4h/1d. PRO=OHLCV, last 30 days only. ULTRA adds buy/sell volume + count splits, net flow, MEV volume, open/close liquidity, high/low MC, and full history. PRO/ULTRA only — BASIC receives HTTP 403.", {
805
822
  mint: z.string().describe("Token mint address (base58)"),
806
823
  tf: z.enum(["1m", "5m", "15m", "1h", "4h", "1d"]).optional().describe("Candle timeframe (default 1h)"),
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "1.25.1";
1
+ export declare const VERSION = "1.26.1";
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.25.1";
2
+ export const VERSION = "1.26.1";
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.25.1",
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.25.1",
3
+ "version": "1.26.1",
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": {