kaito-mcp-server 0.1.3 → 0.1.6

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 CHANGED
@@ -2,16 +2,15 @@
2
2
 
3
3
  MCP server for [Kaito AI](https://kaito.ai) crypto market intelligence API. Provides 13 tools, 2 resources, and 2 prompt templates for accessing Kaito's sentiment analysis, mindshare tracking, social intelligence, and more.
4
4
 
5
- ## Quick Start
5
+ ## Getting Started
6
6
 
7
- ### Claude Desktop
7
+ All configurations require a [Kaito API key](https://kaito.ai). Set it as the `KAITO_API_KEY` environment variable.
8
8
 
9
- Add to your `claude_desktop_config.json`:
9
+ ### Standard configuration
10
10
 
11
- - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
12
- - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
11
+ The following config works across most MCP clients (Claude Desktop, Cursor, Windsurf, etc.):
13
12
 
14
- ```jsonc
13
+ ```json
15
14
  {
16
15
  "mcpServers": {
17
16
  "kaito": {
@@ -25,13 +24,56 @@ Add to your `claude_desktop_config.json`:
25
24
  }
26
25
  ```
27
26
 
27
+ ### Claude Desktop (one-click)
28
+
29
+ Download the latest [kaito-mcp-server.mcpb](https://github.com/MetaSearch-IO/kaito-mcp-server/releases/latest/download/kaito-mcp-server.mcpb) and open it — Claude Desktop will handle the rest.
30
+
31
+ ### Claude Desktop (manual)
32
+
33
+ Add the [standard config](#standard-configuration) to your `claude_desktop_config.json`:
34
+
35
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
36
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
37
+
28
38
  ### Claude Code
29
39
 
30
40
  ```bash
31
- claude mcp add kaito -- npx -y kaito-mcp-server
41
+ claude mcp add kaito -e KAITO_API_KEY=your-api-key -- npx -y kaito-mcp-server
42
+ ```
43
+
44
+ ### VS Code
45
+
46
+ Add the following to your User Settings (JSON) or `.vscode/settings.json`:
47
+
48
+ ```json
49
+ {
50
+ "mcp": {
51
+ "servers": {
52
+ "kaito": {
53
+ "command": "npx",
54
+ "args": ["-y", "kaito-mcp-server"],
55
+ "env": {
56
+ "KAITO_API_KEY": "your-api-key"
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ ```
63
+
64
+ ### Cursor
65
+
66
+ Go to **Cursor Settings → MCP → Add new MCP Server**, and paste the [standard config](#standard-configuration).
67
+
68
+ ### Other MCP Clients
69
+
70
+ For any MCP-compatible client, the server can be started with:
71
+
72
+ ```bash
73
+ KAITO_API_KEY=your-api-key npx -y kaito-mcp-server
32
74
  ```
33
75
 
34
- Set the environment variable `KAITO_API_KEY` before launching.
76
+ The transport is **stdio**. Use this command in your client's MCP server configuration.
35
77
 
36
78
  ## Tools
37
79
 
@@ -57,7 +99,6 @@ Set the environment variable `KAITO_API_KEY` before launching.
57
99
  |------|-------------|
58
100
  | `kaito_smart_followers` | Smart follower count or list for a user |
59
101
  | `kaito_smart_following` | Latest 100 smart accounts followed by a user |
60
- | `kaito_reciprocal_followers` | Mutual followers sorted by smart follower count |
61
102
 
62
103
  ### Rankings
63
104
 
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/prompts/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QA4EhD"}
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../../src/prompts/workflows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QAkFhD"}
@@ -1,11 +1,14 @@
1
1
  import { z } from "zod";
2
2
  export function registerPrompts(server) {
3
- server.prompt("analyze_token", "Comprehensive analysis of a crypto token: sentiment, mindshare, mentions, engagement, events, and recent news.", {
4
- token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
5
- days: z
6
- .string()
7
- .optional()
8
- .describe("Number of days to look back (default: 30)"),
3
+ server.registerPrompt("analyze_token", {
4
+ description: "Comprehensive analysis of a crypto token: sentiment, mindshare, mentions, engagement, events, and recent news.",
5
+ argsSchema: {
6
+ token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
7
+ days: z
8
+ .string()
9
+ .optional()
10
+ .describe("Number of days to look back (default: 30)"),
11
+ },
9
12
  }, ({ token, days }) => {
10
13
  const lookback = days || "30";
11
14
  return {
@@ -34,11 +37,14 @@ After gathering all data, provide a structured analysis covering:
34
37
  ],
35
38
  };
36
39
  });
37
- server.prompt("discover_trending", "Discover trending crypto projects and narratives using mindshare rankings and recent content.", {
38
- duration: z
39
- .string()
40
- .optional()
41
- .describe("Time window for rankings: 24h, 7d, 30d (default: 24h)"),
40
+ server.registerPrompt("discover_trending", {
41
+ description: "Discover trending crypto projects and narratives using mindshare rankings and recent content.",
42
+ argsSchema: {
43
+ duration: z
44
+ .string()
45
+ .optional()
46
+ .describe("Time window for rankings: 24h, 7d, 30d (default: 24h)"),
47
+ },
42
48
  }, ({ duration }) => {
43
49
  const window = duration || "24h";
44
50
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/prompts/workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,MAAM,CACX,eAAe,EACf,gHAAgH,EAChH;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC1D,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2CAA2C,CAAC;KACzD,EACD,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yDAAyD,KAAK,mBAAmB,QAAQ;;6CAEhE,KAAK;6CACL,KAAK;2CACP,KAAK;+CACD,KAAK;uCACb,KAAK;mEACuB,KAAK;;;;;;;wCAOhC;qBAC3B;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,MAAM,CACX,mBAAmB,EACnB,+FAA+F,EAC/F;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;KACrE,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,QAAQ,IAAI,KAAK,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,wDAAwD,MAAM;;mEAEf,MAAM;6DACZ,MAAM;;;;;;;;qCAQ9B;qBACxB;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"workflows.js","sourceRoot":"","sources":["../../src/prompts/workflows.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,cAAc,CACnB,eAAe,EACf;QACE,WAAW,EACT,gHAAgH;QAClH,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC1D,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2CAA2C,CAAC;SACzD;KACF,EACD,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAClB,MAAM,QAAQ,GAAG,IAAI,IAAI,IAAI,CAAC;QAC9B,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yDAAyD,KAAK,mBAAmB,QAAQ;;6CAEhE,KAAK;6CACL,KAAK;2CACP,KAAK;+CACD,KAAK;uCACb,KAAK;mEACuB,KAAK;;;;;;;wCAOhC;qBAC3B;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,cAAc,CACnB,mBAAmB,EACnB;QACE,WAAW,EACT,+FAA+F;QACjG,UAAU,EAAE;YACV,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uDAAuD,CAAC;SACrE;KACF,EACD,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,QAAQ,IAAI,KAAK,CAAC;QACjC,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,wDAAwD,MAAM;;mEAEf,MAAM;6DACZ,MAAM;;;;;;;;qCAQ9B;qBACxB;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  export function registerResources(server, client) {
2
- server.resource("tokens", "kaito://tokens", {
2
+ server.registerResource("tokens", "kaito://tokens", {
3
3
  description: "List of all supported token tickers on Kaito. Use these values for the 'token' parameter in market data tools.",
4
4
  mimeType: "application/json",
5
5
  }, async () => {
@@ -14,7 +14,7 @@ export function registerResources(server, client) {
14
14
  ],
15
15
  };
16
16
  });
17
- server.resource("narratives", "kaito://narratives", {
17
+ server.registerResource("narratives", "kaito://narratives", {
18
18
  description: "List of all supported crypto narrative IDs on Kaito. Use these values for the 'narrative' parameter in kaito_narrative_mindshare.",
19
19
  mimeType: "application/json",
20
20
  }, async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/resources/reference.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAmB;IACtE,MAAM,CAAC,QAAQ,CACb,QAAQ,EACR,gBAAgB,EAChB;QACE,WAAW,EACT,gHAAgH;QAClH,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,gBAAgB;oBACrB,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,QAAQ,CACb,YAAY,EACZ,oBAAoB,EACpB;QACE,WAAW,EACT,mIAAmI;QACrI,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B,YAAY,EACZ,EAAE,EACF,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;QACF,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,oBAAoB;oBACzB,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reference.js","sourceRoot":"","sources":["../../src/resources/reference.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAmB;IACtE,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR,gBAAgB,EAChB;QACE,WAAW,EACT,gHAAgH;QAClH,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;QACxE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,gBAAgB;oBACrB,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,gBAAgB,CACrB,YAAY,EACZ,oBAAoB,EACpB;QACE,WAAW,EACT,mIAAmI;QACrI,QAAQ,EAAE,kBAAkB;KAC7B,EACD,KAAK,IAAI,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAC/B,YAAY,EACZ,EAAE,EACF,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;QACF,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG,EAAE,oBAAoB;oBACzB,QAAQ,EAAE,kBAAkB;oBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QAoFzE"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QA0FzE"}
@@ -1,44 +1,44 @@
1
1
  import { z } from "zod";
2
- const TOOL_ANNOTATIONS = {
3
- readOnlyHint: true,
4
- openWorldHint: true,
5
- };
6
2
  export function registerEventsTools(server, client) {
7
- server.tool("kaito_events", "Get upcoming catalyst events for a token, with filtering by event type, source, and date range. Use the tokens resource to find valid tickers.", {
8
- token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
9
- start_date: z
10
- .string()
11
- .optional()
12
- .describe("Filter events starting on or after this date YYYY-MM-DD"),
13
- end_date: z
14
- .string()
15
- .optional()
16
- .describe("Filter events starting on or before this date YYYY-MM-DD"),
17
- min_announcement_date: z
18
- .string()
19
- .optional()
20
- .describe("Announcement date lower bound YYYY-MM-DD"),
21
- max_announcement_date: z
22
- .string()
23
- .optional()
24
- .describe("Announcement date upper bound YYYY-MM-DD"),
25
- event_types: z
26
- .string()
27
- .optional()
28
- .describe("Comma-separated event types: Mainnet Release, Testnet Release, Roadmap Update, Token Generation Event, Conference Attendance, Proposal and Voting, Tokenomics Update, Token Unlock, Others"),
29
- sources: z
30
- .string()
31
- .optional()
32
- .describe("Comma-separated sources: Twitter Space, Twitter, Podcast, Conference, Vote, Governance, DefiLlama, Token Unlocks"),
33
- sort_by: z
34
- .enum(["event_date", "project_name", "market_cap", "announcement_date"])
35
- .optional()
36
- .describe("Sort field"),
37
- sort_order: z
38
- .enum(["asc", "desc"])
39
- .optional()
40
- .describe("Sort order"),
41
- }, TOOL_ANNOTATIONS, async ({ token, start_date, end_date, min_announcement_date, max_announcement_date, event_types, sources, sort_by, sort_order, }) => {
3
+ server.registerTool("kaito_events", {
4
+ description: "Get upcoming catalyst events for a token, with filtering by event type, source, and date range. Use the tokens resource to find valid tickers.",
5
+ inputSchema: {
6
+ token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
7
+ start_date: z
8
+ .string()
9
+ .optional()
10
+ .describe("Filter events starting on or after this date YYYY-MM-DD"),
11
+ end_date: z
12
+ .string()
13
+ .optional()
14
+ .describe("Filter events starting on or before this date YYYY-MM-DD"),
15
+ min_announcement_date: z
16
+ .string()
17
+ .optional()
18
+ .describe("Announcement date lower bound YYYY-MM-DD"),
19
+ max_announcement_date: z
20
+ .string()
21
+ .optional()
22
+ .describe("Announcement date upper bound YYYY-MM-DD"),
23
+ event_types: z
24
+ .string()
25
+ .optional()
26
+ .describe("Comma-separated event types: Mainnet Release, Testnet Release, Roadmap Update, Token Generation Event, Conference Attendance, Proposal and Voting, Tokenomics Update, Token Unlock, Others"),
27
+ sources: z
28
+ .string()
29
+ .optional()
30
+ .describe("Comma-separated sources: Twitter Space, Twitter, Podcast, Conference, Vote, Governance, DefiLlama, Token Unlocks"),
31
+ sort_by: z
32
+ .enum(["event_date", "project_name", "market_cap", "announcement_date"])
33
+ .optional()
34
+ .describe("Sort field"),
35
+ sort_order: z
36
+ .enum(["asc", "desc"])
37
+ .optional()
38
+ .describe("Sort order"),
39
+ },
40
+ annotations: { readOnlyHint: true, openWorldHint: true },
41
+ }, async ({ token, start_date, end_date, min_announcement_date, max_announcement_date, event_types, sources, sort_by, sort_order, }) => {
42
42
  const data = await client.request("events", {
43
43
  token,
44
44
  start_date,
@@ -52,9 +52,13 @@ export function registerEventsTools(server, client) {
52
52
  });
53
53
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
54
54
  });
55
- server.tool("kaito_tweet_engagement_info", "Get detailed engagement metrics for a specific tweet including likes, retweets, replies, views, and smart engagement count.", {
56
- tweet_id: z.string().describe("Twitter tweet ID (numeric string)"),
57
- }, TOOL_ANNOTATIONS, async ({ tweet_id }) => {
55
+ server.registerTool("kaito_tweet_engagement_info", {
56
+ description: "Get detailed engagement metrics for a specific tweet including likes, retweets, replies, views, and smart engagement count.",
57
+ inputSchema: {
58
+ tweet_id: z.string().describe("Twitter tweet ID (numeric string)"),
59
+ },
60
+ annotations: { readOnlyHint: true, openWorldHint: true },
61
+ }, async ({ tweet_id }) => {
58
62
  const data = await client.request("tweet_engagement_info", {
59
63
  tweet_id,
60
64
  });
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,gBAAgB,GAAG;IACvB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,gJAAgJ,EAChJ;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC1D,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0DAA0D,CAAC;QACvE,qBAAqB,EAAE,CAAC;aACrB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0CAA0C,CAAC;QACvD,qBAAqB,EAAE,CAAC;aACrB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0CAA0C,CAAC;QACvD,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4LAA4L,CAC7L;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,kHAAkH,CACnH;QACH,OAAO,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;aACvE,QAAQ,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;QACzB,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,QAAQ,EAAE;aACV,QAAQ,CAAC,YAAY,CAAC;KAC1B,EACD,gBAAgB,EAChB,KAAK,EAAE,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,OAAO,EACP,UAAU,GACX,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1C,KAAK;YACL,UAAU;YACV,QAAQ;YACR,qBAAqB;YACrB,qBAAqB;YACrB,WAAW;YACX,OAAO;YACP,OAAO;YACP,UAAU;SACX,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,6HAA6H,EAC7H;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KACnE,EACD,gBAAgB,EAChB,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE;YACzD,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/tools/events.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,gJAAgJ;QAClJ,WAAW,EAAE;YACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAC1D,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,qBAAqB,EAAE,CAAC;iBACrB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0CAA0C,CAAC;YACvD,qBAAqB,EAAE,CAAC;iBACrB,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0CAA0C,CAAC;YACvD,WAAW,EAAE,CAAC;iBACX,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,4LAA4L,CAC7L;YACH,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,kHAAkH,CACnH;YACH,OAAO,EAAE,CAAC;iBACP,IAAI,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;iBACvE,QAAQ,EAAE;iBACV,QAAQ,CAAC,YAAY,CAAC;YACzB,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;iBACrB,QAAQ,EAAE;iBACV,QAAQ,CAAC,YAAY,CAAC;SAC1B;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EACL,KAAK,EACL,UAAU,EACV,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,OAAO,EACP,UAAU,GACX,EAAE,EAAE;QACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC1C,KAAK;YACL,UAAU;YACV,QAAQ;YACR,qBAAqB;YACrB,qBAAqB;YACrB,WAAW;YACX,OAAO;YACP,OAAO;YACP,UAAU;SACX,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE;YACX,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACnE;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,uBAAuB,EAAE;YACzD,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"market-data.d.ts","sourceRoot":"","sources":["../../src/tools/market-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,WAAW,QAgKpB"}
1
+ {"version":3,"file":"market-data.d.ts","sourceRoot":"","sources":["../../src/tools/market-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,WAAW,QA+KpB"}
@@ -1,40 +1,40 @@
1
1
  import { z } from "zod";
2
- const TOOL_ANNOTATIONS = {
3
- readOnlyHint: true,
4
- openWorldHint: true,
5
- };
6
2
  export function registerMarketDataTools(server, client) {
7
- server.tool("kaito_sentiment", "Get daily sentiment time series for a crypto token. Returns volume-weighted bullish/bearish scores and notable events. Use the tokens resource to find valid tickers.", {
8
- token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
9
- start_date: z
10
- .string()
11
- .optional()
12
- .describe("Start date YYYY-MM-DD (default: 30 days ago, earliest: 2020-01-01)"),
13
- end_date: z
14
- .string()
15
- .optional()
16
- .describe("End date YYYY-MM-DD (default: tomorrow)"),
17
- adjusted: z
18
- .boolean()
19
- .optional()
20
- .describe("Include replies/quotes, exclude org accounts, weight by smart engagement (default: true)"),
21
- average: z
22
- .boolean()
23
- .optional()
24
- .describe("Return average sentiment -1 to +1 instead of absolute volume-weighted (default: false)"),
25
- gaussian: z
26
- .boolean()
27
- .optional()
28
- .describe("Apply Gaussian smoothing (default: true)"),
29
- language: z
30
- .enum(["all", "en", "zh", "ko", "others"])
31
- .optional()
32
- .describe("Language filter (default: all)"),
33
- version: z
34
- .enum(["2", "3"])
35
- .optional()
36
- .describe("Sentiment model version (default: 3)"),
37
- }, TOOL_ANNOTATIONS, async ({ token, start_date, end_date, adjusted, average, gaussian, language, version }) => {
3
+ server.registerTool("kaito_sentiment", {
4
+ description: "Get daily sentiment time series for a crypto token. Returns volume-weighted bullish/bearish scores and notable events. Use the tokens resource to find valid tickers.",
5
+ inputSchema: {
6
+ token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
7
+ start_date: z
8
+ .string()
9
+ .optional()
10
+ .describe("Start date YYYY-MM-DD (default: 30 days ago, earliest: 2020-01-01)"),
11
+ end_date: z
12
+ .string()
13
+ .optional()
14
+ .describe("End date YYYY-MM-DD (default: tomorrow)"),
15
+ adjusted: z
16
+ .boolean()
17
+ .optional()
18
+ .describe("Include replies/quotes, exclude org accounts, weight by smart engagement (default: true)"),
19
+ average: z
20
+ .boolean()
21
+ .optional()
22
+ .describe("Return average sentiment -1 to +1 instead of absolute volume-weighted (default: false)"),
23
+ gaussian: z
24
+ .boolean()
25
+ .optional()
26
+ .describe("Apply Gaussian smoothing (default: true)"),
27
+ language: z
28
+ .enum(["all", "en", "zh", "ko", "others"])
29
+ .optional()
30
+ .describe("Language filter (default: all)"),
31
+ version: z
32
+ .enum(["2", "3"])
33
+ .optional()
34
+ .describe("Sentiment model version (default: 3)"),
35
+ },
36
+ annotations: { readOnlyHint: true, openWorldHint: true },
37
+ }, async ({ token, start_date, end_date, adjusted, average, gaussian, language, version }) => {
38
38
  const data = await client.request("sentiment", {
39
39
  token,
40
40
  start_date,
@@ -47,21 +47,25 @@ export function registerMarketDataTools(server, client) {
47
47
  });
48
48
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
49
49
  });
50
- server.tool("kaito_mindshare", "Get daily mindshare time series for a crypto token. Mindshare = proportion of crypto Twitter conversation about this token. Use the tokens resource to find valid tickers.", {
51
- token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
52
- start_date: z
53
- .string()
54
- .optional()
55
- .describe("Start date YYYY-MM-DD (default: 30 days ago, earliest: 2020-01-01)"),
56
- end_date: z
57
- .string()
58
- .optional()
59
- .describe("End date YYYY-MM-DD (default: tomorrow)"),
60
- scope: z
61
- .string()
62
- .optional()
63
- .describe("Set to 'pretge' to filter for Pre-TGE projects only"),
64
- }, TOOL_ANNOTATIONS, async ({ token, start_date, end_date, scope }) => {
50
+ server.registerTool("kaito_mindshare", {
51
+ description: "Get daily mindshare time series for a crypto token. Mindshare = proportion of crypto Twitter conversation about this token. Use the tokens resource to find valid tickers.",
52
+ inputSchema: {
53
+ token: z.string().describe("Token ticker (e.g. BTC, ETH)"),
54
+ start_date: z
55
+ .string()
56
+ .optional()
57
+ .describe("Start date YYYY-MM-DD (default: 30 days ago, earliest: 2020-01-01)"),
58
+ end_date: z
59
+ .string()
60
+ .optional()
61
+ .describe("End date YYYY-MM-DD (default: tomorrow)"),
62
+ scope: z
63
+ .string()
64
+ .optional()
65
+ .describe("Set to 'pretge' to filter for Pre-TGE projects only"),
66
+ },
67
+ annotations: { readOnlyHint: true, openWorldHint: true },
68
+ }, async ({ token, start_date, end_date, scope }) => {
65
69
  const data = await client.request("mindshare", {
66
70
  token,
67
71
  start_date,
@@ -70,17 +74,21 @@ export function registerMarketDataTools(server, client) {
70
74
  });
71
75
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
72
76
  });
73
- server.tool("kaito_narrative_mindshare", "Get daily mindshare time series for a crypto narrative (e.g. AI, DeFi, L2). Use the narratives resource to find valid narrative IDs.", {
74
- narrative: z.string().describe("Narrative ID (e.g. AI, DeFi). See narratives resource."),
75
- start_date: z
76
- .string()
77
- .optional()
78
- .describe("Start date YYYY-MM-DD (default: 30 days ago, earliest: 2023-01-01)"),
79
- end_date: z
80
- .string()
81
- .optional()
82
- .describe("End date YYYY-MM-DD (default: tomorrow)"),
83
- }, TOOL_ANNOTATIONS, async ({ narrative, start_date, end_date }) => {
77
+ server.registerTool("kaito_narrative_mindshare", {
78
+ description: "Get daily mindshare time series for a crypto narrative (e.g. AI, DeFi, L2). Use the narratives resource to find valid narrative IDs.",
79
+ inputSchema: {
80
+ narrative: z.string().describe("Narrative ID (e.g. AI, DeFi). See narratives resource."),
81
+ start_date: z
82
+ .string()
83
+ .optional()
84
+ .describe("Start date YYYY-MM-DD (default: 30 days ago, earliest: 2023-01-01)"),
85
+ end_date: z
86
+ .string()
87
+ .optional()
88
+ .describe("End date YYYY-MM-DD (default: tomorrow)"),
89
+ },
90
+ annotations: { readOnlyHint: true, openWorldHint: true },
91
+ }, async ({ narrative, start_date, end_date }) => {
84
92
  const data = await client.request("narrative_mindshare", {
85
93
  narrative,
86
94
  start_date,
@@ -88,18 +96,22 @@ export function registerMarketDataTools(server, client) {
88
96
  });
89
97
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
90
98
  });
91
- server.tool("kaito_mentions", "Get daily mention counts for a token or keyword, broken down by source (Twitter, Discord, News, etc.).", {
92
- token: z.string().optional().describe("Token ticker (e.g. BTC, ETH)"),
93
- keyword: z.string().optional().describe("Search keyword"),
94
- start_date: z
95
- .string()
96
- .optional()
97
- .describe("Start date YYYY-MM-DD (earliest: 2023-01-01)"),
98
- end_date: z
99
- .string()
100
- .optional()
101
- .describe("End date YYYY-MM-DD (default: today)"),
102
- }, TOOL_ANNOTATIONS, async ({ token, keyword, start_date, end_date }) => {
99
+ server.registerTool("kaito_mentions", {
100
+ description: "Get daily mention counts for a token or keyword, broken down by source (Twitter, Discord, News, etc.).",
101
+ inputSchema: {
102
+ token: z.string().optional().describe("Token ticker (e.g. BTC, ETH)"),
103
+ keyword: z.string().optional().describe("Search keyword"),
104
+ start_date: z
105
+ .string()
106
+ .optional()
107
+ .describe("Start date YYYY-MM-DD (earliest: 2023-01-01)"),
108
+ end_date: z
109
+ .string()
110
+ .optional()
111
+ .describe("End date YYYY-MM-DD (default: today)"),
112
+ },
113
+ annotations: { readOnlyHint: true, openWorldHint: true },
114
+ }, async ({ token, keyword, start_date, end_date }) => {
103
115
  const data = await client.request("mentions", {
104
116
  token,
105
117
  keyword,
@@ -108,18 +120,22 @@ export function registerMarketDataTools(server, client) {
108
120
  });
109
121
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
110
122
  });
111
- server.tool("kaito_engagement", "Get daily engagement metrics (total + smart/KOL engagement) for a token or keyword.", {
112
- token: z.string().optional().describe("Token ticker (e.g. BTC, ETH)"),
113
- keyword: z.string().optional().describe("Search keyword"),
114
- start_date: z
115
- .string()
116
- .optional()
117
- .describe("Start date YYYY-MM-DD (earliest: 2023-01-01)"),
118
- end_date: z
119
- .string()
120
- .optional()
121
- .describe("End date YYYY-MM-DD (default: today)"),
122
- }, TOOL_ANNOTATIONS, async ({ token, keyword, start_date, end_date }) => {
123
+ server.registerTool("kaito_engagement", {
124
+ description: "Get daily engagement metrics (total + smart/KOL engagement) for a token or keyword.",
125
+ inputSchema: {
126
+ token: z.string().optional().describe("Token ticker (e.g. BTC, ETH)"),
127
+ keyword: z.string().optional().describe("Search keyword"),
128
+ start_date: z
129
+ .string()
130
+ .optional()
131
+ .describe("Start date YYYY-MM-DD (earliest: 2023-01-01)"),
132
+ end_date: z
133
+ .string()
134
+ .optional()
135
+ .describe("End date YYYY-MM-DD (default: today)"),
136
+ },
137
+ annotations: { readOnlyHint: true, openWorldHint: true },
138
+ }, async ({ token, keyword, start_date, end_date }) => {
123
139
  const data = await client.request("engagement", {
124
140
  token,
125
141
  keyword,
@@ -1 +1 @@
1
- {"version":3,"file":"market-data.js","sourceRoot":"","sources":["../../src/tools/market-data.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"market-data.js","sourceRoot":"","sources":["../../src/tools/market-data.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rankings.d.ts","sourceRoot":"","sources":["../../src/tools/rankings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QAuE3E"}
1
+ {"version":3,"file":"rankings.d.ts","sourceRoot":"","sources":["../../src/tools/rankings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QA6E3E"}
@@ -1,39 +1,39 @@
1
1
  import { z } from "zod";
2
- const TOOL_ANNOTATIONS = {
3
- readOnlyHint: true,
4
- openWorldHint: true,
5
- };
6
2
  export function registerRankingsTools(server, client) {
7
- server.tool("kaito_mindshare_arena", "Get project rankings by mindshare score, with optional category and time window filters. Returns up to 100 projects sorted by mindshare.", {
8
- duration: z
9
- .enum(["all", "24h", "48h", "7d", "30d", "3m", "6m", "12m"])
10
- .optional()
11
- .describe("Time window (default: 24h)"),
12
- language: z
13
- .enum(["all", "en", "zh", "ko", "others"])
14
- .optional()
15
- .describe("Language filter (default: all)"),
16
- categories: z
17
- .enum(["EXCHANGE", "INFOMKT"])
18
- .optional()
19
- .describe("Category filter: EXCHANGE or INFOMKT"),
20
- pre_tge: z
21
- .boolean()
22
- .optional()
23
- .describe("Set true to filter Pre-TGE projects"),
24
- ex_official: z
25
- .boolean()
26
- .optional()
27
- .describe("Exclude official project accounts (default: false)"),
28
- weighted: z
29
- .boolean()
30
- .optional()
31
- .describe("Weight by smart engagement (default: true)"),
32
- nft: z
33
- .boolean()
34
- .optional()
35
- .describe("Include NFT projects (default: false)"),
36
- }, TOOL_ANNOTATIONS, async ({ duration, language, categories, pre_tge, ex_official, weighted, nft }) => {
3
+ server.registerTool("kaito_mindshare_arena", {
4
+ description: "Get project rankings by mindshare score, with optional category and time window filters. Returns up to 100 projects sorted by mindshare.",
5
+ inputSchema: {
6
+ duration: z
7
+ .enum(["all", "24h", "48h", "7d", "30d", "3m", "6m", "12m"])
8
+ .optional()
9
+ .describe("Time window (default: 24h)"),
10
+ language: z
11
+ .enum(["all", "en", "zh", "ko", "others"])
12
+ .optional()
13
+ .describe("Language filter (default: all)"),
14
+ categories: z
15
+ .enum(["EXCHANGE", "INFOMKT"])
16
+ .optional()
17
+ .describe("Category filter: EXCHANGE or INFOMKT"),
18
+ pre_tge: z
19
+ .boolean()
20
+ .optional()
21
+ .describe("Set true to filter Pre-TGE projects"),
22
+ ex_official: z
23
+ .boolean()
24
+ .optional()
25
+ .describe("Exclude official project accounts (default: false)"),
26
+ weighted: z
27
+ .boolean()
28
+ .optional()
29
+ .describe("Weight by smart engagement (default: true)"),
30
+ nft: z
31
+ .boolean()
32
+ .optional()
33
+ .describe("Include NFT projects (default: false)"),
34
+ },
35
+ annotations: { readOnlyHint: true, openWorldHint: true },
36
+ }, async ({ duration, language, categories, pre_tge, ex_official, weighted, nft }) => {
37
37
  const data = await client.request("mindshare_arena", {
38
38
  duration,
39
39
  language,
@@ -45,16 +45,20 @@ export function registerRankingsTools(server, client) {
45
45
  });
46
46
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
47
47
  });
48
- server.tool("kaito_pre_tge_arena", "Get Pre-TGE (pre-token generation event) project rankings by mindshare. Returns up to 100 projects.", {
49
- window: z
50
- .enum(["all", "24h", "48h", "7d", "30d", "3m", "6m", "12m"])
51
- .optional()
52
- .describe("Time window (default: 24h)"),
53
- language: z
54
- .enum(["all", "en", "zh", "others"])
55
- .optional()
56
- .describe("Language filter (default: all)"),
57
- }, TOOL_ANNOTATIONS, async ({ window, language }) => {
48
+ server.registerTool("kaito_pre_tge_arena", {
49
+ description: "Get Pre-TGE (pre-token generation event) project rankings by mindshare. Returns up to 100 projects.",
50
+ inputSchema: {
51
+ window: z
52
+ .enum(["all", "24h", "48h", "7d", "30d", "3m", "6m", "12m"])
53
+ .optional()
54
+ .describe("Time window (default: 24h)"),
55
+ language: z
56
+ .enum(["all", "en", "zh", "others"])
57
+ .optional()
58
+ .describe("Language filter (default: all)"),
59
+ },
60
+ annotations: { readOnlyHint: true, openWorldHint: true },
61
+ }, async ({ window, language }) => {
58
62
  const data = await client.request("pre_tge_arena", {
59
63
  window,
60
64
  language,
@@ -1 +1 @@
1
- {"version":3,"file":"rankings.js","sourceRoot":"","sources":["../../src/tools/rankings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rankings.js","sourceRoot":"","sources":["../../src/tools/rankings.ts"],"names":[],"mappings":"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"}
@@ -1,122 +1,123 @@
1
1
  import { z } from "zod";
2
2
  export function registerSearchTools(server, client) {
3
- server.tool("kaito_advanced_search", "Search ranked crypto feeds (Twitter & News) with AI summaries, sentiment scores, and extensive filters. Omit tokens/keyword/usernames for discovery mode (trending content).", {
4
- tokens: z
5
- .string()
6
- .optional()
7
- .describe("Comma-separated token tickers (e.g. BTC,ETH)"),
8
- keyword: z.string().optional().describe("Search keyword"),
9
- usernames: z
10
- .string()
11
- .optional()
12
- .describe("Comma-separated Twitter usernames (Twitter source only)"),
13
- sources: z
14
- .string()
15
- .optional()
16
- .describe("Comma-separated: Twitter, News (default: Twitter,News)"),
17
- min_created_at: z
18
- .string()
19
- .optional()
20
- .describe("Min creation date ISO 8601 (default: 90 days ago)"),
21
- max_created_at: z
22
- .string()
23
- .optional()
24
- .describe("Max creation date ISO 8601"),
25
- from: z
26
- .number()
27
- .optional()
28
- .describe("Pagination offset 0-500 (default: 0)"),
29
- size: z
30
- .number()
31
- .optional()
32
- .describe("Results per page 1-20 (default: 20)"),
33
- languages: z
34
- .string()
35
- .optional()
36
- .describe("Comma-separated: en, zh, ko, others (default: en)"),
37
- sort_by: z
38
- .enum(["relevance", "created_at", "engagement", "smart_engagement", "author", "length", "bookmark", "sentiment", "views"])
39
- .optional()
40
- .describe("Sort field (default: relevance)"),
41
- sort_order: z
42
- .enum(["asc", "desc"])
43
- .optional()
44
- .describe("Sort order (default: desc). asc only works with created_at and sentiment"),
45
- tweet_length_type: z
46
- .enum(["short", "long", "thread", "article"])
47
- .optional()
48
- .describe("Twitter only: tweet length type"),
49
- tweet_type: z
50
- .enum(["tweet", "quote", "reply"])
51
- .optional()
52
- .describe("Twitter only: tweet type"),
53
- sentiment_type: z
54
- .enum(["bullish", "bearish", "neutral"])
55
- .optional()
56
- .describe("Twitter only: sentiment filter"),
57
- author_type: z
58
- .enum(["Organization", "Individual"])
59
- .optional()
60
- .describe("Twitter only: author type"),
61
- min_bookmark_count: z
62
- .number()
63
- .optional()
64
- .describe("Twitter only: min bookmarks"),
65
- max_bookmark_count: z
66
- .number()
67
- .optional()
68
- .describe("Twitter only: max bookmarks"),
69
- min_view_count: z
70
- .number()
71
- .optional()
72
- .describe("Twitter only: min views"),
73
- max_view_count: z
74
- .number()
75
- .optional()
76
- .describe("Twitter only: max views"),
77
- min_smart_engagement_count: z
78
- .number()
79
- .optional()
80
- .describe("Twitter only: min smart engagements"),
81
- max_smart_engagement_count: z
82
- .number()
83
- .optional()
84
- .describe("Twitter only: max smart engagements"),
85
- min_like_count: z
86
- .number()
87
- .optional()
88
- .describe("Twitter only: min likes"),
89
- max_like_count: z
90
- .number()
91
- .optional()
92
- .describe("Twitter only: max likes"),
93
- min_reply_count: z
94
- .number()
95
- .optional()
96
- .describe("Twitter only: min replies"),
97
- max_reply_count: z
98
- .number()
99
- .optional()
100
- .describe("Twitter only: max replies"),
101
- min_retweet_count: z
102
- .number()
103
- .optional()
104
- .describe("Twitter only: min retweets"),
105
- max_retweet_count: z
106
- .number()
107
- .optional()
108
- .describe("Twitter only: max retweets"),
109
- min_quote_count: z
110
- .number()
111
- .optional()
112
- .describe("Twitter only: min quotes"),
113
- max_quote_count: z
114
- .number()
115
- .optional()
116
- .describe("Twitter only: max quotes"),
117
- }, {
118
- readOnlyHint: true,
119
- openWorldHint: true,
3
+ server.registerTool("kaito_advanced_search", {
4
+ description: "Search ranked crypto feeds (Twitter & News) with AI summaries, sentiment scores, and extensive filters. Omit tokens/keyword/usernames for discovery mode (trending content).",
5
+ inputSchema: {
6
+ tokens: z
7
+ .string()
8
+ .optional()
9
+ .describe("Comma-separated token tickers (e.g. BTC,ETH)"),
10
+ keyword: z.string().optional().describe("Search keyword"),
11
+ usernames: z
12
+ .string()
13
+ .optional()
14
+ .describe("Comma-separated Twitter usernames (Twitter source only)"),
15
+ sources: z
16
+ .string()
17
+ .optional()
18
+ .describe("Comma-separated: Twitter, News (default: Twitter,News)"),
19
+ min_created_at: z
20
+ .string()
21
+ .optional()
22
+ .describe("Min creation date ISO 8601 (default: 90 days ago)"),
23
+ max_created_at: z
24
+ .string()
25
+ .optional()
26
+ .describe("Max creation date ISO 8601"),
27
+ from: z
28
+ .number()
29
+ .optional()
30
+ .describe("Pagination offset 0-500 (default: 0)"),
31
+ size: z
32
+ .number()
33
+ .optional()
34
+ .describe("Results per page 1-20 (default: 20)"),
35
+ languages: z
36
+ .string()
37
+ .optional()
38
+ .describe("Comma-separated: en, zh, ko, others (default: en)"),
39
+ sort_by: z
40
+ .enum(["relevance", "created_at", "engagement", "smart_engagement", "author", "length", "bookmark", "sentiment", "views"])
41
+ .optional()
42
+ .describe("Sort field (default: relevance)"),
43
+ sort_order: z
44
+ .enum(["asc", "desc"])
45
+ .optional()
46
+ .describe("Sort order (default: desc). asc only works with created_at and sentiment"),
47
+ tweet_length_type: z
48
+ .enum(["short", "long", "thread", "article"])
49
+ .optional()
50
+ .describe("Twitter only: tweet length type"),
51
+ tweet_type: z
52
+ .enum(["tweet", "quote", "reply"])
53
+ .optional()
54
+ .describe("Twitter only: tweet type"),
55
+ sentiment_type: z
56
+ .enum(["bullish", "bearish", "neutral"])
57
+ .optional()
58
+ .describe("Twitter only: sentiment filter"),
59
+ author_type: z
60
+ .enum(["Organization", "Individual"])
61
+ .optional()
62
+ .describe("Twitter only: author type"),
63
+ min_bookmark_count: z
64
+ .number()
65
+ .optional()
66
+ .describe("Twitter only: min bookmarks"),
67
+ max_bookmark_count: z
68
+ .number()
69
+ .optional()
70
+ .describe("Twitter only: max bookmarks"),
71
+ min_view_count: z
72
+ .number()
73
+ .optional()
74
+ .describe("Twitter only: min views"),
75
+ max_view_count: z
76
+ .number()
77
+ .optional()
78
+ .describe("Twitter only: max views"),
79
+ min_smart_engagement_count: z
80
+ .number()
81
+ .optional()
82
+ .describe("Twitter only: min smart engagements"),
83
+ max_smart_engagement_count: z
84
+ .number()
85
+ .optional()
86
+ .describe("Twitter only: max smart engagements"),
87
+ min_like_count: z
88
+ .number()
89
+ .optional()
90
+ .describe("Twitter only: min likes"),
91
+ max_like_count: z
92
+ .number()
93
+ .optional()
94
+ .describe("Twitter only: max likes"),
95
+ min_reply_count: z
96
+ .number()
97
+ .optional()
98
+ .describe("Twitter only: min replies"),
99
+ max_reply_count: z
100
+ .number()
101
+ .optional()
102
+ .describe("Twitter only: max replies"),
103
+ min_retweet_count: z
104
+ .number()
105
+ .optional()
106
+ .describe("Twitter only: min retweets"),
107
+ max_retweet_count: z
108
+ .number()
109
+ .optional()
110
+ .describe("Twitter only: max retweets"),
111
+ min_quote_count: z
112
+ .number()
113
+ .optional()
114
+ .describe("Twitter only: min quotes"),
115
+ max_quote_count: z
116
+ .number()
117
+ .optional()
118
+ .describe("Twitter only: max quotes"),
119
+ },
120
+ annotations: { readOnlyHint: true, openWorldHint: true },
120
121
  }, async (params) => {
121
122
  const queryParams = {};
122
123
  for (const [key, value] of Object.entries(params)) {
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,8KAA8K,EAC9K;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,8CAA8C,CAAC;QAC3D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACzD,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yDAAyD,CAAC;QACtE,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,wDAAwD,CAAC;QACrE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;QAChE,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;QACzC,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sCAAsC,CAAC;QACnD,IAAI,EAAE,CAAC;aACJ,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,mDAAmD,CAAC;QAChE,OAAO,EAAE,CAAC;aACP,IAAI,CAAC,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;aACzH,QAAQ,EAAE;aACV,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACrB,QAAQ,EAAE;aACV,QAAQ,CAAC,0EAA0E,CAAC;QACvF,iBAAiB,EAAE,CAAC;aACjB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;aAC5C,QAAQ,EAAE;aACV,QAAQ,CAAC,iCAAiC,CAAC;QAC9C,UAAU,EAAE,CAAC;aACV,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CAAC,0BAA0B,CAAC;QACvC,cAAc,EAAE,CAAC;aACd,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;aACvC,QAAQ,EAAE;aACV,QAAQ,CAAC,gCAAgC,CAAC;QAC7C,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;aACpC,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,kBAAkB,EAAE,CAAC;aAClB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,6BAA6B,CAAC;QAC1C,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,0BAA0B,EAAE,CAAC;aAC1B,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,0BAA0B,EAAE,CAAC;aAC1B,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,cAAc,EAAE,CAAC;aACd,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,yBAAyB,CAAC;QACtC,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;QACzC,iBAAiB,EAAE,CAAC;aACjB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4BAA4B,CAAC;QACzC,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0BAA0B,CAAC;QACvC,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,0BAA0B,CAAC;KACxC,EACD;QACE,YAAY,EAAE,IAAI;QAClB,aAAa,EAAE,IAAI;KACpB,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,MAAM,WAAW,GAAuC,EAAE,CAAC;QAC3D,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;YACtC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAO3C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QAoFzE"}
1
+ {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,QAmEzE"}
@@ -1,27 +1,27 @@
1
1
  import { z } from "zod";
2
- const TOOL_ANNOTATIONS = {
3
- readOnlyHint: true,
4
- openWorldHint: true,
5
- };
6
2
  export function registerSocialTools(server, client) {
7
- server.tool("kaito_smart_followers", "Get smart follower data for a Twitter user. 'count' mode returns cumulative smart follower count; 'users' mode returns the list of smart followers gained on a specific date.", {
8
- user_id: z
9
- .string()
10
- .optional()
11
- .describe("Twitter user ID. One of user_id or username is required."),
12
- username: z
13
- .string()
14
- .optional()
15
- .describe("Twitter username. One of user_id or username is required."),
16
- date: z
17
- .string()
18
- .optional()
19
- .describe("Date YYYY-MM-DD (default: yesterday, must be >= 2024-01-01)"),
20
- mode: z
21
- .enum(["count", "users"])
22
- .optional()
23
- .describe("'count' for cumulative count, 'users' for follower list (default: count)"),
24
- }, TOOL_ANNOTATIONS, async ({ user_id, username, date, mode }) => {
3
+ server.registerTool("kaito_smart_followers", {
4
+ description: "Get smart follower data for a Twitter user. 'count' mode returns cumulative smart follower count; 'users' mode returns the list of smart followers gained on a specific date.",
5
+ inputSchema: {
6
+ user_id: z
7
+ .string()
8
+ .optional()
9
+ .describe("Twitter user ID. One of user_id or username is required."),
10
+ username: z
11
+ .string()
12
+ .optional()
13
+ .describe("Twitter username. One of user_id or username is required."),
14
+ date: z
15
+ .string()
16
+ .optional()
17
+ .describe("Date YYYY-MM-DD (default: yesterday, must be >= 2024-01-01)"),
18
+ mode: z
19
+ .enum(["count", "users"])
20
+ .optional()
21
+ .describe("'count' for cumulative count, 'users' for follower list (default: count)"),
22
+ },
23
+ annotations: { readOnlyHint: true, openWorldHint: true },
24
+ }, async ({ user_id, username, date, mode }) => {
25
25
  const data = await client.request("smart_followers", {
26
26
  user_id,
27
27
  username,
@@ -30,20 +30,24 @@ export function registerSocialTools(server, client) {
30
30
  });
31
31
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
32
32
  });
33
- server.tool("kaito_smart_following", "Get the latest 100 smart accounts followed by a Twitter user, in reverse chronological order.", {
34
- user_id: z
35
- .string()
36
- .optional()
37
- .describe("Twitter user ID. One of user_id or username is required."),
38
- username: z
39
- .string()
40
- .optional()
41
- .describe("Twitter username. One of user_id or username is required."),
42
- category: z
43
- .enum(["ALL", "Organization", "Individual"])
44
- .optional()
45
- .describe("Filter by account type"),
46
- }, TOOL_ANNOTATIONS, async ({ user_id, username, category }) => {
33
+ server.registerTool("kaito_smart_following", {
34
+ description: "Get the latest 100 smart accounts followed by a Twitter user, in reverse chronological order.",
35
+ inputSchema: {
36
+ user_id: z
37
+ .string()
38
+ .optional()
39
+ .describe("Twitter user ID. One of user_id or username is required."),
40
+ username: z
41
+ .string()
42
+ .optional()
43
+ .describe("Twitter username. One of user_id or username is required."),
44
+ category: z
45
+ .enum(["ALL", "Organization", "Individual"])
46
+ .optional()
47
+ .describe("Filter by account type"),
48
+ },
49
+ annotations: { readOnlyHint: true, openWorldHint: true },
50
+ }, async ({ user_id, username, category }) => {
47
51
  const data = await client.request("smart_following", {
48
52
  user_id,
49
53
  username,
@@ -51,21 +55,5 @@ export function registerSocialTools(server, client) {
51
55
  });
52
56
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
53
57
  });
54
- server.tool("kaito_reciprocal_followers", "Get reciprocal (mutual) followers for a Twitter user, sorted by smart follower count descending.", {
55
- user_id: z
56
- .string()
57
- .optional()
58
- .describe("Twitter user ID. One of user_id or username is required."),
59
- username: z
60
- .string()
61
- .optional()
62
- .describe("Twitter username. One of user_id or username is required."),
63
- }, TOOL_ANNOTATIONS, async ({ user_id, username }) => {
64
- const data = await client.request("reciprocal_followers", {
65
- user_id,
66
- username,
67
- });
68
- return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
69
- });
70
58
  }
71
59
  //# sourceMappingURL=social.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"social.js","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,+KAA+K;QACjL,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,IAAI,EAAE,CAAC;iBACJ,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;iBACxB,QAAQ,EAAE;iBACV,QAAQ,CAAC,0EAA0E,CAAC;SACxF;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACnD,OAAO;YACP,QAAQ;YACR,IAAI;YACJ,IAAI;SACL,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,+FAA+F;QACjG,WAAW,EAAE;YACX,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,2DAA2D,CAAC;YACxE,QAAQ,EAAE,CAAC;iBACR,IAAI,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;iBAC3C,QAAQ,EAAE;iBACV,QAAQ,CAAC,wBAAwB,CAAC;SACtC;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;KACzD,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE;YACnD,OAAO;YACP,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;QACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC,CACF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kaito-mcp-server",
3
- "version": "0.1.3",
3
+ "version": "0.1.6",
4
4
  "description": "MCP server for Kaito AI crypto market intelligence API",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -13,7 +13,9 @@
13
13
  "scripts": {
14
14
  "build": "tsc",
15
15
  "dev": "tsc --watch",
16
- "start": "node build/index.js"
16
+ "start": "node build/index.js",
17
+ "preversion": "npm run build",
18
+ "postversion": "node scripts/sync-manifest-version.js && git add manifest.json && git commit --amend --no-edit && git push && git push --tags"
17
19
  },
18
20
  "dependencies": {
19
21
  "@modelcontextprotocol/sdk": "^1.27.0",