mcp-server-madeonsol 1.17.1 → 1.17.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/index.js +19 -4
- package/dist/version.d.ts +1 -0
- package/dist/version.js +2 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -164,6 +164,7 @@ Add to MCP settings with the same command and env vars.
|
|
|
164
164
|
|---|---|
|
|
165
165
|
| `madeonsol_deployer_alerts` | Pump.fun deployer launches with KOL enrichment. Filter by tier (elite/good/moderate/rising/cold). ULTRA unlocks full pagination. Each alert's `deployers` now includes `deployer_sol_balance` — the deployer wallet's SOL balance at alert time (null for historical rows). |
|
|
166
166
|
| `madeonsol_deployer_trajectory` | Deployer skill curve — streaks, rolling bond rate, trend — available on all tiers |
|
|
167
|
+
| `madeonsol_deployer_history` | A pump.fun deployer's daily reputation time-series (`bonding_rate`, `recent_bond_rate`, `tier`, `avg_peak_mc` per day) — backtest deployer signals at launch time without look-ahead bias. `limit` 1–365 (default 90) |
|
|
167
168
|
|
|
168
169
|
### Deshred Sniper Alerts *(new in 1.10 — Pro/Ultra)*
|
|
169
170
|
|
|
@@ -215,6 +216,7 @@ Scored from 1M+ early-buyer records (wallets seen in the first 20 buyers of Pump
|
|
|
215
216
|
| `madeonsol_token_buyer_quality` | All | 0–100 buyer-quality score + full breakdown (5-min cached) |
|
|
216
217
|
| `madeonsol_token_risk` | PRO+ | Transparent 0–100 rug-risk/safety score with `band`, explainable `factors[]`, and raw `inputs` |
|
|
217
218
|
| `madeonsol_token_bundle` | All | Bundle-cohort holdings — which same-slot bundle wallets bought a token and how much of supply they still hold (`held_pct_of_supply` headline, plus `bundle_kind`, `held_ratio`, `fully_exited`). BASIC: bundle block only. PRO: top-10 flags. ULTRA: full cohort + identities |
|
|
219
|
+
| `madeonsol_token_pools` | PRO+ | Per-venue liquidity map — every DEX pool a token trades in (pump.fun/PumpSwap/Raydium/Meteora/Orca) with per-pool `liquidity_usd`, `is_active` (live vs parked), plus a `summary` (pool/DEX counts, `total_liquidity_usd`, `primary_pool`, `top_pool_share_pct` concentration) |
|
|
218
220
|
| `madeonsol_tokens_batch_risk` | PRO+ | Bulk rug-risk/safety scoring for up to 50 mints — same shape as `madeonsol_token_risk` + `as_of`. Untracked mints return `{ mint, error: "not_tracked" }` without failing the batch; counts as one request |
|
|
219
221
|
| `madeonsol_token_candles` | PRO+ | Historical OHLCV candles (1m–1d). PRO=OHLCV 30d; ULTRA=+net flow, liquidity delta, MEV volume, full history |
|
|
220
222
|
| `madeonsol_token_flow` | PRO+ | Trade-flow aggregate (organic-vs-fake volume) over a 1h/24h `window` — unique wallets/buyers/sellers, buy/sell counts + SOL, `net_sol`, `trades_per_wallet` wash-trading proxy |
|
package/dist/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
5
5
|
import { z } from "zod";
|
|
6
|
+
import { VERSION } from "./version.js";
|
|
6
7
|
import { createServer } from "node:http";
|
|
7
8
|
const BASE_URL = process.env.MADEONSOL_API_URL || "https://madeonsol.com";
|
|
8
9
|
const MADEONSOL_API_KEY = process.env.MADEONSOL_API_KEY; // Native key from madeonsol.com/pricing
|
|
@@ -33,7 +34,7 @@ export function rewritePath(path, mode) {
|
|
|
33
34
|
? path
|
|
34
35
|
: path.replace("/api/x402/", "/api/v1/");
|
|
35
36
|
}
|
|
36
|
-
const UA =
|
|
37
|
+
const UA = `mcp-server-madeonsol/${VERSION}`;
|
|
37
38
|
function apiKeyHeaders() {
|
|
38
39
|
const h = { "User-Agent": UA };
|
|
39
40
|
if (authMode === "madeonsol") {
|
|
@@ -601,6 +602,20 @@ function registerTools(server) {
|
|
|
601
602
|
server.tool("madeonsol_token_bundle", "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). Rug/insider signal. Returns a `bundle` block (wallet_count, bundle_kind atomic_tx/same_slot/none, held_ratio, held_pct_of_supply [the headline — net held / circulating supply, null if unknown], fully_exited, buy_volume, tokens_held) plus a `wallets[]` array (rank, wallet, held_ratio, has_sold, atomic, is_kol). BASIC get the bundle block only (empty wallets[]); PRO adds top-10 flags-only wallets; ULTRA returns the full cohort with enriched identities (kol_name, win_rate, bot_confidence, tokens_held).", { mint: z.string().describe("Token mint address (base58)") }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ mint }) => ({
|
|
602
603
|
content: [{ type: "text", text: await restQuery("GET", `/tokens/${encodeURIComponent(mint)}/bundle`) }],
|
|
603
604
|
}));
|
|
605
|
+
server.tool("madeonsol_token_pools", "Per-venue liquidity map for a Solana token — every DEX pool it trades in (pump.fun/PumpSwap/Raydium/Meteora/Orca) with per-pool liquidity, live vs parked (is_active), plus a summary (total liquidity, pool/DEX counts, primary/deepest pool, top_pool_share_pct concentration). Shows WHERE liquidity sits and how fragmented it is, vs the single aggregate number from the token endpoint.", { mint: z.string().describe("Token mint address (base58)") }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ mint }) => ({
|
|
606
|
+
content: [{ type: "text", text: await restQuery("GET", `/tokens/${encodeURIComponent(mint)}/pools`) }],
|
|
607
|
+
}));
|
|
608
|
+
server.tool("madeonsol_deployer_history", "A pump.fun deployer's daily reputation time-series (bonding_rate, recent_bond_rate, tier, avg_peak_mc per day). Lets an agent answer 'was this deployer elite AT THE TIME it launched token X?' — backtest deployer signals without look-ahead bias.", {
|
|
609
|
+
wallet: z.string().describe("Deployer wallet address (base58)"),
|
|
610
|
+
limit: z.number().min(1).max(365).default(90).describe("Number of daily snapshots to return (1-365, default 90)"),
|
|
611
|
+
}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ wallet, limit }) => {
|
|
612
|
+
const qs = new URLSearchParams();
|
|
613
|
+
if (limit !== undefined)
|
|
614
|
+
qs.set("limit", String(limit));
|
|
615
|
+
const query = qs.toString();
|
|
616
|
+
const path = `/deployer-hunter/${encodeURIComponent(wallet)}/history${query ? `?${query}` : ""}`;
|
|
617
|
+
return { content: [{ type: "text", text: await restQuery("GET", path) }] };
|
|
618
|
+
});
|
|
604
619
|
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.", {
|
|
605
620
|
mint: z.string().describe("Token mint address (base58)"),
|
|
606
621
|
tf: z.enum(["1m", "5m", "15m", "1h", "4h", "1d"]).optional().describe("Candle timeframe (default 1h)"),
|
|
@@ -961,7 +976,7 @@ async function main() {
|
|
|
961
976
|
res.end(JSON.stringify({
|
|
962
977
|
name: "madeonsol",
|
|
963
978
|
description: "Solana KOL trading intelligence and deployer analytics. Real-time data from 1,000+ KOL wallets, 15,500+ Pump.fun deployers, 25,000+ scored alpha wallets, copy-trade rules, and wallet tracker. Supports MadeOnSol API key (msk_) or x402 micropayments.",
|
|
964
|
-
version:
|
|
979
|
+
version: VERSION,
|
|
965
980
|
tools: [
|
|
966
981
|
{ name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 1,000+ tracked wallets." },
|
|
967
982
|
{ name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating." },
|
|
@@ -1049,7 +1064,7 @@ async function main() {
|
|
|
1049
1064
|
transport = new StreamableHTTPServerTransport({
|
|
1050
1065
|
sessionIdGenerator: undefined,
|
|
1051
1066
|
});
|
|
1052
|
-
const server = new McpServer({ name: "madeonsol", version:
|
|
1067
|
+
const server = new McpServer({ name: "madeonsol", version: VERSION });
|
|
1053
1068
|
registerTools(server);
|
|
1054
1069
|
await server.connect(transport);
|
|
1055
1070
|
}
|
|
@@ -1087,7 +1102,7 @@ async function main() {
|
|
|
1087
1102
|
}
|
|
1088
1103
|
else {
|
|
1089
1104
|
// Stdio transport for local use (Claude Desktop, Cursor, Claude Code)
|
|
1090
|
-
const server = new McpServer({ name: "madeonsol", version:
|
|
1105
|
+
const server = new McpServer({ name: "madeonsol", version: VERSION });
|
|
1091
1106
|
registerTools(server);
|
|
1092
1107
|
const transport = new StdioServerTransport();
|
|
1093
1108
|
await server.connect(transport);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION = "1.17.2";
|
package/dist/version.js
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-server-madeonsol",
|
|
3
|
-
"version": "1.17.
|
|
3
|
+
"version": "1.17.2",
|
|
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",
|
|
6
6
|
"type": "module",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"glama.json"
|
|
16
16
|
],
|
|
17
17
|
"scripts": {
|
|
18
|
+
"prebuild": "node ../gen-version.mjs",
|
|
18
19
|
"build": "tsc",
|
|
19
20
|
"test": "vitest run",
|
|
20
21
|
"preflight": "bash ../../scripts/preflight-publish.sh",
|