moltalyzer-mcp 1.2.0 → 1.3.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/build/index.d.ts +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +24 -5
- package/build/index.js.map +1 -1
- package/build/tools/free.d.ts.map +1 -1
- package/build/tools/free.js +37 -1
- package/build/tools/free.js.map +1 -1
- package/build/tools/pulse.d.ts +3 -0
- package/build/tools/pulse.d.ts.map +1 -0
- package/build/tools/pulse.js +36 -0
- package/build/tools/pulse.js.map +1 -0
- package/package.json +2 -2
package/build/index.d.ts
CHANGED
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwEpE,wBAAgB,mBAAmB,cAElC"}
|
package/build/index.js
CHANGED
|
@@ -11,11 +11,21 @@ import { register as registerPolymarket } from "./tools/polymarket.js";
|
|
|
11
11
|
import { register as registerTokens } from "./tools/tokens.js";
|
|
12
12
|
import { register as registerIntelligence } from "./tools/intelligence.js";
|
|
13
13
|
import { register as registerFree } from "./tools/free.js";
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
import { register as registerPulse } from "./tools/pulse.js";
|
|
15
|
+
// Support both ESM (import.meta.url) and CJS (__dirname) for Smithery scanning
|
|
16
|
+
const __dirname_resolved = typeof import.meta?.url === 'string'
|
|
17
|
+
? dirname(fileURLToPath(import.meta.url))
|
|
18
|
+
: typeof __dirname !== 'undefined' ? __dirname : process.cwd();
|
|
19
|
+
let pkg;
|
|
20
|
+
try {
|
|
21
|
+
pkg = JSON.parse(readFileSync(join(__dirname_resolved, "..", "package.json"), "utf-8"));
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
pkg = { version: "1.3.0" };
|
|
25
|
+
}
|
|
16
26
|
// All logging to stderr (stdout reserved for MCP protocol)
|
|
17
27
|
const log = (...args) => console.error("[moltalyzer-mcp]", ...args);
|
|
18
|
-
|
|
28
|
+
function createServer() {
|
|
19
29
|
const server = new McpServer({
|
|
20
30
|
name: "moltalyzer-mcp",
|
|
21
31
|
version: pkg.version,
|
|
@@ -30,7 +40,8 @@ async function main() {
|
|
|
30
40
|
registerPolymarket(server, fetchWithPayment);
|
|
31
41
|
registerTokens(server, fetchWithPayment);
|
|
32
42
|
registerIntelligence(server, fetchWithPayment);
|
|
33
|
-
|
|
43
|
+
registerPulse(server, fetchWithPayment);
|
|
44
|
+
log(`Server started with 23 tools (8 free + 15 paid via x402)`);
|
|
34
45
|
}
|
|
35
46
|
else {
|
|
36
47
|
log("WARNING: EVM_PRIVATE_KEY not set — running in free-tier mode (4 tools).\n" +
|
|
@@ -45,8 +56,16 @@ async function main() {
|
|
|
45
56
|
},
|
|
46
57
|
}, null, 2) +
|
|
47
58
|
"\n\nAlternatively, get a free API key at https://moltalyzer.xyz for 5 digests/day.");
|
|
48
|
-
log("Server started with
|
|
59
|
+
log("Server started with 8 free tools");
|
|
49
60
|
}
|
|
61
|
+
return server;
|
|
62
|
+
}
|
|
63
|
+
// Smithery sandbox export — allows registry to scan tools without real credentials
|
|
64
|
+
export function createSandboxServer() {
|
|
65
|
+
return createServer();
|
|
66
|
+
}
|
|
67
|
+
async function main() {
|
|
68
|
+
const server = createServer();
|
|
50
69
|
const transport = new StdioServerTransport();
|
|
51
70
|
await server.connect(transport);
|
|
52
71
|
}
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,QAAQ,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"free.d.ts","sourceRoot":"","sources":["../../src/tools/free.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"free.d.ts","sourceRoot":"","sources":["../../src/tools/free.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAgFzC"}
|
package/build/tools/free.js
CHANGED
|
@@ -29,7 +29,7 @@ export function register(server) {
|
|
|
29
29
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
30
30
|
});
|
|
31
31
|
server.registerTool("get_moltbook_sample", {
|
|
32
|
-
description: "Get a free sample of the Moltbook community digest — AI-generated analysis of crypto community sentiment, trending topics, emerging narratives, and hot discussions. Updated hourly. Rate limited to 1 request per 20 minutes. No payment or API key required. To get live data, use get_moltbook_digest (
|
|
32
|
+
description: "Get a free sample of the Moltbook community digest — AI-generated analysis of crypto community sentiment, trending topics, emerging narratives, and hot discussions. Updated hourly. Rate limited to 1 request per 20 minutes. No payment or API key required. To get live data, use get_moltbook_digest (free, 1 req/5min) or sign up for a free API key at https://moltalyzer.xyz.",
|
|
33
33
|
}, async () => {
|
|
34
34
|
const res = await fetchWithTimeout(fetch, `${BASE_URL}/api/moltbook/sample`);
|
|
35
35
|
if (!res.ok)
|
|
@@ -37,5 +37,41 @@ export function register(server) {
|
|
|
37
37
|
const data = await res.json();
|
|
38
38
|
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
39
39
|
});
|
|
40
|
+
server.registerTool("get_tokens_latest", {
|
|
41
|
+
description: "Get the most recent token intelligence signal — hybrid rule+LLM scoring across Ethereum, Base, and BSC. Returns symbol, score (0-100), tier (meme/longterm), liquidity, volume, and risk assessment. Free, rate limited to 1 request per 5 minutes. No payment or API key required.",
|
|
42
|
+
}, async () => {
|
|
43
|
+
const res = await fetchWithTimeout(fetch, `${BASE_URL}/api/tokens/latest`);
|
|
44
|
+
if (!res.ok)
|
|
45
|
+
return errorResult(res);
|
|
46
|
+
const data = await res.json();
|
|
47
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
48
|
+
});
|
|
49
|
+
server.registerTool("get_polymarket_latest", {
|
|
50
|
+
description: "Get the most recent Polymarket predetermined outcome signal — detects markets where the outcome is already known by insiders. Returns question, confidence level, reasoning, and insider type. Free, rate limited to 1 request per 5 minutes. No payment or API key required.",
|
|
51
|
+
}, async () => {
|
|
52
|
+
const res = await fetchWithTimeout(fetch, `${BASE_URL}/api/polymarket/latest`);
|
|
53
|
+
if (!res.ok)
|
|
54
|
+
return errorResult(res);
|
|
55
|
+
const data = await res.json();
|
|
56
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
57
|
+
});
|
|
58
|
+
server.registerTool("get_pulse_brief", {
|
|
59
|
+
description: "Get the latest Pulse narrative intelligence brief — cross-source AI/business narrative tracking from Reddit, HN, GitHub, and HuggingFace. Returns title, summary, top insights, and narrative count. Free, no payment or API key required.",
|
|
60
|
+
}, async () => {
|
|
61
|
+
const res = await fetchWithTimeout(fetch, `${BASE_URL}/api/pulse/ai-business/digest/brief`);
|
|
62
|
+
if (!res.ok)
|
|
63
|
+
return errorResult(res);
|
|
64
|
+
const data = await res.json();
|
|
65
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
66
|
+
});
|
|
67
|
+
server.registerTool("get_pulse_latest", {
|
|
68
|
+
description: "Get the full Pulse narrative intelligence digest — narrativeArcs, actionableSignals, sourceMix, and all insights. Tracks how stories form across multiple sources. Free, rate limited to 1 request per 5 minutes. No payment or API key required.",
|
|
69
|
+
}, async () => {
|
|
70
|
+
const res = await fetchWithTimeout(fetch, `${BASE_URL}/api/pulse/ai-business/digest/latest`);
|
|
71
|
+
if (!res.ok)
|
|
72
|
+
return errorResult(res);
|
|
73
|
+
const data = await res.json();
|
|
74
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
75
|
+
});
|
|
40
76
|
}
|
|
41
77
|
//# sourceMappingURL=free.js.map
|
package/build/tools/free.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"free.js","sourceRoot":"","sources":["../../src/tools/free.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,QAAQ,CAAC,MAAiB;IACxC,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE;QAChC,WAAW,EACT,sLAAsL;KACzL,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,QAAQ,SAAS,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE;QAClC,WAAW,EACT,iNAAiN;KACpN,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,QAAQ,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,yBAAyB,EAAE;QAC7C,WAAW,EACT,gdAAgd;KACnd,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,GAAG,QAAQ,0BAA0B,CAAC,CAAC;QACjF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACzC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"free.js","sourceRoot":"","sources":["../../src/tools/free.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/tools/pulse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIzE,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,QAiChE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { BASE_URL, fetchWithTimeout } from "../client.js";
|
|
3
|
+
import { errorResult } from "./error.js";
|
|
4
|
+
export function register(server, fetchFn) {
|
|
5
|
+
server.registerTool("get_pulse_digest", {
|
|
6
|
+
description: "Get the latest Pulse narrative intelligence digest — cross-source synthesis of AI/business narratives forming across Reddit, HN, GitHub, and HuggingFace. Tracks narrative lifecycle (emerging → developing → peak → fading). Includes narrativeArcs, actionableSignals, sourceMix, and topInsights. Updated every 4 hours. Costs $0.01 USDC via x402.",
|
|
7
|
+
}, async () => {
|
|
8
|
+
const res = await fetchWithTimeout(fetchFn, `${BASE_URL}/api/pulse/ai-business/digest/latest`);
|
|
9
|
+
if (!res.ok)
|
|
10
|
+
return errorResult(res);
|
|
11
|
+
const data = await res.json();
|
|
12
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
13
|
+
});
|
|
14
|
+
server.registerTool("get_pulse_narratives", {
|
|
15
|
+
description: "Get all active Pulse narratives with lifecycle stage, source count, and momentum. Narratives track specific stories gaining traction across 2+ sources. Costs $0.01 USDC via x402.",
|
|
16
|
+
}, async () => {
|
|
17
|
+
const res = await fetchWithTimeout(fetchFn, `${BASE_URL}/api/pulse/ai-business/narratives`);
|
|
18
|
+
if (!res.ok)
|
|
19
|
+
return errorResult(res);
|
|
20
|
+
const data = await res.json();
|
|
21
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
22
|
+
});
|
|
23
|
+
server.registerTool("get_pulse_narrative_detail", {
|
|
24
|
+
description: "Get detailed view of a specific Pulse narrative — full content items, source breakdown, and stage history. Costs $0.01 USDC via x402.",
|
|
25
|
+
inputSchema: {
|
|
26
|
+
id: z.number().int().describe("Narrative ID (from get_pulse_narratives)"),
|
|
27
|
+
},
|
|
28
|
+
}, async ({ id }) => {
|
|
29
|
+
const res = await fetchWithTimeout(fetchFn, `${BASE_URL}/api/pulse/ai-business/narratives/${id}`);
|
|
30
|
+
if (!res.ok)
|
|
31
|
+
return errorResult(res);
|
|
32
|
+
const data = await res.json();
|
|
33
|
+
return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=pulse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pulse.js","sourceRoot":"","sources":["../../src/tools/pulse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,UAAU,QAAQ,CAAC,MAAiB,EAAE,OAAqB;IAC/D,MAAM,CAAC,YAAY,CAAC,kBAAkB,EAAE;QACtC,WAAW,EACT,wVAAwV;KAC3V,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,QAAQ,sCAAsC,CAAC,CAAC;QAC/F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;QAC1C,WAAW,EACT,oLAAoL;KACvL,EAAE,KAAK,IAAI,EAAE;QACZ,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,QAAQ,mCAAmC,CAAC,CAAC;QAC5F,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,YAAY,CAAC,4BAA4B,EAAE;QAChD,WAAW,EACT,uIAAuI;QACzI,WAAW,EAAE;YACX,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SAC1E;KACF,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAClB,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,QAAQ,qCAAqC,EAAE,EAAE,CAAC,CAAC;QAClG,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IACvF,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "moltalyzer-mcp",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "MCP server for Moltalyzer — crypto intelligence, GitHub trends,
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "MCP server for Moltalyzer — crypto intelligence, GitHub trends, prediction market signals, and cross-source narrative intelligence via x402 micropayments",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"moltalyzer-mcp": "build/index.js"
|