mcp-server-madeonsol 0.3.3 → 0.4.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.
Files changed (3) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +15 -8
  3. package/package.json +45 -45
package/README.md CHANGED
@@ -51,8 +51,8 @@ Add to MCP settings with the same command and env vars.
51
51
  |---|---|
52
52
  | `madeonsol_kol_feed` | Real-time KOL trade feed (1,000+ wallets) |
53
53
  | `madeonsol_kol_coordination` | Multi-KOL convergence signals |
54
- | `madeonsol_kol_leaderboard` | KOL PnL and win rate rankings |
55
- | `madeonsol_deployer_alerts` | Elite Pump.fun deployer launches |
54
+ | `madeonsol_kol_leaderboard` | KOL PnL and win rate rankings (180 days of trade history; periods: today, 7d, 30d, 90d, 180d) |
55
+ | `madeonsol_deployer_alerts` | Pump.fun deployer launches. PRO/ULTRA: filter by deployer tier (elite/good/moderate/rising/cold). |
56
56
  | `madeonsol_token_info` | Token intelligence — price, market cap, volume, deployer, KOL activity |
57
57
  | `madeonsol_api_status` | System health — service status and uptime (no auth required) |
58
58
  | `madeonsol_discovery` | List all endpoints and prices (free) |
package/dist/index.js CHANGED
@@ -80,7 +80,7 @@ async function query(path, params) {
80
80
  }
81
81
  function registerTools(server) {
82
82
  const readOnlyAnnotations = { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true };
83
- server.tool("madeonsol_kol_feed", "Get real-time Solana KOL trades from 946 tracked wallets.", {
83
+ server.tool("madeonsol_kol_feed", "Get real-time Solana KOL trades from 1,000+ tracked wallets.", {
84
84
  limit: z.number().min(1).max(100).default(10).describe("Number of trades to return (1-100)"),
85
85
  action: z.enum(["buy", "sell"]).optional().describe("Filter by trade type: buy or sell"),
86
86
  kol: z.string().optional().describe("Filter by specific KOL wallet address (base58)"),
@@ -105,11 +105,12 @@ function registerTools(server) {
105
105
  }, readOnlyAnnotations, async ({ period, limit }) => ({
106
106
  content: [{ type: "text", text: await query("/api/x402/kol/leaderboard", { period, limit }) }],
107
107
  }));
108
- server.tool("madeonsol_deployer_alerts", "Get real-time alerts from elite Pump.fun deployers with KOL buy enrichment.", {
108
+ server.tool("madeonsol_deployer_alerts", "Get real-time alerts from Pump.fun deployers with KOL buy enrichment. PRO/ULTRA subscribers can filter by deployer tier (elite/good/moderate/rising/cold).", {
109
109
  limit: z.number().min(1).max(100).default(10).describe("Number of deployer alerts to return (1-100)"),
110
110
  offset: z.number().min(0).default(0).describe("Pagination offset for deployer alerts"),
111
- }, readOnlyAnnotations, async ({ limit, offset }) => ({
112
- content: [{ type: "text", text: await query("/api/x402/deployer-hunter/alerts", { limit, offset }) }],
111
+ tier: z.enum(["elite", "good", "moderate", "rising", "cold"]).optional().describe("Filter by deployer tier. PRO/ULTRA only — BASIC callers receive HTTP 403."),
112
+ }, readOnlyAnnotations, async ({ limit, offset, tier }) => ({
113
+ content: [{ type: "text", text: await query("/api/x402/deployer-hunter/alerts", { limit, offset, ...(tier ? { tier } : {}) }) }],
113
114
  }));
114
115
  server.tool("madeonsol_kol_pairs", "KOL affinity matrix — discover which KOLs frequently co-trade the same tokens within a time window.", {
115
116
  period: z.enum(["7d", "30d"]).default("7d").describe("Time period: 7d or 30d"),
@@ -256,10 +257,10 @@ async function main() {
256
257
  res.writeHead(200, { "Content-Type": "application/json" });
257
258
  res.end(JSON.stringify({
258
259
  name: "madeonsol",
259
- description: "Solana KOL trading intelligence and deployer analytics. Real-time data from 946 KOL wallets and 4000+ Pump.fun deployers. Supports API key, RapidAPI, or x402 micropayments.",
260
+ description: "Solana KOL trading intelligence and deployer analytics. Real-time data from 1,000+ KOL wallets and 4000+ Pump.fun deployers. Supports API key, RapidAPI, or x402 micropayments.",
260
261
  version: "0.1.0",
261
262
  tools: [
262
- { name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 946 tracked wallets." },
263
+ { name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 1,000+ tracked wallets." },
263
264
  { name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating." },
264
265
  { name: "madeonsol_kol_leaderboard", description: "Get KOL performance rankings by PnL and win rate." },
265
266
  { name: "madeonsol_deployer_alerts", description: "Get elite Pump.fun deployer alerts with KOL enrichment." },
@@ -314,8 +315,14 @@ async function main() {
314
315
  res.writeHead(404);
315
316
  res.end("Not found");
316
317
  });
317
- httpServer.listen(PORT, () => {
318
- console.error(`[madeonsol-mcp] HTTP server listening on port ${PORT}`);
318
+ // Bind to 127.0.0.1 only defense in depth. UFW already blocks the port
319
+ // externally, but binding to all interfaces would expose the server to any
320
+ // misconfigured firewall rule. Override with HOST=0.0.0.0 if you ever need
321
+ // to expose it directly (e.g. for hosted environments behind a separate
322
+ // reverse proxy).
323
+ const HOST = process.env.HOST || "127.0.0.1";
324
+ httpServer.listen(PORT, HOST, () => {
325
+ console.error(`[madeonsol-mcp] HTTP server listening on ${HOST}:${PORT}`);
319
326
  });
320
327
  }
321
328
  else {
package/package.json CHANGED
@@ -1,45 +1,45 @@
1
- {
2
- "name": "mcp-server-madeonsol",
3
- "version": "0.3.3",
4
- "mcpName": "io.github.lambopoewert/madeonsol",
5
- "description": "MCP server for MadeOnSol Solana KOL intelligence API use from Claude, Cursor, or any MCP client",
6
- "type": "module",
7
- "bin": {
8
- "mcp-server-madeonsol": "dist/index.js"
9
- },
10
- "main": "dist/index.js",
11
- "files": [
12
- "dist",
13
- "README.md",
14
- "LICENSE",
15
- "glama.json"
16
- ],
17
- "scripts": {
18
- "build": "tsc",
19
- "prepublishOnly": ""
20
- },
21
- "keywords": [
22
- "mcp",
23
- "solana",
24
- "x402",
25
- "kol",
26
- "trading",
27
- "claude",
28
- "cursor"
29
- ],
30
- "license": "MIT",
31
- "repository": {
32
- "type": "git",
33
- "url": "https://github.com/LamboPoewert/mcp-server-madeonsol"
34
- },
35
- "dependencies": {
36
- "@modelcontextprotocol/sdk": "^1.12.1"
37
- },
38
- "peerDependencies": {
39
- "@x402/fetch": ">=0.1.0",
40
- "@x402/core": ">=0.1.0",
41
- "@x402/svm": ">=0.1.0",
42
- "@solana/kit": ">=2.0.0",
43
- "@scure/base": ">=1.0.0"
44
- }
45
- }
1
+ {
2
+ "name": "mcp-server-madeonsol",
3
+ "version": "0.4.0",
4
+ "mcpName": "io.github.lambopoewert/madeonsol",
5
+ "description": "MCP server for MadeOnSol Solana KOL intelligence API \u00e2\u20ac\u201d use from Claude, Cursor, or any MCP client",
6
+ "type": "module",
7
+ "bin": {
8
+ "mcp-server-madeonsol": "dist/index.js"
9
+ },
10
+ "main": "dist/index.js",
11
+ "files": [
12
+ "dist",
13
+ "README.md",
14
+ "LICENSE",
15
+ "glama.json"
16
+ ],
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "prepublishOnly": ""
20
+ },
21
+ "keywords": [
22
+ "mcp",
23
+ "solana",
24
+ "x402",
25
+ "kol",
26
+ "trading",
27
+ "claude",
28
+ "cursor"
29
+ ],
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "https://github.com/LamboPoewert/mcp-server-madeonsol"
34
+ },
35
+ "dependencies": {
36
+ "@modelcontextprotocol/sdk": "^1.12.1"
37
+ },
38
+ "peerDependencies": {
39
+ "@x402/fetch": ">=0.1.0",
40
+ "@x402/core": ">=0.1.0",
41
+ "@x402/svm": ">=0.1.0",
42
+ "@solana/kit": ">=2.0.0",
43
+ "@scure/base": ">=1.0.0"
44
+ }
45
+ }