mcp-server-madeonsol 1.6.0 → 1.7.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
@@ -4,7 +4,7 @@ MCP server for [MadeOnSol](https://madeonsol.com) Solana KOL intelligence API. U
4
4
 
5
5
  > Real-time Solana trading intelligence: track 1,000+ KOL wallets with <3s latency, score 6,700+ Pump.fun deployers by reputation, detect multi-KOL coordination signals, monitor any Solana wallet for swaps and transfers, and stream every DEX trade. Free tier: 200 requests/day at [madeonsol.com/developer](https://madeonsol.com/developer) — no credit card required.
6
6
 
7
- > **New in 1.6.0** *(2026-05-09)* — **Market-cap filtering everywhere.** `madeonsol_kol_feed`, `madeonsol_kol_coordination`, `madeonsol_kol_first_touches`, and `madeonsol_copytrade_signals` all accept `min_mc_usd` / `max_mc_usd` so the assistant can ask "show me sub-$50K KOL trades" without post-filtering. Tool descriptions updated. Deprecated `avg_entry_mc_usd` removed from leaderboards.
7
+ > **New in 1.7.0** *(2026-05-12)* — Two new tools: **`madeonsol_me`** (account/quota introspection — read tier, remaining requests, and per-feature usage without parsing rate-limit headers) and **`madeonsol_tokens_list`** (PRO+ filtered, sortable token directory — MC band, liquidity floor, primary DEX, authority/safety flags, plus computed 1h volume / MEV-share / MC-change deltas). Token responses now expose **velocity / MEV-share** fields. Token directory defaults to **`min_liq=2000`** to skip phantom-MC dust — pass `min_liq=0` to opt out. `/token/{mint}` now returns **structured 400 errors** (`code` / `reason` / `example` / `docs`) instead of plain strings. Deprecated `avg_entry_mc_usd` field fully removed from KOL/alpha leaderboards.
8
8
 
9
9
  ## Quick start (10 seconds)
10
10
 
@@ -109,6 +109,7 @@ Scored from 47,000+ early-buyer records (wallets seen in the first 20 buyers of
109
109
 
110
110
  | Tool | Tier | Description |
111
111
  |---|---|---|
112
+ | `madeonsol_tokens_list` | PRO+ | Filtered, sortable token directory — MC band, liquidity floor, primary DEX, authority/safety flags, computed 1h volume / MEV-share / MC-change deltas. Default `min_liq=2000` skips phantom-MC dust. |
112
113
  | `madeonsol_token_cap_table` | PRO+ | First non-deployer early buyers, enriched with PnL/KOL/bot flags. PRO=10, ULTRA=20 |
113
114
  | `madeonsol_token_buyer_quality` | All | 0–100 buyer-quality score + full breakdown (5-min cached) |
114
115
 
@@ -169,6 +170,7 @@ Every "first KOL buy on a token mint" event. Filterable by **scout tier** (S/A/B
169
170
  | Tool | Description |
170
171
  |---|---|
171
172
  | `madeonsol_discovery` | List all endpoints and prices (free, no auth) |
173
+ | `madeonsol_me` | Inspect your account — tier, daily/burst quota state, remaining requests, subscription expiry, per-feature usage (webhooks, copy-trade wallets, coordination rules, etc.). Self-throttle without parsing rate-limit headers. |
172
174
 
173
175
  ## Tiers
174
176
 
package/dist/index.js CHANGED
@@ -392,6 +392,37 @@ function registerTools(server) {
392
392
  server.tool("madeonsol_stream_token", "Generate a 24h WebSocket streaming token. Includes ws_url for KOL/deployer streaming (Pro/Ultra) and dex_ws_url for all-DEX trade streaming (Ultra only).", {}, { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }, async () => ({
393
393
  content: [{ type: "text", text: await restQuery("POST", "/stream/token") }],
394
394
  }));
395
+ // ── Account / quota introspection ──
396
+ server.tool("madeonsol_me", "Inspect your MadeOnSol API account — current tier, daily/burst quota state, remaining requests, subscription expiry, and per-feature usage (webhooks, copy-trade wallets, coordination rules, etc.). Use to self-throttle without parsing rate-limit headers.", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async () => ({
397
+ content: [{ type: "text", text: await restQuery("GET", "/me") }],
398
+ }));
399
+ // ── Token directory (PRO+) ──
400
+ server.tool("madeonsol_tokens_list", "Filtered, sortable token directory. Browse all tracked Solana tokens by market-cap band, liquidity floor, recent-activity window, primary DEX, authority/safety flags, and computed 1h volume / MEV-share / MC-change deltas. Default min_liq=2000 skips phantom-MC dust (low-liquidity pools producing absurd VWAP×supply products) — pass min_liq=0 to opt out. Computed filters (min_volume_1h_usd, max_mev_share_pct, mc_change_1h_min_pct, mc_change_1h_max_pct) over-fetch and post-filter — pagination.post_filtered=true on the response means page size may be < limit. PRO+ only.", {
401
+ min_mc: z.number().optional().describe("Minimum market cap in USD"),
402
+ max_mc: z.number().optional().describe("Maximum market cap in USD"),
403
+ min_liq: z.number().optional().describe("Minimum quote-side liquidity in USD (default 2000 — pass 0 to opt out of phantom-MC filter)"),
404
+ active_h: z.number().optional().describe("Only tokens with a trade in the last N hours"),
405
+ primary_dex: z.enum(["pumpfun", "pumpswap", "raydium", "meteora", "orca", "raydium_clmm"]).optional().describe("Filter by primary DEX"),
406
+ authority_revoked: z.boolean().optional().describe("Only tokens whose mint+freeze authority is revoked"),
407
+ exclude_token2022: z.boolean().optional().describe("Exclude Token-2022 mints (transfer-fee / hook risk)"),
408
+ min_lp_burnt_pct: z.number().optional().describe("Minimum % of LP supply burned (0-100)"),
409
+ min_volume_1h_usd: z.number().optional().describe("Minimum trailing 1h volume in USD (post-filter — may shrink page size)"),
410
+ max_mev_share_pct: z.number().optional().describe("Maximum MEV-share % of 1h volume (post-filter)"),
411
+ mc_change_1h_min_pct: z.number().optional().describe("Minimum 1h MC change % (post-filter; negative allowed)"),
412
+ mc_change_1h_max_pct: z.number().optional().describe("Maximum 1h MC change % (post-filter)"),
413
+ sort: z.enum(["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc"]).optional().describe("Sort axis (default mc_desc)"),
414
+ limit: z.number().min(1).max(100).optional().describe("Page size (max 100)"),
415
+ offset: z.number().min(0).optional().describe("Pagination offset"),
416
+ }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async (args) => {
417
+ const url = new URL(`${BASE_URL}/api/v1/tokens`);
418
+ for (const [k, v] of Object.entries(args)) {
419
+ if (v !== undefined)
420
+ url.searchParams.set(k, typeof v === "boolean" ? (v ? "true" : "false") : String(v));
421
+ }
422
+ const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ...apiKeyHeaders() } });
423
+ const text = res.ok ? JSON.stringify(await res.json(), null, 2) : `Error ${res.status}: ${await res.text().catch(() => "")}`;
424
+ return { content: [{ type: "text", text }] };
425
+ });
395
426
  // ── Alpha wallet intelligence ──
396
427
  server.tool("madeonsol_alpha_leaderboard", "Top statistically profitable early-buyer wallets, scored from 47,000+ early-buyer records. BASIC=25 (truncated), PRO=100, ULTRA=500 + bot signals.", {
397
428
  period: z.enum(["7d", "30d", "all"]).default("30d").describe("Time window"),
@@ -650,7 +681,7 @@ async function main() {
650
681
  res.end(JSON.stringify({
651
682
  name: "madeonsol",
652
683
  description: "Solana KOL trading intelligence and deployer analytics. Real-time data from 1,000+ KOL wallets, 6,700+ Pump.fun deployers, 47,000+ scored alpha wallets, copy-trade rules, and wallet tracker. Supports MadeOnSol API key (msk_) or x402 micropayments.",
653
- version: "1.3.1",
684
+ version: "1.7.0",
654
685
  tools: [
655
686
  { name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 1,000+ tracked wallets." },
656
687
  { name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating." },
@@ -671,6 +702,8 @@ async function main() {
671
702
  { name: "madeonsol_delete_webhook", description: "Delete a webhook by ID. Pro/Ultra." },
672
703
  { name: "madeonsol_test_webhook", description: "Send a test payload to verify a webhook. Pro/Ultra." },
673
704
  { name: "madeonsol_stream_token", description: "Get a 24h WebSocket streaming token. Pro/Ultra." },
705
+ { name: "madeonsol_me", description: "Inspect your account — tier, quota state, remaining requests, subscription expiry, per-feature usage." },
706
+ { name: "madeonsol_tokens_list", description: "Filtered, sortable token directory — MC band, liquidity floor, primary DEX, authority/safety flags, computed 1h volume / MEV-share / MC-change. PRO+." },
674
707
  { name: "madeonsol_wallet_tracker_watchlist", description: "List your tracked wallets and remaining capacity." },
675
708
  { name: "madeonsol_wallet_tracker_add", description: "Add a wallet to your watchlist." },
676
709
  { name: "madeonsol_wallet_tracker_remove", description: "Remove a wallet from your watchlist." },
@@ -716,7 +749,7 @@ async function main() {
716
749
  transport = new StreamableHTTPServerTransport({
717
750
  sessionIdGenerator: undefined,
718
751
  });
719
- const server = new McpServer({ name: "madeonsol", version: "1.1.2" });
752
+ const server = new McpServer({ name: "madeonsol", version: "1.7.0" });
720
753
  registerTools(server);
721
754
  await server.connect(transport);
722
755
  }
@@ -754,7 +787,7 @@ async function main() {
754
787
  }
755
788
  else {
756
789
  // Stdio transport for local use (Claude Desktop, Cursor, Claude Code)
757
- const server = new McpServer({ name: "madeonsol", version: "1.1.2" });
790
+ const server = new McpServer({ name: "madeonsol", version: "1.7.0" });
758
791
  registerTools(server);
759
792
  const transport = new StdioServerTransport();
760
793
  await server.connect(transport);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-madeonsol",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "mcpName": "io.github.lambopoewert/madeonsol",
5
5
  "description": "MCP server for MadeOnSol Solana KOL intelligence API — use from Claude, Cursor, or any MCP client",
6
6
  "type": "module",