mcp-server-madeonsol 0.6.0 → 0.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 +4 -1
- package/dist/index.js +13 -14
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,13 +20,16 @@ Add to `claude_desktop_config.json`:
|
|
|
20
20
|
"madeonsol": {
|
|
21
21
|
"command": "mcp-server-madeonsol",
|
|
22
22
|
"env": {
|
|
23
|
-
"SVM_PRIVATE_KEY": "your_solana_private_key_base58"
|
|
23
|
+
"SVM_PRIVATE_KEY": "your_solana_private_key_base58",
|
|
24
|
+
"MADEONSOL_API_KEY": "msk_your_api_key_here"
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
```
|
|
29
30
|
|
|
31
|
+
`SVM_PRIVATE_KEY` enables x402 micropayments. `MADEONSOL_API_KEY` (get one free at [madeonsol.com/developer](https://madeonsol.com/developer)) enables webhook, streaming, and alpha wallet intelligence tools.
|
|
32
|
+
|
|
30
33
|
### Cursor
|
|
31
34
|
|
|
32
35
|
Add to MCP settings with the same command and env vars.
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { z } from "zod";
|
|
|
6
6
|
import { createServer } from "node:http";
|
|
7
7
|
const BASE_URL = process.env.MADEONSOL_API_URL || "https://madeonsol.com";
|
|
8
8
|
const PRIVATE_KEY = process.env.SVM_PRIVATE_KEY;
|
|
9
|
-
const
|
|
9
|
+
const MADEONSOL_API_KEY = process.env.MADEONSOL_API_KEY; // For webhook/streaming/alpha features (Pro/Ultra)
|
|
10
10
|
const PORT = parseInt(process.env.PORT || "3100", 10);
|
|
11
11
|
const MODE = process.env.MCP_TRANSPORT || "stdio"; // "stdio" or "http"
|
|
12
12
|
let paidFetch = fetch;
|
|
@@ -84,12 +84,11 @@ function registerTools(server) {
|
|
|
84
84
|
const data = await res.json();
|
|
85
85
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
86
86
|
});
|
|
87
|
-
// ── Webhook & Streaming tools (require
|
|
88
|
-
if (
|
|
87
|
+
// ── Webhook & Streaming tools (require MADEONSOL_API_KEY env var) ──
|
|
88
|
+
if (MADEONSOL_API_KEY) {
|
|
89
89
|
const restHeaders = {
|
|
90
90
|
"Content-Type": "application/json",
|
|
91
|
-
"
|
|
92
|
-
"x-rapidapi-host": "madeonsol-solana-kol-tracker-tools-api.p.rapidapi.com",
|
|
91
|
+
"Authorization": `Bearer ${MADEONSOL_API_KEY}`,
|
|
93
92
|
};
|
|
94
93
|
async function restQuery(method, path, body) {
|
|
95
94
|
const res = await fetch(`${BASE_URL}/api/v1${path}`, {
|
|
@@ -104,7 +103,7 @@ function registerTools(server) {
|
|
|
104
103
|
return JSON.stringify(await res.json(), null, 2);
|
|
105
104
|
}
|
|
106
105
|
const webhookAnnotations = { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true };
|
|
107
|
-
server.tool("madeonsol_create_webhook", "Register a webhook URL to receive real-time push notifications for KOL trades and deployer alerts. Requires
|
|
106
|
+
server.tool("madeonsol_create_webhook", "Register a webhook URL to receive real-time push notifications for KOL trades and deployer alerts. Requires MADEONSOL_API_KEY (Pro/Ultra).", {
|
|
108
107
|
url: z.string().url().describe("HTTPS webhook URL to receive events"),
|
|
109
108
|
events: z.array(z.enum(["kol:trade", "kol:coordination", "deployer:alert", "deployer:bond"])).min(1).describe("Event types to subscribe to"),
|
|
110
109
|
min_sol: z.number().optional().describe("Optional: minimum SOL amount filter (for kol:trade)"),
|
|
@@ -120,7 +119,7 @@ function registerTools(server) {
|
|
|
120
119
|
filters.deployer_tier = deployer_tier;
|
|
121
120
|
return { content: [{ type: "text", text: await restQuery("POST", "/webhooks", { url, events, filters }) }] };
|
|
122
121
|
});
|
|
123
|
-
server.tool("madeonsol_list_webhooks", "List all your registered webhooks with delivery status and failure counts. Requires
|
|
122
|
+
server.tool("madeonsol_list_webhooks", "List all your registered webhooks with delivery status and failure counts. Requires MADEONSOL_API_KEY env var.", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async () => ({
|
|
124
123
|
content: [{ type: "text", text: await restQuery("GET", "/webhooks") }],
|
|
125
124
|
}));
|
|
126
125
|
server.tool("madeonsol_delete_webhook", "Delete a webhook by ID. Permanently removes the webhook and its delivery history.", {
|
|
@@ -165,10 +164,10 @@ function registerTools(server) {
|
|
|
165
164
|
}, readOnlyAnnotations, async ({ mint }) => ({
|
|
166
165
|
content: [{ type: "text", text: await restQuery("GET", `/tokens/${encodeURIComponent(mint)}/buyer-quality`) }],
|
|
167
166
|
}));
|
|
168
|
-
console.error("[madeonsol-mcp] Webhook, streaming & alpha tools enabled (
|
|
167
|
+
console.error("[madeonsol-mcp] Webhook, streaming & alpha tools enabled (MADEONSOL_API_KEY set)");
|
|
169
168
|
}
|
|
170
169
|
else {
|
|
171
|
-
console.error("[madeonsol-mcp] No
|
|
170
|
+
console.error("[madeonsol-mcp] No MADEONSOL_API_KEY — webhook/streaming/alpha tools disabled");
|
|
172
171
|
}
|
|
173
172
|
// Prompts — pre-built analysis templates
|
|
174
173
|
server.prompt("solana_kol_analysis", "Analyze current Solana KOL trading activity — what are smart money wallets buying and selling?", { period: z.string().default("24h").describe("Time period: 1h, 6h, 24h, or 7d") }, ({ period }) => ({
|
|
@@ -216,11 +215,11 @@ async function main() {
|
|
|
216
215
|
{ name: "madeonsol_kol_leaderboard", description: "Get KOL performance rankings by PnL and win rate. $0.005 USDC/req." },
|
|
217
216
|
{ name: "madeonsol_deployer_alerts", description: "Get elite Pump.fun deployer alerts with KOL enrichment. $0.01 USDC/req." },
|
|
218
217
|
{ name: "madeonsol_discovery", description: "List all available endpoints with prices. Free." },
|
|
219
|
-
{ name: "madeonsol_create_webhook", description: "Register a webhook for real-time push notifications. Requires
|
|
220
|
-
{ name: "madeonsol_list_webhooks", description: "List your registered webhooks. Requires
|
|
221
|
-
{ name: "madeonsol_delete_webhook", description: "Delete a webhook by ID. Requires
|
|
222
|
-
{ name: "madeonsol_test_webhook", description: "Send a test payload to verify a webhook. Requires
|
|
223
|
-
{ name: "madeonsol_stream_token", description: "Get a 24h WebSocket streaming token. Requires
|
|
218
|
+
{ name: "madeonsol_create_webhook", description: "Register a webhook for real-time push notifications. Requires MADEONSOL_API_KEY." },
|
|
219
|
+
{ name: "madeonsol_list_webhooks", description: "List your registered webhooks. Requires MADEONSOL_API_KEY." },
|
|
220
|
+
{ name: "madeonsol_delete_webhook", description: "Delete a webhook by ID. Requires MADEONSOL_API_KEY." },
|
|
221
|
+
{ name: "madeonsol_test_webhook", description: "Send a test payload to verify a webhook. Requires MADEONSOL_API_KEY." },
|
|
222
|
+
{ name: "madeonsol_stream_token", description: "Get a 24h WebSocket streaming token. Requires MADEONSOL_API_KEY." },
|
|
224
223
|
],
|
|
225
224
|
homepage: "https://madeonsol.com/solana-api",
|
|
226
225
|
repository: "https://github.com/LamboPoewert/mcp-server-madeonsol",
|
package/package.json
CHANGED