hchain-mcp 1.0.3 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
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
7
  [![License](https://img.shields.io/npm/l/hchain-mcp?style=flat-square)](LICENSE)
8
8
 
9
- AI-native multi-chain trading MCP Server — 99 tools over HTTP & stdio.
9
+ AI-native multi-chain trading MCP Server — 100 tools over HTTP & stdio.
10
10
 
11
11
  ## Install
12
12
 
@@ -78,7 +78,7 @@ Or HTTP mode:
78
78
  }
79
79
  ```
80
80
 
81
- ## Tools (99)
81
+ ## Tools (100)
82
82
 
83
83
  ### Phase 1 — Base APIs (95 tools)
84
84
 
@@ -94,7 +94,7 @@ Or HTTP mode:
94
94
  | WS | 4 | WebSocket connect/subscribe |
95
95
  | TxHistory | 3 | Transaction history |
96
96
 
97
- ### Phase 2 — API Composition Skills (4 tools)
97
+ ### Phase 2 — API Composition Skills (5 tools)
98
98
 
99
99
  | Tool | Description |
100
100
  |------|-------------|
@@ -102,6 +102,7 @@ Or HTTP mode:
102
102
  | `onchainos_skill_risk_detect` | 4-dimension risk scan with 0-100 scoring |
103
103
  | `onchainos_skill_smart_slippage` | Volatility-based slippage recommendation |
104
104
  | `onchainos_skill_signal_aggregate` | Signal discovery with automatic risk filtering |
105
+ | `onchainos_skill_market_overview` | Market overview: price + candles + security + sentiment |
105
106
 
106
107
  ## Docker
107
108
 
package/dist/http.js CHANGED
@@ -21,6 +21,7 @@ import { registerIntentTools } from "./tools/intent.js";
21
21
  import { registerMarketTools } from "./tools/market.js";
22
22
  import { registerWsTools } from "./tools/ws.js";
23
23
  import { registerSkillTools } from "./tools/skills.js";
24
+ import { registerHelpTools } from "./tools/help.js";
24
25
  const { version } = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
25
26
  /** 简陋 body parser — 读 JSON body 到 req.body */
26
27
  function jsonBody(req) {
@@ -88,6 +89,7 @@ async function main() {
88
89
  registerMarketTools(server, auth);
89
90
  registerWsTools(server, auth);
90
91
  registerSkillTools(server, auth);
92
+ registerHelpTools(server, auth);
91
93
  // 3. 连接 server 到 HTTP transport
92
94
  await server.connect(transport);
93
95
  // 4. 原生 HTTP server
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
@@ -18,6 +18,7 @@ import { registerIntentTools } from "./tools/intent.js";
18
18
  import { registerMarketTools } from "./tools/market.js";
19
19
  import { registerWsTools } from "./tools/ws.js";
20
20
  import { registerSkillTools } from "./tools/skills.js";
21
+ import { registerHelpTools } from "./tools/help.js";
21
22
  const { version } = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf-8"));
22
23
  function shutdown(signal) {
23
24
  console.error(`[h-mcp] 收到 ${signal},优雅退出`);
@@ -46,6 +47,7 @@ async function main() {
46
47
  registerMarketTools(server, auth);
47
48
  registerWsTools(server, auth);
48
49
  registerSkillTools(server, auth);
50
+ registerHelpTools(server, auth);
49
51
  const transport = new StdioServerTransport();
50
52
  await server.connect(transport);
51
53
  console.error("[h-mcp] 就绪");
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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAwD/E"}
1
+ {"version":3,"file":"balance.d.ts","sourceRoot":"","sources":["../../src/tools/balance.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAsE/E"}
@@ -6,60 +6,64 @@ 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", "链上-账户 | 获取余额 API 支持的链列表", { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async () => { if (!auth)
9
+ server.tool("onchainos_balance_supported_chain", "链上-账户 | 获取余额 API 支持的链列表【场景:查哪些链有余额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", "链上-账户 | 获取地址的总资产 USD 估值", {
16
+ server.tool("onchainos_balance_total_value", "链上-账户 | 获取地址的总资产 USD 估值【场景:查钱包总余额/总资产】", {
17
17
  address: z.string().describe("钱包地址。Agent 从用户输入或上下文获取"),
18
- chains: z.string().describe("链索引, 逗号分隔, 最多50个。如 '1'=ETH '56'=BSC '501'=Solana。从 onchainos_balance_supported_chain 获取 chainIndex"),
18
+ chains: z.string().describe("链ID,逗号分隔最多50个。如 '1,56,501,8453'。⚠️ 不确定钱包在哪些链 → 传 '1,56,501,8453,42161,137,196' 盲查全部主流链"),
19
19
  assetType: z.enum(["0", "1", "2"]).optional().describe("资产类型: 不传默认所有, '0'=代币+DeFi, '1'=仅代币, '2'=仅DeFi"),
20
20
  excludeRiskToken: z.boolean().optional().describe("过滤风险/貔貅代币。不传默认过滤, false 传不过滤"),
21
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 {
25
- return toResult(await balanceApi.totalValue(auth, address, chains, assetType, excludeRiskToken));
25
+ return toResult(await balanceApi.totalValue(auth, address, chains, assetType, excludeRiskToken), {
26
+ nextSteps: [
27
+ { action: "查持仓明细", tool: "onchainos_balance_all_tokens", params: { address, chains } },
28
+ { action: "分析地址画像(PnL/胜率)", tool: "onchainos_portfolio_overview", condition: "需要指定单链" },
29
+ ],
30
+ });
26
31
  }
27
32
  catch (e) {
28
33
  return toError(e);
29
34
  }
30
35
  });
31
- server.tool("onchainos_balance_all_tokens", "链上-账户 | 获取地址的代币持仓明细", {
36
+ server.tool("onchainos_balance_all_tokens", "链上-账户 | 获取地址的代币持仓明细【场景:查钱包里有什么币/持仓列表】", {
32
37
  address: z.string().describe("钱包地址。Agent 从用户输入或上下文获取"),
33
- chains: z.string().describe("链索引, 逗号分隔, 最多50个。如 '1'=ETH '56'=BSC。从 onchainos_balance_supported_chain 获取"),
38
+ chains: z.string().describe("链ID,逗号分隔最多50个。如 '1,56,501,8453'。⚠️ 不确定钱包在哪些链 → 传 '1,56,501,8453,42161,137,196' 盲查全部主流链"),
34
39
  excludeRiskToken: z.enum(["0", "1"]).optional().describe("'0'=过滤风险/貔貅代币(默认), '1'=不过滤"),
35
40
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ address, chains, excludeRiskToken }) => {
36
41
  if (!auth)
37
42
  return AUTH_REQUIRED("READ");
38
43
  try {
39
- return toResult(await balanceApi.allTokenBalances(auth, address, chains, excludeRiskToken));
44
+ return toResult(await balanceApi.allTokenBalances(auth, address, chains, excludeRiskToken), {
45
+ nextSteps: [
46
+ { action: "如发现高风险代币, 做安全分析", tool: "onchainos_token_advanced_info", condition: "需要 chainIndex + tokenContractAddress" },
47
+ { action: "分析地址交易历史", tool: "onchainos_transaction_history", params: { address, chains } },
48
+ ],
49
+ });
40
50
  }
41
51
  catch (e) {
42
52
  return toError(e);
43
53
  }
44
54
  });
45
- server.tool("onchainos_balance_specific_token", "链上-账户 | 批量查询指定代币余额", {
55
+ server.tool("onchainos_balance_specific_token", "链上-账户 | 批量查询指定代币余额【场景:查某个代币在钱包里的数量】", {
46
56
  address: z.string().describe("钱包地址。Agent 从用户输入或上下文获取"),
47
- tokens: z.string().describe("JSON 数组字符串。格式: [{\"chainIndex\":\"1\",\"tokenContractAddress\":\"0xabc...\"},{\"chainIndex\":\"56\",\"tokenContractAddress\":\"\"}]。chainIndex 用字符串, 主链币传空字符串。最多20个"),
57
+ tokens: z.array(z.object({
58
+ chainIndex: z.string().describe("链ID(字符串)。如 '1'=ETH '56'=BSC '501'=Solana。不确定先调 onchainos_balance_supported_chain"),
59
+ tokenContractAddress: z.string().describe("代币合约地址(小写)。主链币传空字符串 ''"),
60
+ })).min(1).max(20).describe("要查询的代币列表, 最多20个。每个元素指定在哪条链查哪个代币"),
48
61
  excludeRiskToken: z.enum(["0", "1"]).optional().describe("'0'=过滤风险/貔貅代币(默认), '1'=不过滤"),
49
62
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ address, tokens, excludeRiskToken }) => {
50
63
  if (!auth)
51
64
  return AUTH_REQUIRED("READ");
52
65
  try {
53
- let parsed;
54
- try {
55
- parsed = JSON.parse(tokens);
56
- }
57
- catch {
58
- return toError(new Error("tokens 格式错误: 需要 JSON 数组, 例 [{\"chainIndex\":\"1\",\"tokenContractAddress\":\"0xabc...\"}]"));
59
- }
60
- if (!Array.isArray(parsed) || parsed.length === 0 || parsed.length > 20)
61
- return toError(new Error("tokens 需为非空数组且最多20个元素"));
62
- return toResult(await balanceApi.specificTokenBalance(auth, address, parsed, excludeRiskToken));
66
+ return toResult(await balanceApi.specificTokenBalance(auth, address, tokens, excludeRiskToken));
63
67
  }
64
68
  catch (e) {
65
69
  return toError(e);
@@ -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,CAuN5E"}
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,CAqO5E"}
@@ -6,53 +6,37 @@ import { z } from "zod";
6
6
  import { defiApi } from "../adapters/onchainos.js";
7
7
  import { toResult, toError, AUTH_REQUIRED } from "../adapters/shared.js";
8
8
  export function registerDefiTools(server, auth) {
9
- server.tool("onchainos_defi_supported_chains", "链上-分析 | 获取 DeFi 投资品覆盖的链列表", {}, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async () => { if (!auth)
9
+ server.tool("onchainos_defi_supported_chains", "链上-分析 | 获取 DeFi 投资品覆盖的链列表【场景:查哪些链有DeFi投资品】", {}, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async () => { if (!auth)
10
10
  return AUTH_REQUIRED("READ"); try {
11
11
  return toResult(await defiApi.supportedChains(auth));
12
12
  }
13
13
  catch (e) {
14
14
  return toError(e);
15
15
  } });
16
- server.tool("onchainos_defi_supported_platforms", "链上-分析 | 获取支持的 DeFi 协议列表", {}, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async () => { if (!auth)
16
+ server.tool("onchainos_defi_supported_platforms", "链上-分析 | 获取支持的 DeFi 协议列表【场景:查有哪些DeFi协议/Aave等】", {}, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async () => { if (!auth)
17
17
  return AUTH_REQUIRED("READ"); try {
18
18
  return toResult(await defiApi.supportedPlatforms(auth));
19
19
  }
20
20
  catch (e) {
21
21
  return toError(e);
22
22
  } });
23
- server.tool("onchainos_defi_search_products", "链上-分析 | 按代币/协议/链搜索 DeFi 投资品", {
24
- tokenKeywordList: z.string().describe("代币关键词 JSON 数组字符串。如 '[\"USDC\",\"ETH\"]'"),
25
- platformKeywordList: z.string().optional().describe("协议关键词 JSON 数组字符串。如 '[\"Aave V3\"]'"),
23
+ server.tool("onchainos_defi_search_products", "链上-分析 | 按代币/协议/链搜索 DeFi 投资品【场景:搜理财/赚币/质押产品】", {
24
+ tokenKeywordList: z.array(z.string()).min(1).describe("代币关键词, ['USDC','ETH']。支持传名称或符号"),
25
+ platformKeywordList: z.array(z.string()).optional().describe("协议关键词过滤, ['Aave V3']。从 onchainos_defi_supported_platforms 获取可用协议名"),
26
26
  pageNum: z.number().int().min(1).optional().describe("页码, 最小1, 每页20条。默认1"),
27
- chainIndex: z.string().optional().describe("链ID(字符串)。如 '1'=ETH '8453'=Base。不传查所有链"),
27
+ chainIndex: z.string().optional().describe("链ID(字符串)。如 '1'=ETH '8453'=Base。不传查所有链。不确定先调 onchainos_defi_supported_chains"),
28
28
  productGroup: z.enum(["SINGLE_EARN", "DEX_POOL", "LENDING"]).optional().describe("投资类型: SINGLE_EARN=单币赚币 DEX_POOL=流动性池 LENDING=借贷"),
29
29
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ tokenKeywordList, platformKeywordList, pageNum, chainIndex, productGroup }) => {
30
30
  if (!auth)
31
31
  return AUTH_REQUIRED("READ");
32
32
  try {
33
- let tokens;
34
- try {
35
- tokens = JSON.parse(tokenKeywordList);
36
- }
37
- catch {
38
- return toError(new Error("tokenKeywordList 格式错误: 需要 JSON 数组, 如 '[\"USDC\"]'"));
39
- }
40
- let platforms;
41
- if (platformKeywordList) {
42
- try {
43
- platforms = JSON.parse(platformKeywordList);
44
- }
45
- catch {
46
- return toError(new Error("platformKeywordList 格式错误: 需要 JSON 数组"));
47
- }
48
- }
49
- return toResult(await defiApi.searchProducts(auth, { tokenKeywordList: tokens, platformKeywordList: platforms, pageNum, chainIndex, productGroup }));
33
+ return toResult(await defiApi.searchProducts(auth, { tokenKeywordList, platformKeywordList, pageNum, chainIndex, productGroup }));
50
34
  }
51
35
  catch (e) {
52
36
  return toError(e);
53
37
  }
54
38
  });
55
- server.tool("onchainos_defi_product_detail", "链上-分析 | 获取投资品详情(APY/资产/状态)", {
39
+ server.tool("onchainos_defi_product_detail", "链上-分析 | 获取投资品详情(APY/资产/状态)【场景:看理财产品详情/收益率】", {
56
40
  investmentId: z.string().describe("投资品ID。从 onchainos_defi_search_products 返回值的 investmentId 字段获取"),
57
41
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ investmentId }) => { if (!auth)
58
42
  return AUTH_REQUIRED("READ"); try {
@@ -61,7 +45,7 @@ export function registerDefiTools(server, auth) {
61
45
  catch (e) {
62
46
  return toError(e);
63
47
  } });
64
- server.tool("onchainos_defi_rate_chart", "链上-分析 | 获取投资品历史 APY 走势", {
48
+ server.tool("onchainos_defi_rate_chart", "链上-分析 | 获取投资品历史 APY 走势【场景:看APY收益率历史曲线】", {
65
49
  investmentId: z.string().describe("投资品ID。从 onchainos_defi_search_products 返回值获取"),
66
50
  timeRange: z.enum(["WEEK", "MONTH", "SEASON", "YEAR"]).optional().describe("时间范围: WEEK=一周 MONTH=一月 SEASON=三月 YEAR=一年。默认WEEK"),
67
51
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ investmentId, timeRange }) => { if (!auth)
@@ -71,7 +55,7 @@ export function registerDefiTools(server, auth) {
71
55
  catch (e) {
72
56
  return toError(e);
73
57
  } });
74
- server.tool("onchainos_defi_tvl_chart", "链上-分析 | 获取投资品历史 TVL 走势", {
58
+ server.tool("onchainos_defi_tvl_chart", "链上-分析 | 获取投资品历史 TVL 走势【场景:看TVL/锁仓量历史曲线】", {
75
59
  investmentId: z.string().describe("投资品ID"),
76
60
  timeRange: z.enum(["WEEK", "MONTH", "SEASON", "YEAR"]).optional().describe("时间范围。默认WEEK"),
77
61
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ investmentId, timeRange }) => { if (!auth)
@@ -81,7 +65,7 @@ export function registerDefiTools(server, auth) {
81
65
  catch (e) {
82
66
  return toError(e);
83
67
  } });
84
- server.tool("onchainos_defi_depth_price_chart", "链上-分析 | 获取 V3 Pool 流动性深度/价格图", {
68
+ server.tool("onchainos_defi_depth_price_chart", "链上-分析 | 获取 V3 Pool 流动性深度/价格图【场景:看V3池的深度图/价格分布】", {
85
69
  investmentId: z.string().describe("投资品ID"),
86
70
  chartType: z.enum(["DEPTH", "PRICE"]).optional().describe("图表类型: DEPTH=深度图(默认) PRICE=价格历史图"),
87
71
  timeRange: z.enum(["DAY", "WEEK"]).optional().describe("时间范围(仅chartType=PRICE时生效): DAY=24h WEEK=1周。默认DAY"),
@@ -92,14 +76,14 @@ export function registerDefiTools(server, auth) {
92
76
  catch (e) {
93
77
  return toError(e);
94
78
  } });
95
- server.tool("onchainos_defi_prepare_transaction", "链上-分析 | 申购/赎回前的参数准备", { investmentId: z.string().describe("投资品ID。从 onchainos_defi_search_products 返回值获取") }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ investmentId }) => { if (!auth)
79
+ server.tool("onchainos_defi_prepare_transaction", "链上-分析 | 申购/赎回前的参数准备【场景:申购前查准备参数/支持哪些代币】", { investmentId: z.string().describe("投资品ID。从 onchainos_defi_search_products 返回值获取") }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ investmentId }) => { if (!auth)
96
80
  return AUTH_REQUIRED("READ"); try {
97
81
  return toResult(await defiApi.prepareTransaction(auth, investmentId));
98
82
  }
99
83
  catch (e) {
100
84
  return toError(e);
101
85
  } });
102
- server.tool("onchainos_defi_calc_enter_info", "链上-分析 | V3 Pool 双币分配计算", {
86
+ server.tool("onchainos_defi_calc_enter_info", "链上-分析 | V3 Pool 双币分配计算【场景:算V3池双币投入分配】", {
103
87
  inputAmount: z.string().describe("单币金额, 人类可读(如'0.05')"),
104
88
  inputTokenAddress: z.string().describe("输入的代币合约地址。可以是 V3 Pool 的 token0 或 token1"),
105
89
  tokenDecimal: z.string().describe("输入代币精度(如'18','6')"),
@@ -114,10 +98,14 @@ export function registerDefiTools(server, auth) {
114
98
  catch (e) {
115
99
  return toError(e);
116
100
  } });
117
- server.tool("onchainos_defi_enter", "链上-分析 | DeFi 申购/存款,返回 calldata 列表", {
118
- investmentId: z.string().describe("投资品ID"),
101
+ server.tool("onchainos_defi_enter", "链上-分析 | DeFi 申购/存款,返回 calldata 列表【场景:买入理财/存款/质押】", {
102
+ investmentId: z.string().describe("投资品ID。从 onchainos_defi_search_products 返回值获取"),
119
103
  address: z.string().describe("用户钱包地址"),
120
- userInputList: z.string().describe("投入代币 JSON 数组。如 '[{\"tokenAddress\":\"0x...\",\"chainIndex\":\"1\",\"coinAmount\":\"0.05\"}]'。从 onchainos_defi_prepare_transaction 的 investWithTokenList 获取"),
104
+ userInputList: z.array(z.object({
105
+ tokenAddress: z.string().describe("代币合约地址(小写)"),
106
+ chainIndex: z.string().describe("链ID(字符串)。如 '1'=ETH"),
107
+ coinAmount: z.string().describe("投入数量(人类可读, 如 '0.05')"),
108
+ })).describe("投入代币列表。从 onchainos_defi_prepare_transaction 返回的 investWithTokenList 获取"),
121
109
  tickLower: z.string().optional().describe("V3 tick 下限。仅 Dex Pool 新建仓位时需要"),
122
110
  tickUpper: z.string().optional().describe("V3 tick 上限。仅 Dex Pool 新建仓位时需要"),
123
111
  tokenId: z.string().optional().describe("V3 NFT position token ID。向已有仓位追加时必传"),
@@ -126,15 +114,8 @@ export function registerDefiTools(server, auth) {
126
114
  if (!auth)
127
115
  return AUTH_REQUIRED("TRADE");
128
116
  try {
129
- let input;
130
- try {
131
- input = JSON.parse(userInputList);
132
- }
133
- catch {
134
- return toError(new Error("userInputList 格式错误: 需要 JSON 数组"));
135
- }
136
117
  const data = await defiApi.enter(auth, {
137
- investmentId, address, userInputList: input,
118
+ investmentId, address, userInputList,
138
119
  ...(tickLower ? { tickLower } : {}), ...(tickUpper ? { tickUpper } : {}),
139
120
  ...(tokenId ? { tokenId } : {}), slippage,
140
121
  });
@@ -148,11 +129,15 @@ export function registerDefiTools(server, auth) {
148
129
  return toError(e);
149
130
  }
150
131
  });
151
- server.tool("onchainos_defi_exit", "链上-分析 | DeFi 赎回/还款,返回 calldata 列表", {
132
+ server.tool("onchainos_defi_exit", "链上-分析 | DeFi 赎回/还款,返回 calldata 列表【场景:赎回理财/还款/取回资金】", {
152
133
  investmentId: z.string().describe("投资品ID"),
153
134
  address: z.string().describe("用户钱包地址"),
154
135
  redeemPercent: z.string().optional().describe("赎回比例, 建议必传。'1'=100% '0.5'=50%。不传可能导致 aToken 动态余额 revert"),
155
- userInputList: z.string().optional().describe("输入代币 JSON 数组。Farm/v2pool 传 LP Token, 其他情况传目标接收 token"),
136
+ userInputList: z.array(z.object({
137
+ tokenAddress: z.string().describe("代币合约地址"),
138
+ chainIndex: z.string().describe("链ID(字符串)。常见值: '1'=ETH '56'=BSC '501'=Solana。不确定先调 onchainos_defi_supported_chains"),
139
+ coinAmount: z.string().optional().describe("数量"),
140
+ })).optional().describe("输入代币列表。Farm/v2pool 传 LP Token, 其他情况传目标接收 token"),
156
141
  tokenId: z.string().optional().describe("V3 NFT position token ID。V3 Pool 赎回必传"),
157
142
  slippage: z.string().optional().describe("滑点。默认'0.01'"),
158
143
  }, { readOnlyHint: false, idempotentHint: false, destructiveHint: true }, async ({ investmentId, address, redeemPercent, userInputList, tokenId, slippage }) => {
@@ -162,14 +147,8 @@ export function registerDefiTools(server, auth) {
162
147
  const body = { investmentId, address };
163
148
  if (redeemPercent)
164
149
  body.redeemPercent = redeemPercent;
165
- if (userInputList) {
166
- try {
167
- body.userInputList = JSON.parse(userInputList);
168
- }
169
- catch {
170
- return toError(new Error("userInputList 格式错误"));
171
- }
172
- }
150
+ if (userInputList)
151
+ body.userInputList = userInputList;
173
152
  if (tokenId)
174
153
  body.tokenId = tokenId;
175
154
  if (slippage)
@@ -182,14 +161,18 @@ export function registerDefiTools(server, auth) {
182
161
  return toError(e);
183
162
  }
184
163
  });
185
- server.tool("onchainos_defi_claim", "链上-分析 | 领取 DeFi 协议奖励", {
164
+ server.tool("onchainos_defi_claim", "链上-分析 | 领取 DeFi 协议奖励【场景:领矿币奖励/协议分红/手续费】", {
186
165
  address: z.string().describe("用户钱包地址"),
187
166
  rewardType: z.enum(["REWARD_INVESTMENT", "REWARD_PLATFORM", "V3_FEE", "REWARD_OKX_BONUS", "REWARD_MERKLE_BONUS", "UNLOCKED_PRINCIPAL"]).describe("奖励类型: REWARD_INVESTMENT=矿币奖励 REWARD_PLATFORM=协议奖励 V3_FEE=V3手续费 REWARD_OKX_BONUS=OKX Bonus REWARD_MERKLE_BONUS=Merkle Bonus UNLOCKED_PRINCIPAL=到期本金"),
188
167
  investmentId: z.string().optional().describe("投资品ID。除 REWARD_PLATFORM 外都需传"),
189
168
  analysisPlatformId: z.string().optional().describe("协议ID。REWARD_PLATFORM 时填写"),
190
169
  tokenId: z.string().optional().describe("V3 仓位 tokenId。V3_FEE 时填写"),
191
170
  principalIndex: z.string().optional().describe("到期订单 index。UNLOCKED_PRINCIPAL 时填写"),
192
- expectOutputList: z.string().optional().describe("预期输出 JSON 数组。REWARD_MERKLE_BONUS 时填写, 如 '[{\"chainIndex\":\"1\",\"tokenAddress\":\"0x...\",\"coinAmount\":\"0.001\"}]'"),
171
+ expectOutputList: z.array(z.object({
172
+ chainIndex: z.string().describe("链ID(字符串)。常见值: '1'=ETH '56'=BSC '501'=Solana。不确定先调 onchainos_defi_supported_chains"),
173
+ tokenAddress: z.string().describe("代币合约地址"),
174
+ coinAmount: z.string().describe("数量"),
175
+ })).optional().describe("预期输出列表。仅 REWARD_MERKLE_BONUS 时填写"),
193
176
  }, { readOnlyHint: false, idempotentHint: false, destructiveHint: true }, async ({ address, rewardType, investmentId, analysisPlatformId, tokenId, principalIndex, expectOutputList }) => {
194
177
  if (!auth)
195
178
  return AUTH_REQUIRED("TRADE");
@@ -203,62 +186,45 @@ export function registerDefiTools(server, auth) {
203
186
  body.tokenId = tokenId;
204
187
  if (principalIndex)
205
188
  body.principalIndex = principalIndex;
206
- if (expectOutputList) {
207
- try {
208
- body.expectOutputList = JSON.parse(expectOutputList);
209
- }
210
- catch {
211
- return toError(new Error("expectOutputList 格式错误"));
212
- }
213
- }
189
+ if (expectOutputList)
190
+ body.expectOutputList = expectOutputList;
214
191
  return toResult(await defiApi.claim(auth, body));
215
192
  }
216
193
  catch (e) {
217
194
  return toError(e);
218
195
  }
219
196
  });
220
- server.tool("onchainos_defi_user_platform_list", "链上-分析 | 查询用户在各 DeFi 协议的持仓概览", {
221
- walletAddressList: z.string().describe("钱包地址 JSON 数组。如 '[{\"chainIndex\":\"1\",\"walletAddress\":\"0x...\"},{\"chainIndex\":\"56\",\"walletAddress\":\"0x...\"}]'。支持多链多钱包"),
197
+ server.tool("onchainos_defi_user_platform_list", "链上-分析 | 查询用户在各 DeFi 协议的持仓概览【场景:查我的DeFi持仓/存了哪些理财】", {
198
+ walletAddressList: z.array(z.object({
199
+ chainIndex: z.string().describe("链ID(字符串)。如 '1'=ETH '56'=BSC '501'=Solana。⚠️ 不确定钱包在哪些链有 DeFi 持仓 → 每个主流链都传一个: '1','56','501','8453','42161'"),
200
+ walletAddress: z.string().describe("钱包地址"),
201
+ pubKey: z.string().optional().describe("公钥(某些链需要)"),
202
+ })).min(1).describe("钱包地址列表。支持多链多钱包, 每个元素指定链ID和钱包地址"),
222
203
  tag: z.string().optional().describe("自定义标签, 用于标记查询"),
223
204
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ walletAddressList, tag }) => {
224
205
  if (!auth)
225
206
  return AUTH_REQUIRED("READ");
226
207
  try {
227
- let list;
228
- try {
229
- list = JSON.parse(walletAddressList);
230
- }
231
- catch {
232
- return toError(new Error("walletAddressList 格式错误: 需要 JSON 数组"));
233
- }
234
- return toResult(await defiApi.userPlatformList(auth, { walletAddressList: list, ...(tag ? { tag } : {}) }));
208
+ return toResult(await defiApi.userPlatformList(auth, { walletAddressList, ...(tag ? { tag } : {}) }));
235
209
  }
236
210
  catch (e) {
237
211
  return toError(e);
238
212
  }
239
213
  });
240
- server.tool("onchainos_defi_user_platform_detail", "链上-分析 | 查询用户在某协议的详细持仓", {
241
- walletAddressList: z.string().describe("钱包地址 JSON 数组。如 '[{\"chainIndex\":\"1\",\"walletAddress\":\"0x...\"}]'"),
242
- platformList: z.string().describe("协议 JSON 数组。如 '[{\"chainIndex\":\"1\",\"analysisPlatformId\":\"44\"}]'。analysisPlatformId onchainos_defi_user_platform_list 获取"),
214
+ server.tool("onchainos_defi_user_platform_detail", "链上-分析 | 查询用户在某协议的详细持仓【场景:查某个协议里的具体持仓明细】", {
215
+ walletAddressList: z.array(z.object({
216
+ chainIndex: z.string().describe("链ID(字符串)。常见值: '1'=ETH '56'=BSC '501'=Solana。不确定先调 onchainos_defi_supported_chains"),
217
+ walletAddress: z.string().describe("钱包地址"),
218
+ })).min(1).describe("钱包地址列表"),
219
+ platformList: z.array(z.object({
220
+ chainIndex: z.string().describe("链ID(字符串)。常见值: '1'=ETH '56'=BSC '501'=Solana。不确定先调 onchainos_defi_supported_chains"),
221
+ analysisPlatformId: z.string().describe("协议ID。从 onchainos_defi_user_platform_list 返回值获取"),
222
+ })).min(1).describe("协议列表。analysisPlatformId 从 onchainos_defi_user_platform_list 返回值获取"),
243
223
  }, { readOnlyHint: true, idempotentHint: true, destructiveHint: false }, async ({ walletAddressList, platformList }) => {
244
224
  if (!auth)
245
225
  return AUTH_REQUIRED("READ");
246
226
  try {
247
- let wallets;
248
- try {
249
- wallets = JSON.parse(walletAddressList);
250
- }
251
- catch {
252
- return toError(new Error("walletAddressList 格式错误"));
253
- }
254
- let platforms;
255
- try {
256
- platforms = JSON.parse(platformList);
257
- }
258
- catch {
259
- return toError(new Error("platformList 格式错误"));
260
- }
261
- return toResult(await defiApi.userPlatformDetail(auth, { walletAddressList: wallets, platformList: platforms }));
227
+ return toResult(await defiApi.userPlatformDetail(auth, { walletAddressList, platformList }));
262
228
  }
263
229
  catch (e) {
264
230
  return toError(e);
@@ -1 +1 @@
1
- {"version":3,"file":"defi.js","sourceRoot":"","sources":["../../src/tools/defi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defi.js","sourceRoot":"","sources":["../../src/tools/defi.ts"],"names":[],"mappings":"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"}