hvip-mcp-server 0.2.14 → 0.2.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.js +197 -192
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -21384,7 +21384,7 @@ function toError(e) {
21384
21384
  function registerMarketTools(server) {
21385
21385
  server.tool(
21386
21386
  "okx_get_ticker",
21387
- "\u83B7\u53D6\u5355\u4E2A\u6216\u591A\u4E2A\u4EA7\u54C1\u7684\u5B9E\u65F6\u884C\u60C5Ticker\uFF0C\u5305\u542B\u6700\u65B0\u4EF7\u3001\u4E70\u4E00\u4EF7\u3001\u5356\u4E00\u4EF7\u300124h\u6210\u4EA4\u91CF\u7B49\u3002\u652F\u6301\u9017\u53F7\u5206\u9694\u591A\u4EA7\u54C1\u6279\u91CF\u67E5\u8BE2\uFF08\u5982 BTC-USDT,ETH-USDT,SOL-USDT\uFF09\u3002",
21387
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u5355\u4E2A\u6216\u591A\u4E2A\u4EA7\u54C1\u7684\u5B9E\u65F6\u884C\u60C5Ticker\uFF0C\u5305\u542B\u6700\u65B0\u4EF7\u3001\u4E70\u4E00\u4EF7\u3001\u5356\u4E00\u4EF7\u300124h\u6210\u4EA4\u91CF\u7B49\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5B9E\u65F6\u4EF7\u683C\u3001\u6279\u91CF\u76D1\u63A7\u884C\u60C5\u3001\u5224\u65AD\u4E70\u5356\u4EF7\u5DEE\u3001\u8BA1\u7B97\u4EA4\u6613\u6210\u672C\n## \u5173\u952E\u8BCD\uFF1A\u884C\u60C5, \u4EF7\u683C, ticker, \u6700\u65B0\u4EF7, \u4E70\u5356\u4EF7, 24h\u6DA8\u8DCC, \u5B9E\u65F6\u4EF7\u683C\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP\u3002\u652F\u6301\u9017\u53F7\u5206\u9694\u6279\u91CF\u67E5\u8BE2\uFF0C\u5982 BTC-USDT,ETH-USDT,SOL-USDT\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~1KB\uFF0C\u6279\u91CF ~5KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\uFF08\u51E0\u4E4E\u6240\u6709\u67E5\u8BE2\u7684\u5165\u53E3\uFF09\u2192 \u7ED3\u5408 okx_get_candles \u5206\u6790\u8D70\u52BF \u2192 okx_place_order \u4E0B\u5355",
21388
21388
  { instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP\u3002\u652F\u6301\u9017\u53F7\u5206\u9694\u6279\u91CF\u67E5\u8BE2\uFF0C\u5982 BTC-USDT,ETH-USDT,SOL-USDT") },
21389
21389
  async ({ instId }) => {
21390
21390
  try {
@@ -21406,7 +21406,7 @@ function registerMarketTools(server) {
21406
21406
  );
21407
21407
  server.tool(
21408
21408
  "okx_get_tickers",
21409
- "\u83B7\u53D6\u67D0\u7C7B\u4EA7\u54C1\u7684\u5168\u91CF\u884C\u60C5\u5217\u8868\u3002\u7528\u4E8E\u6279\u91CF\u626B\u63CF\u5E02\u573A\u3001\u5BFB\u627E\u5F02\u5E38\u4EF7\u683C\u6216\u9AD8\u6210\u4EA4\u91CF\u54C1\u79CD\u3002\u8FD4\u56DE\u5168\u91CF\u6570\u636E(~77KB)\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\u3002",
21409
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u67D0\u7C7B\u4EA7\u54C1\u7684\u5168\u91CF\u884C\u60C5\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6279\u91CF\u626B\u63CF\u5E02\u573A\u3001\u5BFB\u627E\u5F02\u5E38\u4EF7\u683C\u6216\u9AD8\u6210\u4EA4\u91CF\u54C1\u79CD\u3001\u5168\u5E02\u573A\u6982\u89C8\n## \u5173\u952E\u8BCD\uFF1A\u5168\u91CF\u884C\u60C5, tickers, \u6279\u91CF\u4EF7\u683C, \u5E02\u573A\u626B\u63CF, \u9AD8\u6210\u4EA4\u91CF, \u5168\u5E02\u573A\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5168\u91CF ~77KB\uFF08\u5DF2\u81EA\u52A8\u622A\u65AD top 20\uFF0C\u8FD4\u56DE {total, returned, data}\uFF09\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u626B\u63CF\u5E02\u573A \u2192 okx_get_ticker \u67E5\u5355\u4E2A\u8BE6\u60C5 \u2192 \u53D1\u73B0\u5F02\u5E38\u540E\u6DF1\u5165\u5206\u6790",
21410
21410
  { instType: external_exports.enum(INST_TYPE_MARKET).describe("\u4EA7\u54C1\u7C7B\u578B") },
21411
21411
  async ({ instType }) => {
21412
21412
  try {
@@ -21424,7 +21424,7 @@ function registerMarketTools(server) {
21424
21424
  );
21425
21425
  server.tool(
21426
21426
  "okx_get_orderbook",
21427
- "\u83B7\u53D6\u4EA7\u54C1\u7684\u8BA2\u5355\u7C3F\u6DF1\u5EA6\uFF0C\u542B\u4E70\u5356\u53CC\u65B9\u6302\u5355\u4EF7\u683C\u548C\u6570\u91CF\u3002\u7528\u4E8E\u5206\u6790\u6D41\u52A8\u6027\u3001\u5224\u65AD\u652F\u6491/\u538B\u529B\u4F4D\u3002",
21427
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u7684\u8BA2\u5355\u7C3F\u6DF1\u5EA6\uFF0C\u542B\u4E70\u5356\u53CC\u65B9\u6302\u5355\u4EF7\u683C\u548C\u6570\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u6D41\u52A8\u6027\u3001\u5224\u65AD\u652F\u6491/\u538B\u529B\u4F4D\u3001\u8BC4\u4F30\u5927\u5355\u5BF9\u5E02\u573A\u7684\u6F5C\u5728\u51B2\u51FB\n## \u5173\u952E\u8BCD\uFF1A\u8BA2\u5355\u7C3F, \u6DF1\u5EA6, orderbook, \u4E70\u5356\u76D8, \u6302\u5355, \u6D41\u52A8\u6027, \u652F\u6491\u538B\u529B\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - depth: \u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927400\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~5KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments \u83B7\u53D6\u53EF\u4EA4\u6613\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u67E5\u6DF1\u5EA6 \u2192 \u7ED3\u5408 okx_get_ticker \u5224\u65AD\u4E70\u5356\u529B\u91CF",
21428
21428
  {
21429
21429
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
21430
21430
  depth: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927400")
@@ -21432,6 +21432,20 @@ function registerMarketTools(server) {
21432
21432
  async ({ instId, depth }) => {
21433
21433
  try {
21434
21434
  const data = await publicApi.getOrderbook(instId, depth);
21435
+ const enriched = data.data || data;
21436
+ if (Array.isArray(enriched)) {
21437
+ const withTsIso = enriched.map((item) => ({
21438
+ ...item,
21439
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21440
+ }));
21441
+ return toResult(withTsIso);
21442
+ }
21443
+ if (enriched && typeof enriched === "object") {
21444
+ return toResult({
21445
+ ...enriched,
21446
+ tsIso: enriched.ts ? new Date(parseInt(enriched.ts)).toISOString() : void 0
21447
+ });
21448
+ }
21435
21449
  return toResult(data);
21436
21450
  } catch (e) {
21437
21451
  return toError(e);
@@ -21440,7 +21454,7 @@ function registerMarketTools(server) {
21440
21454
  );
21441
21455
  server.tool(
21442
21456
  "okx_get_candles",
21443
- "\u83B7\u53D6\u4EA7\u54C1K\u7EBF\u6570\u636E\uFF08OHLCV\uFF09\u3002\u7528\u4E8E\u6280\u672F\u5206\u6790\u3001\u8D8B\u52BF\u5224\u65AD\u3001\u56DE\u6D4B\u6570\u636E\u51C6\u5907\u3002",
21457
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1K\u7EBF\u6570\u636E\uFF08OHLCV\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6280\u672F\u5206\u6790\u753B\u56FE\u3001\u5224\u65AD\u8D8B\u52BF\u65B9\u5411\u3001\u8BA1\u7B97\u6280\u672F\u6307\u6807\uFF08MA/RSI/MACD\uFF09\u3001\u51C6\u5907\u56DE\u6D4B\u6570\u636E\n## \u5173\u952E\u8BCD\uFF1AK\u7EBF, candles, OHLCV, \u6280\u672F\u5206\u6790, \u8D8B\u52BF, K\u7EBF\u56FE, \u8721\u70DB\u56FE\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - bar: K\u7EBF\u5468\u671F\u30021m/3m/5m/15m/30m=\u5206\u949F, 1H=1\u5C0F\u65F6, 4H=4\u5C0F\u65F6, 1D=\u65E5\u7EBF, 1W=\u5468\u7EBF\u3002\u9ED8\u8BA41H\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u5927300\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A100\u6761 ~5KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6K\u7EBF \u2192 \u6280\u672F\u5206\u6790\u540E \u2192 okx_place_order \u4E0B\u5355",
21444
21458
  {
21445
21459
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
21446
21460
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -21467,7 +21481,7 @@ function registerMarketTools(server) {
21467
21481
  );
21468
21482
  server.tool(
21469
21483
  "okx_get_trades",
21470
- "\u83B7\u53D6\u4EA7\u54C1\u6700\u65B0\u6210\u4EA4\u8BB0\u5F55\u3002\u7528\u4E8E\u5206\u6790\u77ED\u671F\u4E70\u5356\u538B\u529B\u3001\u5224\u65AD\u4E3B\u52A8\u4E70\u5356\u65B9\u5411\u3002",
21484
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u6700\u65B0\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u77ED\u671F\u4E70\u5356\u538B\u529B\u3001\u5224\u65AD\u4E3B\u52A8\u4E70\u5356\u65B9\u5411\u3001\u8DDF\u8E2A\u5927\u5355\u52A8\u5411\n## \u5173\u952E\u8BCD\uFF1A\u6210\u4EA4\u8BB0\u5F55, trades, \u6700\u65B0\u6210\u4EA4, \u4E3B\u52A8\u4E70\u5356, \u6210\u4EA4\u660E\u7EC6, \u6210\u4EA4\u4EF7\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927100\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A20\u6761 ~2KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1Aokx_get_ticker \u770B\u6700\u65B0\u4EF7 \u2192 \u672C\u5DE5\u5177\u770B\u9010\u7B14\u6210\u4EA4 \u2192 okx_get_candles \u5224\u65AD\u8D8B\u52BF",
21471
21485
  {
21472
21486
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
21473
21487
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -21487,7 +21501,7 @@ function registerMarketTools(server) {
21487
21501
  );
21488
21502
  server.tool(
21489
21503
  "okx_get_history_candles",
21490
- "\u83B7\u53D6\u4EA7\u54C1\u5386\u53F2K\u7EBF\u6570\u636E\uFF08\u6700\u8FD13\u4E2A\u6708\u4EE5\u524D\u7684\u6570\u636E\uFF09\u3002\u7528\u4E8E\u56DE\u6D4B\u3001\u957F\u5468\u671F\u6280\u672F\u5206\u6790\u3002\u4E0Eokx_get_candles\u4E92\u8865\uFF0Ccandles\u53EA\u63D0\u4F9B\u6700\u8FD1\u6570\u636E\u3002",
21504
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u5386\u53F2K\u7EBF\u6570\u636E\uFF08\u6700\u8FD13\u4E2A\u6708\u4EE5\u524D\u7684\u6570\u636E\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u56DE\u6D4B\u7B56\u7565\u3001\u957F\u5468\u671F\u6280\u672F\u5206\u6790\u3001\u5386\u53F2\u884C\u60C5\u7814\u7A76\n## \u5173\u952E\u8BCD\uFF1A\u5386\u53F2K\u7EBF, history candles, \u56DE\u6D4B, \u957F\u5468\u671F, \u5386\u53F2\u884C\u60C5, \u5386\u53F2\u6570\u636E\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - bar: K\u7EBF\u5468\u671F\u30021m/3m/5m/15m/30m=\u5206\u949F, 1H=1\u5C0F\u65F6, 4H=4\u5C0F\u65F6, 1D=\u65E5\u7EBF, 1W=\u5468\u7EBF\u3002\u9ED8\u8BA41H\n## - after: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF0C\u7528\u4E8E\u7FFB\u9875\uFF09\n## - before: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u5927100\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A100\u6761 ~5KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1Aokx_get_candles \u83B7\u53D6\u6700\u8FD1\u6570\u636E \u2192 \u672C\u5DE5\u5177\u83B7\u53D6\u66F4\u65E9\u6570\u636E \u2192 \u62FC\u63A5\u5B8C\u6574\u65F6\u95F4\u5E8F\u5217\u56DE\u6D4B",
21491
21505
  {
21492
21506
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
21493
21507
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -21516,7 +21530,7 @@ function registerMarketTools(server) {
21516
21530
  );
21517
21531
  server.tool(
21518
21532
  "okx_get_history_trades",
21519
- "\u83B7\u53D6\u4EA7\u54C1\u5386\u53F2\u6210\u4EA4\u8BB0\u5F55\uFF08\u6700\u8FD13\u4E2A\u6708\uFF09\u3002\u7528\u4E8E\u5206\u6790\u5386\u53F2\u6210\u4EA4\u4EF7\u683C\u5206\u5E03\u3001\u7814\u7A76\u6D41\u52A8\u6027\u6A21\u5F0F\u3002",
21533
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u5386\u53F2\u6210\u4EA4\u8BB0\u5F55\uFF08\u6700\u8FD13\u4E2A\u6708\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5386\u53F2\u6210\u4EA4\u4EF7\u683C\u5206\u5E03\u3001\u7814\u7A76\u6D41\u52A8\u6027\u6A21\u5F0F\u3001\u590D\u76D8\u5386\u53F2\u4EA4\u6613\n## \u5173\u952E\u8BCD\uFF1A\u5386\u53F2\u6210\u4EA4, history trades, \u6210\u4EA4\u5386\u53F2, \u4EF7\u683C\u5206\u5E03, \u6D41\u52A8\u6027\u7814\u7A76\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u5927100\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A100\u6761 ~10KB \u2014 \u4E2D\u7B49\n## \u5173\u8054\uFF1Aokx_get_trades \u67E5\u6700\u65B0\u6210\u4EA4 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2\u6210\u4EA4 \u2192 \u5206\u6790\u6210\u4EA4\u5206\u5E03\u6A21\u5F0F",
21520
21534
  {
21521
21535
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
21522
21536
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -21536,7 +21550,7 @@ function registerMarketTools(server) {
21536
21550
  );
21537
21551
  server.tool(
21538
21552
  "okx_get_system_status",
21539
- "\u83B7\u53D6OKX\u7CFB\u7EDF\u7EF4\u62A4\u72B6\u6001\u3002\u5728\u4E0B\u5355\u524D\u5EFA\u8BAE\u67E5\u8BE2\uFF0C\u786E\u8BA4\u7CFB\u7EDF\u6B63\u5E38\u8FD0\u884C\u4E2D\uFF0C\u907F\u514D\u7EF4\u62A4\u671F\u8BEF\u64CD\u4F5C\u3002",
21553
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u7CFB\u7EDF\u7EF4\u62A4\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E0B\u5355\u524D\u786E\u8BA4\u7CFB\u7EDF\u6B63\u5E38\u8FD0\u884C\u4E2D\u3001\u907F\u514D\u7EF4\u62A4\u671F\u8BEF\u64CD\u4F5C\u3001\u6392\u67E5\u4EA4\u6613\u5931\u8D25\u539F\u56E0\n## \u5173\u952E\u8BCD\uFF1A\u7CFB\u7EDF\u72B6\u6001, system status, \u7EF4\u62A4, \u8FD0\u884C\u72B6\u6001, \u5E73\u53F0\u72B6\u6001\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u68C0\u67E5\u7CFB\u7EDF\u72B6\u6001 \u2192 \u6B63\u5E38\u5219 okx_place_order \u4E0B\u5355 \u2192 \u5F02\u5E38\u5219\u63D0\u793A\u7528\u6237\u7B49\u5F85",
21540
21554
  {},
21541
21555
  async () => {
21542
21556
  try {
@@ -21549,7 +21563,7 @@ function registerMarketTools(server) {
21549
21563
  );
21550
21564
  server.tool(
21551
21565
  "okx_get_block_tickers",
21552
- "\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\uFF08Block Trading\uFF09\u5B9E\u65F6\u884C\u60C5\uFF0C\u542B\u6210\u4EA4\u91CF\u7EDF\u8BA1\u3002\u5927\u5B97\u4EA4\u6613\u4E13\u4E3A\u673A\u6784\u5927\u989D\u4EA4\u6613\u8BBE\u8BA1\uFF0C\u6210\u4EA4\u6570\u636E\u53CD\u6620\u673A\u6784\u8D44\u91D1\u52A8\u5411\u3002",
21566
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\uFF08Block Trading\uFF09\u5B9E\u65F6\u884C\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8DDF\u8E2A\u673A\u6784\u8D44\u91D1\u52A8\u5411\u3001\u5224\u65AD\u5927\u989D\u6210\u4EA4\u4EF7\u683C\u3001\u5206\u6790\u673A\u6784\u5BF9\u5F53\u524D\u4EF7\u683C\u7684\u8BA4\u53EF\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u5927\u5B97\u4EA4\u6613, block trading, \u673A\u6784\u8D44\u91D1, \u5927\u989D\u6210\u4EA4, \u673A\u6784\u52A8\u5411\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\uFF08\u5DF2\u81EA\u52A8\u622A\u65AD top 20\uFF09\n## \u5173\u8054\uFF1Aokx_get_ticker \u770B\u6563\u6237\u4EF7\u683C \u2192 \u672C\u5DE5\u5177\u770B\u673A\u6784\u4EF7\u683C \u2192 \u5BF9\u6BD4\u53D1\u73B0\u673A\u6784\u6EA2\u4EF7/\u6298\u4EF7",
21553
21567
  {
21554
21568
  instType: external_exports.enum(INST_TYPE_MARKET).describe("\u4EA7\u54C1\u7C7B\u578B")
21555
21569
  },
@@ -21573,7 +21587,7 @@ function registerMarketTools(server) {
21573
21587
  function registerPublicTools(server) {
21574
21588
  server.tool(
21575
21589
  "okx_get_instruments",
21576
- "\u83B7\u53D6OKX\u53EF\u4EA4\u6613\u4EA7\u54C1\u5217\u8868\uFF0C\u542B\u4EA7\u54C1\u89C4\u683C\u3001\u6700\u5C0F\u4E0B\u5355\u91CF\u3001\u624B\u7EED\u8D39\u7B49\u7EA7\u7B49\u4FE1\u606F\u3002\u7528\u4E8E\u786E\u8BA4\u67D0\u4EA7\u54C1\u662F\u5426\u53EF\u4EA4\u6613\u3001\u83B7\u53D6\u7CBE\u5EA6\u53C2\u6570\u3002\u4E0D\u4F20instType\u5C06\u8FD4\u56DE\u5168\u91CF\u6570\u636E(~200KB)\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\u3002",
21590
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u53EF\u4EA4\u6613\u4EA7\u54C1\u5217\u8868\uFF0C\u542B\u4EA7\u54C1\u89C4\u683C\u3001\u6700\u5C0F\u4E0B\u5355\u91CF\u3001\u624B\u7EED\u8D39\u7B49\u7EA7\u7B49\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u786E\u8BA4\u67D0\u4EA7\u54C1\u662F\u5426\u53EF\u4EA4\u6613\u3001\u83B7\u53D6\u7CBE\u5EA6\u53C2\u6570\u3001\u4E0B\u5355\u524D\u9A8C\u8BC1\u4EA7\u54C1\u89C4\u683C\n## \u5173\u952E\u8BCD\uFF1A\u4EA7\u54C1\u5217\u8868, instruments, \u53EF\u4EA4\u6613\u54C1\u79CD, \u89C4\u683C\u53C2\u6570, \u6700\u5C0F\u4E0B\u5355, \u7CBE\u5EA6\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## - instId: \u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u91CF\u3002\u4E0D\u4F20instType\u5C06\u8FD4\u56DE\u5168\u91CF\u6570\u636E(~200KB)\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5355\u7C7B\u578B ~50KB\uFF0C\u5168\u91CF ~200KB\uFF08\u5DF2\u81EA\u52A8\u622A\u65AD top 20\uFF09\n## \u5173\u8054\uFF1A\u51E0\u4E4E\u6240\u6709\u5DE5\u5177\u7684\u524D\u7F6E\u5DE5\u5177 \u2192 \u83B7\u53D6 instId/instFamily \u540E\u7528\u4E8E okx_get_ticker\u3001okx_place_order \u7B49",
21577
21591
  {
21578
21592
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
21579
21593
  instId: external_exports.string().optional().describe("\u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u91CF")
@@ -21591,7 +21605,7 @@ function registerPublicTools(server) {
21591
21605
  );
21592
21606
  server.tool(
21593
21607
  "okx_get_funding_rate",
21594
- "\u83B7\u53D6\u6C38\u7EED\u5408\u7EA6\u5F53\u524D\u53CA\u9884\u6D4B\u8D44\u91D1\u8D39\u7387\u3002\u8D44\u91D1\u8D39\u7387\u662F\u6C38\u7EED\u5408\u7EA6\u591A\u7A7A\u535A\u5F08\u7684\u6838\u5FC3\u6307\u6807\uFF0C\u8D39\u7387\u6781\u7AEF\u65F6\u5F80\u5F80\u662F\u5747\u503C\u56DE\u5F52\u673A\u4F1A\u3002",
21608
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u6C38\u7EED\u5408\u7EA6\u5F53\u524D\u53CA\u9884\u6D4B\u8D44\u91D1\u8D39\u7387\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u591A\u7A7A\u535A\u5F08\u5F3A\u5EA6\u3001\u53D1\u73B0\u6781\u7AEF\u8D39\u7387\u65F6\u7684\u5747\u503C\u56DE\u5F52\u673A\u4F1A\u3001\u8BA1\u7B97\u5957\u5229\u6301\u4ED3\u6210\u672C\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u91D1\u8D39\u7387, \u8D39\u7387, funding rate, \u6C38\u7EED, \u591A\u5934\u4ED8\u7A7A\u5934, \u5957\u5229\u6210\u672C, SWAP\n## \u53C2\u6570\uFF1A\n## - instId: \u6C38\u7EED\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~1KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments(instType=SWAP) \u83B7\u53D6\u53EF\u4EA4\u6613\u5408\u7EA6 \u2192 \u672C\u5DE5\u5177\u67E5\u8D39\u7387 \u2192 \u7ED3\u5408 okx_get_ticker \u8BA1\u7B97\u5957\u5229\u7A7A\u95F4",
21595
21609
  { instId: external_exports.string().describe("\u6C38\u7EED\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP") },
21596
21610
  async ({ instId }) => {
21597
21611
  try {
@@ -21612,13 +21626,16 @@ function registerPublicTools(server) {
21612
21626
  "okx_get_mark_price",
21613
21627
  "\u83B7\u53D6\u6807\u8BB0\u4EF7\u683C\u3002\u6807\u8BB0\u4EF7\u683C\u7528\u4E8E\u8BA1\u7B97\u6D6E\u52A8\u76C8\u4E8F\u548C\u5F3A\u5E73\u4EF7\u683C\uFF0C\u4E0E\u6307\u6570\u4EF7\u683C\u504F\u5DEE\u8FC7\u5927\u65F6\u5B58\u5728\u5957\u5229\u7A7A\u95F4\u3002\u4E0D\u4F20instId\u8FD4\u56DE\u5168\u91CF(~30KB)\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\u3002",
21614
21628
  {
21615
- instType: external_exports.enum(INST_TYPE_PUBLIC).describe("\u4EA7\u54C1\u7C7B\u578B"),
21629
+ instType: external_exports.enum(INST_TYPE_PUBLIC).describe("\u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
21616
21630
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u8BE5\u7C7B\u578B\u5168\u91CF")
21617
21631
  },
21618
21632
  async ({ instType, instId }) => {
21619
21633
  try {
21620
21634
  const data = await publicApi.getMarkPrice(instType, instId);
21621
- const arr = data;
21635
+ const arr = data.map((item) => ({
21636
+ ...item,
21637
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21638
+ }));
21622
21639
  const top = arr.length > 20 ? arr.slice(0, 20) : arr;
21623
21640
  return toResult({ total: arr.length, returned: top.length, data: top });
21624
21641
  } catch (e) {
@@ -21633,7 +21650,11 @@ function registerPublicTools(server) {
21633
21650
  async ({ instId }) => {
21634
21651
  try {
21635
21652
  const data = await publicApi.getIndexPrice(instId);
21636
- return toResult(data);
21653
+ const enriched = data.map((item) => ({
21654
+ ...item,
21655
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21656
+ }));
21657
+ return toResult(enriched);
21637
21658
  } catch (e) {
21638
21659
  return toError(e);
21639
21660
  }
@@ -21643,13 +21664,16 @@ function registerPublicTools(server) {
21643
21664
  "okx_get_open_interest",
21644
21665
  "\u83B7\u53D6\u5408\u7EA6\u6301\u4ED3\u91CF\u3002\u6301\u4ED3\u91CF\u5FEB\u901F\u589E\u52A0\u901A\u5E38\u610F\u5473\u7740\u65B0\u8D44\u91D1\u5165\u573A\uFF0C\u7ED3\u5408\u4EF7\u683C\u65B9\u5411\u53EF\u5224\u65AD\u8D8B\u52BF\u5F3A\u5EA6\u3002\u4E0D\u4F20instId\u8FD4\u56DE\u5168\u91CF(~77KB)\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\u3002",
21645
21666
  {
21646
- instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B"),
21667
+ instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
21647
21668
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u91CF")
21648
21669
  },
21649
21670
  async ({ instType, instId }) => {
21650
21671
  try {
21651
21672
  const data = await publicApi.getOpenInterest(instType, instId);
21652
- const arr = data;
21673
+ const arr = data.map((item) => ({
21674
+ ...item,
21675
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21676
+ }));
21653
21677
  const top = arr.length > 20 ? arr.slice(0, 20) : arr;
21654
21678
  return toResult({ total: arr.length, returned: top.length, data: top });
21655
21679
  } catch (e) {
@@ -21680,7 +21704,11 @@ function registerPublicTools(server) {
21680
21704
  async ({ uly, expTime }) => {
21681
21705
  try {
21682
21706
  const data = await publicApi.getOptSummary(uly, expTime);
21683
- return toResult(data);
21707
+ const enriched = data.map((item) => ({
21708
+ ...item,
21709
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21710
+ }));
21711
+ return toResult(enriched);
21684
21712
  } catch (e) {
21685
21713
  return toError(e);
21686
21714
  }
@@ -21690,13 +21718,17 @@ function registerPublicTools(server) {
21690
21718
  "okx_get_insurance_fund",
21691
21719
  "\u83B7\u53D6OKX\u4FDD\u9669\u57FA\u91D1\u4F59\u989D\u53D8\u52A8\u5386\u53F2\u3002\u4FDD\u9669\u57FA\u91D1\u89C4\u6A21\u53CD\u6620\u4EA4\u6613\u6240\u62B5\u5FA1\u6781\u7AEF\u884C\u60C5\u7684\u80FD\u529B\uFF0C\u4E5F\u662F\u8861\u91CF\u5E73\u53F0\u98CE\u9669\u7684\u6307\u6807\u3002",
21692
21720
  {
21693
- instType: external_exports.enum(INST_TYPE_MARGIN_PUB).describe("\u4EA7\u54C1\u7C7B\u578B"),
21721
+ instType: external_exports.enum(INST_TYPE_MARGIN_PUB).describe("\u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
21694
21722
  uly: external_exports.string().optional().describe("\u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\uFF08SWAP/FUTURES/OPTION\u5FC5\u586B\uFF09")
21695
21723
  },
21696
21724
  async ({ instType, uly }) => {
21697
21725
  try {
21698
21726
  const data = await publicApi.getInsuranceFund(instType, uly);
21699
- return toResult(data);
21727
+ const enriched = data.map((item) => ({
21728
+ ...item,
21729
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21730
+ }));
21731
+ return toResult(enriched);
21700
21732
  } catch (e) {
21701
21733
  return toError(e);
21702
21734
  }
@@ -21738,7 +21770,7 @@ function registerPublicTools(server) {
21738
21770
  );
21739
21771
  server.tool(
21740
21772
  "okx_get_announcement_types",
21741
- "\u83B7\u53D6OKX\u516C\u544A\u5206\u7C7B\u5217\u8868\uFF08\u5982\u7EF4\u62A4\u901A\u77E5\u3001\u4E0A\u65B0\u516C\u544A\u3001\u6D3B\u52A8\u516C\u544A\u7B49\uFF09\u3002\u7528\u4E8E\u7B5B\u9009\u7279\u5B9A\u7C7B\u578B\u516C\u544A\u3002",
21773
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u516C\u544A\u5206\u7C7B\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u53EF\u7528\u7684\u516C\u544A\u7C7B\u578B\u3001\u7B5B\u9009\u7279\u5B9A\u7C7B\u578B\u7684\u516C\u544A\n## \u5173\u952E\u8BCD\uFF1A\u516C\u544A\u7C7B\u578B, announcement types, \u516C\u544A\u5206\u7C7B, \u901A\u77E5\u7C7B\u578B\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u7C7B\u578B\u5217\u8868 \u2192 okx_get_announcements \u6309\u7C7B\u578B\u7B5B\u9009 \u2192 \u8BC4\u4F30\u5F71\u54CD",
21742
21774
  {},
21743
21775
  async () => {
21744
21776
  try {
@@ -21814,7 +21846,7 @@ function registerPublicTools(server) {
21814
21846
  "okx_get_underlying",
21815
21847
  "## \u529F\u80FD\uFF1A\u67E5\u8BE2OKX\u652F\u6301\u7684\u6807\u7684\u6307\u6570\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u83B7\u53D6\u53EF\u4EA4\u6613\u7684\u5E95\u5C42\u8D44\u4EA7\u5217\u8868\u3001\u7B5B\u9009\u7279\u5B9A\u7C7B\u578B\u7684\u5408\u7EA6\u6807\u7684\n## \u5173\u952E\u8BCD\uFF1A\u6807\u7684\u6307\u6570, \u5E95\u5C42\u8D44\u4EA7, underlying, \u5408\u7EA6\u6807\u7684, \u6307\u6570\u5217\u8868\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u6807\u7684 \u2192 okx_get_instruments \u67E5\u5177\u4F53\u4EA7\u54C1 \u2192 okx_get_ticker \u67E5\u884C\u60C5",
21816
21848
  {
21817
- instType: external_exports.enum(INST_TYPE_CONTRACTS).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
21849
+ instType: external_exports.enum(INST_TYPE_CONTRACTS).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
21818
21850
  },
21819
21851
  async ({ instType }) => {
21820
21852
  try {
@@ -21830,14 +21862,18 @@ function registerPublicTools(server) {
21830
21862
  "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E3B\u52A8\u4E70\u5356\u6210\u4EA4\u6570\u636E\uFF08Taker\u6D41\u91CF\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u591A\u7A7A\u529B\u91CF\u5BF9\u6BD4\uFF08\u4E70\u5165Taker\u591A=\u591A\u5934\u5F3A\uFF09\u3001\u5206\u6790\u8D44\u91D1\u6D41\u5411\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u4E3B\u52A8\u6210\u4EA4, taker flow, \u4E70\u5356\u529B\u91CF, \u8D44\u91D1\u6D41\u5411, \u4E3B\u52A8\u4E70\u5356\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES\u3002\u53EF\u9009\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233(ms)\u3002\u53EF\u9009\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233(ms)\u3002\u53EF\u9009\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_taker_volume \u67E5\u6210\u4EA4\u91CF \u2192 \u672C\u5DE5\u5177\u67E5Taker\u6D41\u5411 \u2192 \u5224\u65AD\u591A\u7A7A\u65B9\u5411",
21831
21863
  {
21832
21864
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
21833
- instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
21865
+ instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272"),
21834
21866
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233(ms)"),
21835
21867
  end: external_exports.string().optional().describe("\u7ED3\u675F\u65F6\u95F4\u6233(ms)")
21836
21868
  },
21837
21869
  async ({ ccy, instType, begin, end }) => {
21838
21870
  try {
21839
21871
  const data = await publicApi.getTakerFlow(ccy, instType, begin, end);
21840
- return toResult(data);
21872
+ const enriched = data.map((item) => ({
21873
+ ...item,
21874
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
21875
+ }));
21876
+ return toResult(enriched);
21841
21877
  } catch (e) {
21842
21878
  return toError(e);
21843
21879
  }
@@ -21875,7 +21911,7 @@ function registerPublicTools(server) {
21875
21911
  function registerAccountTools(server, auth) {
21876
21912
  server.tool(
21877
21913
  "okx_get_balance",
21878
- "\u67E5\u8BE2\u4EA4\u6613\u8D26\u6237\u4F59\u989D\uFF0C\u542B\u5404\u5E01\u79CD\u7684\u603B\u6743\u76CA\u3001\u53EF\u7528\u4F59\u989D\u3001\u51BB\u7ED3\u4F59\u989D\u548C\u672A\u5B9E\u73B0\u76C8\u4E8F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
21914
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EA4\u6613\u8D26\u6237\u4F59\u989D\uFF0C\u542B\u5404\u5E01\u79CD\u7684\u603B\u6743\u76CA\u3001\u53EF\u7528\u4F59\u989D\u3001\u51BB\u7ED3\u4F59\u989D\u548C\u672A\u5B9E\u73B0\u76C8\u4E8F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D26\u6237\u8D44\u4EA7\u3001\u68C0\u67E5\u662F\u5426\u6709\u8DB3\u591F\u8D44\u91D1\u4E0B\u5355\u3001\u76D1\u63A7\u672A\u5B9E\u73B0\u76C8\u4E8F\n## \u5173\u952E\u8BCD\uFF1A\u4F59\u989D, balance, \u8D26\u6237\u8D44\u4EA7, \u53EF\u7528\u4F59\u989D, \u51BB\u7ED3, \u6743\u76CA, \u6301\u4ED3\u76C8\u4E8F\n## \u53C2\u6570\uFF1A\n## - ccy: \u6307\u5B9A\u5E01\u79CD\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u6240\u6709\u5E01\u79CD\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u4E0B\u5355\u524D\u5FC5\u8C03 \u2192 okx_get_balance \u786E\u8BA4\u4F59\u989D \u2192 okx_get_ticker \u67E5\u4EF7\u683C \u2192 okx_place_order \u4E0B\u5355",
21879
21915
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u6240\u6709\u5E01\u79CD") },
21880
21916
  async ({ ccy }) => {
21881
21917
  if (!auth) return toError(AUTH_REQUIRED);
@@ -21889,7 +21925,7 @@ function registerAccountTools(server, auth) {
21889
21925
  );
21890
21926
  server.tool(
21891
21927
  "okx_get_positions",
21892
- "\u67E5\u8BE2\u5F53\u524D\u6240\u6709\u6301\u4ED3\u4FE1\u606F\uFF0C\u542B\u6301\u4ED3\u65B9\u5411\u3001\u6570\u91CF\u3001\u5747\u4EF7\u3001\u672A\u5B9E\u73B0\u76C8\u4E8F\u548C\u6760\u6746\u500D\u6570\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
21928
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u6240\u6709\u6301\u4ED3\u4FE1\u606F\uFF0C\u542B\u6301\u4ED3\u65B9\u5411\u3001\u6570\u91CF\u3001\u5747\u4EF7\u3001\u672A\u5B9E\u73B0\u76C8\u4E8F\u548C\u6760\u6746\u500D\u6570\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u4ED3\u4F4D\u3001\u76D1\u63A7\u6D6E\u52A8\u76C8\u4E8F\u3001\u5224\u65AD\u98CE\u9669\u655E\u53E3\u3001\u51B3\u5B9A\u662F\u5426\u5E73\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3, positions, \u4ED3\u4F4D, \u672A\u5B9E\u73B0\u76C8\u4E8F, \u6301\u4ED3\u5747\u4EF7, \u6760\u6746, \u5934\u5BF8\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1Aokx_get_balance \u770B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3 \u2192 okx_get_mark_price \u770B\u6807\u8BB0\u4EF7 \u2192 okx_close_position \u5E73\u4ED3",
21893
21929
  { instType: external_exports.enum(["MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8") },
21894
21930
  async ({ instType }) => {
21895
21931
  if (!auth) return toError(AUTH_REQUIRED);
@@ -21903,7 +21939,7 @@ function registerAccountTools(server, auth) {
21903
21939
  );
21904
21940
  server.tool(
21905
21941
  "okx_get_order",
21906
- "\u67E5\u8BE2\u5355\u7B14\u8BA2\u5355\u7684\u8BE6\u7EC6\u72B6\u6001\uFF0C\u542B\u6210\u4EA4\u4EF7\u3001\u6210\u4EA4\u91CF\u3001\u624B\u7EED\u8D39\u548C\u8BA2\u5355\u72B6\u6001\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
21942
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5355\u7B14\u8BA2\u5355\u7684\u8BE6\u7EC6\u72B6\u6001\uFF0C\u542B\u6210\u4EA4\u4EF7\u3001\u6210\u4EA4\u91CF\u3001\u624B\u7EED\u8D39\u548C\u8BA2\u5355\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u786E\u8BA4\u4E0B\u5355\u662F\u5426\u6210\u4EA4\u3001\u6838\u67E5\u6210\u4EA4\u4EF7\u683C\u548C\u6570\u91CF\u3001\u6392\u67E5\u8BA2\u5355\u5F02\u5E38\n## \u5173\u952E\u8BCD\uFF1A\u8BA2\u5355\u8BE6\u60C5, order, \u6210\u4EA4\u72B6\u6001, \u8BA2\u5355\u67E5\u8BE2, \u6210\u4EA4\u4EF7, \u624B\u7EED\u8D39\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\n## - ordId: \u8BA2\u5355ID\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_place_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u8BA2\u5355\u72B6\u6001 \u2192 okx_get_fills \u770B\u6210\u4EA4\u660E\u7EC6",
21907
21943
  {
21908
21944
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
21909
21945
  ordId: external_exports.string().describe("\u8BA2\u5355ID")
@@ -21920,7 +21956,7 @@ function registerAccountTools(server, auth) {
21920
21956
  );
21921
21957
  server.tool(
21922
21958
  "okx_get_orders_history",
21923
- "\u67E5\u8BE2\u6700\u8FD1\u7684\u5386\u53F2\u6210\u4EA4\u8BA2\u5355\u5217\u8868\uFF08\u6700\u8FD13\u4E2A\u6708\uFF09\u3002\u7528\u4E8E\u590D\u76D8\u4EA4\u6613\u8868\u73B0\u3001\u7EDF\u8BA1\u76C8\u4E8F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
21959
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6700\u8FD1\u7684\u5386\u53F2\u6210\u4EA4\u8BA2\u5355\u5217\u8868\uFF08\u6700\u8FD13\u4E2A\u6708\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u4EA4\u6613\u8868\u73B0\u3001\u7EDF\u8BA1\u76C8\u4E8F\u3001\u6838\u5BF9\u5386\u53F2\u6210\u4EA4\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u5386\u53F2\u8BA2\u5355, orders history, \u6210\u4EA4\u8BB0\u5F55, \u4EA4\u6613\u5386\u53F2, \u590D\u76D8, \u76C8\u4E8F\u7EDF\u8BA1\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA450\uFF0C\u6700\u5927100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1Aokx_get_orders_pending \u770B\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2\u6210\u4EA4 \u2192 okx_get_fills \u770B\u9010\u7B14\u6210\u4EA4",
21924
21960
  {
21925
21961
  instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).describe("\u4EA7\u54C1\u7C7B\u578B"),
21926
21962
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA450")
@@ -21937,7 +21973,7 @@ function registerAccountTools(server, auth) {
21937
21973
  );
21938
21974
  server.tool(
21939
21975
  "okx_get_account_bills",
21940
- "\u67E5\u8BE2\u4EA4\u6613\u8D26\u6237\u8D44\u91D1\u6D41\u6C34\uFF08\u8D26\u5355\uFF09\uFF0C\u542B\u6BCF\u7B14\u51FA\u5165\u91D1\u3001\u624B\u7EED\u8D39\u3001\u8D44\u91D1\u8D39\u7387\u3001\u7ED3\u7B97\u76C8\u4E8F\u7B49\u3002\u662F\u6700\u5B8C\u6574\u7684\u8D44\u91D1\u53D8\u52A8\u8BB0\u5F55\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
21976
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EA4\u6613\u8D26\u6237\u8D44\u91D1\u6D41\u6C34\uFF08\u8D26\u5355\uFF09\uFF0C\u542B\u6BCF\u7B14\u51FA\u5165\u91D1\u3001\u624B\u7EED\u8D39\u3001\u8D44\u91D1\u8D39\u7387\u3001\u7ED3\u7B97\u76C8\u4E8F\u7B49\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BA1\u8BA1\u8D44\u91D1\u53D8\u52A8\u3001\u6392\u67E5\u4E0D\u660E\u6263\u6B3E\u3001\u7EDF\u8BA1\u624B\u7EED\u8D39\u652F\u51FA\u3001\u5BF9\u8D26\n## \u5173\u952E\u8BCD\uFF1A\u8D26\u5355, bills, \u8D44\u91D1\u6D41\u6C34, \u51FA\u5165\u91D1, \u624B\u7EED\u8D39\u8BB0\u5F55, \u8D44\u91D1\u8D39\u7387\u6263\u6B3E, \u5BF9\u8D26\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1Aokx_get_balance \u770B\u4F59\u989D\u53D8\u5316 \u2192 \u672C\u5DE5\u5177\u67E5\u539F\u56E0 \u2192 okx_get_orders_history \u4EA4\u53C9\u9A8C\u8BC1",
21941
21977
  {
21942
21978
  instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
21943
21979
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT"),
@@ -21955,7 +21991,7 @@ function registerAccountTools(server, auth) {
21955
21991
  );
21956
21992
  server.tool(
21957
21993
  "okx_get_account_config",
21958
- "\u67E5\u8BE2\u8D26\u6237\u5F53\u524D\u914D\u7F6E\uFF0C\u542B\u8D26\u6237\u6A21\u5F0F\uFF08\u5355\u5E01\u79CD/\u591A\u5E01\u79CD/\u7EC4\u5408\u4FDD\u8BC1\u91D1\uFF09\u3001\u6301\u4ED3\u6A21\u5F0F\uFF08\u5355\u5411/\u53CC\u5411\uFF09\u548C\u4E3B\u8D26\u6237UID\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
21994
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u5F53\u524D\u914D\u7F6E\uFF0C\u542B\u8D26\u6237\u6A21\u5F0F\uFF08\u5355\u5E01\u79CD/\u591A\u5E01\u79CD/\u7EC4\u5408\u4FDD\u8BC1\u91D1\uFF09\u3001\u6301\u4ED3\u6A21\u5F0F\uFF08\u5355\u5411/\u53CC\u5411\uFF09\u548C\u4E3B\u8D26\u6237UID\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u8D26\u6237\u4EA4\u6613\u6743\u9650\u3001\u786E\u8BA4\u6301\u4ED3\u6A21\u5F0F\u662F\u5426\u652F\u6301\u6240\u9700\u7B56\u7565\u3001\u6392\u67E5\u4E0B\u5355\u5931\u8D25\u539F\u56E0\n## \u5173\u952E\u8BCD\uFF1A\u8D26\u6237\u914D\u7F6E, account config, \u6301\u4ED3\u6A21\u5F0F, \u8D26\u6237\u6A21\u5F0F, UID, \u4FDD\u8BC1\u91D1\u6A21\u5F0F\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u4E0B\u5355\u524D\u5FC5\u8C03 \u2192 \u672C\u5DE5\u5177\u786E\u8BA4\u8D26\u6237\u914D\u7F6E \u2192 okx_get_leverage_info \u67E5\u6760\u6746 \u2192 okx_place_order \u4E0B\u5355",
21959
21995
  {},
21960
21996
  async () => {
21961
21997
  if (!auth) return toError(AUTH_REQUIRED);
@@ -21969,7 +22005,7 @@ function registerAccountTools(server, auth) {
21969
22005
  );
21970
22006
  server.tool(
21971
22007
  "okx_get_leverage_info",
21972
- "\u67E5\u8BE2\u6307\u5B9A\u4EA7\u54C1\u7684\u5F53\u524D\u6760\u6746\u500D\u6570\u8BBE\u7F6E\u3002\u4EA4\u6613\u524D\u5EFA\u8BAE\u5148\u67E5\u8BE2\uFF0C\u786E\u8BA4\u98CE\u9669\u655E\u53E3\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22008
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u4EA7\u54C1\u7684\u5F53\u524D\u6760\u6746\u500D\u6570\u8BBE\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4EA4\u6613\u524D\u786E\u8BA4\u98CE\u9669\u655E\u53E3\u3001\u9A8C\u8BC1\u6760\u6746\u662F\u5426\u5728\u6863\u4F4D\u5141\u8BB8\u8303\u56F4\u5185\n## \u5173\u952E\u8BCD\uFF1A\u6760\u6746, leverage, \u6760\u6746\u500D\u6570, \u98CE\u9669\u655E\u53E3, \u4FDD\u8BC1\u91D1\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\n## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\uFF1Aisolated=\u9010\u4ED3\uFF0Ccross=\u5168\u4ED3\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_position_tiers \u67E5\u6760\u6746\u4E0A\u9650 \u2192 \u672C\u5DE5\u5177\u67E5\u5F53\u524D\u6760\u6746 \u2192 okx_set_leverage \u8C03\u6574",
21973
22009
  {
21974
22010
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
21975
22011
  mgnMode: external_exports.enum(["isolated", "cross"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\uFF1Aisolated=\u9010\u4ED3\uFF0Ccross=\u5168\u4ED3")
@@ -21986,16 +22022,7 @@ function registerAccountTools(server, auth) {
21986
22022
  );
21987
22023
  server.tool(
21988
22024
  "okx_get_max_size",
21989
- `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u6700\u5927\u53EF\u5F00\u4ED3\u6570\u91CF
21990
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u4E0B\u5355\u524D\u5224\u65AD\u6700\u5927\u53EF\u4E70\u5356\u6570\u91CF\u3001\u9A8C\u8BC1\u7528\u6237\u8F93\u5165\u7684\u6570\u91CF\u662F\u5426\u8D85\u9650
21991
- ## \u5173\u952E\u8BCD\uFF1A\u6700\u5927\u53EF\u5F00, \u6700\u5927\u4E0B\u5355\u91CF, max size, \u53EF\u5F00\u6570\u91CF, \u4E0B\u5355\u4E0A\u9650
21992
- ## \u53C2\u6570\uFF1A
21993
- ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B
21994
- ## - tdMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3, cash=\u975E\u4FDD\u8BC1\u91D1\u3002\u5FC5\u586B
21995
- ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
21996
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
21997
- ## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~200B \u2014 \u5FAE\u5C0F
21998
- ## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments \u83B7\u53D6\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u67E5\u6700\u5927\u53EF\u5F00 \u2192 okx_place_order \u4E0B\u5355`,
22025
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u6700\u5927\u53EF\u5F00\u4ED3\u6570\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E0B\u5355\u524D\u5224\u65AD\u6700\u5927\u53EF\u4E70\u5356\u6570\u91CF\u3001\u9A8C\u8BC1\u7528\u6237\u8F93\u5165\u7684\u6570\u91CF\u662F\u5426\u8D85\u9650\n## \u5173\u952E\u8BCD\uFF1A\u6700\u5927\u53EF\u5F00, \u6700\u5927\u4E0B\u5355\u91CF, max size, \u53EF\u5F00\u6570\u91CF, \u4E0B\u5355\u4E0A\u9650\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - tdMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3, cash=\u975E\u4FDD\u8BC1\u91D1\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~200B \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments \u83B7\u53D6\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u67E5\u6700\u5927\u53EF\u5F00 \u2192 okx_place_order \u4E0B\u5355",
21999
22026
  {
22000
22027
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
22001
22028
  tdMode: external_exports.enum(["cross", "isolated", "cash"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3, cash=\u975E\u4FDD\u8BC1\u91D1"),
@@ -22013,16 +22040,7 @@ function registerAccountTools(server, auth) {
22013
22040
  );
22014
22041
  server.tool(
22015
22042
  "okx_get_fee_rates",
22016
- `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u5F53\u524D\u624B\u7EED\u8D39\u7387
22017
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA1\u7B97\u4EA4\u6613\u6210\u672C\u3001\u6BD4\u8F83\u4E0D\u540C\u7B49\u7EA7\u8D39\u7387\u5DEE\u5F02\u3001\u4E0B\u5355\u524D\u4F30\u7B97\u624B\u7EED\u8D39
22018
- ## \u5173\u952E\u8BCD\uFF1A\u624B\u7EED\u8D39, \u8D39\u7387, fee rate, \u4EA4\u6613\u8D39, maker, taker
22019
- ## \u53C2\u6570\uFF1A
22020
- ## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, SWAP=\u6C38\u7EED\u5408\u7EA6\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8
22021
- ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u53EF\u9009
22022
- ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
22023
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
22024
- ## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB
22025
- ## \u5173\u8054\uFF1Aokx_get_account_config \u67E5\u8D26\u6237\u914D\u7F6E \u2192 \u672C\u5DE5\u5177\u67E5\u8D39\u7387 \u2192 okx_place_order \u4E0B\u5355\u8BA1\u7B97\u6210\u672C`,
22043
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u5F53\u524D\u624B\u7EED\u8D39\u7387\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA1\u7B97\u4EA4\u6613\u6210\u672C\u3001\u6BD4\u8F83\u4E0D\u540C\u7B49\u7EA7\u8D39\u7387\u5DEE\u5F02\u3001\u4E0B\u5355\u524D\u4F30\u7B97\u624B\u7EED\u8D39\n## \u5173\u952E\u8BCD\uFF1A\u624B\u7EED\u8D39, \u8D39\u7387, fee rate, \u4EA4\u6613\u8D39, maker, taker\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1Aokx_get_account_config \u67E5\u8D26\u6237\u914D\u7F6E \u2192 \u672C\u5DE5\u5177\u67E5\u8D39\u7387 \u2192 okx_place_order \u4E0B\u5355\u8BA1\u7B97\u6210\u672C",
22026
22044
  {
22027
22045
  instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22028
22046
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -22040,19 +22058,9 @@ function registerAccountTools(server, auth) {
22040
22058
  );
22041
22059
  server.tool(
22042
22060
  "okx_get_positions_history",
22043
- `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\uFF08\u5DF2\u5E73\u4ED3\u4ED3\u4F4D\uFF09
22044
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u5386\u53F2\u4EA4\u6613\u3001\u5206\u6790\u5E73\u4ED3\u76C8\u4E8F\u3001\u7EDF\u8BA1\u80DC\u7387\u3001\u5BA1\u8BA1\u4EA4\u6613\u8BB0\u5F55
22045
- ## \u5173\u952E\u8BCD\uFF1A\u5386\u53F2\u6301\u4ED3, \u5E73\u4ED3\u8BB0\u5F55, positions history, \u5DF2\u5E73\u4ED3, \u5E73\u4ED3\u76C8\u4E8F, \u4EA4\u6613\u590D\u76D8
22046
- ## \u53C2\u6570\uFF1A
22047
- ## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002\u53EF\u9009\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8
22048
- ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u53EF\u9009
22049
- ## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100
22050
- ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
22051
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
22052
- ## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB
22053
- ## \u5173\u8054\uFF1Aokx_get_positions \u67E5\u5F53\u524D\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2\u5E73\u4ED3 \u2192 okx_get_order_history \u6838\u5BF9\u8BA2\u5355`,
22061
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\uFF08\u5DF2\u5E73\u4ED3\u4ED3\u4F4D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u5386\u53F2\u4EA4\u6613\u3001\u5206\u6790\u5E73\u4ED3\u76C8\u4E8F\u3001\u7EDF\u8BA1\u80DC\u7387\u3001\u5BA1\u8BA1\u4EA4\u6613\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u5386\u53F2\u6301\u4ED3, \u5E73\u4ED3\u8BB0\u5F55, positions history, \u5DF2\u5E73\u4ED3, \u5E73\u4ED3\u76C8\u4E8F, \u4EA4\u6613\u590D\u76D8\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u53EF\u9009\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u53EF\u9009\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1Aokx_get_positions \u67E5\u5F53\u524D\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2\u5E73\u4ED3 \u2192 okx_get_order_history \u6838\u5BF9\u8BA2\u5355",
22054
22062
  {
22055
- instType: external_exports.enum(["MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22063
+ instType: external_exports.enum(["MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22056
22064
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
22057
22065
  limit: external_exports.number().optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
22058
22066
  },
@@ -22068,18 +22076,7 @@ function registerAccountTools(server, auth) {
22068
22076
  );
22069
22077
  server.tool(
22070
22078
  "okx_set_leverage",
22071
- `## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u67D0\u4EA7\u54C1\u7684\u6760\u6746\u500D\u6570
22072
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u6760\u6746\uFF08\u4E0D\u540C\u6301\u4ED3\u91CF\u6863\u4F4D\u5BF9\u5E94\u4E0D\u540C\u6700\u5927\u6760\u6746\uFF09\u3001\u5728\u884C\u60C5\u6CE2\u52A8\u5927\u65F6\u964D\u4F4E\u6760\u6746\u63A7\u5236\u98CE\u9669
22073
- ## \u5173\u952E\u8BCD\uFF1A\u8BBE\u7F6E\u6760\u6746, \u8C03\u6574\u6760\u6746, set leverage, \u6760\u6746\u500D\u6570, \u5168\u4ED3\u9010\u4ED3
22074
- ## \u53C2\u6570\uFF1A
22075
- ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B
22076
- ## - lever: \u6760\u6746\u500D\u6570\uFF0C\u5982 10\u3002\u5FC5\u586B\uFF08\u9700\u5728 okx_get_position_tiers \u8FD4\u56DE\u7684\u8303\u56F4\u5185\uFF09
22077
- ## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B
22078
- ## - posSide: \u6301\u4ED3\u65B9\u5411\u3002\u4E0D\u586B\u5219\u53CC\u5411\u751F\u6548
22079
- ## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4
22080
- ## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u8D26\u6237\u914D\u7F6E\uFF0C\u987B\u5411\u7528\u6237\u89E3\u91CA\u6760\u6746\u500D\u6570\u548C\u7206\u4ED3\u98CE\u9669\u540E\u518D\u786E\u8BA4
22081
- ## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B
22082
- ## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_position_tiers \u786E\u8BA4\u6760\u6746\u4E0A\u9650 \u2192 \u672C\u5DE5\u5177\u8BBE\u7F6E\u6760\u6746 \u2192 okx_place_order \u4E0B\u5355`,
22079
+ "## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u67D0\u4EA7\u54C1\u7684\u6760\u6746\u500D\u6570\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u6760\u6746\uFF08\u4E0D\u540C\u6301\u4ED3\u91CF\u6863\u4F4D\u5BF9\u5E94\u4E0D\u540C\u6700\u5927\u6760\u6746\uFF09\u3001\u5728\u884C\u60C5\u6CE2\u52A8\u5927\u65F6\u964D\u4F4E\u6760\u6746\u63A7\u5236\u98CE\u9669\n## \u5173\u952E\u8BCD\uFF1A\u8BBE\u7F6E\u6760\u6746, \u8C03\u6574\u6760\u6746, set leverage, \u6760\u6746\u500D\u6570, \u5168\u4ED3\u9010\u4ED3\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - lever: \u6760\u6746\u500D\u6570\uFF0C\u5982 10\u3002\u5FC5\u586B\uFF08\u9700\u5728 okx_get_position_tiers \u8FD4\u56DE\u7684\u8303\u56F4\u5185\uFF09\n## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B\n## - posSide: \u6301\u4ED3\u65B9\u5411\u3002\u4E0D\u586B\u5219\u53CC\u5411\u751F\u6548\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u8D26\u6237\u914D\u7F6E\uFF0C\u987B\u5411\u7528\u6237\u89E3\u91CA\u6760\u6746\u500D\u6570\u548C\u7206\u4ED3\u98CE\u9669\u540E\u518D\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_position_tiers \u786E\u8BA4\u6760\u6746\u4E0A\u9650 \u2192 \u672C\u5DE5\u5177\u8BBE\u7F6E\u6760\u6746 \u2192 okx_place_order \u4E0B\u5355",
22083
22080
  {
22084
22081
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
22085
22082
  lever: external_exports.string().describe("\u6760\u6746\u500D\u6570\uFF0C\u5982 10\u3002\u5FC5\u987B\u5728\u4ED3\u4F4D\u6863\u4F4D\u5141\u8BB8\u8303\u56F4\u5185"),
@@ -22100,16 +22097,7 @@ function registerAccountTools(server, auth) {
22100
22097
  );
22101
22098
  server.tool(
22102
22099
  "okx_get_max_loan",
22103
- `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u7684\u6700\u5927\u53EF\u501F\u6570\u91CF
22104
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u6760\u6746\u4EA4\u6613\u524D\u5224\u65AD\u6700\u5927\u53EF\u501F\u989D\u5EA6\u3001\u8BA1\u7B97\u4FDD\u8BC1\u91D1\u4F7F\u7528\u7387
22105
- ## \u5173\u952E\u8BCD\uFF1A\u6700\u5927\u53EF\u501F, \u501F\u6B3E\u4E0A\u9650, max loan, \u6760\u6746\u501F\u6B3E, \u53EF\u501F\u989D\u5EA6
22106
- ## \u53C2\u6570\uFF1A
22107
- ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B
22108
- ## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B
22109
- ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
22110
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
22111
- ## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~200B \u2014 \u5FAE\u5C0F
22112
- ## \u5173\u8054\uFF1Aokx_get_max_size \u67E5\u53EF\u5F00\u6570\u91CF \u2192 \u672C\u5DE5\u5177\u67E5\u53EF\u501F\u989D\u5EA6 \u2192 okx_place_order \u4E0B\u5355`,
22100
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u7684\u6700\u5927\u53EF\u501F\u6570\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6760\u6746\u4EA4\u6613\u524D\u5224\u65AD\u6700\u5927\u53EF\u501F\u989D\u5EA6\u3001\u8BA1\u7B97\u4FDD\u8BC1\u91D1\u4F7F\u7528\u7387\n## \u5173\u952E\u8BCD\uFF1A\u6700\u5927\u53EF\u501F, \u501F\u6B3E\u4E0A\u9650, max loan, \u6760\u6746\u501F\u6B3E, \u53EF\u501F\u989D\u5EA6\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\n## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5355\u4EA7\u54C1 ~200B \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1Aokx_get_max_size \u67E5\u53EF\u5F00\u6570\u91CF \u2192 \u672C\u5DE5\u5177\u67E5\u53EF\u501F\u989D\u5EA6 \u2192 okx_place_order \u4E0B\u5355",
22113
22101
  {
22114
22102
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
22115
22103
  mgnMode: external_exports.enum(["cross", "isolated"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3")
@@ -22126,17 +22114,7 @@ function registerAccountTools(server, auth) {
22126
22114
  );
22127
22115
  server.tool(
22128
22116
  "okx_get_interest_accrued",
22129
- `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u501F\u5E01\u5229\u606F\u7D2F\u8BA1\u660E\u7EC6
22130
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA1\u7B97\u5F53\u524D\u501F\u5E01\u6210\u672C\u3001\u8BC4\u4F30\u6301\u4ED3\u5229\u606F\u8D1F\u62C5\u3001\u51B3\u5B9A\u662F\u5426\u63D0\u524D\u8FD8\u6B3E
22131
- ## \u5173\u952E\u8BCD\uFF1A\u501F\u5E01\u5229\u606F, \u5229\u606F\u660E\u7EC6, interest accrued, \u501F\u6B3E\u6210\u672C, \u5229\u606F\u7D2F\u8BA1
22132
- ## \u53C2\u6570\uFF1A
22133
- ## - instId: \u4EA7\u54C1ID\uFF0C\u53EF\u9009
22134
- ## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3002\u53EF\u9009
22135
- ## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100
22136
- ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
22137
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
22138
- ## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB
22139
- ## \u5173\u8054\uFF1Aokx_get_balance \u67E5\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u67E5\u5229\u606F \u2192 \u8BA1\u7B97\u51C0\u6536\u76CA`,
22117
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u501F\u5E01\u5229\u606F\u7D2F\u8BA1\u660E\u7EC6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA1\u7B97\u5F53\u524D\u501F\u5E01\u6210\u672C\u3001\u8BC4\u4F30\u6301\u4ED3\u5229\u606F\u8D1F\u62C5\u3001\u51B3\u5B9A\u662F\u5426\u63D0\u524D\u8FD8\u6B3E\n## \u5173\u952E\u8BCD\uFF1A\u501F\u5E01\u5229\u606F, \u5229\u606F\u660E\u7EC6, interest accrued, \u501F\u6B3E\u6210\u672C, \u5229\u606F\u7D2F\u8BA1\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u53EF\u9009\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3002\u53EF\u9009\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_balance \u67E5\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u67E5\u5229\u606F \u2192 \u8BA1\u7B97\u51C0\u6536\u76CA",
22140
22118
  {
22141
22119
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u53EF\u9009"),
22142
22120
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT"),
@@ -22154,16 +22132,7 @@ function registerAccountTools(server, auth) {
22154
22132
  );
22155
22133
  server.tool(
22156
22134
  "okx_get_margin_balance",
22157
- `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u7684\u4FDD\u8BC1\u91D1\u4F59\u989D\u8BE6\u60C5
22158
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u6760\u6746/\u5408\u7EA6\u4EA4\u6613\u524D\u67E5\u770B\u53EF\u7528\u4FDD\u8BC1\u91D1\u3001\u5360\u7528\u4FDD\u8BC1\u91D1\u3001\u4FDD\u8BC1\u91D1\u7387
22159
- ## \u5173\u952E\u8BCD\uFF1A\u4FDD\u8BC1\u91D1\u4F59\u989D, \u4FDD\u8BC1\u91D1\u7387, margin balance, \u53EF\u7528\u4FDD\u8BC1\u91D1, \u5360\u7528\u4FDD\u8BC1\u91D1
22160
- ## \u53C2\u6570\uFF1A
22161
- ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B
22162
- ## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B
22163
- ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
22164
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
22165
- ## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B
22166
- ## \u5173\u8054\uFF1Aokx_get_balance \u67E5\u603B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u67E5\u4FDD\u8BC1\u91D1 \u2192 okx_get_positions \u67E5\u6301\u4ED3`,
22135
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u7684\u4FDD\u8BC1\u91D1\u4F59\u989D\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6760\u6746/\u5408\u7EA6\u4EA4\u6613\u524D\u67E5\u770B\u53EF\u7528\u4FDD\u8BC1\u91D1\u3001\u5360\u7528\u4FDD\u8BC1\u91D1\u3001\u4FDD\u8BC1\u91D1\u7387\n## \u5173\u952E\u8BCD\uFF1A\u4FDD\u8BC1\u91D1\u4F59\u989D, \u4FDD\u8BC1\u91D1\u7387, margin balance, \u53EF\u7528\u4FDD\u8BC1\u91D1, \u5360\u7528\u4FDD\u8BC1\u91D1\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\n## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_balance \u67E5\u603B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u67E5\u4FDD\u8BC1\u91D1 \u2192 okx_get_positions \u67E5\u6301\u4ED3",
22167
22136
  {
22168
22137
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
22169
22138
  mgnMode: external_exports.enum(["cross", "isolated"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3")
@@ -22248,7 +22217,7 @@ function registerTradingTools(server, auth) {
22248
22217
  "okx_get_orders_pending",
22249
22218
  "\u67E5\u8BE2\u5F53\u524D\u6240\u6709\u672A\u6210\u4EA4\u6302\u5355\u5217\u8868\u3002\u7528\u4E8E\u76D1\u63A7\u672A\u6210\u4EA4\u8BA2\u5355\u3001\u68C0\u67E5\u9650\u4EF7\u5355\u662F\u5426\u4ECD\u5728\u961F\u5217\u4E2D\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22250
22219
  {
22251
- instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22220
+ instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22252
22221
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u7CBE\u786E\u7B5B\u9009"),
22253
22222
  ordType: external_exports.enum(["market", "limit", "post_only", "fok", "ioc"]).optional().describe("\u8BA2\u5355\u7C7B\u578B\u7B5B\u9009")
22254
22223
  },
@@ -22266,7 +22235,7 @@ function registerTradingTools(server, auth) {
22266
22235
  "okx_get_fills",
22267
22236
  "\u67E5\u8BE2\u6700\u8FD1\u7684\u6210\u4EA4\u660E\u7EC6\uFF08\u9010\u7B14\u6210\u4EA4\uFF09\uFF0C\u542B\u6210\u4EA4\u4EF7\u3001\u6210\u4EA4\u91CF\u548C\u624B\u7EED\u8D39\u3002\u6BD4\u8BA2\u5355\u5386\u53F2\u66F4\u7EC6\u7C92\u5EA6\uFF0C\u53EF\u7528\u4E8E\u7CBE\u786E\u8BA1\u7B97\u5747\u4EF7\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22268
22237
  {
22269
- instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
22238
+ instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
22270
22239
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID"),
22271
22240
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
22272
22241
  },
@@ -22284,7 +22253,7 @@ function registerTradingTools(server, auth) {
22284
22253
  "okx_get_orders_history_archive",
22285
22254
  "\u67E5\u8BE23\u4E2A\u6708\u4EE5\u524D\u7684\u5B8C\u6574\u5386\u53F2\u8BA2\u5355\uFF08\u5F52\u6863\u6570\u636E\uFF09\u3002\u7528\u4E8E\u957F\u671F\u4EA4\u6613\u8BB0\u5F55\u5206\u6790\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22286
22255
  {
22287
- instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).describe("\u4EA7\u54C1\u7C7B\u578B"),
22256
+ instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
22288
22257
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA450")
22289
22258
  },
22290
22259
  async ({ instType, limit }) => {
@@ -22412,7 +22381,7 @@ function registerTradingTools(server, auth) {
22412
22381
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u7CBE\u786E\u8BA1\u7B97\u5386\u53F2\u6210\u4EA4\u5747\u4EF7\u3001\u590D\u76D8\u4EA4\u6613\u8868\u73B0\u3001\u6838\u5BF9\u6210\u4EA4\u8BB0\u5F55
22413
22382
  ## \u5173\u952E\u8BCD\uFF1A\u6210\u4EA4\u5386\u53F2, \u6210\u4EA4\u660E\u7EC6, fills history, \u5386\u53F2\u6210\u4EA4, \u9010\u7B14\u6210\u4EA4\u5386\u53F2
22414
22383
  ## \u53C2\u6570\uFF1A
22415
- ## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002\u53EF\u9009
22384
+ ## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u53EF\u9009
22416
22385
  ## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u53EF\u9009
22417
22386
  ## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100
22418
22387
  ## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09
@@ -22420,7 +22389,7 @@ function registerTradingTools(server, auth) {
22420
22389
  ## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB
22421
22390
  ## \u5173\u8054\uFF1Aokx_get_fills \u67E5\u6700\u8FD1\u6210\u4EA4 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2\u6210\u4EA4 \u2192 okx_get_orders_history \u5BF9\u8D26`,
22422
22391
  {
22423
- instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
22392
+ instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
22424
22393
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
22425
22394
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
22426
22395
  },
@@ -22469,7 +22438,7 @@ function registerAlgoTools(server, auth) {
22469
22438
  "\u67E5\u8BE2\u5F53\u524D\u6302\u5355\u4E2D\u7684\u7B56\u7565\u59D4\u6258\u5355\uFF08\u6B62\u76C8\u6B62\u635F\u3001\u51B0\u5C71\u3001\u65F6\u95F4\u52A0\u6743\u7B49\uFF09\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22470
22439
  {
22471
22440
  ordType: external_exports.enum(["conditional", "oco", "trigger", "move_order_stop", "iceberg", "twap"]).describe("\u7B56\u7565\u7C7B\u578B"),
22472
- instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
22441
+ instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743")
22473
22442
  },
22474
22443
  async ({ ordType, instType }) => {
22475
22444
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22487,7 +22456,7 @@ function registerAlgoTools(server, auth) {
22487
22456
  {
22488
22457
  ordType: external_exports.enum(["conditional", "oco", "trigger", "move_order_stop", "iceberg", "twap"]).describe("\u7B56\u7565\u7C7B\u578B"),
22489
22458
  state: external_exports.enum(["effective", "canceled", "order_failed"]).describe("\u8BA2\u5355\u72B6\u6001"),
22490
- instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
22459
+ instType: external_exports.enum(["SPOT", "MARGIN", "SWAP", "FUTURES", "OPTION"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743")
22491
22460
  },
22492
22461
  async ({ ordType, state, instType }) => {
22493
22462
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22536,7 +22505,7 @@ function registerAlgoTools(server, auth) {
22536
22505
  function registerFundingTools(server, auth) {
22537
22506
  server.tool(
22538
22507
  "okx_get_funding_balance",
22539
- "\u67E5\u8BE2\u8D44\u91D1\u8D26\u6237\uFF08\u975E\u4EA4\u6613\u8D26\u6237\uFF09\u4F59\u989D\uFF0C\u542B\u53EF\u7528\u4F59\u989D\u548C\u51BB\u7ED3\u4F59\u989D\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22508
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u8D26\u6237\uFF08\u975E\u4EA4\u6613\u8D26\u6237\uFF09\u4F59\u989D\uFF0C\u542B\u53EF\u7528\u4F59\u989D\u548C\u51BB\u7ED3\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D44\u91D1\u8D26\u6237\u8D44\u4EA7\u3001\u786E\u8BA4\u662F\u5426\u6709\u8DB3\u591F\u8D44\u91D1\u63D0\u73B0\u3001\u5145\u503C\u524D\u6838\u5BF9\u4F59\u989D\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u91D1\u8D26\u6237, funding balance, \u53EF\u7528\u4F59\u989D, \u51BB\u7ED3\u4F59\u989D, \u63D0\u73B0\u4F59\u989D\n## \u53C2\u6570\uFF1A\n## - ccy: \u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_currencies \u67E5\u5E01\u79CD \u2192 \u672C\u5DE5\u5177\u67E5\u4F59\u989D \u2192 okx_transfer \u5212\u8F6C \u6216 okx_withdrawal \u63D0\u73B0",
22540
22509
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8") },
22541
22510
  async ({ ccy }) => {
22542
22511
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22550,7 +22519,7 @@ function registerFundingTools(server, auth) {
22550
22519
  );
22551
22520
  server.tool(
22552
22521
  "okx_transfer",
22553
- "\u8D26\u6237\u95F4\u8D44\u91D1\u5212\u8F6C\uFF08\u8D44\u91D1\u8D26\u6237 \u2194 \u4EA4\u6613\u8D26\u6237\uFF09\u3002\u26A0\uFE0F \u6B64\u64CD\u4F5C\u4F1A\u79FB\u52A8\u771F\u5B9E\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\u5212\u8F6C\u65B9\u5411\u548C\u91D1\u989D\u3002\u9700\u8981API Key\u9274\u6743\u3002",
22522
+ "## \u529F\u80FD\uFF1A\u8D26\u6237\u95F4\u8D44\u91D1\u5212\u8F6C\uFF08\u8D44\u91D1\u8D26\u6237 \u2194 \u4EA4\u6613\u8D26\u6237\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u8D44\u91D1\u4ECE\u8D44\u91D1\u8D26\u6237\u8F6C\u5230\u4EA4\u6613\u8D26\u6237\u51C6\u5907\u4EA4\u6613\u3001\u6216\u5C06\u76C8\u5229\u8F6C\u56DE\u8D44\u91D1\u8D26\u6237\u63D0\u73B0\n## \u5173\u952E\u8BCD\uFF1A\u5212\u8F6C, transfer, \u8D44\u91D1\u8F6C\u79FB, \u8D26\u6237\u5212\u8F6C, \u8D44\u91D1\u8D26\u6237, \u4EA4\u6613\u8D26\u6237\n## \u53C2\u6570\uFF1A\n## - ccy: \u5212\u8F6C\u5E01\u79CD\n## - amt: \u5212\u8F6C\u6570\u91CF\n## - from: \u8F6C\u51FA\u8D26\u6237\uFF1A6=\u8D44\u91D1\u8D26\u6237\uFF0C18=\u4EA4\u6613\u8D26\u6237\n## - to: \u8F6C\u5165\u8D26\u6237\uFF1A6=\u8D44\u91D1\u8D26\u6237\uFF0C18=\u4EA4\u6613\u8D26\u6237\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\u5212\u8F6C\u65B9\u5411\u548C\u91D1\u989D\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u5212\u8F6C\u64CD\u4F5C\u79FB\u52A8\u771F\u5B9E\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_funding_balance \u67E5\u8D44\u91D1\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u5212\u8F6C \u2192 okx_get_balance \u786E\u8BA4\u5230\u8D26",
22554
22523
  {
22555
22524
  ccy: external_exports.string().describe("\u5212\u8F6C\u5E01\u79CD"),
22556
22525
  amt: external_exports.string().describe("\u5212\u8F6C\u6570\u91CF"),
@@ -22569,7 +22538,7 @@ function registerFundingTools(server, auth) {
22569
22538
  );
22570
22539
  server.tool(
22571
22540
  "okx_get_currencies",
22572
- "\u83B7\u53D6OKX\u652F\u6301\u7684\u6240\u6709\u5E01\u79CD\u5217\u8868\uFF0C\u542B\u5145\u503C/\u63D0\u73B0\u662F\u5426\u5F00\u653E\u3001\u6700\u5C0F\u63D0\u73B0\u91CF\u3001\u624B\u7EED\u8D39\u7B49\u4FE1\u606F\u3002\u5145\u503C\u524D\u5EFA\u8BAE\u5148\u67E5\u8BE2\u786E\u8BA4\u7F51\u7EDC\u72B6\u6001\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22541
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u652F\u6301\u7684\u6240\u6709\u5E01\u79CD\u5217\u8868\uFF0C\u542B\u5145\u503C/\u63D0\u73B0\u662F\u5426\u5F00\u653E\u3001\u6700\u5C0F\u63D0\u73B0\u91CF\u3001\u624B\u7EED\u8D39\u7B49\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5145\u503C\u524D\u786E\u8BA4\u7F51\u7EDC\u72B6\u6001\u3001\u5224\u65AD\u67D0\u5E01\u79CD\u662F\u5426\u53EF\u63D0\u73B0\u3001\u4E86\u89E3\u6700\u5C0F\u63D0\u73B0\u9650\u989D\n## \u5173\u952E\u8BCD\uFF1A\u5E01\u79CD\u5217\u8868, currencies, \u5145\u503C, \u63D0\u73B0, \u7F51\u7EDC, \u624B\u7EED\u8D39, \u6700\u5C0F\u63D0\u73B0\n## \u53C2\u6570\uFF1A\n## - ccy: \u6307\u5B9A\u5E01\u79CD\uFF0C\u5982 BTC\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5E01\u79CD \u2192 okx_get_deposit_address \u83B7\u53D6\u5145\u503C\u5730\u5740 \u2192 okx_get_deposit_history \u67E5\u5145\u503C\u8BB0\u5F55",
22573
22542
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u5982 BTC\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
22574
22543
  async ({ ccy }) => {
22575
22544
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22583,7 +22552,7 @@ function registerFundingTools(server, auth) {
22583
22552
  );
22584
22553
  server.tool(
22585
22554
  "okx_get_deposit_address",
22586
- "\u83B7\u53D6\u6307\u5B9A\u5E01\u79CD\u7684\u5145\u503C\u5730\u5740\uFF08\u542B\u7F51\u7EDC/\u94FE\u4FE1\u606F\uFF09\u3002\u26A0\uFE0F \u8BF7\u5411\u7528\u6237\u5C55\u793A\u5B8C\u6574\u5730\u5740\u548C\u94FE\u540D\u79F0\u540E\u518D\u64CD\u4F5C\uFF0C\u5145\u9519\u94FE\u4E0D\u53EF\u9006\u3002\u9700\u8981API Key\u9274\u6743\u3002",
22555
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u5B9A\u5E01\u79CD\u7684\u5145\u503C\u5730\u5740\uFF08\u542B\u7F51\u7EDC/\u94FE\u4FE1\u606F\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u83B7\u53D6USDT/BTC/ETH\u7B49\u5E01\u79CD\u7684\u5145\u503C\u5730\u5740\u3001\u786E\u8BA4\u94FE\u540D\u79F0\uFF08ERC20/TRC20\u7B49\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u5145\u503C\u5730\u5740, deposit address, \u5145\u5E01\u5730\u5740, \u5165\u91D1, \u94FE\u540D\u79F0\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3001ETH\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\uFF08\u4F46\u9700\u63D0\u9192\u7528\u6237\u6838\u5BF9\u94FE\u540D\u79F0\uFF0C\u5145\u9519\u94FE\u4E0D\u53EF\u9006\uFF09\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_currencies \u786E\u8BA4\u5E01\u79CD\u53EF\u7528 \u2192 \u672C\u5DE5\u5177\u83B7\u53D6\u5730\u5740 \u2192 okx_get_deposit_history \u8FFD\u8E2A\u5230\u8D26",
22587
22556
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3001ETH") },
22588
22557
  async ({ ccy }) => {
22589
22558
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22597,7 +22566,7 @@ function registerFundingTools(server, auth) {
22597
22566
  );
22598
22567
  server.tool(
22599
22568
  "okx_get_deposit_history",
22600
- "\u67E5\u8BE2\u5145\u503C\u8BB0\u5F55\uFF0C\u542B\u72B6\u6001\uFF08\u5F85\u786E\u8BA4/\u6210\u529F/\u5931\u8D25\uFF09\u3001\u5230\u8D26\u6570\u91CF\u548C\u4EA4\u6613\u54C8\u5E0C\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22569
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5145\u503C\u8BB0\u5F55\uFF0C\u542B\u72B6\u6001\uFF08\u5F85\u786E\u8BA4/\u6210\u529F/\u5931\u8D25\uFF09\u3001\u5230\u8D26\u6570\u91CF\u548C\u4EA4\u6613\u54C8\u5E0C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u5145\u503C\u662F\u5426\u5230\u8D26\u3001\u6838\u5BF9\u5145\u503C\u91D1\u989D\u3001\u6392\u67E5\u5145\u503C\u5931\u8D25\u539F\u56E0\n## \u5173\u952E\u8BCD\uFF1A\u5145\u503C\u8BB0\u5F55, deposit history, \u5145\u5E01\u5386\u53F2, \u5165\u91D1\u8BB0\u5F55, \u5230\u8D26\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_deposit_address \u83B7\u53D6\u5730\u5740 \u2192 \u5145\u503C\u540E \u2192 \u672C\u5DE5\u5177\u8FFD\u8E2A\u5230\u8D26\u72B6\u6001",
22601
22570
  {
22602
22571
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22603
22572
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -22614,7 +22583,7 @@ function registerFundingTools(server, auth) {
22614
22583
  );
22615
22584
  server.tool(
22616
22585
  "okx_get_withdrawal_history",
22617
- "\u67E5\u8BE2\u63D0\u73B0\u8BB0\u5F55\uFF0C\u542B\u63D0\u73B0\u72B6\u6001\u3001\u624B\u7EED\u8D39\u548C\u94FE\u4E0A\u4EA4\u6613\u54C8\u5E0C\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22586
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u63D0\u73B0\u8BB0\u5F55\uFF0C\u542B\u63D0\u73B0\u72B6\u6001\u3001\u624B\u7EED\u8D39\u548C\u94FE\u4E0A\u4EA4\u6613\u54C8\u5E0C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u63D0\u73B0\u8FDB\u5EA6\u3001\u6838\u5BF9\u63D0\u73B0\u91D1\u989D\u3001\u67E5\u8BE2\u94FE\u4E0A\u4EA4\u6613\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u63D0\u73B0\u8BB0\u5F55, withdrawal history, \u51FA\u91D1\u5386\u53F2, \u63D0\u5E01\u8BB0\u5F55, \u94FE\u4E0A\u54C8\u5E0C\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_withdrawal \u63D0\u73B0 \u2192 \u672C\u5DE5\u5177\u8FFD\u8E2A\u63D0\u73B0\u72B6\u6001 \u2192 okx_get_funding_balance \u786E\u8BA4\u4F59\u989D\u53D8\u5316",
22618
22587
  {
22619
22588
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22620
22589
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -22631,20 +22600,7 @@ function registerFundingTools(server, auth) {
22631
22600
  );
22632
22601
  server.tool(
22633
22602
  "okx_withdrawal",
22634
- `## \u529F\u80FD\uFF1A\u63D0\u5E01\u5230\u5916\u90E8\u5730\u5740
22635
- ## \u573A\u666F\uFF1A\u5C06\u8D44\u4EA7\u4ECEOKX\u63D0\u73B0\u5230\u5916\u90E8\u94B1\u5305\u6216\u4EA4\u6613\u6240
22636
- ## \u5173\u952E\u8BCD\uFF1A\u63D0\u5E01, \u63D0\u73B0, withdrawal, \u51FA\u91D1, \u8F6C\u51FA
22637
- ## \u53C2\u6570\uFF1A
22638
- ## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B
22639
- ## - amt: \u63D0\u5E01\u6570\u91CF\u3002\u5FC5\u586B
22640
- ## - dest: \u63D0\u5E01\u65B9\u5F0F\u30023=\u5185\u90E8\u8F6C\u8D26, 4=\u94FE\u4E0A\u63D0\u5E01\u3002\u5FC5\u586B
22641
- ## - toAddr: \u76EE\u6807\u5730\u5740\u3002\u94FE\u4E0A\u63D0\u5E01\u5FC5\u586B
22642
- ## - chain: \u94FE\u540D\u79F0\uFF0C\u5982 USDT-TRC20\u3002\u94FE\u4E0A\u63D0\u5E01\u5FC5\u586B
22643
- ## - fee: \u624B\u7EED\u8D39\u3002\u53EF\u9009
22644
- ## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u63D0\u73B0\uFF09- \u8C03\u7528\u524D\u5FC5\u987B\u4E8C\u6B21\u786E\u8BA4
22645
- ## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u63D0\u5E01\u64CD\u4F5C\u76F4\u63A5\u8F6C\u51FA\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u4E8C\u6B21\u786E\u8BA4
22646
- ## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B
22647
- ## \u5173\u8054\uFF1Aokx_get_currencies \u67E5\u652F\u6301\u5E01\u79CD \u2192 okx_get_funding_balance \u786E\u8BA4\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u63D0\u5E01`,
22603
+ "## \u529F\u80FD\uFF1A\u63D0\u5E01\u5230\u5916\u90E8\u5730\u5740\n## \u573A\u666F\uFF1A\u5C06\u8D44\u4EA7\u4ECEOKX\u63D0\u73B0\u5230\u5916\u90E8\u94B1\u5305\u6216\u4EA4\u6613\u6240\n## \u5173\u952E\u8BCD\uFF1A\u63D0\u5E01, \u63D0\u73B0, withdrawal, \u51FA\u91D1, \u8F6C\u51FA\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B\n## - amt: \u63D0\u5E01\u6570\u91CF\u3002\u5FC5\u586B\n## - dest: \u63D0\u5E01\u65B9\u5F0F\u30023=\u5185\u90E8\u8F6C\u8D26, 4=\u94FE\u4E0A\u63D0\u5E01\u3002\u5FC5\u586B\n## - toAddr: \u76EE\u6807\u5730\u5740\u3002\u94FE\u4E0A\u63D0\u5E01\u5FC5\u586B\n## - chain: \u94FE\u540D\u79F0\uFF0C\u5982 USDT-TRC20\u3002\u94FE\u4E0A\u63D0\u5E01\u5FC5\u586B\n## - fee: \u624B\u7EED\u8D39\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u63D0\u73B0\uFF09- \u8C03\u7528\u524D\u5FC5\u987B\u4E8C\u6B21\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u63D0\u5E01\u64CD\u4F5C\u76F4\u63A5\u8F6C\u51FA\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u4E8C\u6B21\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_currencies \u67E5\u652F\u6301\u5E01\u79CD \u2192 okx_get_funding_balance \u786E\u8BA4\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u63D0\u5E01",
22648
22604
  {
22649
22605
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B"),
22650
22606
  amt: external_exports.string().describe("\u63D0\u5E01\u6570\u91CF\u3002\u5FC5\u586B"),
@@ -22673,7 +22629,7 @@ function registerFundingTools(server, auth) {
22673
22629
  function registerStatsTools(server) {
22674
22630
  server.tool(
22675
22631
  "okx_get_long_short_ratio",
22676
- "\u83B7\u53D6\u5408\u7EA6\u591A\u7A7A\u8D26\u6237\u6BD4\u4F8B\u3002\u6BD4\u503C > 1 \u8BF4\u660E\u591A\u5934\u8D26\u6237\u66F4\u591A\uFF0C\u6781\u7AEF\u503C\uFF08> 3 \u6216 < 0.3\uFF09\u5F80\u5F80\u662F\u5E02\u573A\u60C5\u7EEA\u8FC7\u70ED\u7684\u4FE1\u53F7\uFF0C\u53EF\u80FD\u5373\u5C06\u53CD\u8F6C\u3002",
22632
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u591A\u7A7A\u8D26\u6237\u6BD4\u4F8B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u5E02\u573A\u60C5\u7EEA\uFF08\u6BD4\u503C>1\u591A\u5934\u591A\uFF0C>3\u6216<0.3\u5F80\u5F80\u662F\u53CD\u8F6C\u4FE1\u53F7\uFF09\u3001\u7ED3\u5408\u4EF7\u683C\u65B9\u5411\u505A\u51B3\u7B56\n## \u5173\u952E\u8BCD\uFF1A\u591A\u7A7A\u6BD4, long short ratio, \u5E02\u573A\u60C5\u7EEA, \u6563\u6237\u60C5\u7EEA, \u591A\u7A7A\u8D26\u6237\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_top_trader_long_short_ratio \u770B\u5927\u6237 \u2192 \u672C\u5DE5\u5177\u770B\u6563\u6237 \u2192 \u5BF9\u6BD4\u80CC\u79BB\u4FE1\u53F7",
22677
22633
  {
22678
22634
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
22679
22635
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -22682,7 +22638,11 @@ function registerStatsTools(server) {
22682
22638
  async ({ ccy, begin, end }) => {
22683
22639
  try {
22684
22640
  const data = await publicApi.getLongShortRatio(ccy, begin, end);
22685
- return toResult(data);
22641
+ const enriched = data.map((item) => ({
22642
+ ...item,
22643
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
22644
+ }));
22645
+ return toResult(enriched);
22686
22646
  } catch (e) {
22687
22647
  return toError(e);
22688
22648
  }
@@ -22690,7 +22650,7 @@ function registerStatsTools(server) {
22690
22650
  );
22691
22651
  server.tool(
22692
22652
  "okx_get_taker_volume",
22693
- "\u83B7\u53D6\u4E3B\u52A8\u4E70\u5356\u91CF\u7EDF\u8BA1\u3002\u4E3B\u52A8\u4E70\u91CF\u6301\u7EED\u5927\u4E8E\u4E3B\u52A8\u5356\u91CF\u8BF4\u660E\u5E02\u573A\u60C5\u7EEA\u504F\u591A\uFF1B\u7528\u4E8E\u5224\u65AD\u8D44\u91D1\u6D41\u5411\u548C\u8D8B\u52BF\u5F3A\u5EA6\u3002",
22653
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E3B\u52A8\u4E70\u5356\u91CF\u7EDF\u8BA1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u8D44\u91D1\u6D41\u5411\uFF08\u4E3B\u52A8\u4E70\u91CF>\u5356\u91CF=\u591A\u5934\uFF09\u3001\u5206\u6790\u8D8B\u52BF\u5F3A\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u4E3B\u52A8\u4E70\u5356\u91CF, taker volume, \u8D44\u91D1\u6D41\u5411, \u4E70\u5356\u529B\u91CF, \u4E3B\u52A8\u6027\u4E70\u76D8\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, CONTRACTS=\u5408\u7EA6\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_taker_flow \u770BTaker\u6D41\u5411 \u2192 \u672C\u5DE5\u5177\u770B\u6210\u4EA4\u91CF \u2192 \u7ED3\u5408 okx_get_ticker \u5224\u65AD\u8D8B\u52BF",
22694
22654
  {
22695
22655
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC"),
22696
22656
  instType: external_exports.enum(["SPOT", "CONTRACTS"]).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -22700,7 +22660,11 @@ function registerStatsTools(server) {
22700
22660
  async ({ ccy, instType, begin, end }) => {
22701
22661
  try {
22702
22662
  const data = await publicApi.getTakerVolume(ccy, instType, begin, end);
22703
- return toResult(data);
22663
+ const enriched = data.map((item) => ({
22664
+ ...item,
22665
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
22666
+ }));
22667
+ return toResult(enriched);
22704
22668
  } catch (e) {
22705
22669
  return toError(e);
22706
22670
  }
@@ -22708,7 +22672,7 @@ function registerStatsTools(server) {
22708
22672
  );
22709
22673
  server.tool(
22710
22674
  "okx_get_open_interest_volume",
22711
- "\u83B7\u53D6\u6301\u4ED3\u91CF\u4E0E\u6210\u4EA4\u91CF\u7EDF\u8BA1\u3002\u6301\u4ED3\u91CF/\u6210\u4EA4\u91CF\u6BD4\u503C\u4E0A\u5347\u8BF4\u660E\u6295\u673A\u6027\u589E\u52A0\uFF1B\u7ED3\u5408\u4EF7\u683C\u65B9\u5411\u53EF\u5224\u65AD\u8D8B\u52BF\u662F\u5426\u53EF\u6301\u7EED\u3002",
22675
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u6301\u4ED3\u91CF\u4E0E\u6210\u4EA4\u91CF\u7EDF\u8BA1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u6295\u673A\u6D3B\u8DC3\u5EA6\uFF08\u6301\u4ED3\u91CF/\u6210\u4EA4\u91CF\u6BD4\u503C\u4E0A\u5347=\u6295\u673A\u589E\u52A0\uFF09\u3001\u9A8C\u8BC1\u8D8B\u52BF\u53EF\u6301\u7EED\u6027\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u6210\u4EA4\u6BD4, open interest volume, \u6295\u673A\u5EA6, \u91CF\u4ED3\u5173\u7CFB, OI\u6BD4\u7387\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_open_interest \u67E5\u5F53\u524D\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2\u91CF\u4ED3\u5173\u7CFB \u2192 \u5224\u65AD\u8D8B\u52BF\u662F\u5426\u5065\u5EB7",
22712
22676
  {
22713
22677
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC"),
22714
22678
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -22717,7 +22681,11 @@ function registerStatsTools(server) {
22717
22681
  async ({ ccy, begin, end }) => {
22718
22682
  try {
22719
22683
  const data = await publicApi.getOpenInterestVolume(ccy, begin, end);
22720
- return toResult(data);
22684
+ const enriched = data.map((item) => ({
22685
+ ...item,
22686
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
22687
+ }));
22688
+ return toResult(enriched);
22721
22689
  } catch (e) {
22722
22690
  return toError(e);
22723
22691
  }
@@ -22725,12 +22693,16 @@ function registerStatsTools(server) {
22725
22693
  );
22726
22694
  server.tool(
22727
22695
  "okx_get_margin_lending_ratio",
22728
- "\u83B7\u53D6\u6760\u6746\u501F\u5E01\u5229\u7387\u53CA\u501F\u5E01\u91CF\u3002\u501F\u5E01\u91CF\u5FEB\u901F\u589E\u52A0\u8BF4\u660E\u6295\u673A\u6027\u6760\u6746\u5728\u79EF\u7D2F\uFF0C\u662F\u77ED\u671F\u884C\u60C5\u52A0\u901F\u7684\u5148\u884C\u6307\u6807\u3002",
22696
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u6760\u6746\u501F\u5E01\u5229\u7387\u53CA\u501F\u5E01\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u6760\u6746\u6295\u673A\u70ED\u5EA6\uFF08\u501F\u5E01\u91CF\u589E\u52A0=\u6760\u6746\u5728\u79EF\u7D2F\uFF09\u3001\u77ED\u671F\u884C\u60C5\u52A0\u901F\u7684\u5148\u884C\u6307\u6807\n## \u5173\u952E\u8BCD\uFF1A\u6760\u6746\u501F\u5E01, margin lending, \u501F\u5E01\u5229\u7387, \u6760\u6746\u7387, \u4FDD\u8BC1\u91D1\u501F\u8D37\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_lending_rate_summary \u770B\u5E02\u573A\u5229\u7387 \u2192 \u672C\u5DE5\u5177\u770B\u501F\u5E01\u91CF\u8D8B\u52BF \u2192 \u5224\u65AD\u6760\u6746\u6C34\u5E73",
22729
22697
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT") },
22730
22698
  async ({ ccy }) => {
22731
22699
  try {
22732
22700
  const data = await publicApi.getLendingRateHistory(ccy);
22733
- return toResult(data);
22701
+ const enriched = data.map((item) => ({
22702
+ ...item,
22703
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
22704
+ }));
22705
+ return toResult(enriched);
22734
22706
  } catch (e) {
22735
22707
  return toError(e);
22736
22708
  }
@@ -22738,7 +22710,7 @@ function registerStatsTools(server) {
22738
22710
  );
22739
22711
  server.tool(
22740
22712
  "okx_get_stats_support_coin",
22741
- "\u83B7\u53D6\u4EA4\u6613\u5927\u6570\u636E\u6A21\u5757\u652F\u6301\u67E5\u8BE2\u7684\u6240\u6709\u5E01\u79CD\u5217\u8868\u3002\u5728\u8C03\u7528\u5176\u4ED6\u4EA4\u6613\u5927\u6570\u636E\u63A5\u53E3\u524D\uFF0C\u53EF\u5148\u67E5\u8BE2\u6B64\u63A5\u53E3\u786E\u8BA4\u5E01\u79CD\u53EF\u7528\u3002",
22713
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA4\u6613\u5927\u6570\u636E\u6A21\u5757\u652F\u6301\u67E5\u8BE2\u7684\u6240\u6709\u5E01\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5728\u8C03\u7528\u5176\u4ED6\u4EA4\u6613\u5927\u6570\u636E\u63A5\u53E3\u524D\u786E\u8BA4\u5E01\u79CD\u53EF\u7528\u3001\u907F\u514D\u67E5\u8BE2\u4E0D\u652F\u6301\u7684\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u652F\u6301\u5E01\u79CD, support coin, \u6570\u636E\u53EF\u7528\u5E01\u79CD, \u7EDF\u8BA1\u5E01\u79CD\u5217\u8868\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u53EF\u7528\u5E01\u79CD \u2192 okx_get_long_short_ratio \u7B49\u591A\u7A7A\u6BD4\u7C7B\u5DE5\u5177",
22742
22714
  {},
22743
22715
  async () => {
22744
22716
  try {
@@ -22751,7 +22723,7 @@ function registerStatsTools(server) {
22751
22723
  );
22752
22724
  server.tool(
22753
22725
  "okx_get_top_trader_long_short_ratio",
22754
- "\u83B7\u53D6\u7CBE\u82F1\u4EA4\u6613\u5458\u591A\u7A7A\u6301\u4ED3\u6BD4\u4F8B\uFF08\u4EC5\u7EDF\u8BA1\u524D5%\u5927\u6237\uFF09\u3002\u5927\u6237\u7684\u4ED3\u4F4D\u6BD4\u6563\u6237\u66F4\u5177\u9884\u6D4B\u4EF7\u503C\uFF0C\u80CC\u79BB\u65F6\u5F80\u5F80\u662F\u9006\u52BF\u4FE1\u53F7\u3002",
22726
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u7CBE\u82F1\u4EA4\u6613\u5458\u591A\u7A7A\u6301\u4ED3\u6BD4\u4F8B\uFF08\u4EC5\u7EDF\u8BA1\u524D5%\u5927\u6237\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u5927\u6237\u6301\u4ED3\u65B9\u5411\uFF08\u6BD4\u6563\u6237\u6570\u636E\u66F4\u5177\u9884\u6D4B\u4EF7\u503C\uFF09\u3001\u6563\u6237\u4E0E\u5927\u6237\u80CC\u79BB\u65F6\u5F80\u5F80\u662F\u9006\u52BF\u4FE1\u53F7\n## \u5173\u952E\u8BCD\uFF1A\u5927\u6237\u591A\u7A7A\u6BD4, top trader ratio, \u7CBE\u82F1\u4EA4\u6613\u5458, \u806A\u660E\u94B1, \u5927\u6237\u6301\u4ED3\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3001ETH-USDT-SWAP\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_long_short_ratio \u770B\u6563\u6237 \u2192 \u672C\u5DE5\u5177\u770B\u5927\u6237 \u2192 \u5BF9\u6BD4\u627E\u5230\u80CC\u79BB \u2192 \u9006\u52BF\u4EA4\u6613\u4FE1\u53F7",
22755
22727
  {
22756
22728
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3001ETH-USDT-SWAP"),
22757
22729
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -22760,7 +22732,11 @@ function registerStatsTools(server) {
22760
22732
  async ({ instId, begin, end }) => {
22761
22733
  try {
22762
22734
  const data = await publicApi.getTopTraderLongShortRatio(instId, begin, end);
22763
- return toResult(data);
22735
+ const enriched = data.map((item) => ({
22736
+ ...item,
22737
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
22738
+ }));
22739
+ return toResult(enriched);
22764
22740
  } catch (e) {
22765
22741
  return toError(e);
22766
22742
  }
@@ -22768,7 +22744,7 @@ function registerStatsTools(server) {
22768
22744
  );
22769
22745
  server.tool(
22770
22746
  "okx_get_put_call_ratio",
22771
- "\u83B7\u53D6\u671F\u6743Put/Call\u6BD4\uFF08\u672A\u5E73\u4ED3\u91CF\u548C\u6210\u4EA4\u91CF\uFF09\u3002Put/Call > 1 \u8868\u793A\u5E02\u573A\u504F\u5411\u770B\u8DCC\uFF0C\u662F\u8861\u91CF\u671F\u6743\u5E02\u573A\u60C5\u7EEA\u7684\u7ECF\u5178\u6307\u6807\u3002",
22747
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743Put/Call\u6BD4\uFF08\u672A\u5E73\u4ED3\u91CF\u548C\u6210\u4EA4\u91CF\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8861\u91CF\u671F\u6743\u5E02\u573A\u60C5\u7EEA\uFF08Put/Call>1=\u770B\u8DCC\uFF09\u3001\u5224\u65AD\u5E02\u573A\u98CE\u9669\u504F\u597D\n## \u5173\u952E\u8BCD\uFF1APut/Call\u6BD4, put call ratio, \u671F\u6743\u60C5\u7EEA, \u770B\u8DCC\u770B\u6DA8\u6BD4, PCR\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_opt_summary \u770B\u671F\u6743\u6982\u89C8 \u2192 \u672C\u5DE5\u5177\u770BPut/Call\u6BD4 \u2192 \u5224\u65AD\u5E02\u573A\u591A\u7A7A\u60C5\u7EEA",
22772
22748
  {
22773
22749
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
22774
22750
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -22777,7 +22753,11 @@ function registerStatsTools(server) {
22777
22753
  async ({ ccy, begin, end }) => {
22778
22754
  try {
22779
22755
  const data = await publicApi.getOptionPutCallRatio(ccy, begin, end);
22780
- return toResult(data);
22756
+ const enriched = data.map((item) => ({
22757
+ ...item,
22758
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
22759
+ }));
22760
+ return toResult(enriched);
22781
22761
  } catch (e) {
22782
22762
  return toError(e);
22783
22763
  }
@@ -22785,7 +22765,7 @@ function registerStatsTools(server) {
22785
22765
  );
22786
22766
  server.tool(
22787
22767
  "okx_get_lending_rate_summary",
22788
- "\u83B7\u53D6\u6D3B\u671F\u501F\u5E01\u5F53\u524D\u5E02\u573A\u5229\u7387\u6C47\u603B\uFF08\u516C\u5F00\u6570\u636E\uFF0C\u65E0\u9700API Key\uFF09\u3002\u7528\u4E8E\u5224\u65AD\u501F\u8D37\u6210\u672C\uFF0C\u6216\u5BFB\u627E\u95F2\u7F6E\u8D44\u91D1\u7684\u6700\u4F18\u51FA\u501F\u5229\u7387\u3002",
22768
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u6D3B\u671F\u501F\u5E01\u5F53\u524D\u5E02\u573A\u5229\u7387\u6C47\u603B\uFF08\u516C\u5F00\u6570\u636E\uFF0C\u65E0\u9700API Key\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u501F\u8D37\u6210\u672C\u3001\u5BFB\u627E\u95F2\u7F6E\u8D44\u91D1\u7684\u6700\u4F18\u51FA\u501F\u5229\u7387\u3001\u6BD4\u8F83\u5404\u5E01\u79CD\u501F\u8D37\u5229\u7387\n## \u5173\u952E\u8BCD\uFF1A\u501F\u5E01\u5229\u7387, lending rate, \u501F\u8D37\u6210\u672C, \u51FA\u501F\u5229\u7387, \u5E02\u573A\u5229\u7387\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5E02\u573A\u5229\u7387 \u2192 okx_get_margin_lending_ratio \u770B\u501F\u5E01\u91CF \u2192 \u5224\u65AD\u6760\u6746\u70ED\u5EA6",
22789
22769
  { ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
22790
22770
  async ({ ccy }) => {
22791
22771
  try {
@@ -22802,7 +22782,7 @@ function registerStatsTools(server) {
22802
22782
  function registerSubAccountTools(server, auth) {
22803
22783
  server.tool(
22804
22784
  "okx_list_subaccounts",
22805
- "\u83B7\u53D6\u6240\u6709\u5B50\u8D26\u6237\u5217\u8868\u53CA\u5176\u72B6\u6001\u3002\u7528\u4E8E\u591A\u7B56\u7565\u8D26\u6237\u7BA1\u7406\uFF0C\u67E5\u770B\u5404\u5B50\u8D26\u6237\u7684\u542F\u7528\u72B6\u6001\u3002\u26A0\uFE0F \u9700\u8981\u4E3B\u8D26\u6237API Key\u9274\u6743\u3002",
22785
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u6240\u6709\u5B50\u8D26\u6237\u5217\u8868\u53CA\u5176\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u591A\u7B56\u7565\u8D26\u6237\u7BA1\u7406\u3001\u67E5\u770B\u5404\u5B50\u8D26\u6237\u7684\u542F\u7528\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237, subaccounts, \u591A\u8D26\u6237, \u5B50\u8D26\u53F7, \u8D26\u6237\u7BA1\u7406\n## \u53C2\u6570\uFF1A\n## - enable: \u7B5B\u9009\u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u5B50\u8D26\u6237\u5217\u8868 \u2192 okx_get_subaccount_balance \u67E5\u4F59\u989D \u2192 okx_transfer_subaccount \u5212\u8F6C",
22806
22786
  {
22807
22787
  enable: external_exports.boolean().optional().describe("\u7B5B\u9009\u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
22808
22788
  },
@@ -22818,7 +22798,7 @@ function registerSubAccountTools(server, auth) {
22818
22798
  );
22819
22799
  server.tool(
22820
22800
  "okx_get_subaccount_balance",
22821
- "\u67E5\u8BE2\u6307\u5B9A\u5B50\u8D26\u6237\u7684\u4EA4\u6613\u8D26\u6237\u4F59\u989D\u3002\u7528\u4E8E\u76D1\u63A7\u5404\u7B56\u7565\u8D26\u6237\u7684\u8D44\u91D1\u72B6\u51B5\u3002\u26A0\uFE0F \u9700\u8981\u4E3B\u8D26\u6237API Key\u9274\u6743\u3002",
22801
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u5B50\u8D26\u6237\u7684\u4EA4\u6613\u8D26\u6237\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u76D1\u63A7\u5404\u7B56\u7565\u8D26\u6237\u7684\u8D44\u91D1\u72B6\u51B5\u3001\u6838\u5BF9\u5B50\u8D26\u6237\u8D44\u4EA7\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u4F59\u989D, subaccount balance, \u5B50\u8D26\u53F7\u8D44\u4EA7, \u7B56\u7565\u8D26\u6237\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1Aokx_list_subaccounts \u83B7\u53D6\u5B50\u8D26\u6237\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u4F59\u989D \u2192 okx_transfer_subaccount \u5212\u8F6C",
22822
22802
  {
22823
22803
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0")
22824
22804
  },
@@ -22834,7 +22814,7 @@ function registerSubAccountTools(server, auth) {
22834
22814
  );
22835
22815
  server.tool(
22836
22816
  "okx_transfer_subaccount",
22837
- "\u4E3B\u5B50\u8D26\u6237\u95F4\u8D44\u91D1\u5212\u8F6C\u3002\u26A0\uFE0F \u6B64\u64CD\u4F5C\u4F1A\u79FB\u52A8\u771F\u5B9E\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\u5212\u8F6C\u65B9\u5411\u548C\u91D1\u989D\u3002\u9700\u8981\u4E3B\u8D26\u6237API Key\u9274\u6743\u3002",
22817
+ "## \u529F\u80FD\uFF1A\u4E3B\u5B50\u8D26\u6237\u95F4\u8D44\u91D1\u5212\u8F6C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u8D44\u91D1\u4ECE\u4E3B\u8D26\u6237\u5206\u914D\u5230\u5404\u7B56\u7565\u5B50\u8D26\u6237\u3001\u6216\u5C06\u76C8\u5229\u4ECE\u5B50\u8D26\u6237\u8F6C\u56DE\u4E3B\u8D26\u6237\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u5212\u8F6C, transfer subaccount, \u5B50\u8D26\u6237\u8F6C\u8D26, \u8D26\u6237\u95F4\u8F6C\u8D26\n## \u53C2\u6570\uFF1A\n## - ccy: \u5212\u8F6C\u5E01\u79CD\n## - amt: \u5212\u8F6C\u6570\u91CF\n## - from: \u8F6C\u51FA\u8D26\u6237\u7C7B\u578B\uFF1A6=\u8D44\u91D1\u8D26\u6237\uFF0C18=\u4EA4\u6613\u8D26\u6237\n## - to: \u8F6C\u5165\u8D26\u6237\u7C7B\u578B\uFF1A6=\u8D44\u91D1\u8D26\u6237\uFF0C18=\u4EA4\u6613\u8D26\u6237\n## - fromSubAccount: \u8F6C\u51FA\u5B50\u8D26\u6237\u540D\uFF0C\u4E0D\u586B\u5219\u4E3A\u4E3B\u8D26\u6237\n## - toSubAccount: \u8F6C\u5165\u5B50\u8D26\u6237\u540D\uFF0C\u4E0D\u586B\u5219\u4E3A\u4E3B\u8D26\u6237\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\u5212\u8F6C\u65B9\u5411\u548C\u91D1\u989D\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u5212\u8F6C\u64CD\u4F5C\u79FB\u52A8\u771F\u5B9E\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_list_subaccounts \u83B7\u53D6\u5B50\u8D26\u6237 \u2192 okx_get_subaccount_balance \u786E\u8BA4\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u5212\u8F6C",
22838
22818
  {
22839
22819
  ccy: external_exports.string().describe("\u5212\u8F6C\u5E01\u79CD"),
22840
22820
  amt: external_exports.string().describe("\u5212\u8F6C\u6570\u91CF"),
@@ -22862,7 +22842,7 @@ function registerSubAccountTools(server, auth) {
22862
22842
  function registerFinanceTools(server, auth) {
22863
22843
  server.tool(
22864
22844
  "okx_get_savings_balance",
22865
- "\u67E5\u8BE2\u6D3B\u671F\u8D5A\u5E01\uFF08\u7B80\u5355\u8D5A\u5E01\uFF09\u7684\u6301\u4ED3\u4F59\u989D\uFF0C\u542B\u5F53\u524D\u5E74\u5316\u5229\u7387\u3002\u7528\u4E8E\u4E86\u89E3\u8D44\u91D1\u5229\u7528\u6548\u7387\uFF0C\u5224\u65AD\u662F\u5426\u503C\u5F97\u628A\u95F2\u7F6EUSDT\u653E\u5165\u8D5A\u5E01\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22845
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6D3B\u671F\u8D5A\u5E01\uFF08\u7B80\u5355\u8D5A\u5E01\uFF09\u7684\u6301\u4ED3\u4F59\u989D\uFF0C\u542B\u5F53\u524D\u5E74\u5316\u5229\u7387\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u8D44\u91D1\u5229\u7528\u6548\u7387\u3001\u5224\u65AD\u662F\u5426\u503C\u5F97\u628A\u95F2\u7F6EUSDT\u653E\u5165\u8D5A\u5E01\u3001\u76D1\u63A7\u6D3B\u671F\u6536\u76CA\n## \u5173\u952E\u8BCD\uFF1A\u6D3B\u671F\u8D5A\u5E01, savings, \u7406\u8D22\u4F59\u989D, \u5E74\u5316\u5229\u7387, \u7075\u6D3B\u7406\u8D22, \u8D5A\u5E01\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u8D5A\u5E01\u4F59\u989D \u2192 okx_get_savings_history \u770B\u6536\u76CA \u2192 \u51B3\u5B9A\u662F\u5426\u8D4E\u56DE",
22866
22846
  {
22867
22847
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
22868
22848
  },
@@ -22878,7 +22858,7 @@ function registerFinanceTools(server, auth) {
22878
22858
  );
22879
22859
  server.tool(
22880
22860
  "okx_get_savings_history",
22881
- "\u67E5\u8BE2\u6D3B\u671F\u8D5A\u5E01\u7684\u5386\u53F2\u6536\u76CA\u8BB0\u5F55\u3002\u7528\u4E8E\u590D\u76D8\u5229\u606F\u6536\u5165\u3001\u8BA1\u7B97\u5B9E\u9645\u5E74\u5316\u6536\u76CA\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22861
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6D3B\u671F\u8D5A\u5E01\u7684\u5386\u53F2\u6536\u76CA\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u5229\u606F\u6536\u5165\u3001\u8BA1\u7B97\u5B9E\u9645\u5E74\u5316\u6536\u76CA\u3001\u5BF9\u8D26\n## \u5173\u952E\u8BCD\uFF1A\u8D5A\u5E01\u6536\u76CA, savings history, \u5229\u606F\u8BB0\u5F55, \u6D3B\u671F\u6536\u76CA, \u7406\u8D22\u6536\u76CA\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_savings_balance \u770B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u770B\u6536\u76CA \u2192 \u8BA1\u7B97\u5B9E\u9645\u5E74\u5316",
22882
22862
  {
22883
22863
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT")
22884
22864
  },
@@ -22894,7 +22874,7 @@ function registerFinanceTools(server, auth) {
22894
22874
  );
22895
22875
  server.tool(
22896
22876
  "okx_get_staking_offers",
22897
- "\u83B7\u53D6\u94FE\u4E0A\u8D28\u62BC\uFF08ETH/SOL/\u7B49\uFF09\u7684\u4EA7\u54C1\u5217\u8868\uFF0C\u542B\u5F53\u524D\u5E74\u5316\u5229\u7387\u548C\u6700\u5C0F\u8D28\u62BC\u91CF\u3002\u7528\u4E8E\u6BD4\u8F83\u4E0D\u540C\u8D28\u62BC\u4EA7\u54C1\u7684\u6536\u76CA\u7387\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22877
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u94FE\u4E0A\u8D28\u62BC\uFF08ETH/SOL/\u7B49\uFF09\u7684\u4EA7\u54C1\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6BD4\u8F83\u4E0D\u540C\u8D28\u62BC\u4EA7\u54C1\u7684\u6536\u76CA\u7387\u3001\u9009\u62E9\u6700\u4F18\u8D28\u62BC\u65B9\u6848\n## \u5173\u952E\u8BCD\uFF1A\u8D28\u62BC\u4EA7\u54C1, staking offers, ETH\u8D28\u62BC, SOL\u8D28\u62BC, \u94FE\u4E0A\u8D28\u62BC, \u5E74\u5316\n## \u53C2\u6570\uFF1A\n## - productId: \u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u6BD4\u8F83\u8D28\u62BC\u4EA7\u54C1 \u2192 okx_get_eth_staking_balance \u6216 okx_get_sol_staking_balance \u770B\u6301\u4ED3",
22898
22878
  {
22899
22879
  productId: external_exports.string().optional().describe("\u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
22900
22880
  },
@@ -22910,7 +22890,7 @@ function registerFinanceTools(server, auth) {
22910
22890
  );
22911
22891
  server.tool(
22912
22892
  "okx_get_eth_staking_balance",
22913
- "\u67E5\u8BE2ETH\u8D28\u62BC\uFF08BETH\uFF09\u6301\u4ED3\u4F59\u989D\uFF0C\u542B\u8D28\u62BC\u603B\u91CF\u3001BETH\u6570\u91CF\u548C\u5F53\u524D\u5E74\u5316\u6536\u76CA\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22893
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2ETH\u8D28\u62BC\uFF08BETH\uFF09\u6301\u4ED3\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770BETH\u8D28\u62BC\u603B\u91CF\u3001BETH\u6570\u91CF\u548C\u5F53\u524D\u5E74\u5316\u6536\u76CA\n## \u5173\u952E\u8BCD\uFF1AETH\u8D28\u62BC, ETH staking, BETH, \u8D28\u62BC\u4F59\u989D, \u8D28\u62BC\u6536\u76CA\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_staking_offers \u770B\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3 \u2192 okx_get_eth_staking_history \u770B\u64CD\u4F5C\u8BB0\u5F55",
22914
22894
  {},
22915
22895
  async () => {
22916
22896
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22924,7 +22904,7 @@ function registerFinanceTools(server, auth) {
22924
22904
  );
22925
22905
  server.tool(
22926
22906
  "okx_get_eth_staking_history",
22927
- "\u67E5\u8BE2ETH\u8D28\u62BC/\u8D4E\u56DE\u5386\u53F2\u8BB0\u5F55\uFF0C\u542B\u64CD\u4F5C\u65F6\u95F4\u3001\u6570\u91CF\u548C\u72B6\u6001\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22907
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2ETH\u8D28\u62BC/\u8D4E\u56DE\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2AETH\u8D28\u62BC\u548C\u8D4E\u56DE\u64CD\u4F5C\u3001\u6838\u5BF9\u64CD\u4F5C\u65F6\u95F4\u548C\u6570\u91CF\n## \u5173\u952E\u8BCD\uFF1AETH\u8D28\u62BC\u5386\u53F2, staking history, \u8D28\u62BC\u8BB0\u5F55, \u8D4E\u56DE\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_eth_staking_balance \u770B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u770B\u64CD\u4F5C\u8BB0\u5F55 \u2192 \u8BA1\u7B97\u6536\u76CA",
22928
22908
  {
22929
22909
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
22930
22910
  },
@@ -22940,7 +22920,7 @@ function registerFinanceTools(server, auth) {
22940
22920
  );
22941
22921
  server.tool(
22942
22922
  "okx_get_sol_staking_balance",
22943
- "\u67E5\u8BE2SOL\u8D28\u62BC\u6301\u4ED3\u4F59\u989D\uFF0C\u542B\u8D28\u62BC\u603B\u91CF\u548C\u5F53\u524D\u5E74\u5316\u6536\u76CA\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22923
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2SOL\u8D28\u62BC\u6301\u4ED3\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770BSOL\u8D28\u62BC\u603B\u91CF\u548C\u5F53\u524D\u5E74\u5316\u6536\u76CA\n## \u5173\u952E\u8BCD\uFF1ASOL\u8D28\u62BC, SOL staking, \u8D28\u62BC\u4F59\u989D, \u8D28\u62BC\u6536\u76CA\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_staking_offers \u770B\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u770BSOL\u6301\u4ED3 \u2192 \u51B3\u5B9A\u662F\u5426\u8D4E\u56DE",
22944
22924
  {},
22945
22925
  async () => {
22946
22926
  if (!auth) return toError(AUTH_REQUIRED);
@@ -22958,7 +22938,7 @@ function registerFinanceTools(server, auth) {
22958
22938
  function registerOutcomesTools(server) {
22959
22939
  server.tool(
22960
22940
  "outcomes_list_events",
22961
- "\u5217\u51FAOKX\u9884\u6D4B\u5E02\u573A\u6240\u6709\u4E8B\u4EF6\uFF08\u4E16\u754C\u676F\u3001\u9009\u4E3E\u7B49\uFF09\u3002\u6BCF\u4E2A\u4E8B\u4EF6\u5305\u542B\u6807\u9898\u3001\u72B6\u6001\u3001\u603B\u6210\u4EA4\u91CF\u548C\u5E02\u573A\u6570\u91CF\u3002",
22941
+ "## \u529F\u80FD\uFF1A\u5217\u51FAOKX\u9884\u6D4B\u5E02\u573A\u6240\u6709\u4E8B\u4EF6\uFF08\u4E16\u754C\u676F\u3001\u9009\u4E3E\u7B49\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4F\u89C8\u53EF\u4EA4\u6613\u7684\u9884\u6D4B\u5E02\u573A\u3001\u6309\u5173\u952E\u8BCD\u641C\u7D22\u4E8B\u4EF6\u3001\u4E86\u89E3\u5404\u4E8B\u4EF6\u6210\u4EA4\u91CF\u548C\u6D3B\u8DC3\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u5E02\u573A, \u4E8B\u4EF6\u5217\u8868, outcomes, \u4E16\u754C\u676F, \u9009\u4E3E, \u6982\u7387\u4EA4\u6613\n## \u53C2\u6570\uFF1A\n## - pageSize: \u6BCF\u9875\u6570\u91CF\uFF0C\u9ED8\u8BA420\n## - search: \u5173\u952E\u8BCD\u641C\u7D22\u4E8B\u4EF6\u6807\u9898\n## - includeMarkets: \u662F\u5426\u9644\u5E26\u6BCF\u4E2A\u4E8B\u4EF6\u7684\u5E02\u573A\u5217\u8868\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u6D4F\u89C8\u4E8B\u4EF6 \u2192 outcomes_get_event \u67E5\u770B\u5355\u4E2A\u4E8B\u4EF6\u8BE6\u60C5 \u2192 outcomes_get_market \u67E5\u770B\u5E02\u573A",
22962
22942
  {
22963
22943
  pageSize: external_exports.number().int().min(1).max(100).optional().describe("\u6BCF\u9875\u6570\u91CF\uFF0C\u9ED8\u8BA420"),
22964
22944
  search: external_exports.string().optional().describe("\u5173\u952E\u8BCD\u641C\u7D22\u4E8B\u4EF6\u6807\u9898"),
@@ -22981,7 +22961,7 @@ function registerOutcomesTools(server) {
22981
22961
  );
22982
22962
  server.tool(
22983
22963
  "outcomes_get_event",
22984
- "\u83B7\u53D6\u5355\u4E2A\u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\u7684\u5B8C\u6574\u4FE1\u606F\uFF0C\u542B\u6240\u6709\u5E02\u573A\u5217\u8868\u53CA\u5F53\u524D\u6982\u7387\u3002",
22964
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u5355\u4E2A\u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\u7684\u5B8C\u6574\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4E8B\u4EF6\u7684\u6240\u6709\u5173\u8054\u5E02\u573A\u5217\u8868\u3001\u5404\u5E02\u573A\u5F53\u524D\u6982\u7387\u3001\u5224\u65AD\u54EA\u4E9B\u5E02\u573A\u503C\u5F97\u4EA4\u6613\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u8BE6\u60C5, event, \u9884\u6D4B\u4E8B\u4EF6, \u5173\u8054\u5E02\u573A, \u6982\u7387\n## \u53C2\u6570\uFF1A\n## - eventId: \u4E8B\u4EF6ID\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aoutcomes_list_events \u83B7\u53D6\u4E8B\u4EF6\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u8BE6\u60C5 \u2192 outcomes_get_market \u67E5\u770B\u5177\u4F53\u5E02\u573A",
22985
22965
  { eventId: external_exports.string().describe("\u4E8B\u4EF6ID") },
22986
22966
  async ({ eventId }) => {
22987
22967
  const client = getHRailsClient();
@@ -22996,7 +22976,7 @@ function registerOutcomesTools(server) {
22996
22976
  );
22997
22977
  server.tool(
22998
22978
  "outcomes_get_market",
22999
- "\u83B7\u53D6\u5355\u4E2A\u9884\u6D4B\u5E02\u573A\u8BE6\u60C5\uFF0C\u542B\u95EE\u9898\u63CF\u8FF0\u3001\u5F53\u524D\u6982\u7387\u3001\u6210\u4EA4\u91CF\u548C\u7ED3\u675F\u65F6\u95F4\u3002",
22979
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u5355\u4E2A\u9884\u6D4B\u5E02\u573A\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5177\u4F53\u9884\u6D4B\u95EE\u9898\u7684\u63CF\u8FF0\u3001\u5F53\u524D\u6982\u7387\u3001\u6210\u4EA4\u91CF\u3001\u7ED3\u675F\u65F6\u95F4\u3001\u5224\u65AD\u662F\u5426\u503C\u5F97\u53C2\u4E0E\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u5E02\u573A, market, \u6982\u7387, \u6210\u4EA4\u91CF, \u9884\u6D4B\u95EE\u9898\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1Aoutcomes_get_event \u67E5\u770B\u4E8B\u4EF6 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u5177\u4F53\u5E02\u573A \u2192 outcomes_get_ticker \u770B\u62A5\u4EF7 \u2192 outcomes_check_arbitrage \u627E\u5957\u5229",
23000
22980
  { marketId: external_exports.string().describe("\u5E02\u573AID") },
23001
22981
  async ({ marketId }) => {
23002
22982
  const client = getHRailsClient();
@@ -23011,7 +22991,7 @@ function registerOutcomesTools(server) {
23011
22991
  );
23012
22992
  server.tool(
23013
22993
  "outcomes_get_ticker",
23014
- "\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u5355\u8FB9\uFF08YES\u6216NO\uFF09\u7684\u5B9E\u65F6\u62A5\u4EF7\uFF0C\u542B\u6700\u4F18\u4E70\u5356\u4EF7\u3002YES\u4EF7\u683C\u4EE3\u8868\u8BE5\u7ED3\u679C\u53D1\u751F\u7684\u6982\u7387\u3002",
22994
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u5355\u8FB9\uFF08YES\u6216NO\uFF09\u7684\u5B9E\u65F6\u62A5\u4EF7\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770BYES/NO\u5F53\u524D\u6700\u4F18\u4E70\u5356\u4EF7\u3001YES\u4EF7\u683C\u4EE3\u8868\u8BE5\u7ED3\u679C\u53D1\u751F\u7684\u6982\u7387\u3001\u5224\u65AD\u4E70\u5356\u65F6\u673A\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u62A5\u4EF7, ticker, YES, NO, \u6982\u7387\u4EF7\u683C, \u4E70\u5356\u4EF7\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\n## - outcome: \u7ED3\u679C\u65B9\u5411\u3002YES=\u770B\u6DA8, NO=\u770B\u8DCC\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aoutcomes_get_market \u67E5\u770B\u5E02\u573A \u2192 \u672C\u5DE5\u5177\u770B\u62A5\u4EF7 \u2192 outcomes_get_orderbook \u770B\u6DF1\u5EA6 \u2192 outcomes_check_arbitrage \u627E\u5957\u5229",
23015
22995
  {
23016
22996
  marketId: external_exports.string().describe("\u5E02\u573AID"),
23017
22997
  outcome: external_exports.enum(["YES", "NO"]).describe("\u7ED3\u679C\u65B9\u5411")
@@ -23029,7 +23009,7 @@ function registerOutcomesTools(server) {
23029
23009
  );
23030
23010
  server.tool(
23031
23011
  "outcomes_get_orderbook",
23032
- "\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u8BA2\u5355\u7C3F\u6DF1\u5EA6\u3002YES_ask + NO_ask < 1.0 \u65F6\u5B58\u5728\u65E0\u98CE\u9669\u5957\u5229\u673A\u4F1A\uFF08\u4E70\u53CC\u8FB9\uFF09\u3002",
23012
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u8BA2\u5355\u7C3F\u6DF1\u5EA6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790YES/NO\u6302\u5355\u5206\u5E03\u3001\u5224\u65AD\u6D41\u52A8\u6027\u3001YES_ask + NO_ask < 1.0 \u65F6\u5B58\u5728\u65E0\u98CE\u9669\u5957\u5229\u673A\u4F1A\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u6DF1\u5EA6, orderbook, \u6302\u5355, \u5957\u5229, YES+NO, \u53CC\u8FB9\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\n## - outcome: \u7ED3\u679C\u65B9\u5411\n## - size: \u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u592750\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1Aoutcomes_get_ticker \u770B\u62A5\u4EF7 \u2192 \u672C\u5DE5\u5177\u770B\u6DF1\u5EA6 \u2192 outcomes_check_arbitrage \u68C0\u6D4B\u5957\u5229",
23033
23013
  {
23034
23014
  marketId: external_exports.string().describe("\u5E02\u573AID"),
23035
23015
  outcome: external_exports.enum(["YES", "NO"]).describe("\u7ED3\u679C\u65B9\u5411"),
@@ -23048,7 +23028,7 @@ function registerOutcomesTools(server) {
23048
23028
  );
23049
23029
  server.tool(
23050
23030
  "outcomes_get_candles",
23051
- "\u83B7\u53D6\u9884\u6D4B\u5E02\u573AK\u7EBF\u6570\u636E\uFF0C\u7528\u4E8E\u5206\u6790\u6982\u7387\u8D70\u52BF\u548C\u4EA4\u6613\u91CF\u53D8\u5316\u3002",
23031
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573AK\u7EBF\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u6982\u7387\u8D70\u52BF\u3001\u7814\u7A76\u4EA4\u6613\u91CF\u53D8\u5316\u89C4\u5F8B\u3001\u5224\u65AD\u8D8B\u52BF\u65B9\u5411\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4BK\u7EBF, candles, \u6982\u7387\u8D70\u52BF, \u6210\u4EA4\u91CF, \u8D8B\u52BF\u5206\u6790\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\n## - outcome: \u7ED3\u679C\u65B9\u5411\n## - bar: K\u7EBF\u5468\u671F\u30021m/5m/15m=\u5206\u949F, 1H=1\u5C0F\u65F6, 4H=4\u5C0F\u65F6, 1D=\u65E5\u7EBF\u3002\u9ED8\u8BA41H\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA448\uFF0C\u6700\u5927200\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A48\u6761 ~3KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1Aoutcomes_get_ticker \u770B\u5F53\u524D\u6982\u7387 \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2\u8D70\u52BF \u2192 \u5224\u65AD\u6982\u7387\u8D8B\u52BF",
23052
23032
  {
23053
23033
  marketId: external_exports.string().describe("\u5E02\u573AID"),
23054
23034
  outcome: external_exports.enum(["YES", "NO"]).describe("\u7ED3\u679C\u65B9\u5411"),
@@ -23111,7 +23091,7 @@ function registerOutcomesTools(server) {
23111
23091
  function registerBotTools(server, auth) {
23112
23092
  server.tool(
23113
23093
  "okx_get_grid_ai_param",
23114
- "\u83B7\u53D6OKX\u667A\u80FD\u7F51\u683C\u63A8\u8350\u53C2\u6570\uFF08\u65E0\u9700API Key\uFF09\u3002\u5305\u542B\u5EFA\u8BAE\u7684\u7F51\u683C\u4E0A\u4E0B\u754C\u3001\u683C\u6570\u3001\u9884\u671F\u5E74\u5316\u6536\u76CA\u3002\u5F00\u7F51\u683C\u524D\u5FEB\u901F\u8BC4\u4F30\u53C2\u6570\u5408\u7406\u6027\u3002",
23094
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u667A\u80FD\u7F51\u683C\u63A8\u8350\u53C2\u6570\uFF08\u65E0\u9700API Key\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u7F51\u683C\u524D\u5FEB\u901F\u8BC4\u4F30\u53C2\u6570\u5408\u7406\u6027\u3001\u6BD4\u8F83AI\u5EFA\u8BAE\u4E0E\u624B\u52A8\u8BBE\u7F6E\u7684\u4F18\u52A3\n## \u5173\u952E\u8BCD\uFF1A\u7F51\u683CAI, grid ai, \u7F51\u683C\u63A8\u8350, \u667A\u80FD\u53C2\u6570, \u7F51\u683C\u7B56\u7565\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001BTC-USDT-SWAP\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002grid=\u73B0\u8D27\u7F51\u683C, contract_grid=\u5408\u7EA6\u7F51\u683C, moon_grid=\u5929\u5730\u7F51\u683C\n## - direction: \u5408\u7EA6\u7F51\u683C\u65B9\u5411\uFF08\u4EC5contract_grid\u9700\u8981\uFF09\u3002long=\u591A\u5934, short=\u7A7A\u5934, neutral=\u4E2D\u6027\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6AI\u53C2\u6570 \u2192 \u53C2\u8003\u540E\u5F00\u7F51\u683C \u2192 okx_get_grid_orders_pending \u67E5\u770B\u8FD0\u884C\u72B6\u6001",
23115
23095
  {
23116
23096
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001BTC-USDT-SWAP"),
23117
23097
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B\uFF1Agrid=\u73B0\u8D27\u7F51\u683C\uFF0Ccontract_grid=\u5408\u7EA6\u7F51\u683C\uFF0Cmoon_grid=\u5929\u5730\u7F51\u683C"),
@@ -23128,7 +23108,7 @@ function registerBotTools(server, auth) {
23128
23108
  );
23129
23109
  server.tool(
23130
23110
  "okx_get_grid_orders_pending",
23131
- "\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u7F51\u683C\u7B56\u7565\u5217\u8868\uFF0C\u542B\u6BCF\u4E2A\u7F51\u683C\u7684\u76C8\u4E8F\u3001\u6210\u4EA4\u6B21\u6570\u548C\u8D44\u91D1\u5360\u7528\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23111
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u7F51\u683C\u7B56\u7565\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u76D1\u63A7\u7F51\u683C\u76C8\u4E8F\u3001\u67E5\u770B\u6210\u4EA4\u6B21\u6570\u548C\u8D44\u91D1\u5360\u7528\u3001\u5224\u65AD\u662F\u5426\u9700\u8981\u8C03\u6574\n## \u5173\u952E\u8BCD\uFF1A\u8FD0\u884C\u4E2D\u7F51\u683C, grid pending, \u7F51\u683C\u7B56\u7565, \u7F51\u683C\u76C8\u4E8F, \u7F51\u683C\u72B6\u6001\n## \u53C2\u6570\uFF1A\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\n## - instId: \u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u7B5B\u9009\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_grid_ai_param \u83B7\u53D6\u53C2\u6570 \u2192 \u5F00\u7F51\u683C \u2192 \u672C\u5DE5\u5177\u76D1\u63A7\u8FD0\u884C \u2192 okx_get_grid_sub_orders \u770B\u6210\u4EA4",
23132
23112
  {
23133
23113
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
23134
23114
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -23146,7 +23126,7 @@ function registerBotTools(server, auth) {
23146
23126
  );
23147
23127
  server.tool(
23148
23128
  "okx_get_grid_orders_history",
23149
- "\u67E5\u8BE2\u5DF2\u505C\u6B62\u7684\u5386\u53F2\u7F51\u683C\u7B56\u7565\uFF0C\u542B\u6700\u7EC8\u76C8\u4E8F\u548C\u8FD0\u884C\u65F6\u957F\u3002\u7528\u4E8E\u8BC4\u4F30\u5386\u53F2\u7B56\u7565\u6548\u679C\uFF0C\u4F18\u5316\u4E0B\u6B21\u53C2\u6570\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23129
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5DF2\u505C\u6B62\u7684\u5386\u53F2\u7F51\u683C\u7B56\u7565\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u5386\u53F2\u7B56\u7565\u6548\u679C\u3001\u5206\u6790\u7F51\u683C\u76C8\u4E8F\u3001\u4F18\u5316\u4E0B\u6B21\u53C2\u6570\n## \u5173\u952E\u8BCD\uFF1A\u5386\u53F2\u7F51\u683C, grid history, \u7F51\u683C\u8BB0\u5F55, \u7B56\u7565\u590D\u76D8, \u7F51\u683C\u6536\u76CA\n## \u53C2\u6570\uFF1A\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\n## - instId: \u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u7B5B\u9009\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_grid_orders_pending \u770B\u8FD0\u884C\u4E2D \u2192 \u505C\u6B62\u540E \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u6700\u7EC8\u76C8\u4E8F",
23150
23130
  {
23151
23131
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
23152
23132
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -23164,7 +23144,7 @@ function registerBotTools(server, auth) {
23164
23144
  );
23165
23145
  server.tool(
23166
23146
  "okx_get_grid_sub_orders",
23167
- "\u67E5\u8BE2\u67D0\u4E2A\u7F51\u683C\u7B56\u7565\u7684\u5B50\u8BA2\u5355\u5217\u8868\uFF08\u6BCF\u4E00\u683C\u7684\u4E70\u5356\u8BB0\u5F55\uFF09\u3002\u7528\u4E8E\u5206\u6790\u7F51\u683C\u6210\u4EA4\u60C5\u51B5\uFF0C\u9A8C\u8BC1\u7B56\u7565\u662F\u5426\u6309\u9884\u671F\u8FD0\u884C\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23147
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4E2A\u7F51\u683C\u7B56\u7565\u7684\u5B50\u8BA2\u5355\u5217\u8868\uFF08\u6BCF\u4E00\u683C\u7684\u4E70\u5356\u8BB0\u5F55\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u7F51\u683C\u6210\u4EA4\u60C5\u51B5\u3001\u9A8C\u8BC1\u7B56\u7565\u662F\u5426\u6309\u9884\u671F\u8FD0\u884C\u3001\u8BA1\u7B97\u5B9E\u9645\u6536\u76CA\n## \u5173\u952E\u8BCD\uFF1A\u7F51\u683C\u5B50\u5355, grid sub orders, \u7F51\u683C\u6210\u4EA4, \u7F51\u683C\u660E\u7EC6, \u9010\u683C\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\n## - type: filled=\u5DF2\u6210\u4EA4, unfilled=\u672A\u6210\u4EA4\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1Aokx_get_grid_orders_pending \u83B7\u53D6\u7F51\u683CID \u2192 \u672C\u5DE5\u5177\u770B\u6BCF\u683C\u6210\u4EA4 \u2192 \u8BA1\u7B97\u5B9E\u9645\u6536\u76CA",
23168
23148
  {
23169
23149
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID"),
23170
23150
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
@@ -23182,7 +23162,7 @@ function registerBotTools(server, auth) {
23182
23162
  );
23183
23163
  server.tool(
23184
23164
  "okx_get_recurring_orders_pending",
23185
- "\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u5B9A\u6295\u8BA1\u5212\u5217\u8868\uFF0C\u542B\u6295\u8D44\u5E01\u79CD\u3001\u5468\u671F\u3001\u5DF2\u6295\u603B\u989D\u548C\u5F53\u524D\u76C8\u4E8F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23165
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u5B9A\u6295\u8BA1\u5212\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5B9A\u6295\u5468\u671F\u3001\u5DF2\u6295\u603B\u989D\u3001\u5F53\u524D\u76C8\u4E8F\u3001\u5224\u65AD\u662F\u5426\u8C03\u6574\u5B9A\u6295\u7B56\u7565\n## \u5173\u952E\u8BCD\uFF1A\u5B9A\u6295, recurring, \u5B9A\u671F\u6295\u8D44, DCA, \u5B9A\u6295\u8BA1\u5212, \u5B9A\u6295\u76C8\u4E8F\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5B9A\u6295\u72B6\u6001 \u2192 okx_get_recurring_orders_history \u770B\u5386\u53F2 \u2192 \u8BC4\u4F30\u5B9A\u6295\u6548\u679C",
23186
23166
  {},
23187
23167
  async () => {
23188
23168
  if (!auth) return toError(AUTH_REQUIRED);
@@ -23196,7 +23176,7 @@ function registerBotTools(server, auth) {
23196
23176
  );
23197
23177
  server.tool(
23198
23178
  "okx_get_recurring_orders_history",
23199
- "\u67E5\u8BE2\u5DF2\u7ED3\u675F\u7684\u5386\u53F2\u5B9A\u6295\u8BA1\u5212\uFF0C\u542B\u603B\u6295\u5165\u3001\u603B\u6536\u76CA\u548C\u5E74\u5316\u6536\u76CA\u7387\u3002\u7528\u4E8E\u8BC4\u4F30\u5B9A\u6295\u7B56\u7565\u957F\u671F\u6548\u679C\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23179
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5DF2\u7ED3\u675F\u7684\u5386\u53F2\u5B9A\u6295\u8BA1\u5212\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u5B9A\u6295\u7B56\u7565\u957F\u671F\u6548\u679C\u3001\u5206\u6790\u603B\u6536\u76CA\u548C\u5E74\u5316\u6536\u76CA\u7387\n## \u5173\u952E\u8BCD\uFF1A\u5B9A\u6295\u5386\u53F2, recurring history, \u5B9A\u6295\u8BB0\u5F55, \u5B9A\u6295\u6536\u76CA, DCA\u6536\u76CA\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_recurring_orders_pending \u770B\u8FD0\u884C\u4E2D \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2 \u2192 \u8BA1\u7B97\u957F\u671F\u5E74\u5316",
23200
23180
  {},
23201
23181
  async () => {
23202
23182
  if (!auth) return toError(AUTH_REQUIRED);
@@ -23214,7 +23194,7 @@ function registerBotTools(server, auth) {
23214
23194
  function registerSpreadTools(server) {
23215
23195
  server.tool(
23216
23196
  "okx_get_spreads",
23217
- "\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u4EA7\u54C1\u5217\u8868\u3002\u4EF7\u5DEE\u4EA4\u6613\u662F\u540C\u65F6\u4E70\u5165\u4E00\u4E2A\u5408\u7EA6\u3001\u5356\u51FA\u53E6\u4E00\u4E2A\u5408\u7EA6\uFF0C\u6355\u83B7\u4E24\u8005\u4EF7\u683C\u4E4B\u5DEE\uFF0C\u5E38\u7528\u4E8E\u8DE8\u671F\u5957\u5229\u3002",
23197
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u4EA7\u54C1\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8DE8\u671F\u5957\u5229\u7B56\u7565\u8BBE\u8BA1\u3001\u53D1\u73B0\u53EF\u4EA4\u6613\u4EF7\u5DEE\u5408\u7EA6\u3001\u7B5B\u9009\u7279\u5B9A\u671F\u9650\u7684\u4EF7\u5DEE\u54C1\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5408\u7EA6, spreads, \u8DE8\u671F\u5957\u5229, \u4EF7\u5DEE\u5217\u8868, \u671F\u9650\u5957\u5229\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USDT_BTC-USDT-SWAP\n## - baseCcy: \u6807\u7684\u5E01\u79CD\uFF0C\u5982 BTC\n## - instId: \u817F\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u7CBE\u786E\u7B5B\u9009\n## - state: \u5408\u7EA6\u72B6\u6001\u3002live=\u6D3B\u8DC3, expired=\u5DF2\u5230\u671F, suspend=\u6682\u505C\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u5217\u8868 \u2192 okx_get_spread_ticker \u67E5\u884C\u60C5 \u2192 okx_get_spread_candles \u5206\u6790\u8D70\u52BF",
23218
23198
  {
23219
23199
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USDT_BTC-USDT-SWAP"),
23220
23200
  baseCcy: external_exports.string().optional().describe("\u6807\u7684\u5E01\u79CD\uFF0C\u5982 BTC"),
@@ -23232,14 +23212,18 @@ function registerSpreadTools(server) {
23232
23212
  );
23233
23213
  server.tool(
23234
23214
  "okx_get_spread_ticker",
23235
- "\u83B7\u53D6\u5355\u4E2A\u4EF7\u5DEE\u5408\u7EA6\u5B9E\u65F6\u884C\u60C5\uFF0C\u542B\u6700\u65B0\u4EF7\u3001\u4E70\u5356\u4EF7\u5DEE\u3002\u5148\u7528 okx_get_spreads \u67E5\u8BE2\u53EF\u7528\u7684\u4EF7\u5DEE\u5408\u7EA6ID\u3002",
23215
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u5355\u4E2A\u4EF7\u5DEE\u5408\u7EA6\u5B9E\u65F6\u884C\u60C5\uFF0C\u542B\u6700\u65B0\u4EF7\u3001\u4E70\u5356\u4EF7\u5DEE\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8DE8\u671F\u5957\u5229\u76D1\u63A7\u3001\u4EF7\u5DEE\u8D8B\u52BF\u5224\u65AD\u3001\u53D1\u73B0\u4EF7\u5DEE\u56DE\u5F52\u673A\u4F1A\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u884C\u60C5, spread ticker, \u8DE8\u671F\u5957\u5229, \u4EF7\u5DEE\u4EF7\u683C, \u4E70\u5356\u4EF7\u5DEE\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USD-SWAP_BTC-USD-260925\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_spreads \u83B7\u53D6\u53EF\u7528\u4EF7\u5DEE\u5408\u7EA6ID \u2192 \u672C\u5DE5\u5177\u67E5\u884C\u60C5 \u2192 okx_get_spread_candles \u5206\u6790\u8D70\u52BF",
23236
23216
  {
23237
23217
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USD-SWAP_BTC-USD-260925")
23238
23218
  },
23239
23219
  async ({ sprdId }) => {
23240
23220
  try {
23241
23221
  const data = await publicApi.getSpreadTicker(sprdId);
23242
- return toResult(data);
23222
+ const enriched = data.map((item) => ({
23223
+ ...item,
23224
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
23225
+ }));
23226
+ return toResult(enriched);
23243
23227
  } catch (e) {
23244
23228
  return toError(e);
23245
23229
  }
@@ -23247,14 +23231,21 @@ function registerSpreadTools(server) {
23247
23231
  );
23248
23232
  server.tool(
23249
23233
  "okx_get_spread_orderbook",
23250
- "\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u8BA2\u5355\u7C3F\u6DF1\u5EA6\u3002\u5206\u6790\u4E70\u5356\u53CC\u65B9\u6302\u5355\u5206\u5E03\uFF0C\u5224\u65AD\u4EF7\u5DEE\u5E02\u573A\u7684\u6D41\u52A8\u6027\u8D28\u91CF\u3002",
23234
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u8BA2\u5355\u7C3F\u6DF1\u5EA6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u4E70\u5356\u53CC\u65B9\u6302\u5355\u5206\u5E03\u3001\u5224\u65AD\u4EF7\u5DEE\u5E02\u573A\u7684\u6D41\u52A8\u6027\u8D28\u91CF\u3001\u8BC4\u4F30\u8DE8\u671F\u5957\u5229\u6ED1\u70B9\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6DF1\u5EA6, spread orderbook, \u4EF7\u5DEE\u6302\u5355, \u6D41\u52A8\u6027, \u5957\u5229\u6DF1\u5EA6\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\n## - depth: \u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927400\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_spreads \u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u6DF1\u5EA6 \u2192 okx_get_spread_ticker \u5224\u65AD\u5957\u5229\u673A\u4F1A",
23251
23235
  {
23252
23236
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
23253
- sz: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420")
23237
+ depth: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927400")
23254
23238
  },
23255
- async ({ sprdId, sz }) => {
23239
+ async ({ sprdId, depth }) => {
23256
23240
  try {
23257
- const data = await publicApi.getSpreadOrderbook(sprdId, sz);
23241
+ const data = await publicApi.getSpreadOrderbook(sprdId, depth);
23242
+ const enriched = data.data || data;
23243
+ if (enriched && typeof enriched === "object" && !Array.isArray(enriched)) {
23244
+ return toResult({
23245
+ ...enriched,
23246
+ tsIso: enriched.ts ? new Date(parseInt(enriched.ts)).toISOString() : void 0
23247
+ });
23248
+ }
23258
23249
  return toResult(data);
23259
23250
  } catch (e) {
23260
23251
  return toError(e);
@@ -23263,7 +23254,7 @@ function registerSpreadTools(server) {
23263
23254
  );
23264
23255
  server.tool(
23265
23256
  "okx_get_spread_trades",
23266
- "\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u6700\u65B0\u6210\u4EA4\u8BB0\u5F55\u3002\u7528\u4E8E\u5206\u6790\u5E02\u573A\u53C2\u4E0E\u8005\u5BF9\u5F53\u524D\u4EF7\u5DEE\u6C34\u5E73\u7684\u8BA4\u53EF\u5EA6\u3002",
23257
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u6700\u65B0\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5E02\u573A\u53C2\u4E0E\u8005\u5BF9\u5F53\u524D\u4EF7\u5DEE\u6C34\u5E73\u7684\u8BA4\u53EF\u5EA6\u3001\u5224\u65AD\u5957\u5229\u7B56\u7565\u6709\u6548\u6027\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6210\u4EA4, spread trades, \u5957\u5229\u6210\u4EA4, \u4EF7\u5DEE\u4EA4\u6613, \u6210\u4EA4\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927100\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_get_spread_ticker \u67E5\u884C\u60C5 \u2192 \u672C\u5DE5\u5177\u770B\u6700\u65B0\u6210\u4EA4 \u2192 okx_get_spread_candles \u770B\u8D70\u52BF",
23267
23258
  {
23268
23259
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
23269
23260
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -23271,7 +23262,11 @@ function registerSpreadTools(server) {
23271
23262
  async ({ sprdId, limit }) => {
23272
23263
  try {
23273
23264
  const data = await publicApi.getSpreadTrades(sprdId, limit);
23274
- return toResult(data);
23265
+ const enriched = data.map((item) => ({
23266
+ ...item,
23267
+ tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
23268
+ }));
23269
+ return toResult(enriched);
23275
23270
  } catch (e) {
23276
23271
  return toError(e);
23277
23272
  }
@@ -23279,7 +23274,7 @@ function registerSpreadTools(server) {
23279
23274
  );
23280
23275
  server.tool(
23281
23276
  "okx_get_spread_candles",
23282
- "\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6K\u7EBF\u6570\u636E\u3002\u7528\u4E8E\u7814\u7A76\u4EF7\u5DEE\u5386\u53F2\u8D70\u52BF\uFF0C\u8BC6\u522B\u5747\u503C\u56DE\u5F52\u673A\u4F1A\u3002",
23277
+ "## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6K\u7EBF\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7814\u7A76\u4EF7\u5DEE\u5386\u53F2\u8D70\u52BF\u3001\u8BC6\u522B\u5747\u503C\u56DE\u5F52\u673A\u4F1A\u3001\u8BA1\u7B97\u4EF7\u5DEE\u6CE2\u52A8\u7387\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEEK\u7EBF, spread candles, \u4EF7\u5DEE\u8D70\u52BF, \u5747\u503C\u56DE\u5F52, \u8DE8\u671F\u5957\u5229\u5206\u6790\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\n## - bar: K\u7EBF\u5468\u671F\u30021m/5m/15m/30m=\u5206\u949F, 1H=1\u5C0F\u65F6, 4H=4\u5C0F\u65F6, 1D=\u65E5\u7EBF\u3002\u9ED8\u8BA41H\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u5927300\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A100\u6761 ~5KB \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1Aokx_get_spread_ticker \u67E5\u5F53\u524D\u4EF7\u5DEE \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2\u8D70\u52BF \u2192 \u5224\u65AD\u662F\u5426\u5904\u4E8E\u5747\u503C\u56DE\u5F52\u533A\u95F4",
23283
23278
  {
23284
23279
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
23285
23280
  bar: external_exports.enum(["1m", "5m", "15m", "30m", "1H", "4H", "1D"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -23288,7 +23283,17 @@ function registerSpreadTools(server) {
23288
23283
  async ({ sprdId, bar, limit }) => {
23289
23284
  try {
23290
23285
  const data = await publicApi.getSpreadCandles(sprdId, bar, limit);
23291
- return toResult(data);
23286
+ const enriched = data.map((row) => ({
23287
+ ts: row[0],
23288
+ tsIso: row[0] ? new Date(parseInt(row[0])).toISOString() : void 0,
23289
+ open: row[1],
23290
+ high: row[2],
23291
+ low: row[3],
23292
+ close: row[4],
23293
+ vol: row[5],
23294
+ volCcy: row[6]
23295
+ }));
23296
+ return toResult(enriched);
23292
23297
  } catch (e) {
23293
23298
  return toError(e);
23294
23299
  }
@@ -23300,7 +23305,7 @@ function registerSpreadTools(server) {
23300
23305
  function registerCopyTools(server, auth) {
23301
23306
  server.tool(
23302
23307
  "okx_get_lead_trader_positions",
23303
- "\u67E5\u8BE2\u6307\u5B9A\u5E26\u5355\u5458\u5F53\u524D\u6301\u4ED3\u5217\u8868\uFF0C\u542B\u54C1\u79CD\u3001\u65B9\u5411\u3001\u6301\u4ED3\u91CF\u548C\u5F00\u4ED3\u5747\u4EF7\u3002\u65E0\u9700API Key\u3002uniqueCode \u53EF\u4ECEOKX\u8DDF\u5355\u5E7F\u573A\u83B7\u53D6\u3002",
23308
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u5E26\u5355\u5458\u5F53\u524D\u6301\u4ED3\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8DDF\u5355\u524D\u8BC4\u4F30\u5E26\u5355\u5458\u5F53\u524D\u4ED3\u4F4D\u3001\u5224\u65AD\u662F\u5426\u503C\u5F97\u8DDF\u5355\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u5458\u6301\u4ED3, lead trader positions, \u8DDF\u5355, \u4EA4\u6613\u5458\u4ED3\u4F4D, \u5E26\u5355\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\uFF0C\u4ECEOKX App\u300C\u8DDF\u5355\u300D\u9875\u9762\u83B7\u53D6\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5E26\u5355\u5458\u6301\u4ED3 \u2192 okx_get_lead_trader_stats \u770B\u7EE9\u6548 \u2192 \u51B3\u5B9A\u662F\u5426\u8DDF\u5355",
23304
23309
  {
23305
23310
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\uFF0C\u4ECEOKX App\u300C\u8DDF\u5355\u300D\u9875\u9762\u83B7\u53D6"),
23306
23311
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
@@ -23316,7 +23321,7 @@ function registerCopyTools(server, auth) {
23316
23321
  );
23317
23322
  server.tool(
23318
23323
  "okx_get_lead_trader_history",
23319
- "\u67E5\u8BE2\u6307\u5B9A\u5E26\u5355\u5458\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\uFF0C\u542B\u6BCF\u7B14\u4EA4\u6613\u7684\u76C8\u4E8F\u548C\u6301\u4ED3\u65F6\u957F\u3002\u65E0\u9700API Key\u3002\u9002\u5408\u8BC4\u4F30\u5E26\u5355\u5458\u5386\u53F2\u8868\u73B0\u540E\u518D\u51B3\u5B9A\u662F\u5426\u8DDF\u5355\u3002",
23324
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u5E26\u5355\u5458\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u5E26\u5355\u5458\u5386\u53F2\u8868\u73B0\u3001\u5206\u6790\u4EA4\u6613\u98CE\u683C\u548C\u76C8\u4E8F\u5206\u5E03\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u5458\u5386\u53F2, trader history, \u4EA4\u6613\u8BB0\u5F55, \u8DDF\u5355\u5386\u53F2, \u5E26\u5355\u76C8\u4E8F\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_lead_trader_positions \u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2 \u2192 okx_get_lead_trader_stats \u770B\u7EDF\u8BA1",
23320
23325
  {
23321
23326
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
23322
23327
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -23333,7 +23338,7 @@ function registerCopyTools(server, auth) {
23333
23338
  );
23334
23339
  server.tool(
23335
23340
  "okx_get_lead_trader_stats",
23336
- "\u67E5\u8BE2\u6307\u5B9A\u5E26\u5355\u5458\u7684\u7EE9\u6548\u7EDF\u8BA1\uFF0C\u542B\u603B\u6536\u76CA\u7387\u3001\u6700\u5927\u56DE\u64A4\u3001\u8DDF\u5355\u4EBA\u6570\u548C\u80DC\u7387\u3002\u65E0\u9700API Key\u3002\u662F\u8BC4\u4F30\u5E26\u5355\u5458\u6700\u6838\u5FC3\u7684\u6307\u6807\u3002",
23341
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u5E26\u5355\u5458\u7684\u7EE9\u6548\u7EDF\u8BA1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u5E26\u5355\u5458\u7684\u6838\u5FC3\u6307\u6807\uFF08\u6536\u76CA\u7387\u3001\u6700\u5927\u56DE\u64A4\u3001\u80DC\u7387\u3001\u8DDF\u5355\u4EBA\u6570\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u5458\u7EDF\u8BA1, trader stats, \u6536\u76CA\u7387, \u6700\u5927\u56DE\u64A4, \u80DC\u7387, \u8DDF\u5355\u4EBA\u6570\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## - lastDays: \u7EDF\u8BA1\u5468\u671F\uFF08\u5929\uFF09\uFF1A7/30/90/180\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u7EE9\u6548\u6C47\u603B \u2192 okx_get_lead_trader_history \u770B\u8BE6\u7EC6\u4EA4\u6613 \u2192 \u51B3\u5B9A\u662F\u5426\u8DDF\u5355",
23337
23342
  {
23338
23343
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
23339
23344
  instType: external_exports.enum(["SWAP", "FUTURES"]).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -23350,7 +23355,7 @@ function registerCopyTools(server, auth) {
23350
23355
  );
23351
23356
  server.tool(
23352
23357
  "okx_get_my_lead_positions",
23353
- "\u67E5\u8BE2\u6211\u5F53\u524D\u4F5C\u4E3A\u5E26\u5355\u5458\u7684\u6301\u4ED3\u5217\u8868\uFF08\u4EC5\u5E26\u5355\u5458\u8D26\u6237\u6709\u6570\u636E\uFF09\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23358
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6211\u5F53\u524D\u4F5C\u4E3A\u5E26\u5355\u5458\u7684\u6301\u4ED3\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5E26\u5355\u5458\u67E5\u770B\u81EA\u5DF1\u7684\u5E26\u5355\u4ED3\u4F4D\u3001\u7BA1\u7406\u5E26\u5355\u7B56\u7565\n## \u5173\u952E\u8BCD\uFF1A\u6211\u7684\u5E26\u5355, my lead positions, \u5E26\u5355\u6301\u4ED3, \u8DDF\u5355\u8D26\u6237\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6301\u4ED3 \u2192 okx_get_my_lead_history \u770B\u5386\u53F2\u5E26\u5355 \u2192 okx_get_profit_sharing_total \u770B\u5206\u6210",
23354
23359
  {
23355
23360
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
23356
23361
  },
@@ -23366,7 +23371,7 @@ function registerCopyTools(server, auth) {
23366
23371
  );
23367
23372
  server.tool(
23368
23373
  "okx_get_my_lead_history",
23369
- "\u67E5\u8BE2\u6211\u7684\u5386\u53F2\u5E26\u5355\u8BB0\u5F55\uFF0C\u542B\u6BCF\u7B14\u7684\u76C8\u4E8F\u548C\u8DDF\u5355\u91CF\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23374
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6211\u7684\u5386\u53F2\u5E26\u5355\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5E26\u5355\u5458\u590D\u76D8\u81EA\u5DF1\u7684\u5E26\u5355\u8868\u73B0\u3001\u7EDF\u8BA1\u76C8\u4E8F\n## \u5173\u952E\u8BCD\uFF1A\u6211\u7684\u5E26\u5355\u5386\u53F2, my lead history, \u5E26\u5355\u8BB0\u5F55, \u5206\u6210\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_my_lead_positions \u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2 \u2192 okx_get_profit_sharing_details \u770B\u5206\u6210\u660E\u7EC6",
23370
23375
  {
23371
23376
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
23372
23377
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -23383,7 +23388,7 @@ function registerCopyTools(server, auth) {
23383
23388
  );
23384
23389
  server.tool(
23385
23390
  "okx_get_copy_instruments",
23386
- "\u67E5\u8BE2\u6211\u5F53\u524D\u4F5C\u4E3A\u5E26\u5355\u5458\u5141\u8BB8\u8DDF\u5355\u7684\u54C1\u79CD\u5217\u8868\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23391
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6211\u5F53\u524D\u4F5C\u4E3A\u5E26\u5355\u5458\u5141\u8BB8\u8DDF\u5355\u7684\u54C1\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5E26\u5355\u5458\u7BA1\u7406\u5141\u8BB8\u8DDF\u5355\u7684\u4EA4\u6613\u54C1\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u8DDF\u5355\u54C1\u79CD, copy instruments, \u5141\u8BB8\u8DDF\u5355, \u54C1\u79CD\u8BBE\u7F6E\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5141\u8BB8\u8DDF\u5355\u7684\u54C1\u79CD \u2192 \u8C03\u6574\u5E26\u5355\u8BBE\u7F6E",
23387
23392
  {
23388
23393
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
23389
23394
  },
@@ -23399,7 +23404,7 @@ function registerCopyTools(server, auth) {
23399
23404
  );
23400
23405
  server.tool(
23401
23406
  "okx_get_profit_sharing_total",
23402
- "\u67E5\u8BE2\u6211\u7684\u5E26\u5355\u7D2F\u8BA1\u6536\u53D6\u7684\u5206\u6210\u91D1\u989D\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23407
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6211\u7684\u5E26\u5355\u7D2F\u8BA1\u6536\u53D6\u7684\u5206\u6210\u91D1\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5E26\u5355\u5458\u67E5\u770B\u7D2F\u8BA1\u5206\u6210\u6536\u5165\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u5206\u6210, profit sharing, \u5206\u6210\u6536\u5165, \u7D2F\u8BA1\u5206\u6210\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u603B\u5206\u6210 \u2192 okx_get_profit_sharing_details \u770B\u9010\u7B14\u660E\u7EC6",
23403
23408
  {
23404
23409
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
23405
23410
  },
@@ -23415,7 +23420,7 @@ function registerCopyTools(server, auth) {
23415
23420
  );
23416
23421
  server.tool(
23417
23422
  "okx_get_profit_sharing_details",
23418
- "\u67E5\u8BE2\u5E26\u5355\u76C8\u5229\u5206\u6210\u7684\u9010\u7B14\u660E\u7EC6\uFF0C\u542B\u6BCF\u6B21\u5206\u6210\u7684\u91D1\u989D\u3001\u6765\u6E90\u8DDF\u5355\u8005\u548C\u65F6\u95F4\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23423
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5E26\u5355\u76C8\u5229\u5206\u6210\u7684\u9010\u7B14\u660E\u7EC6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5E26\u5355\u5458\u6838\u5BF9\u6BCF\u7B14\u5206\u6210\u91D1\u989D\u3001\u6765\u6E90\u8DDF\u5355\u8005\u548C\u65F6\u95F4\n## \u5173\u952E\u8BCD\uFF1A\u5206\u6210\u660E\u7EC6, profit details, \u5206\u7B14\u5206\u6210, \u8DDF\u5355\u5206\u6210\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_profit_sharing_total \u770B\u603B\u5206\u6210 \u2192 \u672C\u5DE5\u5177\u770B\u9010\u7B14\u660E\u7EC6",
23419
23424
  {
23420
23425
  instType: external_exports.enum(["SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
23421
23426
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -23436,7 +23441,7 @@ function registerCopyTools(server, auth) {
23436
23441
  function registerSignalTools(server, auth) {
23437
23442
  server.tool(
23438
23443
  "okx_get_signal_bots_pending",
23439
- "\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\u5217\u8868\uFF0C\u542B\u54C1\u79CD\u3001\u65B9\u5411\u3001\u4ED3\u4F4D\u548C\u4FE1\u53F7\u6765\u6E90\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23444
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u76D1\u63A7\u4FE1\u53F7\u673A\u5668\u4EBA\u8FD0\u884C\u72B6\u6001\u3001\u67E5\u770B\u54C1\u79CD\u548C\u4ED3\u4F4D\u3001\u5224\u65AD\u662F\u5426\u9700\u8981\u505C\u6B62\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u673A\u5668\u4EBA, signal bot, \u4FE1\u53F7\u4EA4\u6613, \u81EA\u52A8\u8DDF\u5355, \u673A\u5668\u4EBA\u72B6\u6001\n## \u53C2\u6570\uFF1A\n## - algoId: \u6307\u5B9A\u673A\u5668\u4EBAID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, MARGIN=\u6760\u6746\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u8FD0\u884C\u4E2D\u7684\u673A\u5668\u4EBA \u2192 okx_get_signal_positions \u770B\u6301\u4ED3 \u2192 okx_get_signal_sub_orders \u770B\u5B50\u5355",
23440
23445
  {
23441
23446
  algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
23442
23447
  instType: external_exports.enum(["SPOT", "SWAP", "FUTURES", "MARGIN"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
@@ -23453,7 +23458,7 @@ function registerSignalTools(server, auth) {
23453
23458
  );
23454
23459
  server.tool(
23455
23460
  "okx_get_signal_bots_history",
23456
- "\u67E5\u8BE2\u5DF2\u505C\u6B62\u7684\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\u5386\u53F2\u8BB0\u5F55\uFF0C\u542B\u6BCF\u4E2A\u673A\u5668\u4EBA\u7684\u7D2F\u8BA1\u76C8\u4E8F\u548C\u8FD0\u884C\u65F6\u957F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23461
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5DF2\u505C\u6B62\u7684\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u4FE1\u53F7\u4EA4\u6613\u6548\u679C\u3001\u8BC4\u4F30\u673A\u5668\u4EBA\u76C8\u4E8F\u3001\u4F18\u5316\u4FE1\u53F7\u7B56\u7565\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u5386\u53F2, signal history, \u673A\u5668\u4EBA\u8BB0\u5F55, \u4FE1\u53F7\u76C8\u4E8F, \u4FE1\u53F7\u590D\u76D8\n## \u53C2\u6570\uFF1A\n## - algoId: \u6307\u5B9A\u673A\u5668\u4EBAID\n## - instType: \u4EA7\u54C1\u7C7B\u578B\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5386\u53F2\u673A\u5668\u4EBA \u2192 okx_get_signal_positions_history \u770B\u6301\u4ED3 \u2192 okx_get_signal_event_history \u770B\u4FE1\u53F7",
23457
23462
  {
23458
23463
  algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID"),
23459
23464
  instType: external_exports.enum(["SPOT", "SWAP", "FUTURES", "MARGIN"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -23471,7 +23476,7 @@ function registerSignalTools(server, auth) {
23471
23476
  );
23472
23477
  server.tool(
23473
23478
  "okx_get_signal_positions",
23474
- "\u67E5\u8BE2\u6307\u5B9A\u4FE1\u53F7\u673A\u5668\u4EBA\u7684\u5F53\u524D\u6301\u4ED3\uFF0C\u542B\u672A\u5B9E\u73B0\u76C8\u4E8F\u548C\u5F00\u4ED3\u5747\u4EF7\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23479
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u4FE1\u53F7\u673A\u5668\u4EBA\u7684\u5F53\u524D\u6301\u4ED3\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4FE1\u53F7\u8DDF\u5355\u4ED3\u4F4D\u3001\u76D1\u63A7\u672A\u5B9E\u73B0\u76C8\u4E8F\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u6301\u4ED3, signal positions, \u8DDF\u5355\u4ED3\u4F4D, \u4FE1\u53F7\u4ED3\u4F4D\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_pending \u83B7\u53D6\uFF09\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1Aokx_get_signal_bots_pending \u83B7\u53D6\u673A\u5668\u4EBAID \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3 \u2192 \u51B3\u5B9A\u662F\u5426\u505C\u6B62",
23475
23480
  {
23476
23481
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_pending \u83B7\u53D6\uFF09")
23477
23482
  },
@@ -23487,7 +23492,7 @@ function registerSignalTools(server, auth) {
23487
23492
  );
23488
23493
  server.tool(
23489
23494
  "okx_get_signal_positions_history",
23490
- "\u67E5\u8BE2\u6307\u5B9A\u4FE1\u53F7\u673A\u5668\u4EBA\u7684\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\uFF0C\u542B\u6BCF\u7B14\u7684\u5B9E\u73B0\u76C8\u4E8F\u548C\u6301\u4ED3\u65F6\u957F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23495
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u4FE1\u53F7\u673A\u5668\u4EBA\u7684\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u4FE1\u53F7\u8DDF\u5355\u7684\u4EA4\u6613\u8868\u73B0\u3001\u7EDF\u8BA1\u76C8\u4E8F\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u6301\u4ED3\u5386\u53F2, signal positions history, \u8DDF\u5355\u76C8\u4E8F, \u4FE1\u53F7\u4EA4\u6613\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_history \u83B7\u53D6\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_signal_bots_history \u83B7\u53D6\u673A\u5668\u4EBAID \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2\u6301\u4ED3 \u2192 \u7EDF\u8BA1\u76C8\u4E8F",
23491
23496
  {
23492
23497
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_history \u83B7\u53D6\uFF09"),
23493
23498
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -23504,7 +23509,7 @@ function registerSignalTools(server, auth) {
23504
23509
  );
23505
23510
  server.tool(
23506
23511
  "okx_get_signal_sub_orders",
23507
- "\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u89E6\u53D1\u7684\u5B50\u8BA2\u5355\u5217\u8868\uFF0C\u53EF\u8FFD\u8E2A\u6BCF\u4E2A\u4FE1\u53F7\u5BF9\u5E94\u7684\u5B9E\u9645\u4E0B\u5355\u60C5\u51B5\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23512
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u89E6\u53D1\u7684\u5B50\u8BA2\u5355\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u6BCF\u4E2A\u4FE1\u53F7\u5BF9\u5E94\u7684\u5B9E\u9645\u4E0B\u5355\u60C5\u51B5\u3001\u9A8C\u8BC1\u4FE1\u53F7\u6267\u884C\u6548\u679C\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u5B50\u5355, signal sub orders, \u4FE1\u53F7\u6210\u4EA4, \u89E6\u53D1\u8BA2\u5355\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_signal_positions \u770B\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u770B\u5B50\u5355 \u2192 okx_get_signal_event_history \u770B\u4FE1\u53F7\u6E90",
23508
23513
  {
23509
23514
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
23510
23515
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -23521,7 +23526,7 @@ function registerSignalTools(server, auth) {
23521
23526
  );
23522
23527
  server.tool(
23523
23528
  "okx_get_signal_event_history",
23524
- "\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u6536\u5230\u7684\u4FE1\u53F7\u4E8B\u4EF6\u5386\u53F2\uFF0C\u542B\u6BCF\u6761\u4FE1\u53F7\u7684\u5185\u5BB9\u3001\u89E6\u53D1\u65F6\u95F4\u548C\u6267\u884C\u7ED3\u679C\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
23529
+ "## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u6536\u5230\u7684\u4FE1\u53F7\u4E8B\u4EF6\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u4FE1\u53F7\u6765\u6E90\u3001\u89E6\u53D1\u9891\u7387\u3001\u6267\u884C\u6210\u529F\u7387\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u4E8B\u4EF6, signal events, \u4FE1\u53F7\u6765\u6E90, \u89E6\u53D1\u8BB0\u5F55, \u4FE1\u53F7\u6267\u884C\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_signal_sub_orders \u770B\u5B50\u5355 \u2192 \u672C\u5DE5\u5177\u770B\u4FE1\u53F7\u6E90 \u2192 \u8BC4\u4F30\u4FE1\u53F7\u8D28\u91CF",
23525
23530
  {
23526
23531
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
23527
23532
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")