hchain-mcp 1.0.2 → 1.0.3

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
@@ -1,106 +1,127 @@
1
- # hchain-mcp
2
-
3
- AI-native multi-chain trading MCP Server — 99 tools, HTTP & stdio dual transport.
4
-
5
- ## Install
6
-
7
- ```bash
8
- npm install -g hchain-mcp
9
- ```
10
-
11
- ## Usage
12
-
13
- ### stdio (local Agent)
14
-
15
- ```bash
16
- hchain-mcp
17
- ```
18
-
19
- Set API Key:
20
-
21
- ```bash
22
- export OKX_API_KEY=xxx
23
- export OKX_SECRET_KEY=xxx
24
- export OKX_PASSPHRASE=xxx
25
- hchain-mcp
26
- ```
27
-
28
- ### HTTP (remote Agent)
29
-
30
- ```bash
31
- hchain-mcp start:http
32
- # → http://127.0.0.1:3000
33
-
34
- # or custom port
35
- PORT=3099 hchain-mcp start:http
36
- ```
37
-
38
- Endpoints:
39
-
40
- | Method | Path | Description |
41
- |--------|------|-------------|
42
- | POST | `/mcp` | MCP StreamableHTTP |
43
- | GET | `/health` | Health check |
44
-
45
- ### Claude Code Config
46
-
47
- ```json
48
- {
49
- "mcpServers": {
50
- "hchain-mcp": {
51
- "command": "npx",
52
- "args": ["hchain-mcp"],
53
- "env": {
54
- "OKX_API_KEY": "xxx",
55
- "OKX_SECRET_KEY": "xxx",
56
- "OKX_PASSPHRASE": "xxx"
57
- }
58
- }
59
- }
60
- }
61
- ```
62
-
63
- Or HTTP mode:
64
-
65
- ```json
66
- {
67
- "mcpServers": {
68
- "hchain-mcp": {
69
- "url": "http://127.0.0.1:3099/mcp"
70
- }
71
- }
72
- }
73
- ```
74
-
75
- ## Tools (99)
76
-
77
- ### Phase 1 — Base APIs (95 tools)
78
-
79
- | Module | Count | Description |
80
- |--------|:-----:|-------------|
81
- | Market | 45 | Prices, candles, token info, signals, social |
82
- | DeFi | 14 | Yield, staking, lending, pool |
83
- | Trade | 8 | DEX aggregation, quote, swap |
84
- | Intent | 6 | Intent-based swap + auction |
85
- | Gateway | 6 | Gas, simulate, broadcast |
86
- | Payments | 5 | Agent-to-Agent payments (x402) |
87
- | Balance | 4 | Multi-chain balance |
88
- | WS | 4 | WebSocket connect/subscribe |
89
- | TxHistory | 3 | Transaction history |
90
-
91
- ### Phase 2 API Composition Skills (4 tools)
92
-
93
- | Tool | Description |
94
- |------|-------------|
95
- | `onchainos_skill_trade_pipeline` | One-shot swap: quote approve → swap → simulate |
96
- | `onchainos_skill_risk_detect` | 4-dimension risk scan with 0-100 scoring |
97
- | `onchainos_skill_smart_slippage` | Volatility-based slippage recommendation |
98
- | `onchainos_skill_signal_aggregate` | Signal discovery with automatic risk filtering |
99
-
100
- ## Supported Chains
101
-
102
- Ethereum, BSC, Polygon, Arbitrum, Base, Optimism, Solana, Sui, TON, Avalanche, Fantom, and 40+ more.
103
-
104
- ## License
105
-
106
- MIT
1
+ # hchain-mcp
2
+
3
+ [![npm version](https://img.shields.io/npm/v/hchain-mcp?style=flat-square)](https://www.npmjs.com/package/hchain-mcp)
4
+ [![npm downloads](https://img.shields.io/npm/dm/hchain-mcp?style=flat-square)](https://www.npmjs.com/package/hchain-mcp)
5
+ [![Node](https://img.shields.io/badge/node-%3E%3D18-brightgreen?style=flat-square)](https://nodejs.org)
6
+ [![CI](https://img.shields.io/github/actions/workflow/status/hwalletvip888-h/hchain-mcp/ci.yml?style=flat-square)](https://github.com/hwalletvip888-h/hchain-mcp/actions)
7
+ [![License](https://img.shields.io/npm/l/hchain-mcp?style=flat-square)](LICENSE)
8
+
9
+ AI-native multi-chain trading MCP Server — 99 tools over HTTP & stdio.
10
+
11
+ ## Install
12
+
13
+ ```bash
14
+ npm install -g hchain-mcp
15
+ ```
16
+
17
+ ## Usage
18
+
19
+ ### stdio (local Agent)
20
+
21
+ ```bash
22
+ hchain-mcp
23
+ ```
24
+
25
+ Set API Key:
26
+
27
+ ```bash
28
+ export OKX_API_KEY=xxx
29
+ export OKX_SECRET_KEY=xxx
30
+ export OKX_PASSPHRASE=xxx
31
+ hchain-mcp
32
+ ```
33
+
34
+ ### HTTP (remote Agent)
35
+
36
+ ```bash
37
+ hchain-mcp start:http
38
+ # → http://127.0.0.1:3000
39
+
40
+ # or custom port
41
+ PORT=3099 hchain-mcp start:http
42
+ ```
43
+
44
+ Endpoints:
45
+
46
+ | Method | Path | Description |
47
+ |--------|------|-------------|
48
+ | POST | `/mcp` | MCP StreamableHTTP |
49
+ | GET | `/health` | Health check |
50
+
51
+ ### Claude Code Config
52
+
53
+ ```json
54
+ {
55
+ "mcpServers": {
56
+ "hchain-mcp": {
57
+ "command": "npx",
58
+ "args": ["hchain-mcp"],
59
+ "env": {
60
+ "OKX_API_KEY": "xxx",
61
+ "OKX_SECRET_KEY": "xxx",
62
+ "OKX_PASSPHRASE": "xxx"
63
+ }
64
+ }
65
+ }
66
+ }
67
+ ```
68
+
69
+ Or HTTP mode:
70
+
71
+ ```json
72
+ {
73
+ "mcpServers": {
74
+ "hchain-mcp": {
75
+ "url": "http://127.0.0.1:3099/mcp"
76
+ }
77
+ }
78
+ }
79
+ ```
80
+
81
+ ## Tools (99)
82
+
83
+ ### Phase 1 Base APIs (95 tools)
84
+
85
+ | Module | Count | Description |
86
+ |--------|:-----:|-------------|
87
+ | Market | 45 | Prices, candles, token info, signals, social |
88
+ | DeFi | 14 | Yield, staking, lending, pool |
89
+ | Trade | 8 | DEX aggregation, quote, swap |
90
+ | Intent | 6 | Intent-based swap + auction |
91
+ | Gateway | 6 | Gas, simulate, broadcast |
92
+ | Payments | 5 | Agent-to-Agent payments (x402) |
93
+ | Balance | 4 | Multi-chain balance |
94
+ | WS | 4 | WebSocket connect/subscribe |
95
+ | TxHistory | 3 | Transaction history |
96
+
97
+ ### Phase 2 API Composition Skills (4 tools)
98
+
99
+ | Tool | Description |
100
+ |------|-------------|
101
+ | `onchainos_skill_trade_pipeline` | One-shot swap: quote → approve → swap → simulate |
102
+ | `onchainos_skill_risk_detect` | 4-dimension risk scan with 0-100 scoring |
103
+ | `onchainos_skill_smart_slippage` | Volatility-based slippage recommendation |
104
+ | `onchainos_skill_signal_aggregate` | Signal discovery with automatic risk filtering |
105
+
106
+ ## Docker
107
+
108
+ ```bash
109
+ docker build -t hchain-mcp .
110
+ docker run --rm -e OKX_API_KEY=xxx -e OKX_SECRET_KEY=xxx -e OKX_PASSPHRASE=xxx hchain-mcp
111
+ # HTTP mode:
112
+ docker run --rm -p 3000:3000 -e PORT=3000 -e OKX_API_KEY=xxx -e OKX_SECRET_KEY=xxx -e OKX_PASSPHRASE=xxx hchain-mcp npx hchain-mcp start:http
113
+ ```
114
+
115
+ ## Test
116
+
117
+ ```bash
118
+ npm test
119
+ ```
120
+
121
+ ## Supported Chains
122
+
123
+ Ethereum, BSC, Polygon, Arbitrum, Base, Optimism, Solana, Sui, TON, Avalanche, Fantom, and 40+ more.
124
+
125
+ ## License
126
+
127
+ MIT
@@ -19,5 +19,6 @@ export declare function toResult<T>(data: T, opts?: {
19
19
  nextSteps?: NextStep[];
20
20
  }): CallToolResult;
21
21
  export declare function toError(e: unknown): CallToolResult;
22
+ export declare function resolveAuth(): Auth | null;
22
23
  export declare function AUTH_REQUIRED(scope?: "READ" | "TRADE"): CallToolResult;
23
24
  //# sourceMappingURL=shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,MAAM,WAAW,IAAI;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;CAAE;AAE7E,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,cAAc,CAK3G;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CA8DlD;AAGD,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,GAAG,OAAgB,GAAG,cAAc,CAS9E"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAGzE,MAAM,WAAW,IAAI;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;CAAE;AAE7E,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;CAAE,GAAG,cAAc,CAK3G;AAGD,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,CA8DlD;AAGD,wBAAgB,WAAW,IAAI,IAAI,GAAG,IAAI,CAOzC;AAGD,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,GAAG,OAAgB,GAAG,cAAc,CAS9E"}
@@ -93,6 +93,17 @@ export function toError(e) {
93
93
  isError: true,
94
94
  };
95
95
  }
96
+ // ── resolveAuth ──────────────────────────────────────────────
97
+ export function resolveAuth() {
98
+ const k = process.env.OKX_API_KEY, s = process.env.OKX_SECRET_KEY, p = process.env.OKX_PASSPHRASE;
99
+ if (k && s && p)
100
+ return { apiKey: k, secret: s, passphrase: p };
101
+ const a = process.argv.slice(2), g = (f) => { const i = a.indexOf(f); return i >= 0 ? a[i + 1] : undefined; };
102
+ const ka = g("--okx-api-key") ?? g("-k"), sa = g("--okx-secret") ?? g("-s"), pa = g("--okx-passphrase") ?? g("-p");
103
+ if (ka && sa && pa)
104
+ return { apiKey: ka, secret: sa, passphrase: pa };
105
+ return null;
106
+ }
96
107
  // ── AUTH_REQUIRED ───────────────────────────────────────────
97
108
  export function AUTH_REQUIRED(scope = "READ") {
98
109
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/adapters/shared.ts"],"names":[],"mappings":"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"}
package/dist/http.js CHANGED
@@ -6,9 +6,11 @@
6
6
  * 使用原生 node:http 而非 Express, 避免 Express 5 与 @hono/node-server 兼容问题
7
7
  */
8
8
  import "dotenv/config";
9
+ import { readFileSync } from "node:fs";
9
10
  import { createServer } from "node:http";
10
11
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
11
12
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
13
+ import { resolveAuth } from "./adapters/shared.js";
12
14
  import { registerBalanceTools } from "./tools/balance.js";
13
15
  import { registerGatewayTools } from "./tools/gateway.js";
14
16
  import { registerTxHistoryTools } from "./tools/txhistory.js";
@@ -19,16 +21,7 @@ import { registerIntentTools } from "./tools/intent.js";
19
21
  import { registerMarketTools } from "./tools/market.js";
20
22
  import { registerWsTools } from "./tools/ws.js";
21
23
  import { registerSkillTools } from "./tools/skills.js";
22
- function resolveAuth() {
23
- const k = process.env.OKX_API_KEY, s = process.env.OKX_SECRET_KEY, p = process.env.OKX_PASSPHRASE;
24
- if (k && s && p)
25
- return { apiKey: k, secret: s, passphrase: p };
26
- const a = process.argv.slice(2), g = (f) => { const i = a.indexOf(f); return i >= 0 ? a[i + 1] : undefined; };
27
- const ka = g("--okx-api-key") ?? g("-k"), sa = g("--okx-secret") ?? g("-s"), pa = g("--okx-passphrase") ?? g("-p");
28
- if (ka && sa && pa)
29
- return { apiKey: ka, secret: sa, passphrase: pa };
30
- return null;
31
- }
24
+ const { version } = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
32
25
  /** 简陋 body parser — 读 JSON body 到 req.body */
33
26
  function jsonBody(req) {
34
27
  return new Promise((resolve, reject) => {
@@ -46,6 +39,28 @@ function jsonBody(req) {
46
39
  req.on("error", reject);
47
40
  });
48
41
  }
42
+ // ── 基础 Rate Limiter ────────────────────────────────────────
43
+ const reqCounts = new Map();
44
+ const RATE_WINDOW_MS = 1000; // 1 秒窗口
45
+ const RATE_MAX = 20; // 每窗口最多 20 请求
46
+ function rateLimited(ip) {
47
+ const now = Date.now();
48
+ const entry = reqCounts.get(ip);
49
+ if (!entry || now > entry.resetAt) {
50
+ reqCounts.set(ip, { count: 1, resetAt: now + RATE_WINDOW_MS });
51
+ return false;
52
+ }
53
+ entry.count++;
54
+ return entry.count > RATE_MAX;
55
+ }
56
+ // 每 60s 清理过期条目
57
+ setInterval(() => {
58
+ const now = Date.now();
59
+ for (const [k, v] of reqCounts) {
60
+ if (now > v.resetAt)
61
+ reqCounts.delete(k);
62
+ }
63
+ }, 60_000).unref();
49
64
  async function main() {
50
65
  const auth = resolveAuth();
51
66
  if (!auth) {
@@ -62,7 +77,7 @@ async function main() {
62
77
  sessionIdGenerator: () => crypto.randomUUID(),
63
78
  });
64
79
  // 2. MCP Server + 全部工具注册
65
- const server = new McpServer({ name: "hchain-mcp", version: "1.0.1" });
80
+ const server = new McpServer({ name: "hchain-mcp", version });
66
81
  registerBalanceTools(server, auth);
67
82
  registerGatewayTools(server, auth);
68
83
  registerTxHistoryTools(server, auth);
@@ -77,6 +92,13 @@ async function main() {
77
92
  await server.connect(transport);
78
93
  // 4. 原生 HTTP server
79
94
  const httpServer = createServer(async (req, res) => {
95
+ // Rate limiting (按 IP)
96
+ const ip = req.socket.remoteAddress ?? "unknown";
97
+ if (rateLimited(ip)) {
98
+ res.writeHead(429, { "Content-Type": "application/json" });
99
+ res.end(JSON.stringify({ error: "Too many requests", retryAfterMs: RATE_WINDOW_MS }));
100
+ return;
101
+ }
80
102
  // CORS
81
103
  res.setHeader("Access-Control-Allow-Origin", "*");
82
104
  res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
@@ -119,6 +141,18 @@ async function main() {
119
141
  console.error(`[h-mcp] MCP endpoint: POST http://${host}:${port}/mcp`);
120
142
  console.error(`[h-mcp] Health check: GET http://${host}:${port}/health`);
121
143
  });
144
+ // Graceful shutdown
145
+ function shutdown(signal) {
146
+ console.error(`[h-mcp] 收到 ${signal},优雅关闭 HTTP 服务器`);
147
+ httpServer.close(() => {
148
+ console.error("[h-mcp] HTTP 服务器已关闭");
149
+ process.exit(0);
150
+ });
151
+ // 强制关闭超时
152
+ setTimeout(() => { console.error("[h-mcp] 强制关闭"); process.exit(1); }, 5000).unref();
153
+ }
154
+ process.on("SIGTERM", () => shutdown("SIGTERM"));
155
+ process.on("SIGINT", () => shutdown("SIGINT"));
122
156
  }
123
157
  main().catch(e => { console.error("[h-mcp] 启动失败:", e); process.exit(1); });
124
158
  //# sourceMappingURL=http.js.map
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ import "dotenv/config";
7
7
  import { readFileSync } from "node:fs";
8
8
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
+ import { resolveAuth } from "./adapters/shared.js";
10
11
  import { registerBalanceTools } from "./tools/balance.js";
11
12
  import { registerGatewayTools } from "./tools/gateway.js";
12
13
  import { registerTxHistoryTools } from "./tools/txhistory.js";
@@ -18,16 +19,12 @@ import { registerMarketTools } from "./tools/market.js";
18
19
  import { registerWsTools } from "./tools/ws.js";
19
20
  import { registerSkillTools } from "./tools/skills.js";
20
21
  const { version } = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
21
- function resolveAuth() {
22
- const k = process.env.OKX_API_KEY, s = process.env.OKX_SECRET_KEY, p = process.env.OKX_PASSPHRASE;
23
- if (k && s && p)
24
- return { apiKey: k, secret: s, passphrase: p };
25
- const a = process.argv.slice(2), g = (f) => { const i = a.indexOf(f); return i >= 0 ? a[i + 1] : undefined; };
26
- const ka = g("--okx-api-key") ?? g("-k"), sa = g("--okx-secret") ?? g("-s"), pa = g("--okx-passphrase") ?? g("-p");
27
- if (ka && sa && pa)
28
- return { apiKey: ka, secret: sa, passphrase: pa };
29
- return null;
22
+ function shutdown(signal) {
23
+ console.error(`[h-mcp] 收到 ${signal},优雅退出`);
24
+ process.exit(0);
30
25
  }
26
+ process.on("SIGTERM", () => shutdown("SIGTERM"));
27
+ process.on("SIGINT", () => shutdown("SIGINT"));
31
28
  async function main() {
32
29
  const auth = resolveAuth();
33
30
  if (!auth) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -6,19 +6,19 @@ import { z } from "zod";
6
6
  import { balanceApi } from "../adapters/onchainos.js";
7
7
  import { toResult, toError, AUTH_REQUIRED } from "../adapters/shared.js";
8
8
  export function registerBalanceTools(server, auth) {
9
- server.tool("onchainos_balance_supported_chain", "CAT:[链上-账户] | ## 功能: 获取余额 API 支持的链, 返回 chainIndex(字符串)/name/shortName/logoUrl\n## 场景: Agent 在查余额前先调此工具确认目标链的 chainIndex 值\n## 关键词: 余额, 链列表, chainIndex, balance\n## 参数: 无\n## 鉴权: 需要 API Key(只读)\n## 风险: READ - 只读查询\n## 返回量: 微小 ~2KB\n## 关联: 本工具 -> onchainos_balance_total_value(总估值) / onchainos_balance_all_tokens(资产明细)", {}, { readOnlyHint: true }, async () => { if (!auth)
9
+ server.tool("onchainos_balance_supported_chain", "链上-账户 | 获取余额 API 支持的链列表", { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async () => { if (!auth)
10
10
  return AUTH_REQUIRED("READ"); try {
11
11
  return toResult(await balanceApi.supportedChain(auth));
12
12
  }
13
13
  catch (e) {
14
14
  return toError(e);
15
15
  } });
16
- server.tool("onchainos_balance_total_value", "CAT:[链上-账户] | ## 功能: 获取地址的总资产 USD 估值(代币+DeFi)\n## 场景: Agent 拿到钱包地址后第一步 - 快速了解总资产\n## 关键词: 总资产, total value, USD, 估值\n## 参数:\n## - address: 钱包地址(必填)\n## - chains: 链索引逗号分隔, 最多50个(必填)\n## - assetType: 资产类型(可选)\n## - excludeRiskToken: 是否过滤风险代币(可选, 默认true)\n## 鉴权: 需要 API Key(只读)\n## 风险: READ - 只读查询\n## 返回量: 微小 ~1KB\n## 关联: onchainos_balance_supported_chain -> 本工具总览 -> onchainos_balance_all_tokens(明细)", {
16
+ server.tool("onchainos_balance_total_value", "链上-账户 | 获取地址的总资产 USD 估值", {
17
17
  address: z.string().describe("钱包地址。Agent 从用户输入或上下文获取"),
18
18
  chains: z.string().describe("链索引, 逗号分隔, 最多50个。如 '1'=ETH '56'=BSC '501'=Solana。从 onchainos_balance_supported_chain 获取 chainIndex"),
19
19
  assetType: z.enum(["0", "1", "2"]).optional().describe("资产类型: 不传默认所有, '0'=代币+DeFi, '1'=仅代币, '2'=仅DeFi"),
20
20
  excludeRiskToken: z.boolean().optional().describe("过滤风险/貔貅代币。不传默认过滤, false 传不过滤"),
21
- }, { readOnlyHint: true }, async ({ address, chains, assetType, excludeRiskToken }) => {
21
+ }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ address, chains, assetType, excludeRiskToken }) => {
22
22
  if (!auth)
23
23
  return AUTH_REQUIRED("READ");
24
24
  try {
@@ -28,11 +28,11 @@ export function registerBalanceTools(server, auth) {
28
28
  return toError(e);
29
29
  }
30
30
  });
31
- server.tool("onchainos_balance_all_tokens", "CAT:[链上-账户] | ## 功能: 获取地址的代币持仓明细, 返回 symbol/balance/tokenPrice/isRiskToken/chainIndex\n## 场景: 用户问持仓有什么币时调用, 返回所有代币余额+美元价值\n## 关键词: 持仓, 代币余额, token balance, 资产明细\n## 参数:\n## - address: 钱包地址(必填)\n## - chains: 链索引逗号分隔, 最多50个(必填)\n## - excludeRiskToken: 风险代币过滤(可选)\n## 鉴权: 需要 API Key(只读)\n## 风险: READ - 只读查询\n## 返回量: 大 ~100KB\n## 关联: onchainos_balance_total_value(总览) -> 本工具明细 -> onchainos_balance_specific_token(精确查)", {
31
+ server.tool("onchainos_balance_all_tokens", "链上-账户 | 获取地址的代币持仓明细", {
32
32
  address: z.string().describe("钱包地址。Agent 从用户输入或上下文获取"),
33
33
  chains: z.string().describe("链索引, 逗号分隔, 最多50个。如 '1'=ETH '56'=BSC。从 onchainos_balance_supported_chain 获取"),
34
34
  excludeRiskToken: z.enum(["0", "1"]).optional().describe("'0'=过滤风险/貔貅代币(默认), '1'=不过滤"),
35
- }, { readOnlyHint: true }, async ({ address, chains, excludeRiskToken }) => {
35
+ }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ address, chains, excludeRiskToken }) => {
36
36
  if (!auth)
37
37
  return AUTH_REQUIRED("READ");
38
38
  try {
@@ -42,11 +42,11 @@ export function registerBalanceTools(server, auth) {
42
42
  return toError(e);
43
43
  }
44
44
  });
45
- server.tool("onchainos_balance_specific_token", "CAT:[链上-账户] | ## 功能: 批量查询指定代币余额(最多20个), 每个代币可指定不同链\n## 场景: 查一个或多个特定代币的余额。tokenContractAddress 传空字符串查主链币(ETH/SOL等)\n## 关键词: 代币余额, specific token, 批量, 精确, tokenContractAddress\n## 参数:\n## - address: 钱包地址(必填)\n## - tokens: JSON数组 [{\"chainIndex\":\"1\",\"tokenContractAddress\":\"0x...\"},...], 最多20个\n## - excludeRiskToken: 风险代币过滤(可选)\n## 鉴权: 需要 API Key(只读)\n## 风险: READ - 只读查询\n## 返回量: 微小 ~5KB\n## 关联: onchainos_token_search 拿地址 -> 构造 tokens 数组 -> 本工具 -> 返回 symbol/balance/tokenPrice/isRiskToken", {
45
+ server.tool("onchainos_balance_specific_token", "链上-账户 | 批量查询指定代币余额", {
46
46
  address: z.string().describe("钱包地址。Agent 从用户输入或上下文获取"),
47
47
  tokens: z.string().describe("JSON 数组字符串。格式: [{\"chainIndex\":\"1\",\"tokenContractAddress\":\"0xabc...\"},{\"chainIndex\":\"56\",\"tokenContractAddress\":\"\"}]。chainIndex 用字符串, 主链币传空字符串。最多20个"),
48
48
  excludeRiskToken: z.enum(["0", "1"]).optional().describe("'0'=过滤风险/貔貅代币(默认), '1'=不过滤"),
49
- }, { readOnlyHint: true }, async ({ address, tokens, excludeRiskToken }) => {
49
+ }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ address, tokens, excludeRiskToken }) => {
50
50
  if (!auth)
51
51
  return AUTH_REQUIRED("READ");
52
52
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"balance.js","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"defi.d.ts","sourceRoot":"","sources":["../../src/tools/defi.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAqN5E"}
1
+ {"version":3,"file":"defi.d.ts","sourceRoot":"","sources":["../../src/tools/defi.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAuN5E"}