kaito-mcp-server 0.2.9 → 0.2.12

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 (72) hide show
  1. package/README.md +20 -19
  2. package/build/__tests__/server-consistency.test.js +64 -0
  3. package/build/__tests__/server-consistency.test.js.map +1 -1
  4. package/build/__tests__/smoke.test.js +29 -29
  5. package/build/__tests__/smoke.test.js.map +1 -1
  6. package/build/prompts/analyze-token.d.ts +3 -0
  7. package/build/prompts/analyze-token.d.ts.map +1 -0
  8. package/build/prompts/analyze-token.js +97 -0
  9. package/build/prompts/analyze-token.js.map +1 -0
  10. package/build/prompts/discover-trending.d.ts +3 -0
  11. package/build/prompts/discover-trending.d.ts.map +1 -0
  12. package/build/prompts/discover-trending.js +98 -0
  13. package/build/prompts/discover-trending.js.map +1 -0
  14. package/build/prompts/market-roundup.d.ts +3 -0
  15. package/build/prompts/market-roundup.d.ts.map +1 -0
  16. package/build/prompts/market-roundup.js +77 -0
  17. package/build/prompts/market-roundup.js.map +1 -0
  18. package/build/prompts/social-listening.d.ts +3 -0
  19. package/build/prompts/social-listening.d.ts.map +1 -0
  20. package/build/prompts/social-listening.js +139 -0
  21. package/build/prompts/social-listening.js.map +1 -0
  22. package/build/prompts/watchlist-portfolio.d.ts +3 -0
  23. package/build/prompts/watchlist-portfolio.d.ts.map +1 -0
  24. package/build/prompts/watchlist-portfolio.js +117 -0
  25. package/build/prompts/watchlist-portfolio.js.map +1 -0
  26. package/build/prompts/workflows.d.ts.map +1 -1
  27. package/build/prompts/workflows.js +10 -80
  28. package/build/prompts/workflows.js.map +1 -1
  29. package/build/server-instructions.d.ts +10 -0
  30. package/build/server-instructions.d.ts.map +1 -0
  31. package/build/server-instructions.js +37 -0
  32. package/build/server-instructions.js.map +1 -0
  33. package/build/server.d.ts.map +1 -1
  34. package/build/server.js +2 -4
  35. package/build/server.js.map +1 -1
  36. package/build/tools/advanced-search.d.ts.map +1 -1
  37. package/build/tools/advanced-search.js +10 -1
  38. package/build/tools/advanced-search.js.map +1 -1
  39. package/build/tools/engagement.d.ts.map +1 -1
  40. package/build/tools/engagement.js +5 -1
  41. package/build/tools/engagement.js.map +1 -1
  42. package/build/tools/events.d.ts.map +1 -1
  43. package/build/tools/events.js +5 -1
  44. package/build/tools/events.js.map +1 -1
  45. package/build/tools/kol-token-mindshare.d.ts.map +1 -1
  46. package/build/tools/kol-token-mindshare.js +3 -1
  47. package/build/tools/kol-token-mindshare.js.map +1 -1
  48. package/build/tools/market-smart-following.d.ts.map +1 -1
  49. package/build/tools/market-smart-following.js +3 -1
  50. package/build/tools/market-smart-following.js.map +1 -1
  51. package/build/tools/mentions.d.ts.map +1 -1
  52. package/build/tools/mentions.js +35 -4
  53. package/build/tools/mentions.js.map +1 -1
  54. package/build/tools/mindshare-arena.d.ts.map +1 -1
  55. package/build/tools/mindshare-arena.js +5 -1
  56. package/build/tools/mindshare-arena.js.map +1 -1
  57. package/build/tools/mindshare-delta.d.ts.map +1 -1
  58. package/build/tools/mindshare-delta.js +5 -1
  59. package/build/tools/mindshare-delta.js.map +1 -1
  60. package/build/tools/mindshare.d.ts.map +1 -1
  61. package/build/tools/mindshare.js +5 -1
  62. package/build/tools/mindshare.js.map +1 -1
  63. package/build/tools/narrative-mindshare.d.ts.map +1 -1
  64. package/build/tools/narrative-mindshare.js +3 -1
  65. package/build/tools/narrative-mindshare.js.map +1 -1
  66. package/build/tools/sentiment.d.ts.map +1 -1
  67. package/build/tools/sentiment.js +5 -1
  68. package/build/tools/sentiment.js.map +1 -1
  69. package/build/tools/smart-followers.d.ts.map +1 -1
  70. package/build/tools/smart-followers.js +3 -1
  71. package/build/tools/smart-followers.js.map +1 -1
  72. package/package.json +1 -1
package/README.md CHANGED
@@ -105,45 +105,45 @@ The transport is **stdio**. Use this command in your client's MCP server configu
105
105
 
106
106
  These two tools exist specifically so clients that expose tools but not `resources/read` can still resolve valid token and narrative values before calling other Kaito tools.
107
107
 
108
- ### Market Data
108
+ ### Search & Discovery
109
109
 
110
110
  | Tool | Description |
111
111
  |------|-------------|
112
- | `kaito_sentiment` | Daily sentiment time series for a token |
113
- | `kaito_mindshare` | Daily mindshare time series for a token |
114
- | `kaito_narrative_mindshare` | Daily mindshare for a crypto narrative |
115
- | `kaito_mentions` | Daily mention counts by source |
116
- | `kaito_engagement` | Daily engagement metrics (total + smart) |
112
+ | `kaito_advanced_search` | Ranked crypto feeds with AI summaries and filters |
117
113
 
118
- ### Search
114
+ ### Mindshare & Sentiment
119
115
 
120
116
  | Tool | Description |
121
117
  |------|-------------|
122
- | `kaito_advanced_search` | Ranked crypto feeds with AI summaries and filters |
118
+ | `kaito_mindshare` | Daily mindshare time series for a token |
119
+ | `kaito_sentiment` | Daily sentiment time series for a token |
120
+ | `kaito_narrative_mindshare` | Daily mindshare for a crypto narrative |
121
+ | `kaito_mindshare_arena` | Project rankings by mindshare |
122
+ | `kaito_mindshare_delta` | Top gainers and losers by mindshare change |
123
+ | `kaito_tweet_engagement_info` | Engagement details for a specific tweet |
124
+ | `kaito_mentions` | Daily mention counts by source |
125
+ | `kaito_engagement` | Daily engagement metrics (total + smart) |
123
126
 
124
- ### Social
127
+ ### KOL Analytics
125
128
 
126
129
  | Tool | Description |
127
130
  |------|-------------|
128
131
  | `kaito_smart_followers` | Smart follower count or list for a user |
129
- | `kaito_smart_following` | Latest 100 smart accounts followed by a user |
130
132
  | `kaito_get_twitter_user` | Twitter user profile metadata by user ID |
131
133
  | `kaito_kol_token_mindshare` | Top KOLs ranked by mindshare for a token |
132
- | `kaito_market_smart_following` | Accounts that smart followers have recently followed |
133
134
 
134
- ### Rankings
135
+ ### Smart Following
135
136
 
136
137
  | Tool | Description |
137
138
  |------|-------------|
138
- | `kaito_mindshare_arena` | Project rankings by mindshare (use `pre_tge=true` for Pre-TGE rankings) |
139
- | `kaito_mindshare_delta` | Top gainers and losers by mindshare change |
139
+ | `kaito_smart_following` | Accounts that a particular smart person has recently followed |
140
+ | `kaito_market_smart_following` | Accounts that smart people collectively have recently followed |
140
141
 
141
- ### Events
142
+ ### Events & Catalysts
142
143
 
143
144
  | Tool | Description |
144
145
  |------|-------------|
145
- | `kaito_events` | Upcoming catalyst events for a token |
146
- | `kaito_tweet_engagement_info` | Engagement details for a specific tweet |
146
+ | `kaito_events` | Upcoming catalyst and unlocks for a token |
147
147
 
148
148
  ## Resources
149
149
 
@@ -165,6 +165,7 @@ Practical example:
165
165
  | Prompt | Description |
166
166
  |--------|-------------|
167
167
  | `analyze_token` | Comprehensive token analysis workflow (sentiment → mindshare → mentions → engagement → events → KOL mindshare → search) |
168
+ | `daily_market_roundup` | Daily roundup: top SE content → smart money movements with context → mindshare movers with drivers |
168
169
  | `discover_trending` | Trending discovery workflow (mindshare arena → delta movers → smart money signals → search) |
169
170
 
170
171
  ## Development
@@ -182,8 +183,8 @@ Smoke tests hit the real Kaito API to verify all endpoints are reachable:
182
183
 
183
184
  ```bash
184
185
  KAITO_API_KEY=your-key npm test
185
- KAITO_API_KEY=your-key npm test -- -t "sentiment"
186
- KAITO_API_KEY=your-key npm test -- -t "Social"
186
+ KAITO_API_KEY=your-key npm test -- -t "Mindshare & Sentiment"
187
+ KAITO_API_KEY=your-key npm test -- -t "KOL Analytics"
187
188
  ```
188
189
 
189
190
  Resource and reference-lookup tests run without an API key; authenticated endpoint checks are skipped if `KAITO_API_KEY` is not set.
@@ -4,6 +4,7 @@ import { InMemoryTransport } from "@modelcontextprotocol/sdk/inMemory.js";
4
4
  import { afterEach, describe, expect, it, vi } from "vitest";
5
5
  import { CURRENT_VERSION, SERVER_NAME } from "../package-metadata.js";
6
6
  import { createServer } from "../server.js";
7
+ import { SERVER_INSTRUCTIONS } from "../server-instructions.js";
7
8
  const require = createRequire(import.meta.url);
8
9
  const manifest = require("../../manifest.json");
9
10
  const pkg = require("../../package.json");
@@ -59,8 +60,71 @@ describe("server consistency", () => {
59
60
  expect(prompts.prompts.map((prompt) => prompt.name).sort()).toEqual([
60
61
  "analyze_token",
61
62
  "discover_trending",
63
+ "market_roundup",
64
+ "social_listening",
65
+ "watchlist_portfolio",
62
66
  ]);
63
67
  });
68
+ it("server instructions contain workflow routing and output format rules", () => {
69
+ const workflowNames = [
70
+ "analyze_token",
71
+ "discover_trending",
72
+ "market_roundup",
73
+ "watchlist_portfolio",
74
+ "social_listening",
75
+ ];
76
+ for (const name of workflowNames) {
77
+ expect(SERVER_INSTRUCTIONS).toContain(name);
78
+ }
79
+ expect(SERVER_INSTRUCTIONS).toContain("Workflow Routing");
80
+ expect(SERVER_INSTRUCTIONS).toContain("Output Format");
81
+ expect(SERVER_INSTRUCTIONS).toContain("Answer first");
82
+ expect(SERVER_INSTRUCTIONS).toContain("kaito_tokens");
83
+ });
84
+ });
85
+ describe("prompts", () => {
86
+ it("market_roundup returns a non-empty user message", async () => {
87
+ const { client } = await connectTestClient();
88
+ const result = await client.getPrompt({
89
+ name: "market_roundup",
90
+ arguments: {},
91
+ });
92
+ expect(result.messages).toHaveLength(1);
93
+ expect(result.messages[0].role).toBe("user");
94
+ expect(result.messages[0].content).toMatchObject({
95
+ type: "text",
96
+ text: expect.stringContaining("market roundup"),
97
+ });
98
+ });
99
+ it("social_listening returns a prompt with token and default duration", async () => {
100
+ const { client } = await connectTestClient();
101
+ const result = await client.getPrompt({
102
+ name: "social_listening",
103
+ arguments: { token: "HYPERLIQUID" },
104
+ });
105
+ expect(result.messages).toHaveLength(1);
106
+ expect(result.messages[0].role).toBe("user");
107
+ expect(result.messages[0].content).toMatchObject({
108
+ type: "text",
109
+ text: expect.stringContaining("social listening"),
110
+ });
111
+ const text = result.messages[0].content.text;
112
+ expect(text).toContain("HYPERLIQUID");
113
+ expect(text).toContain("24h");
114
+ expect(text).not.toContain("Competitor");
115
+ });
116
+ it("social_listening includes competitor block when competitors provided", async () => {
117
+ const { client } = await connectTestClient();
118
+ const result = await client.getPrompt({
119
+ name: "social_listening",
120
+ arguments: { token: "HYPERLIQUID", competitors: "DYDX,GMX", duration: "7d" },
121
+ });
122
+ const text = result.messages[0].content.text;
123
+ expect(text).toContain("DYDX");
124
+ expect(text).toContain("GMX");
125
+ expect(text).toContain("7d");
126
+ expect(text).toContain("Competitor");
127
+ });
64
128
  });
65
129
  describe("reference lookup tools", () => {
66
130
  it("lists and resolves canonical token values through MCP tool calls", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"server-consistency.test.js","sourceRoot":"","sources":["../../src/__tests__/server-consistency.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-consistency.test.js","sourceRoot":"","sources":["../../src/__tests__/server-consistency.test.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,13 @@ const hasApiKey = !!process.env.KAITO_API_KEY;
4
4
  const client = new KaitoClient();
5
5
  // Rate limit protection: 100ms between each test (API limit: 5 req/s)
6
6
  beforeEach(() => new Promise((r) => setTimeout(r, 100)));
7
- describe.skipIf(!hasApiKey)("Market Data", () => {
7
+ describe.skipIf(!hasApiKey)("Search & Discovery", () => {
8
+ it("advanced_search", async () => {
9
+ const result = await client.request("advanced_search", { tokens: "BTC" });
10
+ expect(result).toBeDefined();
11
+ });
12
+ });
13
+ describe.skipIf(!hasApiKey)("Mindshare & Sentiment", () => {
8
14
  it("sentiment", async () => {
9
15
  const result = await client.request("sentiment", { token: "BTC" });
10
16
  expect(result).toBeDefined();
@@ -27,23 +33,31 @@ describe.skipIf(!hasApiKey)("Market Data", () => {
27
33
  const result = await client.request("engagement", { token: "BTC" });
28
34
  expect(result).toBeDefined();
29
35
  });
30
- });
31
- describe.skipIf(!hasApiKey)("Search", () => {
32
- it("advanced_search", async () => {
33
- const result = await client.request("advanced_search", { tokens: "BTC" });
36
+ it("mindshare_arena", async () => {
37
+ const result = await client.request("mindshare_arena", {});
38
+ expect(result).toBeDefined();
39
+ });
40
+ it("mindshare_delta", async () => {
41
+ const result = await client.request("mindshare_delta", {});
42
+ expect(result).toBeDefined();
43
+ });
44
+ it("tweet_engagement_info", async () => {
45
+ const result = await client.request("tweet_engagement_info", {
46
+ tweet_id: "2029089398625845359",
47
+ });
34
48
  expect(result).toBeDefined();
35
49
  });
36
50
  });
37
- describe.skipIf(!hasApiKey)("Social", () => {
51
+ describe.skipIf(!hasApiKey)("KOL Analytics", () => {
38
52
  it("smart_followers", async () => {
39
53
  const result = await client.request("smart_followers", {
40
54
  username: "VitalikButerin",
41
55
  });
42
56
  expect(result).toBeDefined();
43
57
  });
44
- it("smart_following", async () => {
45
- const result = await client.request("smart_following", {
46
- username: "VitalikButerin",
58
+ it("get_twitter_user", async () => {
59
+ const result = await client.request("get_twitter_user", {
60
+ user_id: "950486928784228352",
47
61
  });
48
62
  expect(result).toBeDefined();
49
63
  });
@@ -53,9 +67,11 @@ describe.skipIf(!hasApiKey)("Social", () => {
53
67
  });
54
68
  expect(result).toBeDefined();
55
69
  });
56
- it("get_twitter_user", async () => {
57
- const result = await client.request("get_twitter_user", {
58
- user_id: "950486928784228352",
70
+ });
71
+ describe.skipIf(!hasApiKey)("Smart Following", () => {
72
+ it("smart_following", async () => {
73
+ const result = await client.request("smart_following", {
74
+ username: "VitalikButerin",
59
75
  });
60
76
  expect(result).toBeDefined();
61
77
  });
@@ -64,27 +80,11 @@ describe.skipIf(!hasApiKey)("Social", () => {
64
80
  expect(result).toBeDefined();
65
81
  });
66
82
  });
67
- describe.skipIf(!hasApiKey)("Rankings", () => {
68
- it("mindshare_arena", async () => {
69
- const result = await client.request("mindshare_arena", {});
70
- expect(result).toBeDefined();
71
- });
72
- it("mindshare_delta", async () => {
73
- const result = await client.request("mindshare_delta", {});
74
- expect(result).toBeDefined();
75
- });
76
- });
77
- describe.skipIf(!hasApiKey)("Events", () => {
83
+ describe.skipIf(!hasApiKey)("Events & Catalysts", () => {
78
84
  it("events", async () => {
79
85
  const result = await client.request("events", { token: "BTC" });
80
86
  expect(result).toBeDefined();
81
87
  });
82
- it("tweet_engagement_info", async () => {
83
- const result = await client.request("tweet_engagement_info", {
84
- tweet_id: "2029089398625845359",
85
- });
86
- expect(result).toBeDefined();
87
- });
88
88
  });
89
89
  describe("Resources (no auth)", () => {
90
90
  it("tokens", async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"smoke.test.js","sourceRoot":"","sources":["../../src/__tests__/smoke.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smoke.test.js","sourceRoot":"","sources":["../../src/__tests__/smoke.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerAnalyzeTokenPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=analyze-token.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-token.d.ts","sourceRoot":"","sources":["../../src/prompts/analyze-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAyG3D"}
@@ -0,0 +1,97 @@
1
+ import { z } from "zod";
2
+ export function registerAnalyzeTokenPrompt(server) {
3
+ server.registerPrompt("analyze_token", {
4
+ description: "Deep-dive analysis of a crypto token: top discussions, sentiment, mindshare, and events with trend comparison. Use when: 'what happened to X?', 'why is X up/down?', 'catch me up on X', 'deep dive on X', 'what's driving X right now?'",
5
+ argsSchema: {
6
+ token: z
7
+ .string()
8
+ .describe("Project name, ticker, or resolved token value (e.g. Bitcoin, BTC, HYPERLIQUID)"),
9
+ duration: z
10
+ .enum(["24h", "7d", "30d"])
11
+ .optional()
12
+ .describe("Time horizon for analysis: 24h, 7d, 30d (default: 30d). If the chosen horizon yields insufficient data, expand to the next tier."),
13
+ },
14
+ }, ({ token, duration }) => {
15
+ const horizon = duration || "30d";
16
+ // 2x lookback mapping for trend comparison
17
+ const lookbackDays = { "24h": 2, "7d": 14, "30d": 60 };
18
+ const days = lookbackDays[horizon];
19
+ return {
20
+ messages: [
21
+ {
22
+ role: "user",
23
+ content: {
24
+ type: "text",
25
+ text: `Perform a comprehensive analysis of the crypto token "${token}" over a ${horizon} time horizon. Follow these steps exactly — do not skip or shortcut any step.
26
+
27
+ ## Phase 1 — Token Resolution
28
+
29
+ 1. **Resolve token**: Call kaito_tokens with query="${token}".
30
+ - If a match is found, save the first returned token value as RESOLVED_TOKEN.
31
+ - **If no match or wrong match**: Ask the user in a single message: "Did you mean A, B, ... or none of the above? If none, please provide the project's common name and X handle (e.g. Rain AI, @rain_xyz)."
32
+ - If the user provides a name and handle instead of picking a match, this becomes an **unindexed token**. In Phase 2, only Steps 2 and 6 apply (using keyword="{project_name} OR @{x_handle}" instead of tokens=). Steps 3–5 are skipped. In Phase 3, clearly note that structured metrics are unavailable and the analysis is based on tweet content only.
33
+
34
+ ## Phase 2 — Data Gathering
35
+
36
+ Run ALL of the following calls in parallel. Compute dates relative to today.
37
+
38
+ 2. **Top tweets**: Call kaito_advanced_search with tokens=RESOLVED_TOKEN, sources="Twitter", sort_by="smart_engagement", size=50, min_created_at set to ${horizon} ago in ISO 8601.
39
+ 3. **Mindshare trend (2x lookback)**: Call kaito_mindshare for RESOLVED_TOKEN with start_date=${days} days ago, end_date=tomorrow.
40
+ 4. **Sentiment trend (2x lookback)**: Call kaito_sentiment for RESOLVED_TOKEN with start_date=${days} days ago, end_date=tomorrow.
41
+ 5. **Upcoming events**: Call kaito_events for RESOLVED_TOKEN with start_date=today, end_date=3 months from today, sort_by="event_date", sort_order="asc".
42
+ 6. **News & cross-platform discussion**: Call kaito_advanced_search with tokens=RESOLVED_TOKEN, sort_by="relevance", size=30, min_created_at set to ${horizon} ago in ISO 8601 (no sources filter — captures News, Podcast, Research, etc.).
43
+
44
+ If Step 2 returns fewer than 10 results for the ${horizon} horizon, expand to the next tier (24h → 7d → 30d) and re-run Step 2 only.
45
+
46
+ ## Phase 3 — Analysis & Output
47
+
48
+ Synthesize all data into the following structured output. Do NOT use "smart money" — always say "smart accounts" instead.
49
+
50
+ ### Answer
51
+ This is the PRIMARY output — a comprehensive 2–3 paragraph response that directly and fully answers the user's question. Do NOT list categories or jump to bullet points here. Write in flowing prose as if briefing someone who will only read this section and skip everything below.
52
+
53
+ Paragraph 1: State the core thesis — why is this token up/down/notable? Name the specific catalysts (partnerships, launches, macro events, regulatory shifts) and explain how they connect. This should read like a concise investment memo, not a table of contents.
54
+
55
+ Paragraph 2: Support with data — weave in mindshare trajectory (% change vs prior period), sentiment direction, and smart account conviction. Always express metrics as % change. Reference specific voices or events that validate the thesis.
56
+
57
+ Paragraph 3 (if warranted): Forward-looking view — upcoming catalysts, risks, or open questions. End with suggested follow-up actions (e.g. "run social_listening for deeper engagement analysis" or "run watchlist_portfolio to compare against competitors").
58
+
59
+ If data is thin, say so explicitly rather than over-interpreting.
60
+
61
+ ---
62
+
63
+ *Everything below is supporting evidence for the answer above.*
64
+
65
+ ### Key Developments
66
+ 5–7 bullet points of the most important findings. **Lead with what happened or changed, not metrics.** Each bullet should start with a development (partnership, launch, upgrade, narrative shift, controversy), then cite mindshare/sentiment data as supporting evidence.
67
+ - **Always express metrics as % change** when comparing across time. Raw values alone are meaningless to the reader. Write "mindshare up +35% from 2.1% to 2.8% over 7 days" instead of just stating numbers.
68
+ - Compare the current ${horizon} window against the prior ${horizon} (available from the 2x lookback data) to identify acceleration, deceleration, or reversals.
69
+ - Attribute every claim to a specific source (tweet, article, account). No unattributed assertions.
70
+
71
+ ### Events & Catalysts
72
+
73
+ Compile all events from Step 5 into a date-sorted view:
74
+
75
+ | Date | Event | Source | Credibility & Impact |
76
+ |------|-------|--------|----------------------|
77
+
78
+ For each event:
79
+ - **Source**: Include the author and link from the event data. For token unlocks sourced from Tokenomist or DefiLlama, these are on-chain data sources and inherently high credibility. For tweet-sourced events, assess credibility based on the author identity.
80
+ - **Credibility**: Rate as High (official account or on-chain data), Medium (credible analyst), or Low (speculation/unverifiable).
81
+ - **Impact**: Categorize as supply-side (unlocks, vesting), product (mainnet, feature launch), governance (votes, proposals), or visibility (conferences, AMAs). Flag events within the next 7 days as **imminent**.
82
+ - If no events are found, explicitly state "No scheduled events."
83
+
84
+ ### Notable Discussions
85
+ Highlight 5–10 of the most impactful tweets and articles from Steps 2 and 6. For each:
86
+ - Content summary (truncated to 280 chars if needed) with URL
87
+ - Author (@username, SF count), smart engagement count
88
+ - Why it matters — what signal does this piece of content carry?
89
+
90
+ Prioritize surprise and non-obvious signals over consensus takes. Include cross-platform content (News, Podcast, Research) alongside Twitter when available.`,
91
+ },
92
+ },
93
+ ],
94
+ };
95
+ });
96
+ }
97
+ //# sourceMappingURL=analyze-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analyze-token.js","sourceRoot":"","sources":["../../src/prompts/analyze-token.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,cAAc,CACnB,eAAe,EACf;QACE,WAAW,EACT,0OAA0O;QAC5O,UAAU,EAAE;YACV,KAAK,EAAE,CAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,CACP,gFAAgF,CACjF;YACH,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CACP,kIAAkI,CACnI;SACJ;KACF,EACD,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,QAAQ,IAAI,KAAK,CAAC;QAElC,2CAA2C;QAC3C,MAAM,YAAY,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/E,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QAEnC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,yDAAyD,KAAK,YAAY,OAAO;;;;sDAI/C,KAAK;;;;;;;;;0JAS+F,OAAO;gGACjE,IAAI;gGACJ,IAAI;;sJAEkD,OAAO;;kDAE3G,OAAO;;;;;;;;;;;;;;;;;;;;;;;;wBAwBjC,OAAO,6BAA6B,OAAO;;;;;;;;;;;;;;;;;;;;;;6JAsB0F;qBAChJ;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerDiscoverTrendingPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=discover-trending.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-trending.d.ts","sourceRoot":"","sources":["../../src/prompts/discover-trending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,QAuG/D"}
@@ -0,0 +1,98 @@
1
+ import { z } from "zod";
2
+ export function registerDiscoverTrendingPrompt(server) {
3
+ server.registerPrompt("discover_trending", {
4
+ description: "Discover trending crypto projects and narratives: mindshare rankings, biggest movers, smart account signals, pre-TGE momentum, and narrative shifts.",
5
+ argsSchema: {
6
+ duration: z
7
+ .enum(["24h", "7d", "30d"])
8
+ .optional()
9
+ .describe("Time window for rankings: 24h, 7d, 30d (default: 24h)"),
10
+ },
11
+ }, ({ duration }) => {
12
+ const window = duration || "24h";
13
+ return {
14
+ messages: [
15
+ {
16
+ role: "user",
17
+ content: {
18
+ type: "text",
19
+ text: `Discover what's trending in crypto right now using a ${window} time window. Follow these steps exactly — do not skip or shortcut any step.
20
+
21
+ ## Batch 1 — Run these six calls in parallel (no dependencies):
22
+
23
+ 1. **Mindshare Arena**: Call kaito_mindshare_arena with duration="${window}" to get top projects by mindshare.
24
+ 2. **Pre-TGE Arena**: Call kaito_mindshare_arena with duration="${window}", pre_tge=true to find trending pre-token projects.
25
+ 3. **Mindshare Movers**: Call kaito_mindshare_delta with duration="${window}" to find biggest gainers and losers.
26
+ 4. **Smart Account Signals (Organizations)**: Call kaito_market_smart_following with duration="${window}", user_tag_individual_or_organization="Organization", user_web3_relevance="relevant", sort_by="followers_change", sort_order="desc".
27
+ 5. **Smart Account Signals (Individuals)**: Call kaito_market_smart_following with duration="${window}", user_tag_individual_or_organization="Individual", user_web3_relevance="relevant", sort_by="followers_change", sort_order="desc".
28
+ 6. **Trending Content**: Call kaito_advanced_search with sort_by="smart_engagement", sources="Twitter", size=50, min_created_at set to ${window} ago in ISO 8601 (no tokens, no keyword — pure discovery mode).
29
+
30
+ ## Batch 2 — Run after Batch 1 completes (depends on Batch 1 results). All steps can run in parallel with each other:
31
+
32
+ 7. From Step 3, for the top 5 mindshare gainers: call kaito_advanced_search for each with tokens="{ticker_id}" (use the ticker_id value directly from the mindshare_delta response — no need to call kaito_tokens), sort_by="smart_engagement", sources="Twitter", size=20, min_created_at set to ${window} ago in ISO 8601 to understand what's driving the move. These CANNOT be combined because the tokens parameter uses AND logic — run all 5 in parallel.
33
+ 8. From Step 4, pick the top 5 organization accounts by followers_change. Run TWO searches:
34
+ a. kaito_advanced_search with keyword="@{handle1} OR @{handle2} OR @{handle3} OR @{handle4} OR @{handle5}", sources="Twitter", size=50, min_created_at set to ${window} ago — what others are saying about them.
35
+ b. kaito_advanced_search with usernames="{handle1},{handle2},{handle3},{handle4},{handle5}" (comma-separated), sources="Twitter", size=50, min_created_at set to ${window} ago — what they're posting.
36
+ 9. From Step 5, pick the top 5 individuals by followers_change. Run ONE search: kaito_advanced_search with usernames="{handle1},{handle2},{handle3},{handle4},{handle5}" (comma-separated), sources="Twitter", size=50, min_created_at set to ${window} ago — what they've been saying.
37
+ 10. **Narrative landscape**: Call kaito_narratives then call kaito_narrative_mindshare for the top 5 narratives by relevance to identify which macro themes are gaining or losing share.
38
+
39
+ ## Output Structure
40
+
41
+ Synthesize all data into the following structured output. Do NOT use "smart money" — always say "smart accounts" instead.
42
+
43
+ ### Answer
44
+ This is the PRIMARY output — a comprehensive 2–3 paragraph response that directly tells the reader what's happening in crypto right now and what they should pay attention to.
45
+
46
+ Paragraph 1: Lead with the single most important signal or theme emerging from the data. Name specific projects, catalysts, and why they matter. Write as if the reader will only read this section.
47
+
48
+ Paragraph 2: Identify 2–3 emerging themes that aren't yet consensus — smart account rotations, narrative shifts, or pre-TGE momentum that most people are missing. Reference specific data points.
49
+
50
+ Paragraph 3: Suggested follow-up actions (e.g. "run analyze_token on X for a deep dive" or "run social_listening on Y to monitor KOL sentiment").
51
+
52
+ ### TL;DR
53
+ One line per key finding, fact-first, no fluff. 5–7 lines max. Format each line as: "N. What's trending — why it matters (source)." Keep each line under 120 characters. This section should be scannable in under 10 seconds.
54
+
55
+ ---
56
+
57
+ *Everything below is supporting evidence for the answer above.*
58
+
59
+ ### Mindshare Rankings
60
+ Top 10 projects from the Mindshare Arena. For each:
61
+ - Rank, project name, mindshare score
62
+ - One-line context: is this a steady leader or a recent mover? Cross-reference with Step 3 (mindshare delta) to note if it's gaining or losing.
63
+
64
+ ### Biggest Movers
65
+ For the top 5 gainers from Step 3, write a short paragraph each:
66
+ - The mindshare change (express as % change, not raw delta)
67
+ - What's driving it — synthesize from the Step 7 tweet search results. Attribute to specific tweets/accounts with SE counts.
68
+ - Is this a one-off spike or part of a sustained trend?
69
+
70
+ For the top 3 losers, one bullet each: what they lost and any visible reason from the broader data.
71
+
72
+ ### Smart Account Signals
73
+ **Organizations gaining smart followers (Step 4):**
74
+ For the top 5, describe what's driving the attention using Step 8 results. Include specific tweets and SE counts. Note any pattern — are smart accounts rotating into a sector (DeFi, L2, AI)?
75
+
76
+ **Individuals gaining smart followers (Step 5):**
77
+ For the top 5, describe what they're talking about using Step 9 results. Are they signaling a theme, calling a trade, or building something?
78
+
79
+ ### Pre-TGE Momentum
80
+ Top 5–10 pre-TGE projects from Step 2. For each:
81
+ - Project name and mindshare score
82
+ - One-line context on what the project does and why it's gaining attention
83
+ - Flag any that also appear in the smart following data (strong conviction signal)
84
+
85
+ ### Narrative Landscape
86
+ Using Step 10 results, identify which macro narratives are leading or shifting. For each top narrative:
87
+ - Name and current mindshare
88
+ - Key tokens driving it
89
+ - Whether it's accelerating or fading vs the prior period
90
+
91
+ `,
92
+ },
93
+ },
94
+ ],
95
+ };
96
+ });
97
+ }
98
+ //# sourceMappingURL=discover-trending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover-trending.js","sourceRoot":"","sources":["../../src/prompts/discover-trending.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,8BAA8B,CAAC,MAAiB;IAC9D,MAAM,CAAC,cAAc,CACnB,mBAAmB,EACnB;QACE,WAAW,EACT,sJAAsJ;QACxJ,UAAU,EAAE;YACV,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;iBAC1B,QAAQ,EAAE;iBACV,QAAQ,CACP,uDAAuD,CACxD;SACJ;KACF,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,QAAQ,IAAI,KAAK,CAAC;QAEjC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,wDAAwD,MAAM;;;;oEAId,MAAM;kEACR,MAAM;qEACH,MAAM;iGACsB,MAAM;+FACR,MAAM;yIACoC,MAAM;;;;oSAIqJ,MAAM;;mKAEvI,MAAM;sKACH,MAAM;gPACoE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDrP;qBACY;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function registerMarketRoundupPrompt(server: McpServer): void;
3
+ //# sourceMappingURL=market-roundup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"market-roundup.d.ts","sourceRoot":"","sources":["../../src/prompts/market-roundup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUpE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,QA4E5D"}