mcp-server-madeonsol 1.8.0 → 1.9.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 +25 -0
- package/dist/index.js +104 -3
- package/glama.json +71 -35
- package/package.json +66 -66
package/README.md
CHANGED
|
@@ -191,6 +191,31 @@ Every "first KOL buy on a token mint" event. Filterable by **scout tier** (S/A/B
|
|
|
191
191
|
|
|
192
192
|
> **Don't poll — push.** Median lead time before the second KOL is 12 seconds. WebSocket channel: `kol:first_touches` (PRO+).
|
|
193
193
|
|
|
194
|
+
### Price Alerts *(new in 1.9)*
|
|
195
|
+
|
|
196
|
+
CRUD for token dip/recovery price alerts. Fires when a token's market cap crosses your threshold. PRO=5 rules, ULTRA=25.
|
|
197
|
+
|
|
198
|
+
| Tool | Description |
|
|
199
|
+
|---|---|
|
|
200
|
+
| `madeonsol_price_alerts_list` | List your price alert rules |
|
|
201
|
+
| `madeonsol_price_alerts_create` | Create a dip/recovery alert. Returns `webhook_secret` once — store it |
|
|
202
|
+
| `madeonsol_price_alerts_get` | Get one alert rule by ID |
|
|
203
|
+
| `madeonsol_price_alerts_update` | Update fields or toggle `is_active` |
|
|
204
|
+
| `madeonsol_price_alerts_delete` | Delete permanently |
|
|
205
|
+
|
|
206
|
+
### Scout Leaderboard & KOL Consensus *(new in 1.9)*
|
|
207
|
+
|
|
208
|
+
| Tool | Tier | Description |
|
|
209
|
+
|---|---|---|
|
|
210
|
+
| `madeonsol_scout_leaderboard` | PRO+ | Top scout-tier KOLs ranked by first-touch follow-on rate, win rate, and ROI |
|
|
211
|
+
| `madeonsol_kol_consensus` | PRO+ | Tokens with the strongest KOL agreement signal — weighted by scout score and recent PnL |
|
|
212
|
+
| `madeonsol_peak_history` | PRO+ | Historical peak-density windows for a token — every coordination spike with KOL breakdown |
|
|
213
|
+
| `madeonsol_coordination_history` | PRO+ | Global coordination event log with token, KOL count, score, and outcome |
|
|
214
|
+
|
|
215
|
+
### Wallet Derived Stats *(new in 1.9)*
|
|
216
|
+
|
|
217
|
+
`madeonsol_wallet_stats` now returns a `stats` object with derived fields: `win_rate` (0-1), `roi`, `verdict` ("strong" | "profitable" | "neutral" | "losing"), and `biggest_miss` (token with the highest post-exit gain the wallet missed).
|
|
218
|
+
|
|
194
219
|
### Streaming & Webhooks
|
|
195
220
|
|
|
196
221
|
| Tool | Description |
|
package/dist/index.js
CHANGED
|
@@ -691,6 +691,97 @@ function registerTools(server) {
|
|
|
691
691
|
server.tool("madeonsol_first_touch_subscriptions_delete", "Delete a first-touch subscription permanently. ULTRA only.", { id: z.string().describe("Subscription UUID") }, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ id }) => ({
|
|
692
692
|
content: [{ type: "text", text: await restQuery("DELETE", `/kol/first-touches/subscriptions/${encodeURIComponent(id)}`) }],
|
|
693
693
|
}));
|
|
694
|
+
// ── Price alerts (PRO/ULTRA, v1.9) ──
|
|
695
|
+
server.tool("madeonsol_price_alerts_list", "List your price alerts. PRO=5 alerts, ULTRA=25. Each alert monitors a token's MC for dip/recovery events.", {}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async () => ({
|
|
696
|
+
content: [{ type: "text", text: await restQuery("GET", "/price-alerts") }],
|
|
697
|
+
}));
|
|
698
|
+
server.tool("madeonsol_price_alerts_create", "Create a price alert. Captures baseline MC from current token_prices. Fires when MC drops below baseline × (1 − drop_pct/100). Optional recovery_pct fires again on recovery. Returns webhook_secret ONCE — store it.", {
|
|
699
|
+
token_mint: z.string().describe("Solana mint address (base58)"),
|
|
700
|
+
drop_pct: z.number().min(0.01).max(99.99).describe("Drop % threshold (0.01–99.99). Alert fires when MC drops below baseline × (1 − drop_pct/100)."),
|
|
701
|
+
recovery_pct: z.number().min(0.01).max(1000).optional().describe("Recovery % (0.01–1000). After dip fires, re-fires when MC rises above dip_low × (1 + recovery_pct/100)."),
|
|
702
|
+
name: z.string().optional().describe("Optional label"),
|
|
703
|
+
delivery_mode: z.enum(["webhook", "websocket", "both"]).optional().describe("Default 'webhook'"),
|
|
704
|
+
webhook_url: z.string().url().optional().describe("Required when delivery_mode includes 'webhook'"),
|
|
705
|
+
}, { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }, async (args) => {
|
|
706
|
+
const body = {};
|
|
707
|
+
for (const [k, v] of Object.entries(args))
|
|
708
|
+
if (v !== undefined)
|
|
709
|
+
body[k] = v;
|
|
710
|
+
return { content: [{ type: "text", text: await restQuery("POST", "/price-alerts", body) }] };
|
|
711
|
+
});
|
|
712
|
+
server.tool("madeonsol_price_alerts_get", "Get one price alert by id.", { id: z.number().describe("Alert id") }, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async ({ id }) => ({
|
|
713
|
+
content: [{ type: "text", text: await restQuery("GET", `/price-alerts/${id}`) }],
|
|
714
|
+
}));
|
|
715
|
+
server.tool("madeonsol_price_alerts_update", "Update alert name, delivery mode, webhook URL, or is_active. Thresholds (drop_pct, recovery_pct) are immutable.", {
|
|
716
|
+
id: z.number().describe("Alert id"),
|
|
717
|
+
name: z.string().nullable().optional(),
|
|
718
|
+
delivery_mode: z.enum(["webhook", "websocket", "both"]).optional(),
|
|
719
|
+
webhook_url: z.string().url().nullable().optional(),
|
|
720
|
+
is_active: z.boolean().optional(),
|
|
721
|
+
}, { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true }, async ({ id, ...patch }) => {
|
|
722
|
+
const body = {};
|
|
723
|
+
for (const [k, v] of Object.entries(patch))
|
|
724
|
+
if (v !== undefined)
|
|
725
|
+
body[k] = v;
|
|
726
|
+
return { content: [{ type: "text", text: await restQuery("PATCH", `/price-alerts/${id}`, body) }] };
|
|
727
|
+
});
|
|
728
|
+
server.tool("madeonsol_price_alerts_delete", "Delete a price alert and its event history.", { id: z.number().describe("Alert id") }, { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true }, async ({ id }) => ({
|
|
729
|
+
content: [{ type: "text", text: await restQuery("DELETE", `/price-alerts/${id}`) }],
|
|
730
|
+
}));
|
|
731
|
+
server.tool("madeonsol_price_alerts_events", "Fired price alert event history (30-day retention). Each event records the dip or recovery moment with actual MC values.", {
|
|
732
|
+
alert_id: z.number().optional().describe("Filter to a specific alert"),
|
|
733
|
+
event_type: z.enum(["dip", "recovery"]).optional().describe("Filter by event type"),
|
|
734
|
+
since: z.string().optional().describe("ISO 8601 — events after this timestamp"),
|
|
735
|
+
limit: z.number().min(1).max(200).optional().describe("Max events to return"),
|
|
736
|
+
}, { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true }, async (args) => {
|
|
737
|
+
const url = new URL(`${BASE_URL}/api/v1/price-alerts/events`);
|
|
738
|
+
for (const [k, v] of Object.entries(args)) {
|
|
739
|
+
if (v !== undefined)
|
|
740
|
+
url.searchParams.set(k, String(v));
|
|
741
|
+
}
|
|
742
|
+
const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ...apiKeyHeaders() } });
|
|
743
|
+
const text = res.ok ? JSON.stringify(await res.json(), null, 2) : `Error ${res.status}: ${await res.text().catch(() => "")}`;
|
|
744
|
+
return { content: [{ type: "text", text }] };
|
|
745
|
+
});
|
|
746
|
+
// ── v1.9 new read endpoints ──
|
|
747
|
+
server.tool("madeonsol_scout_leaderboard", "Scout leaderboard — top KOLs ranked by scout score, first-touch frequency, and swarm attraction rate (% of first-touched tokens that attract 3+ follow-on KOLs within 4h). ULTRA only.", {
|
|
748
|
+
limit: z.number().min(1).max(100).optional().describe("Max entries to return"),
|
|
749
|
+
scout_tier: z.enum(["S", "A", "B", "C"]).optional().describe("Filter to a specific scout tier"),
|
|
750
|
+
sort: z.enum(["swarm_3plus_pct", "n_first_touches_30d", "swarm_5plus_pct", "scout_score"]).optional().describe("Sort axis"),
|
|
751
|
+
}, readOnlyAnnotations, async (args) => {
|
|
752
|
+
const url = new URL(`${BASE_URL}/api/v1/kol/scouts/leaderboard`);
|
|
753
|
+
for (const [k, v] of Object.entries(args)) {
|
|
754
|
+
if (v !== undefined)
|
|
755
|
+
url.searchParams.set(k, String(v));
|
|
756
|
+
}
|
|
757
|
+
const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ...apiKeyHeaders() } });
|
|
758
|
+
const text = res.ok ? JSON.stringify(await res.json(), null, 2) : `Error ${res.status}: ${await res.text().catch(() => "")}`;
|
|
759
|
+
return { content: [{ type: "text", text }] };
|
|
760
|
+
});
|
|
761
|
+
server.tool("madeonsol_coordination_history", "Coordination history — past coordination alert fires with token, coordination score, KOL count, and timing. ULTRA only.", {
|
|
762
|
+
limit: z.number().min(1).max(100).optional().describe("Max entries to return"),
|
|
763
|
+
since: z.string().optional().describe("ISO 8601 — events after this timestamp"),
|
|
764
|
+
min_score: z.number().min(0).max(100).optional().describe("Minimum coordination score"),
|
|
765
|
+
}, readOnlyAnnotations, async (args) => {
|
|
766
|
+
const url = new URL(`${BASE_URL}/api/v1/kol/coordination/history`);
|
|
767
|
+
for (const [k, v] of Object.entries(args)) {
|
|
768
|
+
if (v !== undefined)
|
|
769
|
+
url.searchParams.set(k, String(v));
|
|
770
|
+
}
|
|
771
|
+
const res = await fetch(url.toString(), { headers: { "Content-Type": "application/json", ...apiKeyHeaders() } });
|
|
772
|
+
const text = res.ok ? JSON.stringify(await res.json(), null, 2) : `Error ${res.status}: ${await res.text().catch(() => "")}`;
|
|
773
|
+
return { content: [{ type: "text", text }] };
|
|
774
|
+
});
|
|
775
|
+
server.tool("madeonsol_kol_consensus", "KOL consensus on a specific token: total buyers/sellers, exit rate, net SOL flow, median entry MC. ULTRA adds individual buyer + exited wallet arrays.", {
|
|
776
|
+
mint: z.string().describe("Token mint address (base58)"),
|
|
777
|
+
}, readOnlyAnnotations, async ({ mint }) => ({
|
|
778
|
+
content: [{ type: "text", text: await restQuery("GET", `/tokens/${encodeURIComponent(mint)}/kol-consensus`) }],
|
|
779
|
+
}));
|
|
780
|
+
server.tool("madeonsol_peak_history", "Peak MC history for a token: all-time high MC, decline from peak %, MC at bond, MC at 1h/6h/24h/7d after bond, time-to-bond, and deploy/bond timestamps.", {
|
|
781
|
+
mint: z.string().describe("Token mint address (base58)"),
|
|
782
|
+
}, readOnlyAnnotations, async ({ mint }) => ({
|
|
783
|
+
content: [{ type: "text", text: await restQuery("GET", `/tokens/${encodeURIComponent(mint)}/peak-history`) }],
|
|
784
|
+
}));
|
|
694
785
|
console.error("[madeonsol-mcp] Webhook & streaming tools enabled");
|
|
695
786
|
}
|
|
696
787
|
else {
|
|
@@ -735,7 +826,7 @@ async function main() {
|
|
|
735
826
|
res.end(JSON.stringify({
|
|
736
827
|
name: "madeonsol",
|
|
737
828
|
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.",
|
|
738
|
-
version: "1.
|
|
829
|
+
version: "1.9.0",
|
|
739
830
|
tools: [
|
|
740
831
|
{ name: "madeonsol_kol_feed", description: "Get real-time Solana KOL trades from 1,000+ tracked wallets." },
|
|
741
832
|
{ name: "madeonsol_kol_coordination", description: "Get KOL convergence signals — tokens multiple KOLs are accumulating." },
|
|
@@ -792,6 +883,16 @@ async function main() {
|
|
|
792
883
|
{ name: "madeonsol_coordination_alerts_get", description: "Get one coordination alert rule. PRO/ULTRA." },
|
|
793
884
|
{ name: "madeonsol_coordination_alerts_update", description: "Update fields on a coordination alert rule. PRO/ULTRA." },
|
|
794
885
|
{ name: "madeonsol_coordination_alerts_delete", description: "Delete a coordination alert rule. PRO/ULTRA." },
|
|
886
|
+
{ name: "madeonsol_price_alerts_list", description: "List your price alerts. PRO/ULTRA." },
|
|
887
|
+
{ name: "madeonsol_price_alerts_create", description: "Create a price alert with dip/recovery thresholds. PRO/ULTRA." },
|
|
888
|
+
{ name: "madeonsol_price_alerts_get", description: "Get one price alert by id. PRO/ULTRA." },
|
|
889
|
+
{ name: "madeonsol_price_alerts_update", description: "Update a price alert. PRO/ULTRA." },
|
|
890
|
+
{ name: "madeonsol_price_alerts_delete", description: "Delete a price alert. PRO/ULTRA." },
|
|
891
|
+
{ name: "madeonsol_price_alerts_events", description: "Fired price alert event history (30d retention). PRO/ULTRA." },
|
|
892
|
+
{ name: "madeonsol_scout_leaderboard", description: "Scout leaderboard — top KOLs by scout score and swarm attraction. ULTRA." },
|
|
893
|
+
{ name: "madeonsol_coordination_history", description: "Past coordination alert fires with score and timing. ULTRA." },
|
|
894
|
+
{ name: "madeonsol_kol_consensus", description: "KOL consensus on a token: buyers/sellers, exit rate, net flow. ULTRA gets wallet arrays." },
|
|
895
|
+
{ name: "madeonsol_peak_history", description: "Peak MC history: ATH, decline %, MC at bond, MC at 1h/6h/24h/7d after bond." },
|
|
795
896
|
],
|
|
796
897
|
homepage: "https://madeonsol.com/solana-api",
|
|
797
898
|
repository: "https://github.com/LamboPoewert/mcp-server-madeonsol",
|
|
@@ -807,7 +908,7 @@ async function main() {
|
|
|
807
908
|
transport = new StreamableHTTPServerTransport({
|
|
808
909
|
sessionIdGenerator: undefined,
|
|
809
910
|
});
|
|
810
|
-
const server = new McpServer({ name: "madeonsol", version: "1.
|
|
911
|
+
const server = new McpServer({ name: "madeonsol", version: "1.9.0" });
|
|
811
912
|
registerTools(server);
|
|
812
913
|
await server.connect(transport);
|
|
813
914
|
}
|
|
@@ -845,7 +946,7 @@ async function main() {
|
|
|
845
946
|
}
|
|
846
947
|
else {
|
|
847
948
|
// Stdio transport for local use (Claude Desktop, Cursor, Claude Code)
|
|
848
|
-
const server = new McpServer({ name: "madeonsol", version: "1.
|
|
949
|
+
const server = new McpServer({ name: "madeonsol", version: "1.9.0" });
|
|
849
950
|
registerTools(server);
|
|
850
951
|
const transport = new StdioServerTransport();
|
|
851
952
|
await server.connect(transport);
|
package/glama.json
CHANGED
|
@@ -1,49 +1,85 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mcp-server-madeonsol",
|
|
3
|
-
"display_name": "MadeOnSol",
|
|
4
|
-
"description": "Solana
|
|
5
|
-
"version": "1.
|
|
3
|
+
"display_name": "MadeOnSol — Solana memecoin intelligence",
|
|
4
|
+
"description": "Real-time Solana memecoin trading intelligence — track 1,000+ KOL wallets with <3s latency, score 6,700+ Pump.fun deployers, surface multi-KOL coordination signals, run server-side copy-trade rules, and stream every DEX trade across 9+ programs. Backtested first-touch scout signal (S-tier scouts attract ≥3 follow-on KOLs ~50% of the time vs 14% baseline). Free tier 200 requests per day; auth via msk_ API key or x402 micropayments.",
|
|
5
|
+
"version": "1.7.4",
|
|
6
6
|
"homepage": "https://madeonsol.com/solana-api",
|
|
7
7
|
"repository": "https://github.com/LamboPoewert/mcp-server-madeonsol",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"categories": ["blockchain", "finance", "web3"],
|
|
10
|
-
"tags": [
|
|
10
|
+
"tags": [
|
|
11
|
+
"mcp",
|
|
12
|
+
"claude",
|
|
13
|
+
"cursor",
|
|
14
|
+
"solana",
|
|
15
|
+
"memecoin",
|
|
16
|
+
"kol",
|
|
17
|
+
"kol-tracker",
|
|
18
|
+
"alpha-bot",
|
|
19
|
+
"first-touch",
|
|
20
|
+
"coordination",
|
|
21
|
+
"deployer-hunter",
|
|
22
|
+
"pump-fun",
|
|
23
|
+
"copy-trade",
|
|
24
|
+
"smart-money",
|
|
25
|
+
"x402",
|
|
26
|
+
"micropayments",
|
|
27
|
+
"defi",
|
|
28
|
+
"trading",
|
|
29
|
+
"api"
|
|
30
|
+
],
|
|
11
31
|
"tools": [
|
|
12
|
-
{ "name": "madeonsol_kol_feed", "description": "
|
|
13
|
-
{ "name": "madeonsol_kol_coordination", "description": "
|
|
14
|
-
{ "name": "
|
|
15
|
-
{ "name": "
|
|
32
|
+
{ "name": "madeonsol_kol_feed", "description": "Real-time Solana KOL trade feed from 1,000+ tracked wallets." },
|
|
33
|
+
{ "name": "madeonsol_kol_coordination", "description": "Multi-KOL convergence with 0-100 score, peak-density window, exits." },
|
|
34
|
+
{ "name": "madeonsol_kol_first_touches", "description": "First-KOL-touch events — backtested scout signal, filter by tier S/A/B/C." },
|
|
35
|
+
{ "name": "madeonsol_kol_leaderboard", "description": "KOL PnL + win-rate rankings over today, 7d, 30d, 90d, 180d." },
|
|
16
36
|
{ "name": "madeonsol_kol_pairs", "description": "KOL affinity matrix — which KOLs co-trade the same tokens." },
|
|
17
|
-
{ "name": "madeonsol_kol_timing", "description": "KOL entry/exit timing profile. Pro/Ultra." },
|
|
18
|
-
{ "name": "madeonsol_deployer_trajectory", "description": "Deployer skill curve — streaks, trend. Pro/Ultra." },
|
|
19
37
|
{ "name": "madeonsol_kol_hot_tokens", "description": "KOL momentum tokens — accelerating buy interest." },
|
|
20
|
-
{ "name": "
|
|
21
|
-
{ "name": "madeonsol_kol_trending_tokens", "description": "Tokens ranked by KOL buy volume (5m–12h windows)." },
|
|
38
|
+
{ "name": "madeonsol_kol_trending_tokens", "description": "Tokens ranked by KOL buy volume across 5m–12h windows." },
|
|
22
39
|
{ "name": "madeonsol_kol_token_entry_order", "description": "Ranked KOL first-buyers for a specific token." },
|
|
23
|
-
{ "name": "madeonsol_kol_compare_wallets", "description": "Side-by-side comparison of 2-5 KOL wallets
|
|
24
|
-
{ "name": "madeonsol_kol_alerts_recent", "description": "Unified live KOL alert feed: clusters, fresh buys, heating-up." },
|
|
25
|
-
{ "name": "
|
|
26
|
-
{ "name": "
|
|
27
|
-
{ "name": "
|
|
28
|
-
{ "name": "
|
|
29
|
-
{ "name": "
|
|
30
|
-
{ "name": "
|
|
31
|
-
{ "name": "
|
|
32
|
-
{ "name": "
|
|
40
|
+
{ "name": "madeonsol_kol_compare_wallets", "description": "Side-by-side comparison of 2-5 KOL wallets with overlap analysis." },
|
|
41
|
+
{ "name": "madeonsol_kol_alerts_recent", "description": "Unified live KOL alert feed: clusters, fresh buys, heating-up wallets." },
|
|
42
|
+
{ "name": "madeonsol_kol_pnl", "description": "Deep per-wallet PnL: equity curve, risk metrics, closed + open positions." },
|
|
43
|
+
{ "name": "madeonsol_kol_timing", "description": "KOL entry/exit timing profile — average hold, win rate by hour." },
|
|
44
|
+
{ "name": "madeonsol_deployer_alerts", "description": "Pump.fun deployer alerts with KOL enrichment, filter by tier." },
|
|
45
|
+
{ "name": "madeonsol_deployer_trajectory", "description": "Deployer skill curve — streaks, rolling bond rate, trend." },
|
|
46
|
+
{ "name": "madeonsol_alpha_leaderboard", "description": "Top profitable early-buyer wallets — 47,000+ scored, up to 500 on ULTRA." },
|
|
47
|
+
{ "name": "madeonsol_alpha_wallet", "description": "Full alpha profile + bot-signal flags for one wallet." },
|
|
48
|
+
{ "name": "madeonsol_alpha_linked", "description": "Behaviorally linked wallets (co-bought 3+ tokens within 2s)." },
|
|
49
|
+
{ "name": "madeonsol_tokens_list", "description": "Filtered token directory — MC band, liquidity, MEV-share, velocity, primary DEX, authority flags." },
|
|
50
|
+
{ "name": "madeonsol_token_get", "description": "Single token detail — MC, holders, velocity, MEV-share, history age." },
|
|
51
|
+
{ "name": "madeonsol_token_batch", "description": "Bulk token detail fetch — up to 50 mints per call." },
|
|
52
|
+
{ "name": "madeonsol_token_cap_table", "description": "First non-deployer early buyers for a token, enriched with PnL/KOL/bot flags." },
|
|
53
|
+
{ "name": "madeonsol_token_buyer_quality", "description": "0-100 buyer-quality score for a token's first-buyer cohort." },
|
|
54
|
+
{ "name": "madeonsol_tokens_batch_buyer_quality", "description": "Bulk buyer-quality scoring — up to 50 mints per call." },
|
|
55
|
+
{ "name": "madeonsol_wallet_tracker_watchlist", "description": "List tracked wallets and remaining capacity (Free 10 / Pro 50 / Ultra 100)." },
|
|
56
|
+
{ "name": "madeonsol_wallet_tracker_add", "description": "Add a wallet to your watchlist with optional label." },
|
|
33
57
|
{ "name": "madeonsol_wallet_tracker_remove", "description": "Remove a wallet from your watchlist." },
|
|
34
|
-
{ "name": "madeonsol_wallet_tracker_trades", "description": "Historical swap/transfer events for watched wallets." },
|
|
35
|
-
{ "name": "madeonsol_wallet_tracker_summary", "description": "Per-wallet stats: swap counts, SOL bought/sold." },
|
|
36
|
-
{ "name": "
|
|
37
|
-
{ "name": "
|
|
38
|
-
{ "name": "
|
|
39
|
-
{ "name": "
|
|
40
|
-
{ "name": "
|
|
41
|
-
{ "name": "
|
|
42
|
-
{ "name": "
|
|
43
|
-
{ "name": "
|
|
44
|
-
{ "name": "
|
|
45
|
-
{ "name": "
|
|
46
|
-
{ "name": "
|
|
58
|
+
{ "name": "madeonsol_wallet_tracker_trades", "description": "Historical swap/transfer events for watched wallets (120-day retention)." },
|
|
59
|
+
{ "name": "madeonsol_wallet_tracker_summary", "description": "Per-wallet stats: swap counts, SOL bought/sold, last event." },
|
|
60
|
+
{ "name": "madeonsol_copytrade_list", "description": "List your copy-trade rules." },
|
|
61
|
+
{ "name": "madeonsol_copytrade_create", "description": "Create a copy-trade rule with webhook + WS delivery (HMAC-signed)." },
|
|
62
|
+
{ "name": "madeonsol_copytrade_get", "description": "Get one copy-trade rule." },
|
|
63
|
+
{ "name": "madeonsol_copytrade_update", "description": "Update or toggle a copy-trade rule." },
|
|
64
|
+
{ "name": "madeonsol_copytrade_delete", "description": "Delete a copy-trade rule." },
|
|
65
|
+
{ "name": "madeonsol_copytrade_signals", "description": "Recent fired copy-trade signals (up to 7 days, 1-500)." },
|
|
66
|
+
{ "name": "madeonsol_coordination_alerts_list", "description": "List your KOL coordination alert rules (PRO=5, ULTRA=20)." },
|
|
67
|
+
{ "name": "madeonsol_coordination_alerts_create", "description": "Create a coordination alert rule — pg_notify push, sub-second delivery." },
|
|
68
|
+
{ "name": "madeonsol_coordination_alerts_get", "description": "Get one coordination alert rule." },
|
|
69
|
+
{ "name": "madeonsol_coordination_alerts_update", "description": "Update or toggle a coordination alert rule." },
|
|
70
|
+
{ "name": "madeonsol_coordination_alerts_delete", "description": "Delete a coordination alert rule." },
|
|
71
|
+
{ "name": "madeonsol_first_touch_subscriptions_list", "description": "List your first-touch webhook subscriptions (ULTRA, up to 10)." },
|
|
72
|
+
{ "name": "madeonsol_first_touch_subscriptions_create", "description": "Create a first-touch webhook subscription — push on every S-tier scout buy." },
|
|
73
|
+
{ "name": "madeonsol_first_touch_subscriptions_get", "description": "Get one first-touch subscription." },
|
|
74
|
+
{ "name": "madeonsol_first_touch_subscriptions_update", "description": "Update or toggle a first-touch subscription." },
|
|
75
|
+
{ "name": "madeonsol_first_touch_subscriptions_delete", "description": "Delete a first-touch subscription." },
|
|
76
|
+
{ "name": "madeonsol_create_webhook", "description": "Register a webhook for real-time push notifications (PRO/ULTRA)." },
|
|
77
|
+
{ "name": "madeonsol_list_webhooks", "description": "List your registered webhooks (PRO/ULTRA)." },
|
|
78
|
+
{ "name": "madeonsol_delete_webhook", "description": "Delete a webhook by ID (PRO/ULTRA)." },
|
|
79
|
+
{ "name": "madeonsol_test_webhook", "description": "Send a test payload to verify a webhook (PRO/ULTRA)." },
|
|
80
|
+
{ "name": "madeonsol_stream_token", "description": "Issue a 24h WebSocket streaming token (Pro/Ultra). Includes dex_ws_url on ULTRA." },
|
|
81
|
+
{ "name": "madeonsol_me", "description": "Account/quota introspection — tier, remaining requests, per-feature usage." },
|
|
82
|
+
{ "name": "madeonsol_discovery", "description": "List all available endpoints with x402 prices (free, no auth)." }
|
|
47
83
|
],
|
|
48
84
|
"transports": ["stdio", "http"],
|
|
49
85
|
"runtime": "node"
|
package/package.json
CHANGED
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "mcp-server-madeonsol",
|
|
3
|
-
"version": "1.
|
|
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
|
-
"preflight": "bash ../../scripts/preflight-publish.sh",
|
|
20
|
-
"prepublishOnly": "npm run preflight && npm run build"
|
|
21
|
-
},
|
|
22
|
-
"keywords": [
|
|
23
|
-
"mcp",
|
|
24
|
-
"model-context-protocol",
|
|
25
|
-
"mcp-server",
|
|
26
|
-
"solana",
|
|
27
|
-
"x402",
|
|
28
|
-
"kol",
|
|
29
|
-
"kol-tracker",
|
|
30
|
-
"trading",
|
|
31
|
-
"claude",
|
|
32
|
-
"claude-desktop",
|
|
33
|
-
"cursor",
|
|
34
|
-
"windsurf",
|
|
35
|
-
"ai-agent",
|
|
36
|
-
"memecoin",
|
|
37
|
-
"memecoin-tracker",
|
|
38
|
-
"pumpfun",
|
|
39
|
-
"deployer-hunter",
|
|
40
|
-
"alpha",
|
|
41
|
-
"alpha-bot",
|
|
42
|
-
"smart-money",
|
|
43
|
-
"copy-trading",
|
|
44
|
-
"madeonsol"
|
|
45
|
-
],
|
|
46
|
-
"license": "MIT",
|
|
47
|
-
"repository": {
|
|
48
|
-
"type": "git",
|
|
49
|
-
"url": "https://github.com/LamboPoewert/mcp-server-madeonsol"
|
|
50
|
-
},
|
|
51
|
-
"dependencies": {
|
|
52
|
-
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
53
|
-
"zod": "^4.3.6"
|
|
54
|
-
},
|
|
55
|
-
"peerDependencies": {
|
|
56
|
-
"@x402/fetch": ">=0.1.0",
|
|
57
|
-
"@x402/core": ">=0.1.0",
|
|
58
|
-
"@x402/svm": ">=0.1.0",
|
|
59
|
-
"@solana/kit": ">=2.0.0",
|
|
60
|
-
"@scure/base": ">=1.0.0"
|
|
61
|
-
},
|
|
62
|
-
"devDependencies": {
|
|
63
|
-
"@types/node": "^20",
|
|
64
|
-
"typescript": "^5"
|
|
65
|
-
}
|
|
66
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "mcp-server-madeonsol",
|
|
3
|
+
"version": "1.9.0",
|
|
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
|
+
"preflight": "bash ../../scripts/preflight-publish.sh",
|
|
20
|
+
"prepublishOnly": "npm run preflight && npm run build"
|
|
21
|
+
},
|
|
22
|
+
"keywords": [
|
|
23
|
+
"mcp",
|
|
24
|
+
"model-context-protocol",
|
|
25
|
+
"mcp-server",
|
|
26
|
+
"solana",
|
|
27
|
+
"x402",
|
|
28
|
+
"kol",
|
|
29
|
+
"kol-tracker",
|
|
30
|
+
"trading",
|
|
31
|
+
"claude",
|
|
32
|
+
"claude-desktop",
|
|
33
|
+
"cursor",
|
|
34
|
+
"windsurf",
|
|
35
|
+
"ai-agent",
|
|
36
|
+
"memecoin",
|
|
37
|
+
"memecoin-tracker",
|
|
38
|
+
"pumpfun",
|
|
39
|
+
"deployer-hunter",
|
|
40
|
+
"alpha",
|
|
41
|
+
"alpha-bot",
|
|
42
|
+
"smart-money",
|
|
43
|
+
"copy-trading",
|
|
44
|
+
"madeonsol"
|
|
45
|
+
],
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"repository": {
|
|
48
|
+
"type": "git",
|
|
49
|
+
"url": "https://github.com/LamboPoewert/mcp-server-madeonsol"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
53
|
+
"zod": "^4.3.6"
|
|
54
|
+
},
|
|
55
|
+
"peerDependencies": {
|
|
56
|
+
"@x402/fetch": ">=0.1.0",
|
|
57
|
+
"@x402/core": ">=0.1.0",
|
|
58
|
+
"@x402/svm": ">=0.1.0",
|
|
59
|
+
"@solana/kit": ">=2.0.0",
|
|
60
|
+
"@scure/base": ">=1.0.0"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"@types/node": "^20",
|
|
64
|
+
"typescript": "^5"
|
|
65
|
+
}
|
|
66
|
+
}
|