@rigel-protocol/solana-mcp
Advanced tools
+2
-2
@@ -25,3 +25,3 @@ #!/usr/bin/env node | ||
| name: "rigel-solana-mcp", | ||
| version: "1.2.2", | ||
| version: "1.2.3", | ||
| }); | ||
@@ -97,3 +97,3 @@ /** Wrap a tool handler with uniform error handling. */ | ||
| await server.connect(transport); | ||
| log("rigel-solana-mcp v1.2.2 ready (stdio) — 7 tools registered, read-only."); | ||
| log("rigel-solana-mcp v1.2.3 ready (stdio) — 7 tools registered, read-only."); | ||
| } | ||
@@ -100,0 +100,0 @@ main().catch((err) => { |
@@ -37,3 +37,5 @@ /** | ||
| const v5 = best.volume?.m5 ?? 0, v1 = best.volume?.h1 ?? 0, v24 = best.volume?.h24 ?? 0; | ||
| // momentum: recent pace vs the day's average pace | ||
| const pc = best.priceChange ?? {}; | ||
| // momentum = volume intensity + DIRECTION (price + buy/sell balance). | ||
| // High volume on a falling price is a selloff, not a surge. | ||
| const paceNow = v5 * 12; // 5-min volume annualized to an hour | ||
@@ -43,15 +45,28 @@ const paceAvg = v24 / 24; // average hourly volume today | ||
| const buyRatio5 = m5 && (m5.buys + m5.sells) > 0 ? m5.buys / (m5.buys + m5.sells) : null; | ||
| let momentum = "quiet"; | ||
| if (paceRatio !== null) { | ||
| if (paceRatio >= 3) | ||
| momentum = "SURGING — trading far above today's pace"; | ||
| else if (paceRatio >= 1.3) | ||
| momentum = "accelerating"; | ||
| else if (paceRatio >= 0.6) | ||
| momentum = "steady"; | ||
| else | ||
| momentum = "bleeding out — pace well below today's average"; | ||
| } | ||
| // direction: blend 5m price change with 5m buy/sell balance | ||
| const dir5 = Number(pc.m5 ?? 0); | ||
| const up = dir5 > 1 || (buyRatio5 !== null && buyRatio5 >= 0.58); | ||
| const down = dir5 < -1 || (buyRatio5 !== null && buyRatio5 <= 0.42); | ||
| const hot = paceRatio !== null && paceRatio >= 1.3; | ||
| const elevated = paceRatio !== null && paceRatio >= 0.6; | ||
| let momentum; | ||
| if (paceRatio === null) | ||
| momentum = "unknown (no volume data)"; | ||
| else if (hot && up) | ||
| momentum = "SURGING — heavy volume, price and buyers pushing up"; | ||
| else if (hot && down) | ||
| momentum = "HIGH-VOLUME SELLOFF — heavy volume, but it's holders exiting (price down, sells leading)"; | ||
| else if (hot) | ||
| momentum = "churning — heavy two-sided volume, no clear direction"; | ||
| else if (elevated && up) | ||
| momentum = "climbing — steady volume, buyers ahead"; | ||
| else if (elevated && down) | ||
| momentum = "distributing — steady volume, sellers ahead"; | ||
| else if (elevated) | ||
| momentum = "steady"; | ||
| else if (down) | ||
| momentum = "bleeding out — low volume and drifting down"; | ||
| else | ||
| momentum = "quiet — low volume"; | ||
| const ageH = best.pairCreatedAt ? (Date.now() - best.pairCreatedAt) / 3.6e6 : null; | ||
| const pc = best.priceChange ?? {}; | ||
| const lines = []; | ||
@@ -58,0 +73,0 @@ lines.push(`Market snapshot — ${sym} · ${mint.toBase58()}`); |
+1
-1
| { | ||
| "name": "@rigel-protocol/solana-mcp", | ||
| "version": "1.2.2", | ||
| "version": "1.2.3", | ||
| "description": "Open-source MCP server that gives AI agents read-only eyes on Solana: wallet balances, pump.fun token data, and rug-risk checks.", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
46679
1.89%878
1.74%