mcp-server-madeonsol 1.9.0 → 1.10.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 +9 -0
- package/dist/index.js +45 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -110,6 +110,15 @@ Add to MCP settings with the same command and env vars.
|
|
|
110
110
|
| `madeonsol_deployer_alerts` | Pump.fun deployer launches with KOL enrichment. Filter by tier (elite/good/moderate/rising/cold). ULTRA unlocks full pagination. |
|
|
111
111
|
| `madeonsol_deployer_trajectory` | Deployer skill curve — streaks, rolling bond rate, trend — available on all tiers |
|
|
112
112
|
|
|
113
|
+
### Deshred Sniper Alerts *(new in 1.10 — Pro/Ultra)*
|
|
114
|
+
|
|
115
|
+
Pre-confirm pump.fun deploy feed reconstructed from shred-level (**deshred**) data — launches surface **~500ms before they confirm on-chain**. Pro sees elite/good deployers; Ultra sees every tier.
|
|
116
|
+
|
|
117
|
+
| Tool | Description |
|
|
118
|
+
|---|---|
|
|
119
|
+
| `madeonsol_sniper_recent` | Newest-first deshred deploy feed. Pro: elite/good · Ultra: all tiers. `watchlist: true` (Ultra) narrows to your custom deployer watchlist |
|
|
120
|
+
| `madeonsol_sniper_by_deployer` | Deshred deploys for a single deployer wallet (Ultra) |
|
|
121
|
+
|
|
113
122
|
### Wallet Tracker
|
|
114
123
|
|
|
115
124
|
| Tool | Description |
|
package/dist/index.js
CHANGED
|
@@ -11,11 +11,13 @@ 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.0";
|
|
14
15
|
function apiKeyHeaders() {
|
|
16
|
+
const h = { "User-Agent": UA };
|
|
15
17
|
if (authMode === "madeonsol") {
|
|
16
|
-
|
|
18
|
+
h.Authorization = `Bearer ${MADEONSOL_API_KEY}`;
|
|
17
19
|
}
|
|
18
|
-
return
|
|
20
|
+
return h;
|
|
19
21
|
}
|
|
20
22
|
async function initAuth() {
|
|
21
23
|
if (MADEONSOL_API_KEY) {
|
|
@@ -260,6 +262,44 @@ function registerTools(server) {
|
|
|
260
262
|
}, readOnlyAnnotations, async ({ period, min_kols, limit }) => ({
|
|
261
263
|
content: [{ type: "text", text: await query("/api/x402/kol/tokens/trending", { period, min_kols, limit }) }],
|
|
262
264
|
}));
|
|
265
|
+
server.tool("madeonsol_sniper_recent", "Deshred pre-confirm pump.fun deploy feed — new launches surface ~500ms before they confirm on-chain (reconstructed from shred-level data). PRO sees elite/good deployers; ULTRA sees every tier. Requires a Pro/Ultra msk_ API key.", {
|
|
266
|
+
deployer_tier: z.enum(["elite", "good", "moderate", "rising", "cold", "unranked"]).optional().describe("Filter by deployer reputation tier (ULTRA)"),
|
|
267
|
+
min_bond_rate: z.number().min(0).max(1).optional().describe("Minimum deployer lifetime bond rate (0-1)"),
|
|
268
|
+
since: z.string().optional().describe("ISO-8601 — only deploys detected after this timestamp"),
|
|
269
|
+
watchlist: z.boolean().optional().describe("ULTRA: narrow to your custom deployer watchlist (any tier)"),
|
|
270
|
+
limit: z.number().min(1).max(200).default(50).describe("Max results"),
|
|
271
|
+
}, readOnlyAnnotations, async ({ deployer_tier, min_bond_rate, since, watchlist, limit }) => {
|
|
272
|
+
if (authMode !== "madeonsol")
|
|
273
|
+
return { content: [{ type: "text", text: "Sniper feed requires MADEONSOL_API_KEY (msk_, Pro/Ultra) — get one at madeonsol.com/pricing." }] };
|
|
274
|
+
const qs = new URLSearchParams({ limit: String(limit) });
|
|
275
|
+
if (deployer_tier)
|
|
276
|
+
qs.set("deployer_tier", deployer_tier);
|
|
277
|
+
if (min_bond_rate != null)
|
|
278
|
+
qs.set("min_bond_rate", String(min_bond_rate));
|
|
279
|
+
if (since)
|
|
280
|
+
qs.set("since", since);
|
|
281
|
+
if (watchlist)
|
|
282
|
+
qs.set("watchlist", "true");
|
|
283
|
+
const res = await fetch(`${BASE_URL}/api/v1/sniper/recent?${qs}`, { headers: apiKeyHeaders() });
|
|
284
|
+
if (!res.ok) {
|
|
285
|
+
const body = await res.text().catch(() => "");
|
|
286
|
+
return { content: [{ type: "text", text: `Error ${res.status}: ${body}` }] };
|
|
287
|
+
}
|
|
288
|
+
return { content: [{ type: "text", text: JSON.stringify(await res.json(), null, 2) }] };
|
|
289
|
+
});
|
|
290
|
+
server.tool("madeonsol_sniper_by_deployer", "Deshred pre-confirm deploys filtered to a single deployer wallet — audit a deployer's recent launches before tracking them. ULTRA only.", {
|
|
291
|
+
wallet: z.string().describe("Deployer wallet address (base58)"),
|
|
292
|
+
limit: z.number().min(1).max(200).default(50).describe("Max results"),
|
|
293
|
+
}, readOnlyAnnotations, async ({ wallet, limit }) => {
|
|
294
|
+
if (authMode !== "madeonsol")
|
|
295
|
+
return { content: [{ type: "text", text: "Sniper feed requires MADEONSOL_API_KEY (msk_, Ultra)." }] };
|
|
296
|
+
const res = await fetch(`${BASE_URL}/api/v1/sniper/by-deployer/${encodeURIComponent(wallet)}?limit=${limit}`, { headers: apiKeyHeaders() });
|
|
297
|
+
if (!res.ok) {
|
|
298
|
+
const body = await res.text().catch(() => "");
|
|
299
|
+
return { content: [{ type: "text", text: `Error ${res.status}: ${body}` }] };
|
|
300
|
+
}
|
|
301
|
+
return { content: [{ type: "text", text: JSON.stringify(await res.json(), null, 2) }] };
|
|
302
|
+
});
|
|
263
303
|
server.tool("madeonsol_discovery", "List all available MadeOnSol API endpoints with prices and parameter docs. Free, no auth required.", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }, async () => {
|
|
264
304
|
const res = await fetch(new URL("/api/x402", BASE_URL).toString());
|
|
265
305
|
const data = await res.json();
|
|
@@ -826,7 +866,7 @@ async function main() {
|
|
|
826
866
|
res.end(JSON.stringify({
|
|
827
867
|
name: "madeonsol",
|
|
828
868
|
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.",
|
|
829
|
-
version: "1.
|
|
869
|
+
version: "1.10.0",
|
|
830
870
|
tools: [
|
|
831
871
|
{ name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 1,000+ tracked wallets." },
|
|
832
872
|
{ name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating." },
|
|
@@ -908,7 +948,7 @@ async function main() {
|
|
|
908
948
|
transport = new StreamableHTTPServerTransport({
|
|
909
949
|
sessionIdGenerator: undefined,
|
|
910
950
|
});
|
|
911
|
-
const server = new McpServer({ name: "madeonsol", version: "1.
|
|
951
|
+
const server = new McpServer({ name: "madeonsol", version: "1.10.0" });
|
|
912
952
|
registerTools(server);
|
|
913
953
|
await server.connect(transport);
|
|
914
954
|
}
|
|
@@ -946,7 +986,7 @@ async function main() {
|
|
|
946
986
|
}
|
|
947
987
|
else {
|
|
948
988
|
// Stdio transport for local use (Claude Desktop, Cursor, Claude Code)
|
|
949
|
-
const server = new McpServer({ name: "madeonsol", version: "1.
|
|
989
|
+
const server = new McpServer({ name: "madeonsol", version: "1.10.0" });
|
|
950
990
|
registerTools(server);
|
|
951
991
|
const transport = new StdioServerTransport();
|
|
952
992
|
await server.connect(transport);
|
package/package.json
CHANGED