mcp-server-madeonsol 1.10.4 → 1.11.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, score 23,000+ Pump.fun deployers, surface deshred deploy signals **~500ms before on-chain confirmation**, detect multi-KOL coordination, and stream every DEX trade across 9+ programs. Free tier: 200 requests/day at [madeonsol.com/pricing](https://madeonsol.com/pricing) — no credit card required.
15
15
 
16
+ > **New in 1.11.0** — `madeonsol_tokens_list` gains three new filter params: `min_liq_mc_ratio`, `max_liq_mc_ratio`, and `deployer_tier`. Response items now include `liquidity_to_mc_ratio` and `deployer_tier`. New tool: `madeonsol_signal_performance` — evaluate signal efficacy (hit rate, sample size, median outcome) before acting on any signal. KOL leaderboard entries now include `median_hold_minutes_30d` and `percentile_early_entry_30d`.
17
+ >
16
18
  > **New in 1.10.4** — Deployer alerts/profiles now expose `runner_rate` + `labeled_tokens` (fraction of a deployer's labeled tokens that ran vs dumped, gate on `labeled_tokens` ≥3) plus `avg_time_to_bond_minutes`.
17
19
 
18
20
  > **New in 1.10.3** — **Dump-cluster detection.** `madeonsol_token_buyer_quality` breakdown now includes `dump_cluster_count` (3+ dump-cluster wallets in the first-20 → 94% historical dump rate vs 61% base) and `recycled_early_buyer_count`. Full breakdown is returned on all tiers. Also: the API now pushes every pump.fun graduation in real time (`token:graduations` WS channel).
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ const PORT = parseInt(process.env.PORT || "3100", 10);
11
11
  const MODE = process.env.MCP_TRANSPORT || "stdio"; // "stdio" or "http"
12
12
  let authMode = "none";
13
13
  let paidFetch = fetch;
14
- const UA = "mcp-server-madeonsol/1.10.2";
14
+ const UA = "mcp-server-madeonsol/1.11.0";
15
15
  function apiKeyHeaders() {
16
16
  const h = { "User-Agent": UA };
17
17
  if (authMode === "madeonsol") {
@@ -504,6 +504,9 @@ function registerTools(server) {
504
504
  max_mev_share_pct: z.number().optional().describe("Maximum MEV-share % of 1h volume (post-filter)"),
505
505
  mc_change_1h_min_pct: z.number().optional().describe("Minimum 1h MC change % (post-filter; negative allowed)"),
506
506
  mc_change_1h_max_pct: z.number().optional().describe("Maximum 1h MC change % (post-filter)"),
507
+ min_liq_mc_ratio: z.number().optional().describe("Minimum liquidity-to-MC ratio (0-1). Filters out tokens where liquidity is thin relative to market cap."),
508
+ max_liq_mc_ratio: z.number().optional().describe("Maximum liquidity-to-MC ratio (0-1)."),
509
+ deployer_tier: z.enum(["elite", "good", "moderate", "rising", "cold", "unranked"]).optional().describe("Filter by deployer reputation tier."),
507
510
  sort: z.enum(["mc_desc", "mc_asc", "last_trade_desc", "liquidity_desc", "cumulative_volume_desc"]).optional().describe("Sort axis (default mc_desc)"),
508
511
  limit: z.number().min(1).max(100).optional().describe("Page size (max 100)"),
509
512
  offset: z.number().min(0).optional().describe("Pagination offset"),
@@ -822,6 +825,11 @@ function registerTools(server) {
822
825
  }, readOnlyAnnotations, async ({ mint }) => ({
823
826
  content: [{ type: "text", text: await restQuery("GET", `/tokens/${encodeURIComponent(mint)}/peak-history`) }],
824
827
  }));
828
+ server.tool("madeonsol_signal_performance", "Signal performance stats for a named signal — hit rate, sample size, median outcome, and confidence window. Use this to evaluate how well a signal (e.g. 'kol_coordination', 'first_touch') has been predicting token moves before acting on it.", {
829
+ name: z.string().describe("Signal name (e.g. 'kol_coordination', 'first_touch', 'deployer_alert')"),
830
+ }, readOnlyAnnotations, async ({ name }) => ({
831
+ content: [{ type: "text", text: await restQuery("GET", `/signals/${encodeURIComponent(name)}/performance`) }],
832
+ }));
825
833
  console.error("[madeonsol-mcp] Webhook & streaming tools enabled");
826
834
  }
827
835
  else {
@@ -866,7 +874,7 @@ async function main() {
866
874
  res.end(JSON.stringify({
867
875
  name: "madeonsol",
868
876
  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.",
869
- version: "1.10.2",
877
+ version: "1.11.0",
870
878
  tools: [
871
879
  { name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 1,000+ tracked wallets." },
872
880
  { name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating." },
@@ -933,6 +941,7 @@ async function main() {
933
941
  { name: "madeonsol_coordination_history", description: "Past coordination alert fires with score and timing. ULTRA." },
934
942
  { name: "madeonsol_kol_consensus", description: "KOL consensus on a token: buyers/sellers, exit rate, net flow. ULTRA gets wallet arrays." },
935
943
  { name: "madeonsol_peak_history", description: "Peak MC history: ATH, decline %, MC at bond, MC at 1h/6h/24h/7d after bond." },
944
+ { name: "madeonsol_signal_performance", description: "Signal performance stats for a named signal — hit rate, sample size, median outcome, confidence window." },
936
945
  ],
937
946
  homepage: "https://madeonsol.com/solana-api",
938
947
  repository: "https://github.com/LamboPoewert/mcp-server-madeonsol",
@@ -948,7 +957,7 @@ async function main() {
948
957
  transport = new StreamableHTTPServerTransport({
949
958
  sessionIdGenerator: undefined,
950
959
  });
951
- const server = new McpServer({ name: "madeonsol", version: "1.10.2" });
960
+ const server = new McpServer({ name: "madeonsol", version: "1.11.0" });
952
961
  registerTools(server);
953
962
  await server.connect(transport);
954
963
  }
@@ -986,7 +995,7 @@ async function main() {
986
995
  }
987
996
  else {
988
997
  // Stdio transport for local use (Claude Desktop, Cursor, Claude Code)
989
- const server = new McpServer({ name: "madeonsol", version: "1.10.2" });
998
+ const server = new McpServer({ name: "madeonsol", version: "1.11.0" });
990
999
  registerTools(server);
991
1000
  const transport = new StdioServerTransport();
992
1001
  await server.connect(transport);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-server-madeonsol",
3
- "version": "1.10.4",
3
+ "version": "1.11.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",