hvip-mcp-server 0.2.50 → 0.2.52

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 +740 -602
  2. package/package.json +1 -2
package/dist/index.js CHANGED
@@ -101,8 +101,8 @@ var require_package = __commonJS({
101
101
  // node_modules/dotenv/lib/main.js
102
102
  var require_main = __commonJS({
103
103
  "node_modules/dotenv/lib/main.js"(exports2, module2) {
104
- var fs2 = require("fs");
105
- var path2 = require("path");
104
+ var fs3 = require("fs");
105
+ var path3 = require("path");
106
106
  var os2 = require("os");
107
107
  var crypto5 = require("crypto");
108
108
  var packageJson = require_package();
@@ -210,7 +210,7 @@ var require_main = __commonJS({
210
210
  if (options && options.path && options.path.length > 0) {
211
211
  if (Array.isArray(options.path)) {
212
212
  for (const filepath of options.path) {
213
- if (fs2.existsSync(filepath)) {
213
+ if (fs3.existsSync(filepath)) {
214
214
  possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`;
215
215
  }
216
216
  }
@@ -218,15 +218,15 @@ var require_main = __commonJS({
218
218
  possibleVaultPath = options.path.endsWith(".vault") ? options.path : `${options.path}.vault`;
219
219
  }
220
220
  } else {
221
- possibleVaultPath = path2.resolve(process.cwd(), ".env.vault");
221
+ possibleVaultPath = path3.resolve(process.cwd(), ".env.vault");
222
222
  }
223
- if (fs2.existsSync(possibleVaultPath)) {
223
+ if (fs3.existsSync(possibleVaultPath)) {
224
224
  return possibleVaultPath;
225
225
  }
226
226
  return null;
227
227
  }
228
228
  function _resolveHome(envPath) {
229
- return envPath[0] === "~" ? path2.join(os2.homedir(), envPath.slice(1)) : envPath;
229
+ return envPath[0] === "~" ? path3.join(os2.homedir(), envPath.slice(1)) : envPath;
230
230
  }
231
231
  function _configVault(options) {
232
232
  const debug = Boolean(options && options.debug);
@@ -243,7 +243,7 @@ var require_main = __commonJS({
243
243
  return { parsed };
244
244
  }
245
245
  function configDotenv(options) {
246
- const dotenvPath = path2.resolve(process.cwd(), ".env");
246
+ const dotenvPath = path3.resolve(process.cwd(), ".env");
247
247
  let encoding = "utf8";
248
248
  const debug = Boolean(options && options.debug);
249
249
  const quiet = options && "quiet" in options ? options.quiet : true;
@@ -267,13 +267,13 @@ var require_main = __commonJS({
267
267
  }
268
268
  let lastError;
269
269
  const parsedAll = {};
270
- for (const path3 of optionPaths) {
270
+ for (const path4 of optionPaths) {
271
271
  try {
272
- const parsed = DotenvModule.parse(fs2.readFileSync(path3, { encoding }));
272
+ const parsed = DotenvModule.parse(fs3.readFileSync(path4, { encoding }));
273
273
  DotenvModule.populate(parsedAll, parsed, options);
274
274
  } catch (e) {
275
275
  if (debug) {
276
- _debug(`Failed to load ${path3} ${e.message}`);
276
+ _debug(`Failed to load ${path4} ${e.message}`);
277
277
  }
278
278
  lastError = e;
279
279
  }
@@ -288,7 +288,7 @@ var require_main = __commonJS({
288
288
  const shortPaths = [];
289
289
  for (const filePath of optionPaths) {
290
290
  try {
291
- const relative = path2.relative(process.cwd(), filePath);
291
+ const relative = path3.relative(process.cwd(), filePath);
292
292
  shortPaths.push(relative);
293
293
  } catch (e) {
294
294
  if (debug) {
@@ -3385,7 +3385,7 @@ var require_compile = __commonJS({
3385
3385
  const schOrFunc = root.refs[ref];
3386
3386
  if (schOrFunc)
3387
3387
  return schOrFunc;
3388
- let _sch = resolve.call(this, root, ref);
3388
+ let _sch = resolve2.call(this, root, ref);
3389
3389
  if (_sch === void 0) {
3390
3390
  const schema = (_a = root.localRefs) === null || _a === void 0 ? void 0 : _a[ref];
3391
3391
  const { schemaId } = this.opts;
@@ -3412,7 +3412,7 @@ var require_compile = __commonJS({
3412
3412
  function sameSchemaEnv(s1, s2) {
3413
3413
  return s1.schema === s2.schema && s1.root === s2.root && s1.baseId === s2.baseId;
3414
3414
  }
3415
- function resolve(root, ref) {
3415
+ function resolve2(root, ref) {
3416
3416
  let sch;
3417
3417
  while (typeof (sch = this.refs[ref]) == "string")
3418
3418
  ref = sch;
@@ -3630,8 +3630,8 @@ var require_utils = __commonJS({
3630
3630
  }
3631
3631
  return ind;
3632
3632
  }
3633
- function removeDotSegments(path2) {
3634
- let input = path2;
3633
+ function removeDotSegments(path3) {
3634
+ let input = path3;
3635
3635
  const output = [];
3636
3636
  let nextSlash = -1;
3637
3637
  let len = 0;
@@ -3883,8 +3883,8 @@ var require_schemes = __commonJS({
3883
3883
  wsComponent.secure = void 0;
3884
3884
  }
3885
3885
  if (wsComponent.resourceName) {
3886
- const [path2, query] = wsComponent.resourceName.split("?");
3887
- wsComponent.path = path2 && path2 !== "/" ? path2 : void 0;
3886
+ const [path3, query] = wsComponent.resourceName.split("?");
3887
+ wsComponent.path = path3 && path3 !== "/" ? path3 : void 0;
3888
3888
  wsComponent.query = query;
3889
3889
  wsComponent.resourceName = void 0;
3890
3890
  }
@@ -4043,7 +4043,7 @@ var require_fast_uri = __commonJS({
4043
4043
  }
4044
4044
  return uri;
4045
4045
  }
4046
- function resolve(baseURI, relativeURI, options) {
4046
+ function resolve2(baseURI, relativeURI, options) {
4047
4047
  const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
4048
4048
  const resolved = resolveComponent(parse3(baseURI, schemelessOptions), parse3(relativeURI, schemelessOptions), schemelessOptions, true);
4049
4049
  schemelessOptions.skipEscape = true;
@@ -4301,7 +4301,7 @@ var require_fast_uri = __commonJS({
4301
4301
  var fastUri = {
4302
4302
  SCHEMES,
4303
4303
  normalize,
4304
- resolve,
4304
+ resolve: resolve2,
4305
4305
  resolveComponent,
4306
4306
  equal,
4307
4307
  serialize,
@@ -7277,12 +7277,12 @@ var require_dist = __commonJS({
7277
7277
  throw new Error(`Unknown format "${name}"`);
7278
7278
  return f;
7279
7279
  };
7280
- function addFormats(ajv, list, fs2, exportName) {
7280
+ function addFormats(ajv, list, fs3, exportName) {
7281
7281
  var _a;
7282
7282
  var _b;
7283
7283
  (_a = (_b = ajv.opts.code).formats) !== null && _a !== void 0 ? _a : _b.formats = (0, codegen_1._)`require("ajv-formats/dist/formats").${exportName}`;
7284
7284
  for (const f of list)
7285
- ajv.addFormat(f, fs2[f]);
7285
+ ajv.addFormat(f, fs3[f]);
7286
7286
  }
7287
7287
  module2.exports = exports2 = formatsPlugin;
7288
7288
  Object.defineProperty(exports2, "__esModule", { value: true });
@@ -10969,40 +10969,6 @@ var require_websocket_server = __commonJS({
10969
10969
  }
10970
10970
  });
10971
10971
 
10972
- // node_modules/@colbymchenry/codegraph/npm-sdk.js
10973
- var require_npm_sdk = __commonJS({
10974
- "node_modules/@colbymchenry/codegraph/npm-sdk.js"(exports2, module2) {
10975
- "use strict";
10976
- var path2 = require("path");
10977
- var os2 = require("os");
10978
- var fs2 = require("fs");
10979
- var target = process.platform + "-" + process.arch;
10980
- var pkg = "@colbymchenry/codegraph-" + target;
10981
- module2.exports = require(resolveLibrary());
10982
- function resolveLibrary() {
10983
- try {
10984
- return require.resolve(pkg + "/lib/dist/index.js");
10985
- } catch (e) {
10986
- }
10987
- var cached2 = cachedLibrary();
10988
- if (cached2) return cached2;
10989
- throw new Error(
10990
- "codegraph: the programmatic API is unavailable because the platform bundle\n(" + pkg + ") is not installed.\nThe compiled library ships inside that per-platform optional dependency.\nFixes:\n - install from the official npm registry so the matching bundle is fetched:\n npm i @colbymchenry/codegraph --registry=https://registry.npmjs.org\n - or run the CLI once (e.g. `npx @colbymchenry/codegraph status`) to\n self-heal the bundle into ~/.codegraph, then require() will find it."
10991
- );
10992
- }
10993
- function cachedLibrary() {
10994
- try {
10995
- var version2 = require(path2.join(__dirname, "package.json")).version;
10996
- var base = process.env.CODEGRAPH_INSTALL_DIR || path2.join(os2.homedir(), ".codegraph");
10997
- var lib = path2.join(base, "bundles", target + "-" + version2, "lib", "dist", "index.js");
10998
- if (fs2.existsSync(lib)) return lib;
10999
- } catch (e) {
11000
- }
11001
- return null;
11002
- }
11003
- }
11004
- });
11005
-
11006
10972
  // node_modules/dotenv/config.js
11007
10973
  (function() {
11008
10974
  require_main().config(
@@ -11495,8 +11461,8 @@ function getErrorMap() {
11495
11461
 
11496
11462
  // node_modules/zod/v3/helpers/parseUtil.js
11497
11463
  var makeIssue = (params) => {
11498
- const { data, path: path2, errorMaps, issueData } = params;
11499
- const fullPath = [...path2, ...issueData.path || []];
11464
+ const { data, path: path3, errorMaps, issueData } = params;
11465
+ const fullPath = [...path3, ...issueData.path || []];
11500
11466
  const fullIssue = {
11501
11467
  ...issueData,
11502
11468
  path: fullPath
@@ -11612,11 +11578,11 @@ var errorUtil;
11612
11578
 
11613
11579
  // node_modules/zod/v3/types.js
11614
11580
  var ParseInputLazyPath = class {
11615
- constructor(parent, value, path2, key) {
11581
+ constructor(parent, value, path3, key) {
11616
11582
  this._cachedPath = [];
11617
11583
  this.parent = parent;
11618
11584
  this.data = value;
11619
- this._path = path2;
11585
+ this._path = path3;
11620
11586
  this._key = key;
11621
11587
  }
11622
11588
  get path() {
@@ -15253,10 +15219,10 @@ function assignProp(target, prop, value) {
15253
15219
  configurable: true
15254
15220
  });
15255
15221
  }
15256
- function getElementAtPath(obj, path2) {
15257
- if (!path2)
15222
+ function getElementAtPath(obj, path3) {
15223
+ if (!path3)
15258
15224
  return obj;
15259
- return path2.reduce((acc, key) => acc?.[key], obj);
15225
+ return path3.reduce((acc, key) => acc?.[key], obj);
15260
15226
  }
15261
15227
  function promiseAllObject(promisesObj) {
15262
15228
  const keys = Object.keys(promisesObj);
@@ -15576,11 +15542,11 @@ function aborted(x, startIndex = 0) {
15576
15542
  }
15577
15543
  return false;
15578
15544
  }
15579
- function prefixIssues(path2, issues) {
15545
+ function prefixIssues(path3, issues) {
15580
15546
  return issues.map((iss) => {
15581
15547
  var _a;
15582
15548
  (_a = iss).path ?? (_a.path = []);
15583
- iss.path.unshift(path2);
15549
+ iss.path.unshift(path3);
15584
15550
  return iss;
15585
15551
  });
15586
15552
  }
@@ -23110,7 +23076,7 @@ var Protocol = class {
23110
23076
  return;
23111
23077
  }
23112
23078
  const pollInterval = task2.pollInterval ?? this._options?.defaultTaskPollInterval ?? 1e3;
23113
- await new Promise((resolve) => setTimeout(resolve, pollInterval));
23079
+ await new Promise((resolve2) => setTimeout(resolve2, pollInterval));
23114
23080
  options?.signal?.throwIfAborted();
23115
23081
  }
23116
23082
  } catch (error2) {
@@ -23127,7 +23093,7 @@ var Protocol = class {
23127
23093
  */
23128
23094
  request(request3, resultSchema, options) {
23129
23095
  const { relatedRequestId, resumptionToken, onresumptiontoken, task, relatedTask } = options ?? {};
23130
- return new Promise((resolve, reject) => {
23096
+ return new Promise((resolve2, reject) => {
23131
23097
  const earlyReject = (error2) => {
23132
23098
  reject(error2);
23133
23099
  };
@@ -23205,7 +23171,7 @@ var Protocol = class {
23205
23171
  if (!parseResult.success) {
23206
23172
  reject(parseResult.error);
23207
23173
  } else {
23208
- resolve(parseResult.data);
23174
+ resolve2(parseResult.data);
23209
23175
  }
23210
23176
  } catch (error2) {
23211
23177
  reject(error2);
@@ -23466,12 +23432,12 @@ var Protocol = class {
23466
23432
  }
23467
23433
  } catch {
23468
23434
  }
23469
- return new Promise((resolve, reject) => {
23435
+ return new Promise((resolve2, reject) => {
23470
23436
  if (signal.aborted) {
23471
23437
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
23472
23438
  return;
23473
23439
  }
23474
- const timeoutId = setTimeout(resolve, interval);
23440
+ const timeoutId = setTimeout(resolve2, interval);
23475
23441
  signal.addEventListener("abort", () => {
23476
23442
  clearTimeout(timeoutId);
23477
23443
  reject(new McpError(ErrorCode.InvalidRequest, "Request cancelled"));
@@ -24571,7 +24537,7 @@ var McpServer = class {
24571
24537
  let task = createTaskResult.task;
24572
24538
  const pollInterval = task.pollInterval ?? 5e3;
24573
24539
  while (task.status !== "completed" && task.status !== "failed" && task.status !== "cancelled") {
24574
- await new Promise((resolve) => setTimeout(resolve, pollInterval));
24540
+ await new Promise((resolve2) => setTimeout(resolve2, pollInterval));
24575
24541
  const updatedTask = await extra.taskStore.getTask(taskId);
24576
24542
  if (!updatedTask) {
24577
24543
  throw new McpError(ErrorCode.InternalError, `Task ${taskId} not found during polling`);
@@ -25220,12 +25186,12 @@ var StdioServerTransport = class {
25220
25186
  this.onclose?.();
25221
25187
  }
25222
25188
  send(message) {
25223
- return new Promise((resolve) => {
25189
+ return new Promise((resolve2) => {
25224
25190
  const json = serializeMessage(message);
25225
25191
  if (this._stdout.write(json)) {
25226
- resolve();
25192
+ resolve2();
25227
25193
  } else {
25228
- this._stdout.once("drain", resolve);
25194
+ this._stdout.once("drain", resolve2);
25229
25195
  }
25230
25196
  });
25231
25197
  }
@@ -25724,7 +25690,7 @@ var responseViaResponseObject = async (res, outgoing, options = {}) => {
25724
25690
  });
25725
25691
  if (!chunk) {
25726
25692
  if (i === 1) {
25727
- await new Promise((resolve) => setTimeout(resolve));
25693
+ await new Promise((resolve2) => setTimeout(resolve2));
25728
25694
  maxReadCount = 3;
25729
25695
  continue;
25730
25696
  }
@@ -26224,9 +26190,9 @@ data:
26224
26190
  const initRequest = messages.find((m) => isInitializeRequest(m));
26225
26191
  const clientProtocolVersion = initRequest ? initRequest.params.protocolVersion : req.headers.get("mcp-protocol-version") ?? DEFAULT_NEGOTIATED_PROTOCOL_VERSION;
26226
26192
  if (this._enableJsonResponse) {
26227
- return new Promise((resolve) => {
26193
+ return new Promise((resolve2) => {
26228
26194
  this._streamMapping.set(streamId, {
26229
- resolveJson: resolve,
26195
+ resolveJson: resolve2,
26230
26196
  cleanup: () => {
26231
26197
  this._streamMapping.delete(streamId);
26232
26198
  }
@@ -26559,8 +26525,8 @@ var StreamableHTTPServerTransport = class {
26559
26525
  // src/adapters/okx.ts
26560
26526
  var import_node_crypto = __toESM(require("node:crypto"));
26561
26527
  var BASE = "https://www.okx.com";
26562
- function sign(ts, method, path2, body, secret) {
26563
- const msg = ts + method + path2 + body;
26528
+ function sign(ts, method, path3, body, secret) {
26529
+ const msg = ts + method + path3 + body;
26564
26530
  return import_node_crypto.default.createHmac("sha256", secret).update(msg).digest("base64");
26565
26531
  }
26566
26532
  function timestamp() {
@@ -26573,9 +26539,9 @@ function buildQuery(params) {
26573
26539
  }
26574
26540
  return p.size ? "?" + p.toString() : "";
26575
26541
  }
26576
- async function request(method, path2, options = {}) {
26542
+ async function request(method, path3, options = {}) {
26577
26543
  const query = options.params ? buildQuery(options.params) : "";
26578
- const fullPath = path2 + query;
26544
+ const fullPath = path3 + query;
26579
26545
  const bodyStr = options.body ? JSON.stringify(options.body) : "";
26580
26546
  const headers = {
26581
26547
  "Content-Type": "application/json",
@@ -26964,12 +26930,12 @@ var privateApi = {
26964
26930
 
26965
26931
  // src/adapters/hrails.ts
26966
26932
  var DEFAULT_BASE = "https://api-staging.hwallet.vip";
26967
- async function request2(path2, params = {}, apiKey, base) {
26933
+ async function request2(path3, params = {}, apiKey, base) {
26968
26934
  const filtered = Object.entries(params).filter(([, v]) => v !== void 0 && v !== "");
26969
26935
  const p = new URLSearchParams();
26970
26936
  for (const [k, v] of filtered) p.append(k, String(v));
26971
26937
  const query = p.size ? "?" + p.toString() : "";
26972
- const res = await fetch(base + path2 + query, {
26938
+ const res = await fetch(base + path3 + query, {
26973
26939
  headers: {
26974
26940
  "Accept": "application/json",
26975
26941
  "Authorization": `Bearer ${apiKey}`
@@ -26981,7 +26947,7 @@ async function request2(path2, params = {}, apiKey, base) {
26981
26947
  return json.data ?? json;
26982
26948
  }
26983
26949
  function createHRailsClient(apiKey, baseUrl = DEFAULT_BASE) {
26984
- const get = (path2, params) => request2(path2, params, apiKey, baseUrl);
26950
+ const get = (path3, params) => request2(path3, params, apiKey, baseUrl);
26985
26951
  return {
26986
26952
  health: () => fetch(baseUrl + "/health").then((r) => r.json()),
26987
26953
  listEvents: (params) => {
@@ -27326,7 +27292,7 @@ function toError(e) {
27326
27292
  function registerMarketTools(server) {
27327
27293
  server.tool(
27328
27294
  "okx_get_ticker",
27329
- "CAT:[\u884C\u60C5] | ## \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",
27295
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27330
27296
  { 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") },
27331
27297
  async ({ instId }) => {
27332
27298
  try {
@@ -27348,7 +27314,7 @@ function registerMarketTools(server) {
27348
27314
  );
27349
27315
  server.tool(
27350
27316
  "okx_get_tickers",
27351
- "CAT:[\u884C\u60C5] | ## \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",
27317
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27352
27318
  { instType: external_exports.enum(INST_TYPE_MARKET).describe("\u4EA7\u54C1\u7C7B\u578B") },
27353
27319
  async ({ instType }) => {
27354
27320
  try {
@@ -27366,7 +27332,7 @@ function registerMarketTools(server) {
27366
27332
  );
27367
27333
  server.tool(
27368
27334
  "okx_get_orderbook",
27369
- "CAT:[\u884C\u60C5] | ## \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",
27335
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27370
27336
  {
27371
27337
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
27372
27338
  depth: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927400")
@@ -27396,7 +27362,7 @@ function registerMarketTools(server) {
27396
27362
  );
27397
27363
  server.tool(
27398
27364
  "okx_get_candles",
27399
- "CAT:[\u884C\u60C5] | ## \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",
27365
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27400
27366
  {
27401
27367
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
27402
27368
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27423,7 +27389,7 @@ function registerMarketTools(server) {
27423
27389
  );
27424
27390
  server.tool(
27425
27391
  "okx_get_trades",
27426
- "CAT:[\u884C\u60C5] | ## \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",
27392
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27427
27393
  {
27428
27394
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
27429
27395
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -27443,7 +27409,7 @@ function registerMarketTools(server) {
27443
27409
  );
27444
27410
  server.tool(
27445
27411
  "okx_get_history_candles",
27446
- "CAT:[\u884C\u60C5] | ## \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",
27412
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27447
27413
  {
27448
27414
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
27449
27415
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27472,7 +27438,7 @@ function registerMarketTools(server) {
27472
27438
  );
27473
27439
  server.tool(
27474
27440
  "okx_get_history_trades",
27475
- "CAT:[\u884C\u60C5] | ## \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",
27441
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27476
27442
  {
27477
27443
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
27478
27444
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -27492,7 +27458,7 @@ function registerMarketTools(server) {
27492
27458
  );
27493
27459
  server.tool(
27494
27460
  "okx_get_system_status",
27495
- "CAT:[\u884C\u60C5] | ## \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",
27461
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27496
27462
  {},
27497
27463
  async () => {
27498
27464
  try {
@@ -27505,7 +27471,7 @@ function registerMarketTools(server) {
27505
27471
  );
27506
27472
  server.tool(
27507
27473
  "okx_get_block_tickers",
27508
- "CAT:[\u884C\u60C5] | ## \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",
27474
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27509
27475
  {
27510
27476
  instType: external_exports.enum(INST_TYPE_MARKET).describe("\u4EA7\u54C1\u7C7B\u578B")
27511
27477
  },
@@ -27525,7 +27491,7 @@ function registerMarketTools(server) {
27525
27491
  );
27526
27492
  server.tool(
27527
27493
  "okx_get_books_full",
27528
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u5168\u6DF1\u5EA6\u8BA2\u5355\u7C3F\uFF08\u6240\u6709\u6863\u4F4D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7CBE\u786E\u5206\u6790\u5E02\u573A\u6D41\u52A8\u6027\u5168\u8C8C\u3001\u53D1\u73B0\u9690\u85CF\u7684\u5927\u989D\u6302\u5355\u3001\u8BA1\u7B97\u6DF1\u5EA6\u52A0\u6743\u4EF7\u683C\n## \u5173\u952E\u8BCD\uFF1A\u5168\u6DF1\u5EA6, \u5B8C\u6574\u8BA2\u5355\u7C3F, books full, \u6240\u6709\u6863\u4F4D, \u6DF1\u5EA6\u5206\u6790, \u6D41\u52A8\u6027\u5168\u666F\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\n## - depth: \u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA4\u5168\u90E8\uFF0C\u53EF\u9009\u6307\u5B9A\u6863\u4F4D\u6570\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\u3002\u26A0\uFE0F \u6570\u636E\u91CF\u5927\uFF08\u53EF\u8FBE\u6570\u767EKB\uFF09\uFF0C\u614E\u91CD\u5168\u91CF\u8FD4\u56DE\n## \u8FD4\u56DE\u91CF\uFF1A\u5927\u578B ~200KB+\uFF08\u5305\u542B\u6240\u6709\u6863\u4F4D\u6570\u636E\uFF09\n## \u5173\u8054\uFF1Aokx_get_orderbook \u770B\u6709\u9650\u6DF1\u5EA6 \u2192 \u672C\u5DE5\u5177\u770B\u5168\u6DF1\u5EA6 \u2192 \u8BA1\u7B97\u7CBE\u786E\u5E02\u573A\u51B2\u51FB\u6210\u672C",
27494
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27529
27495
  {
27530
27496
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
27531
27497
  depth: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA4\u5168\u91CF\uFF0C\u53EF\u9009\u9650\u5236")
@@ -27555,7 +27521,7 @@ function registerMarketTools(server) {
27555
27521
  );
27556
27522
  server.tool(
27557
27523
  "okx_get_index_tickers",
27558
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u6570\u884C\u60C5\u5217\u8868\uFF08\u591A\u4EA4\u6613\u6240\u52A0\u6743\u5747\u4EF7\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6307\u6570\u73B0\u8D27\u4EF7\u683C\u57FA\u51C6\u3001\u6279\u91CF\u83B7\u53D6\u5404\u5E01\u79CD\u6307\u6570\u4EF7\u683C\u3001\u5224\u65AD\u5408\u7EA6\u6807\u8BB0\u4EF7\u504F\u5DEE\n## \u5173\u952E\u8BCD\uFF1A\u6307\u6570\u884C\u60C5, index tickers, \u6307\u6570\u4EF7\u683C, \u52A0\u6743\u5747\u4EF7, \u73B0\u8D27\u57FA\u51C6\n## \u53C2\u6570\uFF1A\n## - quoteCcy: \u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USDT\u3001USD\u3001BTC\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## - instId: \u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\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 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6307\u6570\u4EF7\u683C \u2192 okx_get_mark_price \u770B\u6807\u8BB0\u4EF7 \u2192 \u5BF9\u6BD4\u504F\u5DEE\u5224\u65AD\u5957\u5229\u7A7A\u95F4",
27524
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27559
27525
  {
27560
27526
  quoteCcy: external_exports.string().optional().describe("\u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USDT\u3001USD\u3001BTC"),
27561
27527
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT")
@@ -27575,7 +27541,7 @@ function registerMarketTools(server) {
27575
27541
  );
27576
27542
  server.tool(
27577
27543
  "okx_get_index_candles",
27578
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u6570K\u7EBF\u6570\u636E\uFF08\u591A\u4EA4\u6613\u6240\u52A0\u6743\u5747\u4EF7\u7684OHLCV\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u73B0\u8D27\u5E02\u573A\u6574\u4F53\u4EF7\u683C\u8D70\u52BF\u3001\u6392\u9664\u5355\u4EA4\u6613\u6240\u5F02\u5E38\u6CE2\u52A8\u3001\u5224\u65AD\u771F\u5B9E\u5E02\u573A\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u6307\u6570K\u7EBF, index candles, \u6307\u6570OHLCV, \u52A0\u6743K\u7EBF, \u73B0\u8D27\u8D8B\u52BF\n## \u53C2\u6570\uFF1A\n## - instId: \u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\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\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\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_candles \u770B\u5355\u4EA4\u6613\u6240K\u7EBF \u2192 \u672C\u5DE5\u5177\u770B\u6307\u6570K\u7EBF \u2192 \u5BF9\u6BD4\u5224\u65AD\u4EA4\u6613\u6240\u504F\u5DEE",
27544
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27579
27545
  {
27580
27546
  instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
27581
27547
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27604,7 +27570,7 @@ function registerMarketTools(server) {
27604
27570
  );
27605
27571
  server.tool(
27606
27572
  "okx_get_block_ticker",
27607
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u5355\u4E2A\u4EA7\u54C1\u5B9E\u65F6\u884C\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u8BE2\u5927\u5B97\u5E02\u573A\u7684\u6700\u65B0\u6210\u4EA4\u4EF7\u3001\u4E70\u5356\u62A5\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u5927\u5B97\u884C\u60C5, block ticker, \u5927\u5B97\u6700\u65B0\u4EF7, \u5927\u5B97\u4E70\u5356\u4EF7\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\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 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5927\u5B97\u884C\u60C5 \u2192 okx_get_block_tickers \u770B\u5168\u91CF\u5927\u5B97 \u2192 \u8BC4\u4F30\u5927\u5B97\u5E02\u573A",
27573
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27608
27574
  {
27609
27575
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B")
27610
27576
  },
@@ -27623,7 +27589,7 @@ function registerMarketTools(server) {
27623
27589
  );
27624
27590
  server.tool(
27625
27591
  "okx_get_history_index_candles",
27626
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u6570\u5386\u53F2K\u7EBF\uFF083\u4E2A\u6708\u4EE5\u524D\u7684\u6570\u636E\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u957F\u5468\u671F\u6307\u6570\u8D70\u52BF\u5206\u6790\u3001\u7B56\u7565\u56DE\u6D4B\n## \u5173\u952E\u8BCD\uFF1A\u6307\u6570\u5386\u53F2K\u7EBF, index history candles, \u5386\u53F2\u6307\u6570, \u56DE\u6D4B\u6570\u636E\n## \u53C2\u6570\uFF1A\n## - instId: \u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\n## \u5173\u8054\uFF1Aokx_get_index_candles \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u957F\u5468\u671F\u5206\u6790",
27592
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27627
27593
  {
27628
27594
  instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
27629
27595
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27651,7 +27617,7 @@ function registerMarketTools(server) {
27651
27617
  );
27652
27618
  server.tool(
27653
27619
  "okx_get_history_mark_price_candles",
27654
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6807\u8BB0\u4EF7\u5386\u53F2K\u7EBF\uFF083\u4E2A\u6708\u4EE5\u524D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5386\u53F2\u6807\u8BB0\u4EF7\u8D70\u52BF\u56DE\u6D4B\u3001\u5206\u6790\u5F3A\u5E73\u4EF7\u683C\u53D8\u5316\n## \u5173\u952E\u8BCD\uFF1A\u6807\u8BB0\u4EF7\u5386\u53F2K\u7EBF, mark price history candles, \u6807\u8BB0\u4EF7\u56DE\u6D4B\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\n## \u5173\u8054\uFF1Aokx_get_mark_price_candles \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u5BF9\u6BD4\u5206\u6790",
27620
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27655
27621
  {
27656
27622
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
27657
27623
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27679,7 +27645,7 @@ function registerMarketTools(server) {
27679
27645
  );
27680
27646
  server.tool(
27681
27647
  "okx_get_mark_price_candles",
27682
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6807\u8BB0\u4EF7K\u7EBF\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA1\u7B97\u5408\u7EA6\u8D44\u91D1\u8D39\u7387\u7528\u7684\u6807\u8BB0\u4EF7\u8D70\u52BF\u3001\u5224\u65AD\u5F3A\u5E73\u98CE\u9669\n## \u5173\u952E\u8BCD\uFF1A\u6807\u8BB0\u4EF7K\u7EBF, mark price candles, \u6807\u8BB0\u4EF7\u8D70\u52BF, \u5F3A\u5E73\u53C2\u8003\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\n## \u5173\u8054\uFF1Aokx_get_index_candles \u770B\u6307\u6570K\u7EBF \u2192 \u672C\u5DE5\u5177\u770B\u6807\u8BB0\u4EF7 \u2192 \u5BF9\u6BD4\u57FA\u5DEE",
27648
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27683
27649
  {
27684
27650
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
27685
27651
  bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27707,7 +27673,7 @@ function registerMarketTools(server) {
27707
27673
  );
27708
27674
  server.tool(
27709
27675
  "okx_get_sprd_history_candles",
27710
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u5386\u53F2K\u7EBF\uFF083\u4E2A\u6708\u4EE5\u524D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7814\u7A76\u4EF7\u5DEE\u5386\u53F2\u8D70\u52BF\u7684\u957F\u671F\u8D8B\u52BF\u3001\u8BA1\u7B97\u8DE8\u671F\u5957\u5229\u7684\u5B63\u8282\u6027\u6A21\u5F0F\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5386\u53F2K\u7EBF, sprd history candles, \u4EF7\u5DEE\u56DE\u6D4B, \u8DE8\u671F\u5386\u53F2\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\n## \u5173\u8054\uFF1Aokx_get_spread_candles \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u957F\u5468\u671F\u5957\u5229\u5206\u6790",
27676
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27711
27677
  {
27712
27678
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
27713
27679
  bar: external_exports.enum(["1m", "5m", "15m", "30m", "1H", "4H", "1D"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -27740,7 +27706,7 @@ function registerMarketTools(server) {
27740
27706
  function registerPublicTools(server, auth) {
27741
27707
  server.tool(
27742
27708
  "okx_get_instruments",
27743
- "CAT:[\u516C\u5171] | ## \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",
27709
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27744
27710
  {
27745
27711
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
27746
27712
  instId: external_exports.string().optional().describe("\u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u91CF")
@@ -27758,7 +27724,7 @@ function registerPublicTools(server, auth) {
27758
27724
  );
27759
27725
  server.tool(
27760
27726
  "okx_get_funding_rate",
27761
- "CAT:[\u516C\u5171] | ## \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",
27727
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27762
27728
  { instId: external_exports.string().describe("\u6C38\u7EED\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP") },
27763
27729
  async ({ instId }) => {
27764
27730
  try {
@@ -27777,7 +27743,7 @@ function registerPublicTools(server, auth) {
27777
27743
  );
27778
27744
  server.tool(
27779
27745
  "okx_get_mark_price",
27780
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u6807\u8BB0\u4EF7\u683C\uFF0C\u7528\u4E8E\u8BA1\u7B97\u6D6E\u52A8\u76C8\u4E8F\u548C\u5F3A\u5E73\u4EF7\u683C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5408\u7EA6\u5F53\u524D\u6807\u8BB0\u4EF7\u3001\u5224\u65AD\u4E0E\u6307\u6570\u4EF7\u683C\u504F\u5DEE\u3001\u53D1\u73B0\u5957\u5229\u7A7A\u95F4\u3001\u6279\u91CF\u76D1\u63A7\u6807\u8BB0\u4EF7\u683C\n## \u5173\u952E\u8BCD\uFF1A\u6807\u8BB0\u4EF7\u683C, mark price, \u6807\u8BB0\u4EF7, \u5F3A\u5E73\u4EF7\u683C, \u6D6E\u52A8\u76C8\u4E8F, \u5957\u5229\u7A7A\u95F4\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## - instId: \u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u8BE5\u7C7B\u578B\u5168\u91CF\uFF08~30KB\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\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\u5355\u4EA7\u54C1 ~500B\uFF0C\u5168\u91CF ~30KB\uFF08\u5DF2\u81EA\u52A8\u622A\u65AD top 20\uFF09\n## \u5173\u8054\uFF1Aokx_get_index_price \u770B\u6307\u6570\u4EF7 \u2192 \u672C\u5DE5\u5177\u770B\u6807\u8BB0\u4EF7 \u2192 \u5BF9\u6BD4\u57FA\u5DEE \u2192 okx_get_ticker \u770B\u6700\u65B0\u4EF7",
27746
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27781
27747
  {
27782
27748
  instType: external_exports.enum(INST_TYPE_PUBLIC).describe("\u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
27783
27749
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u8BE5\u7C7B\u578B\u5168\u91CF")
@@ -27798,7 +27764,7 @@ function registerPublicTools(server, auth) {
27798
27764
  );
27799
27765
  server.tool(
27800
27766
  "okx_get_index_price",
27801
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u6570\u4EF7\u683C\uFF08\u591A\u4EA4\u6613\u6240\u52A0\u6743\u5747\u4EF7\uFF09\uFF0C\u53CD\u6620\u73B0\u8D27\u5E02\u573A\u6574\u4F53\u4EF7\u683C\u57FA\u51C6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u73B0\u8D27\u5E02\u573A\u6574\u4F53\u4EF7\u683C\u3001\u4E0E\u6807\u8BB0\u4EF7\u683C\u5BF9\u6BD4\u53D1\u73B0\u504F\u5DEE\u3001\u8BC4\u4F30\u5408\u7EA6\u6EA2\u4EF7/\u6298\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u6307\u6570\u4EF7\u683C, index price, \u52A0\u6743\u5747\u4EF7, \u73B0\u8D27\u57FA\u51C6, \u6307\u6570\u4EF7, \u591A\u4EA4\u6613\u6240\u5747\u4EF7\n## \u53C2\u6570\uFF1A\n## - instId: \u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-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\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6307\u6570\u4EF7 \u2192 okx_get_mark_price \u770B\u6807\u8BB0\u4EF7 \u2192 \u5BF9\u6BD4\u504F\u5DEE \u2192 \u5224\u65AD\u5957\u5229\u7A7A\u95F4",
27767
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27802
27768
  { instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT") },
27803
27769
  async ({ instId }) => {
27804
27770
  try {
@@ -27815,7 +27781,7 @@ function registerPublicTools(server, auth) {
27815
27781
  );
27816
27782
  server.tool(
27817
27783
  "okx_get_open_interest",
27818
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u6301\u4ED3\u91CF\u6570\u636E\uFF0C\u53CD\u6620\u5E02\u573A\u53C2\u4E0E\u5EA6\u548C\u8D44\u91D1\u6D41\u5411\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u65B0\u8D44\u91D1\u5165\u573A\uFF08\u6301\u4ED3\u91CF\u5FEB\u901F\u589E\u52A0\uFF09\u3001\u5206\u6790\u8D8B\u52BF\u5F3A\u5EA6\u3001\u6279\u91CF\u76D1\u63A7\u5408\u7EA6\u6301\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u91CF, open interest, OI, \u672A\u5E73\u4ED3\u91CF, \u8D44\u91D1\u6D41\u5165, \u5E02\u573A\u53C2\u4E0E\u5EA6, \u5408\u7EA6\u6301\u4ED3\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## - instId: \u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u91CF\uFF08~77KB\uFF0C\u5DF2\u81EA\u52A8\u622A\u65ADtop20\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\u5355\u4EA7\u54C1 ~500B\uFF0C\u5168\u91CF ~77KB\uFF08\u5DF2\u81EA\u52A8\u622A\u65AD top 20\uFF09\n## \u5173\u8054\uFF1Aokx_get_ticker \u770B\u4EF7\u683C\u65B9\u5411 \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3\u91CF\u53D8\u5316 \u2192 \u91CF\u4EF7\u7ED3\u5408\u5224\u65AD\u8D8B\u52BF",
27784
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27819
27785
  {
27820
27786
  instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
27821
27787
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u91CF")
@@ -27836,7 +27802,7 @@ function registerPublicTools(server, auth) {
27836
27802
  );
27837
27803
  server.tool(
27838
27804
  "okx_get_system_time",
27839
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u670D\u52A1\u5668\u5F53\u524D\u65F6\u95F4\u6233\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6821\u51C6\u672C\u5730\u65F6\u95F4\u504F\u5DEE\u3001\u786E\u4FDD\u7B7E\u540D\u8BF7\u6C42\u7684\u65F6\u95F4\u6233\u5728\u6709\u6548\u8303\u56F4\u5185\uFF08\xB130\u79D2\uFF09\u3001\u6392\u67E5\u9274\u6743\u5931\u8D25\n## \u5173\u952E\u8BCD\uFF1A\u670D\u52A1\u5668\u65F6\u95F4, system time, \u65F6\u95F4\u6233, \u65F6\u95F4\u6821\u51C6, \u7B7E\u540D\u65F6\u95F4, \u9274\u6743\u65F6\u95F4\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\u6821\u51C6\u65F6\u95F4 \u2192 \u6240\u6709\u9274\u6743\u63A5\u53E3\u4F9D\u8D56\u6B63\u786E\u65F6\u95F4\u6233 \u2192 okx_place_order \u7B49\u4E0B\u5355",
27805
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27840
27806
  {},
27841
27807
  async () => {
27842
27808
  try {
@@ -27849,7 +27815,7 @@ function registerPublicTools(server, auth) {
27849
27815
  );
27850
27816
  server.tool(
27851
27817
  "okx_get_opt_summary",
27852
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u5E02\u573A\u6458\u8981\u6570\u636E\uFF0C\u542B\u5404\u5230\u671F\u65E5\u7684\u9690\u542B\u6CE2\u52A8\u7387\uFF08IV\uFF09\u3001\u672A\u5E73\u4ED3\u91CF\u548C\u6210\u4EA4\u91CF\u5206\u5E03\n## \u573A\u666F\uFF1A\u7528\u4E8E\u671F\u6743\u4EA4\u6613\u524D\u5E02\u573A\u626B\u63CF\u3001\u5206\u6790\u6CE2\u52A8\u7387\u671F\u9650\u7ED3\u6784\u3001\u53D1\u73B0\u5F02\u5E38IV\u3001\u6309\u5230\u671F\u65E5\u7B5B\u9009\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6458\u8981, opt summary, \u9690\u542B\u6CE2\u52A8\u7387, IV, \u671F\u6743\u672A\u5E73\u4ED3, \u6CE2\u52A8\u7387\u66F2\u7EBF, \u671F\u6743\u5E02\u573A\n## \u53C2\u6570\uFF1A\n## - uly: \u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\u3001ETH-USD\n## - expTime: \u5230\u671F\u65E5\u7B5B\u9009\uFF0C\u683C\u5F0F YYYYMMDD\uFF0C\u5982 20250101\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\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u626B\u63CF\u671F\u6743\u5E02\u573A \u2192 okx_get_instruments(instType=OPTION) \u83B7\u53D6\u5177\u4F53\u5408\u7EA6 \u2192 okx_get_ticker \u67E5\u671F\u6743\u884C\u60C5",
27818
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27853
27819
  {
27854
27820
  uly: external_exports.string().describe("\u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\u3001ETH-USD"),
27855
27821
  expTime: external_exports.string().optional().describe("\u5230\u671F\u65E5\u7B5B\u9009\uFF0C\u683C\u5F0F YYYYMMDD\uFF0C\u5982 20250101")
@@ -27869,7 +27835,7 @@ function registerPublicTools(server, auth) {
27869
27835
  );
27870
27836
  server.tool(
27871
27837
  "okx_get_insurance_fund",
27872
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u4FDD\u9669\u57FA\u91D1\u4F59\u989D\u53D8\u52A8\u5386\u53F2\uFF0C\u53CD\u6620\u4EA4\u6613\u6240\u62B5\u5FA1\u6781\u7AEF\u884C\u60C5\u7684\u80FD\u529B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u5E73\u53F0\u98CE\u9669\u3001\u76D1\u63A7\u4FDD\u9669\u57FA\u91D1\u89C4\u6A21\u53D8\u5316\u3001\u6781\u7AEF\u884C\u60C5\u524D\u540E\u5BF9\u6BD4\u57FA\u91D1\u6D88\u8017\n## \u5173\u952E\u8BCD\uFF1A\u4FDD\u9669\u57FA\u91D1, insurance fund, \u5E73\u53F0\u98CE\u9669, \u6781\u7AEF\u884C\u60C5, \u4EA4\u6613\u6240\u4FDD\u969C, \u98CE\u9669\u6307\u6807\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\n## - uly: \u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\uFF08SWAP/FUTURES/OPTION\u5FC5\u586B\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_instruments \u83B7\u53D6\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u770B\u4FDD\u9669\u57FA\u91D1 \u2192 \u8BC4\u4F30\u5E73\u53F0\u5065\u5EB7\u5EA6",
27838
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27873
27839
  {
27874
27840
  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"),
27875
27841
  uly: external_exports.string().optional().describe("\u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\uFF08SWAP/FUTURES/OPTION\u5FC5\u586B\uFF09")
@@ -27889,7 +27855,7 @@ function registerPublicTools(server, auth) {
27889
27855
  );
27890
27856
  server.tool(
27891
27857
  "okx_convert_contract_coin",
27892
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u5408\u7EA6\u5F20\u6570\u4E0E\u5E01\u6570\u4E92\u6362\u8BA1\u7B97\uFF0C\u4E0B\u5408\u7EA6\u5355\u524D\u6362\u7B97\u6570\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E0B\u5355\u524D\u5C06\u5E01\u6570\u6362\u7B97\u4E3A\u5408\u7EA6\u5F20\u6570\u3001\u5F20\u6570\u6362\u5E01\u6570\u3001\u907F\u514D\u6570\u91CF\u586B\u9519\u5BFC\u81F4\u8BA2\u5355\u5931\u8D25\n## \u5173\u952E\u8BCD\uFF1A\u5F20\u6570\u6362\u7B97, \u5E01\u6570\u6362\u7B97, convert contract, \u5408\u7EA6\u6362\u7B97, \u5F20\u6570\u8BA1\u7B97, \u4E0B\u5355\u51C6\u5907\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\n## - sz: \u6570\u91CF\uFF08\u5F20\u6570\u6216\u5E01\u6570\uFF0C\u53D6\u51B3\u4E8Eunit\u53C2\u6570\u7684\u8BBE\u7F6E\uFF09\n## - unit: sz\u7684\u5355\u4F4D\u3002coin=\u5E01\uFF0Ccontracts=\u5F20\n## - opType: \u5F00\u4ED3\u6216\u5E73\u4ED3\u3002open=\u5F00\u4ED3, close=\u5E73\u4ED3\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 ~300B\n## \u5173\u8054\uFF1A\u4E0B\u5355\u524D\u5FC5\u8C03 \u2192 \u672C\u5DE5\u5177\u6362\u7B97\u6570\u91CF \u2192 okx_place_order \u4E0B\u5355",
27858
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27893
27859
  {
27894
27860
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
27895
27861
  sz: external_exports.string().describe("\u6570\u91CF\uFF08\u5F20\u6570\u6216\u5E01\u6570\uFF0C\u53D6\u51B3\u4E8Eunit\uFF09"),
@@ -27907,7 +27873,7 @@ function registerPublicTools(server, auth) {
27907
27873
  );
27908
27874
  server.tool(
27909
27875
  "okx_get_announcements",
27910
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u5B98\u65B9\u516C\u544A\u5217\u8868\uFF08\u7EF4\u62A4\u901A\u77E5\u3001\u65B0\u5E01\u4E0A\u7EBF\u3001\u6D3B\u52A8\u7B49\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53CA\u65F6\u4E86\u89E3\u5E73\u53F0\u7EF4\u62A4\u8BA1\u5212\u3001\u8DDF\u8E2A\u65B0\u5E01\u4E0A\u7EBF\u4FE1\u606F\u3001\u63D0\u524D\u505A\u597D\u98CE\u9669\u51C6\u5907\n## \u5173\u952E\u8BCD\uFF1A\u516C\u544A, announcements, \u7EF4\u62A4\u901A\u77E5, \u65B0\u5E01\u4E0A\u7EBF, \u5E73\u53F0\u516C\u544A, \u6D3B\u52A8\u901A\u77E5\n## \u53C2\u6570\uFF1A\n## - annType: \u516C\u544A\u7C7B\u578BID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\u3002\u53EF\u5148\u8C03\u7528 okx_get_announcement_types \u67E5\u8BE2\u53EF\u7528\u7C7B\u578B\n## - lang: \u8BED\u8A00\u3002zh-Hans=\u4E2D\u6587, en-US=\u82F1\u6587\u3002\u9ED8\u8BA4\u4E2D\u6587\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_announcement_types \u83B7\u53D6\u7C7B\u578B\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u6309\u7C7B\u578B\u7B5B\u9009\u516C\u544A \u2192 \u8BC4\u4F30\u5BF9\u4EA4\u6613\u7684\u5F71\u54CD",
27876
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27911
27877
  {
27912
27878
  annType: external_exports.string().optional().describe("\u516C\u544A\u7C7B\u578BID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\u3002\u53EF\u5148\u8C03\u7528 okx_get_announcement_types \u67E5\u8BE2\u53EF\u7528\u7C7B\u578B"),
27913
27879
  lang: external_exports.enum(["zh-Hans", "en-US"]).optional().describe("\u8BED\u8A00\uFF0C\u9ED8\u8BA4\u4E2D\u6587")
@@ -27923,7 +27889,7 @@ function registerPublicTools(server, auth) {
27923
27889
  );
27924
27890
  server.tool(
27925
27891
  "okx_get_announcement_types",
27926
- "CAT:[\u516C\u5171] | ## \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",
27892
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27927
27893
  {},
27928
27894
  async () => {
27929
27895
  try {
@@ -27936,7 +27902,7 @@ function registerPublicTools(server, auth) {
27936
27902
  );
27937
27903
  server.tool(
27938
27904
  "okx_get_price_limit",
27939
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EA7\u54C1\u7684\u9650\u4EF7\u4E0A\u4E0B\u9650\uFF08\u6DA8\u8DCC\u505C\u4EF7\u683C\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u67D0\u4EA7\u54C1\u5F53\u524D\u662F\u5426\u63A5\u8FD1\u9650\u4EF7\u3001\u8BA1\u7B97\u53EF\u7528\u4E0B\u5355\u4EF7\u683C\u533A\u95F4\u3001\u6781\u7AEF\u884C\u60C5\u4E0B\u9650\u4EF7\u9884\u8B66\n## \u5173\u952E\u8BCD\uFF1A\u9650\u4EF7, \u6DA8\u8DCC\u505C, price limit, \u4E0A\u4E0B\u9650, \u4EF7\u683C\u4FDD\u62A4, \u9650\u4EF7\u5355\u8303\u56F4\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\uFF0C\u4E0D\u652F\u6301\u5168\u91CF\u67E5\u8BE2\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 ~200B \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments \u83B7\u53D6\u53EF\u4EA4\u6613\u4EA7\u54C1\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u9650\u4EF7\u8303\u56F4 \u2192 \u7ED3\u5408 okx_get_ticker \u5224\u65AD\u5F53\u524D\u4EF7\u662F\u5426\u63A5\u8FD1\u9650\u4EF7",
27905
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27940
27906
  {
27941
27907
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\uFF0C\u4E0D\u652F\u6301\u5168\u91CF\u67E5\u8BE2")
27942
27908
  },
@@ -27955,7 +27921,7 @@ function registerPublicTools(server, auth) {
27955
27921
  );
27956
27922
  server.tool(
27957
27923
  "okx_get_position_tiers",
27958
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6301\u4ED3\u6863\u4F4D\u8868\uFF08\u51B3\u5B9A\u6760\u6746\u4E0A\u9650\u548C\u4FDD\u8BC1\u91D1\u7387\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u4E0D\u540C\u6301\u4ED3\u91CF\u5BF9\u5E94\u7684\u6700\u5927\u6760\u6746\u3001\u8BA1\u7B97\u4FDD\u8BC1\u91D1\u9700\u6C42\u3001\u8BC4\u4F30\u5927\u4ED3\u4F4D\u7206\u4ED3\u98CE\u9669\u3001\u8BBE\u7F6E\u6760\u6746\u524D\u786E\u8BA4\u6863\u4F4D\u9650\u5236\n## \u5173\u952E\u8BCD\uFF1A\u4ED3\u4F4D\u6863\u4F4D, \u6760\u6746\u9650\u5236, position tiers, \u4FDD\u8BC1\u91D1\u7387, \u6301\u4ED3\u4E0A\u9650, \u6863\u4F4D\u8868, \u6760\u6746\u500D\u6570\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED\u5408\u7EA6, FUTURES=\u4EA4\u5272\u5408\u7EA6\u3002\u5FC5\u586B\n## - tdMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B\n## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USDT\u3002\u4E0E uly \u4E8C\u9009\u4E00\u5FC5\u586B\n## - uly: \u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USDT\u3002\u4E0E instFamily \u4E8C\u9009\u4E00\u5FC5\u586B\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\u5927\u578B ~30KB \u2014 \u5355\u4E2A\u4EA7\u54C1\u65CF\u542B\u6570\u5341\u4E2A\u6863\u4F4D\uFF0C\u6570\u636E\u91CF\u5927\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments \u83B7\u53D6 instFamily \u2192 \u672C\u5DE5\u5177\u67E5\u6863\u4F4D \u2192 okx_get_leverage_info \u8BBE\u7F6E\u6760\u6746",
27924
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27959
27925
  {
27960
27926
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED\u5408\u7EA6, FUTURES=\u4EA4\u5272\u5408\u7EA6"),
27961
27927
  tdMode: external_exports.enum(["cross", "isolated"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3"),
@@ -27973,7 +27939,7 @@ function registerPublicTools(server, auth) {
27973
27939
  );
27974
27940
  server.tool(
27975
27941
  "okx_get_open_interest_history",
27976
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u6301\u4ED3\u91CF\u5386\u53F2\u8D70\u52BF\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u6301\u4ED3\u91CF\u8D8B\u52BF\uFF08\u589E\u4ED3/\u51CF\u4ED3\u65B9\u5411\uFF09\u3001\u5224\u65AD\u8D44\u91D1\u6D41\u5165\u6D41\u51FA\u3001\u7ED3\u5408\u4EF7\u683C\u8D70\u52BF\u5224\u65AD\u8D8B\u52BF\u5F3A\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u91CF\u5386\u53F2, \u6301\u4ED3\u8D70\u52BF, open interest history, OI\u53D8\u52A8, \u6301\u4ED3\u8D8B\u52BF, \u8D44\u91D1\u6D41\u5165\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - period: \u65F6\u95F4\u7C92\u5EA6\u30025m/15m/30m/1H/2H/4H/6H/12H/1D/1W\u3002\u9ED8\u8BA45m\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u592714400\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(instType=SWAP) \u83B7\u53D6\u5408\u7EA6\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u67E5\u6301\u4ED3\u8D8B\u52BF \u2192 \u7ED3\u5408 okx_get_ticker \u5224\u65AD\u91CF\u4EF7\u5173\u7CFB",
27942
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27977
27943
  {
27978
27944
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
27979
27945
  period: external_exports.enum(["5m", "15m", "30m", "1H", "2H", "4H", "6H", "12H", "1D", "1W"]).optional().describe("\u65F6\u95F4\u7C92\u5EA6\uFF0C\u9ED8\u8BA45m"),
@@ -27997,7 +27963,7 @@ function registerPublicTools(server, auth) {
27997
27963
  );
27998
27964
  server.tool(
27999
27965
  "okx_get_underlying",
28000
- "CAT:[\u516C\u5171] | ## \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",
27966
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28001
27967
  {
28002
27968
  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")
28003
27969
  },
@@ -28012,7 +27978,7 @@ function registerPublicTools(server, auth) {
28012
27978
  );
28013
27979
  server.tool(
28014
27980
  "okx_get_taker_flow",
28015
- "CAT:[\u516C\u5171] | ## \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",
27981
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28016
27982
  {
28017
27983
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
28018
27984
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272"),
@@ -28034,7 +28000,7 @@ function registerPublicTools(server, auth) {
28034
28000
  );
28035
28001
  server.tool(
28036
28002
  "okx_get_platform_24_volume",
28037
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u5E73\u53F024\u5C0F\u65F6\u603B\u4EA4\u6613\u91CF\uFF08\u73B0\u8D27+\u5408\u7EA6+\u671F\u6743\u5408\u8BA1\uFF09\uFF0C\u4E0D\u542B\u7279\u5B9A\u5E01\u79CD\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u4EA4\u6613\u6240\u6574\u4F53\u6D3B\u8DC3\u5EA6\u3001\u5224\u65AD\u5E02\u573A\u70ED\u5EA6\u9AD8\u4F4E\u3001\u76D1\u63A7\u5E73\u53F0\u4EA4\u6613\u91CF\u53D8\u5316\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5E73\u53F0\u4EA4\u6613\u91CF, 24\u5C0F\u65F6\u4EA4\u6613\u91CF, platform volume, \u603B\u6210\u4EA4\u91CF, \u5E02\u573A\u70ED\u5EA6, \u5168\u5E73\u53F0\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 ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5168\u5E73\u53F0\u70ED\u5EA6 \u2192 okx_get_ticker \u770B\u5177\u4F53\u4EA7\u54C1 \u2192 okx_get_tickers \u626B\u63CF\u5E02\u573A",
28003
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28038
28004
  {},
28039
28005
  async () => {
28040
28006
  try {
@@ -28051,7 +28017,7 @@ function registerPublicTools(server, auth) {
28051
28017
  );
28052
28018
  server.tool(
28053
28019
  "okx_get_call_auction_details",
28054
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u96C6\u5408\u7ADE\u4EF7\u8BE6\u60C5\uFF0C\u542B\u5F53\u524D\u7ADE\u4EF7\u7684\u672A\u5339\u914D\u91CF\u548C\u53C2\u8003\u4EF7\u683C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u76D8\u524D/\u76D8\u524D\u4EA4\u6613\u65F6\u6BB5\u67E5\u770B\u96C6\u5408\u7ADE\u4EF7\u4F9B\u9700\u3001\u5224\u65AD\u5F00\u76D8\u4EF7\u683C\u533A\u95F4\u3001\u53D1\u73B0\u5F02\u5E38\u7ADE\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u96C6\u5408\u7ADE\u4EF7, call auction, \u7ADE\u4EF7\u8BE6\u60C5, \u5F00\u76D8\u7ADE\u4EF7, \u76D8\u524D\u7ADE\u4EF7, \u672A\u5339\u914D\u91CF\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\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 ~500B \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u7ADE\u4EF7 \u2192 okx_get_ticker \u770B\u5F00\u76D8\u4EF7 \u2192 \u5F00\u76D8\u540E okx_get_candles \u8DDF\u8E2A\u8D70\u52BF",
28020
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28055
28021
  {
28056
28022
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B")
28057
28023
  },
@@ -28127,7 +28093,7 @@ function registerPublicTools(server, auth) {
28127
28093
  );
28128
28094
  server.tool(
28129
28095
  "okx_get_exchange_rate",
28130
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u5E73\u53F0\u652F\u6301\u7684\u6CD5\u5B9A\u8D27\u5E01\u6C47\u7387\uFF08\u5982USD/CNY\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u7F8E\u5143\u8BA1\u4EF7\u76C8\u4E8F\u6362\u7B97\u4E3A\u672C\u5730\u6CD5\u5E01\u3001\u8BA1\u7B97\u6CD5\u5E01\u51FA\u5165\u91D1\u91D1\u989D\n## \u5173\u952E\u8BCD\uFF1A\u6C47\u7387, exchange rate, \u6CD5\u5E01\u6C47\u7387, USD/CNY, \u7F8E\u5143\u6C47\u7387, \u4EBA\u6C11\u5E01\u6C47\u7387\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 ~100B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u6C47\u7387 \u2192 \u8F85\u52A9\u8BA1\u7B97\u76C8\u4E8F \u2192 \u7528\u6237\u4E86\u89E3\u672C\u5730\u6CD5\u5E01\u4EF7\u503C",
28096
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28131
28097
  {},
28132
28098
  async () => {
28133
28099
  try {
@@ -28140,7 +28106,7 @@ function registerPublicTools(server, auth) {
28140
28106
  );
28141
28107
  server.tool(
28142
28108
  "okx_search_instruments",
28143
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u6309\u5173\u952E\u8BCD\u641C\u7D22\u53EF\u4EA4\u6613\u4EA7\u54C1\uFF08\u73B0\u8D27/\u5408\u7EA6/\u671F\u6743\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7528\u6237\u8F93\u5165\u4EA7\u54C1\u540D\u79F0\u6A21\u7CCA\u67E5\u627E instId\u3001\u53D1\u73B0\u65B0\u4EA7\u54C1\u3001\u786E\u8BA4\u67D0\u5E01\u79CD\u6709\u54EA\u4E9B\u53EF\u4EA4\u6613\u4EA7\u54C1\n## \u5173\u952E\u8BCD\uFF1A\u641C\u7D22, \u67E5\u627E\u4EA7\u54C1, search instruments, \u4EA7\u54C1\u641C\u7D22, \u6A21\u7CCA\u67E5\u8BE2, \u5E01\u79CD\u641C\u7D22, find instrument\n## \u53C2\u6570\uFF1A\n## - keyword: \u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 BTC\u3001ETH\u3001SOL\u3002\u5FC5\u586B\uFF0C\u6700\u5C112\u5B57\u7B26\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u7B5B\u9009\u3002\u4E0D\u586B\u5219\u641C\u7D22\u5168\u90E8\u7C7B\u578B\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 \u2014 \u6700\u591A\u8FD4\u56DE top 20 \u5339\u914D\u7ED3\u679C\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u641C\u7D22\u4EA7\u54C1 \u2192 okx_get_ticker \u67E5\u884C\u60C5 \u2192 okx_place_order \u4E0B\u5355",
28109
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28144
28110
  {
28145
28111
  keyword: external_exports.string().min(2).describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 BTC\u3001ETH\u3001SOL\u3002\u6700\u5C112\u4E2A\u5B57\u7B26"),
28146
28112
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u7B5B\u9009\uFF0C\u4E0D\u586B\u641C\u7D22\u5168\u90E8")
@@ -28166,7 +28132,7 @@ function registerPublicTools(server, auth) {
28166
28132
  );
28167
28133
  server.tool(
28168
28134
  "okx_get_economic_calendar",
28169
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u7ECF\u6D4E\u65E5\u5386\u6570\u636E\uFF08\u91CD\u8981\u7ECF\u6D4E\u4E8B\u4EF6\u3001\u6570\u636E\u516C\u5E03\u65F6\u95F4\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u5B8F\u89C2\u7ECF\u6D4E\u4E8B\u4EF6\u3001\u8BC4\u4F30\u5E02\u573A\u6CE2\u52A8\u89E6\u53D1\u56E0\u7D20\u3001\u63D0\u524D\u51C6\u5907\u5E94\u5BF9\u91CD\u8981\u6570\u636E\u516C\u5E03\n## \u5173\u952E\u8BCD\uFF1A\u7ECF\u6D4E\u65E5\u5386, economic calendar, \u7ECF\u6D4E\u6570\u636E, \u5B8F\u89C2\u7ECF\u6D4E, \u975E\u519C, CPI, \u5229\u7387\u51B3\u8BAE\n## \u53C2\u6570\uFF1A\n## - begin: \u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\u3002\u53EF\u9009\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\u3002\u53EF\u9009\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u7ECF\u6D4E\u4E8B\u4EF6 \u2192 \u9884\u5224\u5E02\u573A\u6CE2\u52A8 \u2192 \u7ED3\u5408 okx_get_ticker \u76D1\u63A7\u884C\u60C5\u53D8\u5316",
28135
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28170
28136
  {
28171
28137
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
28172
28138
  end: external_exports.string().optional().describe("\u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -28188,7 +28154,7 @@ function registerPublicTools(server, auth) {
28188
28154
  );
28189
28155
  server.tool(
28190
28156
  "okx_get_index_components",
28191
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u6570\u7684\u6210\u5206\u5E01\u79CD\u53CA\u5176\u6743\u91CD\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u6307\u6570\u6784\u6210\u3001\u5206\u6790\u5404\u4EA4\u6613\u6240\u5BF9\u6307\u6570\u4EF7\u683C\u7684\u5F71\u54CD\u6743\u91CD\n## \u5173\u952E\u8BCD\uFF1A\u6307\u6570\u6210\u5206, index components, \u6307\u6570\u6743\u91CD, \u6210\u5206\u5E01\u79CD, \u6210\u5206\u4EA4\u6613\u6240\n## \u53C2\u6570\uFF1A\n## - index: \u6307\u6570\u540D\u79F0\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u770B\u6307\u6570\u6210\u5206 \u2192 okx_get_index_tickers \u770B\u6307\u6570\u4EF7\u683C \u2192 \u5206\u6790\u504F\u5DEE",
28157
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28192
28158
  {
28193
28159
  index: external_exports.string().describe("\u6307\u6570\u540D\u79F0\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B")
28194
28160
  },
@@ -28207,7 +28173,7 @@ function registerPublicTools(server, auth) {
28207
28173
  );
28208
28174
  server.tool(
28209
28175
  "okx_get_index_components_market",
28210
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5E02\u573A\u4EF7\u683C\u6307\u6570\u7684\u6210\u5206\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u83B7\u53D6\u6307\u6570\u6210\u5206\u7684\u6700\u9AD8/\u6700\u4F4E\u4EF7\u3001\u5404\u4EA4\u6613\u6240\u62A5\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u5E02\u573A\u6307\u6570\u6210\u5206, market index components, \u5E02\u573A\u4EF7\u683C\u6307\u6570\n## \u53C2\u6570\uFF1A\n## - index: \u6307\u6570\u540D\u79F0\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5E02\u573A\u6307\u6570\u6210\u5206 \u2192 \u5BF9\u6BD4\u5404\u4EA4\u6613\u6240\u4EF7\u5DEE \u2192 \u53D1\u73B0\u5957\u5229\u673A\u4F1A",
28176
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28211
28177
  {
28212
28178
  index: external_exports.string().describe("\u6307\u6570\u540D\u79F0\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B")
28213
28179
  },
@@ -28226,7 +28192,7 @@ function registerPublicTools(server, auth) {
28226
28192
  );
28227
28193
  server.tool(
28228
28194
  "okx_get_discount_info",
28229
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5404\u5E01\u79CD\u7684\u62B5\u62BC\u54C1\u6298\u6263\u7387\u548C\u514D\u606F\u989D\u5EA6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u5404\u5E01\u79CD\u4F5C\u4E3A\u62B5\u62BC\u54C1\u7684\u4EF7\u503C\u6298\u6263\u3001\u8BA1\u7B97\u53EF\u7528\u62B5\u62BC\u989D\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u62B5\u62BC\u6298\u6263, discount info, \u62B5\u62BC\u54C1\u6298\u6263\u7387, \u514D\u606F\u989D\u5EA6, \u62C5\u4FDD\u54C1\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6298\u6263\u7387 \u2192 \u8BA1\u7B97\u5B9E\u9645\u62B5\u62BC\u4EF7\u503C \u2192 okx_get_max_loan \u67E5\u53EF\u501F",
28195
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28230
28196
  {},
28231
28197
  async () => {
28232
28198
  try {
@@ -28239,7 +28205,7 @@ function registerPublicTools(server, auth) {
28239
28205
  );
28240
28206
  server.tool(
28241
28207
  "okx_get_estimated_price",
28242
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u9884\u4F30\u884C\u6743\u7ED3\u7B97\u4EF7\n## \u573A\u666F\uFF1A\u7528\u4E8E\u671F\u6743\u5230\u671F\u524D\u9884\u4F30\u7ED3\u7B97\u4EF7\u3001\u8BC4\u4F30\u671F\u6743\u5230\u671F\u4EF7\u503C\n## \u5173\u952E\u8BCD\uFF1A\u9884\u4F30\u7ED3\u7B97, estimated price, \u671F\u6743\u7ED3\u7B97, \u884C\u6743\u9884\u4F30, \u4EA4\u5272\u9884\u4F30\u4EF7\n## \u53C2\u6570\uFF1A\n## - instId: \u671F\u6743\u4EA7\u54C1ID\uFF0C\u5982 BTC-USD-260612-64000-C\u3002\u5FC5\u586B\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 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u9884\u4F30\u7ED3\u7B97\u4EF7 \u2192 okx_get_opt_summary \u770B\u6CE2\u52A8\u7387 \u2192 \u8BC4\u4F30\u671F\u6743\u4EF7\u503C",
28208
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28243
28209
  {
28244
28210
  instId: external_exports.string().describe("\u671F\u6743\u4EA7\u54C1ID\uFF0C\u5982 BTC-USD-260612-64000-C\u3002\u5FC5\u586B")
28245
28211
  },
@@ -28258,7 +28224,7 @@ function registerPublicTools(server, auth) {
28258
28224
  );
28259
28225
  server.tool(
28260
28226
  "okx_get_funding_rate_history",
28261
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u8D44\u91D1\u8D39\u7387\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5386\u53F2\u8D44\u91D1\u8D39\u7387\u53D8\u5316\u8D8B\u52BF\u3001\u8BA1\u7B97\u5957\u5229\u6301\u4ED3\u6210\u672C\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u91D1\u8D39\u7387\u5386\u53F2, funding rate history, \u8D39\u7387\u8D70\u52BF, \u5386\u53F2\u8D44\u91D1\u8D39\u7387\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - before: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - after: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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_funding_rate \u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2 \u2192 \u5224\u65AD\u5747\u503C\u56DE\u5F52\u65B9\u5411",
28227
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28262
28228
  {
28263
28229
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
28264
28230
  before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
@@ -28280,7 +28246,7 @@ function registerPublicTools(server, auth) {
28280
28246
  );
28281
28247
  server.tool(
28282
28248
  "okx_get_interest_rate_loan_quota",
28283
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5404\u5E01\u79CD\u7684\u5229\u7387\u548C\u501F\u8D37\u914D\u989D\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5404\u5E01\u79CD\u7684\u501F\u8D37\u5229\u7387\u3001\u4E86\u89E3\u6700\u5927\u53EF\u501F\u9650\u989D\n## \u5173\u952E\u8BCD\uFF1A\u5229\u7387\u914D\u989D, interest rate quota, \u501F\u8D37\u5229\u7387, \u501F\u6B3E\u9650\u989D\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5229\u7387\u914D\u989D \u2192 okx_get_interest_accrued \u770B\u5DF2\u8BA1\u5229\u606F \u2192 \u8BA1\u7B97\u501F\u8D37\u6210\u672C",
28249
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28284
28250
  {},
28285
28251
  async () => {
28286
28252
  try {
@@ -28293,7 +28259,7 @@ function registerPublicTools(server, auth) {
28293
28259
  );
28294
28260
  server.tool(
28295
28261
  "okx_get_premium_history",
28296
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u6EA2\u4EF7/\u6298\u4EF7\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5408\u7EA6\u4E0E\u73B0\u8D27\u4EF7\u683C\u504F\u5DEE\u3001\u5224\u65AD\u5E02\u573A\u60C5\u7EEA\n## \u5173\u952E\u8BCD\uFF1A\u6EA2\u4EF7\u5386\u53F2, premium history, \u5408\u7EA6\u6EA2\u4EF7, \u57FA\u5DEE\u5386\u53F2\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - period: \u65F6\u95F4\u7C92\u5EA6\u30021D=\u65E5\u7EBF\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\uFF1A\u672C\u5DE5\u5177\u770B\u6EA2\u4EF7 \u2192 okx_get_ticker \u770B\u4EF7\u683C \u2192 \u5224\u65AD\u671F\u8D27\u60C5\u7EEA",
28262
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28297
28263
  {
28298
28264
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
28299
28265
  period: external_exports.string().optional().describe("\u65F6\u95F4\u7C92\u5EA6\uFF0C\u5982 1D")
@@ -28313,7 +28279,7 @@ function registerPublicTools(server, auth) {
28313
28279
  );
28314
28280
  server.tool(
28315
28281
  "okx_get_delivery_exercise_history",
28316
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u4EA4\u5272\u548C\u671F\u6743\u884C\u6743\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5386\u53F2\u4EA4\u5272\u4EF7\u683C\u3001\u4E86\u89E3\u884C\u6743\u7ED3\u7B97\u60C5\u51B5\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u5272\u5386\u53F2, delivery history, \u884C\u6743\u5386\u53F2, \u5408\u7EA6\u4EA4\u5272, \u671F\u6743\u884C\u6743\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u5FC5\u586B\n## - uly: \u6807\u7684\u6307\u6570\u3002\u53EF\u9009\n## - instFamily: \u4EA7\u54C1\u65CF\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\uFF1A\u672C\u5DE5\u5177\u770B\u4EA4\u5272\u5386\u53F2 \u2192 okx_get_opt_summary \u770B\u671F\u6743\u6458\u8981 \u2192 \u4E86\u89E3\u884C\u6743\u7ED3\u7B97",
28282
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28317
28283
  {
28318
28284
  instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B"),
28319
28285
  uly: external_exports.string().optional().describe("\u6807\u7684\u6307\u6570"),
@@ -28330,7 +28296,7 @@ function registerPublicTools(server, auth) {
28330
28296
  );
28331
28297
  server.tool(
28332
28298
  "okx_get_settlement_history",
28333
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u7ED3\u7B97\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5408\u7EA6\u7684\u6BCF\u65E5\u7ED3\u7B97\u4EF7\u683C\u548C\u7ED3\u7B97\u65F6\u95F4\n## \u5173\u952E\u8BCD\uFF1A\u7ED3\u7B97\u5386\u53F2, settlement history, \u5408\u7EA6\u7ED3\u7B97, \u6BCF\u65E5\u7ED3\u7B97\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B\n## - instFamily: \u4EA7\u54C1\u65CF\u3002\u53EF\u9009\n## - uly: \u6807\u7684\u6307\u6570\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\uFF1A\u672C\u5DE5\u5177\u770B\u7ED3\u7B97\u5386\u53F2 \u2192 \u4E86\u89E3\u7ED3\u7B97\u4EF7 \u2192 \u8BC4\u4F30\u6D6E\u52A8\u76C8\u4E8F",
28299
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28334
28300
  {
28335
28301
  instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B"),
28336
28302
  instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF"),
@@ -28347,7 +28313,7 @@ function registerPublicTools(server, auth) {
28347
28313
  );
28348
28314
  server.tool(
28349
28315
  "okx_get_public_block_trades",
28350
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u516C\u5F00\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5927\u5B97\u5E02\u573A\u5386\u53F2\u6210\u4EA4\u3001\u5206\u6790\u5927\u5B97\u4EF7\u683C\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5927\u5B97\u6210\u4EA4, block trades, \u5927\u5B97\u516C\u5F00, \u5927\u5B97\u4EA4\u6613\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u770B\u5927\u5B97\u6210\u4EA4 \u2192 \u5206\u6790\u5927\u5B97\u5E02\u573A \u2192 \u8BC4\u4F30\u673A\u6784\u52A8\u5411",
28316
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28351
28317
  {
28352
28318
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B")
28353
28319
  },
@@ -28366,7 +28332,7 @@ function registerPublicTools(server, auth) {
28366
28332
  );
28367
28333
  server.tool(
28368
28334
  "okx_get_instrument_tick_bands",
28369
- "CAT:[\u516C\u5171] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EA7\u54C1\u6700\u5C0F\u4EF7\u683C\u7CBE\u5EA6\u6863\u4F4D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u671F\u6743\u4EA7\u54C1\u7684\u4EF7\u683C\u6700\u5C0F\u53D8\u52A8\u5355\u4F4D\uFF08tick size\uFF09\n## \u5173\u952E\u8BCD\uFF1ATick\u6863\u4F4D, tick bands, \u6700\u5C0F\u4EF7\u683C\u53D8\u52A8, \u4EF7\u683C\u7CBE\u5EA6\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002\u4EC5 OPTION \u652F\u6301\u3002\u5FC5\u586B\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\n## \u5173\u8054\uFF1A\u6B64\u5DE5\u5177\u67E5\u7CBE\u5EA6 \u2192 okx_get_instruments \u67E5\u4EA7\u54C1\u89C4\u683C \u2192 \u4E0B\u5355\u65F6\u4F7F\u7528\u6B63\u786E\u4EF7\u683C",
28335
+ "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28370
28336
  {
28371
28337
  instType: external_exports.enum(["OPTION"]).describe("\u4EA7\u54C1\u7C7B\u578B\u3002\u4EC5 OPTION \u652F\u6301\u6B64\u67E5\u8BE2")
28372
28338
  },
@@ -28385,7 +28351,7 @@ function registerPublicTools(server, auth) {
28385
28351
  function registerAccountTools(server, auth) {
28386
28352
  server.tool(
28387
28353
  "okx_get_balance",
28388
- "CAT:[\u8D26\u6237] | ## \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",
28354
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28389
28355
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u6240\u6709\u5E01\u79CD") },
28390
28356
  async ({ ccy }) => {
28391
28357
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28399,7 +28365,7 @@ function registerAccountTools(server, auth) {
28399
28365
  );
28400
28366
  server.tool(
28401
28367
  "okx_get_positions",
28402
- "CAT:[\u8D26\u6237] | ## \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\u3001\u6760\u6746\u500D\u6570\uFF0C\u5E76\u9644\u5E26\u64CD\u4F5C\u4E0A\u4E0B\u6587\uFF08mgnMode/instFamily/lever/liqPx\uFF09\u65B9\u4FBF\u5E73\u4ED3\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, \u64CD\u4F5C\u4E0A\u4E0B\u6587\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 \u2014 \u542B _actionContext \u5B57\u6BB5\uFF0C\u53EF\u76F4\u63A5\u7528\u4E8E\u5E73\u4ED3/\u6539\u4ED3\n## \u5173\u8054\uFF1Aokx_get_balance \u770B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3+\u64CD\u4F5C\u4E0A\u4E0B\u6587 \u2192 okx_close_position \u76F4\u63A5\u5E73\u4ED3\u65E0\u9700\u518D\u67E5 mgnMode",
28368
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28403
28369
  { instType: external_exports.enum(INST_TYPE_PUBLIC).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8") },
28404
28370
  async ({ instType }) => {
28405
28371
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28428,7 +28394,7 @@ function registerAccountTools(server, auth) {
28428
28394
  );
28429
28395
  server.tool(
28430
28396
  "okx_get_order",
28431
- "CAT:[\u8D26\u6237] | ## \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",
28397
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28432
28398
  {
28433
28399
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
28434
28400
  ordId: external_exports.string().describe("\u8BA2\u5355ID")
@@ -28445,7 +28411,7 @@ function registerAccountTools(server, auth) {
28445
28411
  );
28446
28412
  server.tool(
28447
28413
  "okx_get_orders_history",
28448
- "CAT:[\u8D26\u6237] | ## \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",
28414
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28449
28415
  {
28450
28416
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
28451
28417
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA450")
@@ -28462,7 +28428,7 @@ function registerAccountTools(server, auth) {
28462
28428
  );
28463
28429
  server.tool(
28464
28430
  "okx_get_account_bills",
28465
- "CAT:[\u8D26\u6237] | ## \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",
28431
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28466
28432
  {
28467
28433
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
28468
28434
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT"),
@@ -28480,7 +28446,7 @@ function registerAccountTools(server, auth) {
28480
28446
  );
28481
28447
  server.tool(
28482
28448
  "okx_get_account_config",
28483
- "CAT:[\u8D26\u6237] | ## \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",
28449
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28484
28450
  {},
28485
28451
  async () => {
28486
28452
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28494,7 +28460,7 @@ function registerAccountTools(server, auth) {
28494
28460
  );
28495
28461
  server.tool(
28496
28462
  "okx_get_leverage_info",
28497
- "CAT:[\u8D26\u6237] | ## \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",
28463
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28498
28464
  {
28499
28465
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
28500
28466
  mgnMode: external_exports.enum(["isolated", "cross"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\uFF1Aisolated=\u9010\u4ED3\uFF0Ccross=\u5168\u4ED3")
@@ -28511,7 +28477,7 @@ function registerAccountTools(server, auth) {
28511
28477
  );
28512
28478
  server.tool(
28513
28479
  "okx_get_max_size",
28514
- "CAT:[\u8D26\u6237] | ## \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",
28480
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28515
28481
  {
28516
28482
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
28517
28483
  tdMode: external_exports.enum(["cross", "isolated", "cash"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3, cash=\u975E\u4FDD\u8BC1\u91D1"),
@@ -28529,7 +28495,7 @@ function registerAccountTools(server, auth) {
28529
28495
  );
28530
28496
  server.tool(
28531
28497
  "okx_get_fee_rates",
28532
- "CAT:[\u8D26\u6237] | ## \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",
28498
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28533
28499
  {
28534
28500
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
28535
28501
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -28547,7 +28513,7 @@ function registerAccountTools(server, auth) {
28547
28513
  );
28548
28514
  server.tool(
28549
28515
  "okx_get_positions_history",
28550
- "CAT:[\u8D26\u6237] | ## \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",
28516
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28551
28517
  {
28552
28518
  instType: external_exports.enum(INST_TYPE_PUBLIC).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"),
28553
28519
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
@@ -28565,7 +28531,7 @@ function registerAccountTools(server, auth) {
28565
28531
  );
28566
28532
  server.tool(
28567
28533
  "okx_set_leverage",
28568
- "CAT:[\u8D26\u6237] | ## \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",
28534
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28569
28535
  {
28570
28536
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
28571
28537
  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"),
@@ -28586,7 +28552,7 @@ function registerAccountTools(server, auth) {
28586
28552
  );
28587
28553
  server.tool(
28588
28554
  "okx_get_max_loan",
28589
- "CAT:[\u8D26\u6237] | ## \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",
28555
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28590
28556
  {
28591
28557
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
28592
28558
  mgnMode: external_exports.enum(["cross", "isolated"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3")
@@ -28603,7 +28569,7 @@ function registerAccountTools(server, auth) {
28603
28569
  );
28604
28570
  server.tool(
28605
28571
  "okx_get_interest_accrued",
28606
- "CAT:[\u8D26\u6237] | ## \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",
28572
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28607
28573
  {
28608
28574
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u53EF\u9009"),
28609
28575
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT"),
@@ -28621,7 +28587,7 @@ function registerAccountTools(server, auth) {
28621
28587
  );
28622
28588
  server.tool(
28623
28589
  "okx_set_position_mode",
28624
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u6301\u4ED3\u6A21\u5F0F\uFF08\u5355\u5411\u6301\u4ED3/\u53CC\u5411\u6301\u4ED3\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5207\u6362\u6301\u4ED3\u6A21\u5F0F\uFF08\u5982\u4ECE\u5355\u5411\u5207\u5230\u53CC\u5411\u652F\u6301\u540C\u65F6\u505A\u591A\u7A7A\uFF09\u3001\u5F00\u5355\u524D\u786E\u8BA4\u6301\u4ED3\u6A21\u5F0F\u6B63\u786E\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u6A21\u5F0F, \u6301\u4ED3\u65B9\u5411, position mode, \u53CC\u5411\u6301\u4ED3, \u5355\u5411\u6301\u4ED3, \u9501\u4ED3\n## \u53C2\u6570\uFF1A\n## - posMode: \u6301\u4ED3\u6A21\u5F0F\u3002long_short_mode=\u53CC\u5411\u6301\u4ED3, net_mode=\u5355\u5411\u6301\u4ED3\u3002\u5FC5\u586B\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\u5F71\u54CD\u6240\u6709\u5408\u7EA6/\u6760\u6746\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_account_config \u770B\u5F53\u524D\u6A21\u5F0F \u2192 \u672C\u5DE5\u5177\u5207\u6362 \u2192 \u8C03 okx_set_leverage \u8BBE\u6760\u6746",
28590
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28625
28591
  {
28626
28592
  posMode: external_exports.enum(["long_short_mode", "net_mode"]).describe("\u6301\u4ED3\u6A21\u5F0F\u3002long_short_mode=\u53CC\u5411\u6301\u4ED3, net_mode=\u5355\u5411\u6301\u4ED3")
28627
28593
  },
@@ -28637,7 +28603,7 @@ function registerAccountTools(server, auth) {
28637
28603
  );
28638
28604
  server.tool(
28639
28605
  "okx_get_asset_valuation",
28640
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u8D26\u6237\u603B\u8D44\u4EA7\u4F30\u503C\uFF08\u542B\u4EA4\u6613\u8D26\u6237\u548C\u8D44\u91D1\u8D26\u6237\u603B\u6743\u76CA\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u603B\u8D44\u4EA7\u6982\u51B5\u3001\u6309\u5E01\u79CD\u7EDF\u8BA1\u6301\u4ED3\u4EF7\u503C\u3001\u6838\u5BF9\u8D26\u6237\u603B\u6743\u76CA\u53D8\u5316\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u4EA7\u4F30\u503C, \u603B\u8D44\u4EA7, asset valuation, \u8D26\u6237\u603B\u6743\u76CA, \u8D44\u4EA7\u6982\u51B5\n## \u53C2\u6570\uFF1A\n## - ccy: \u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USD\u3001CNY\u3002\u4E0D\u586B\u9ED8\u8BA4\u6309\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 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u603B\u8D44\u4EA7 \u2192 okx_get_balance \u770B\u4EA4\u6613\u8D26\u6237 \u2192 okx_get_funding_balance \u770B\u8D44\u91D1\u8D26\u6237",
28606
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28641
28607
  {
28642
28608
  ccy: external_exports.string().optional().describe("\u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USD\u3001CNY\u3002\u4E0D\u586B\u9ED8\u8BA4\u6309\u6240\u6709\u5E01\u79CD")
28643
28609
  },
@@ -28653,7 +28619,7 @@ function registerAccountTools(server, auth) {
28653
28619
  );
28654
28620
  server.tool(
28655
28621
  "okx_get_convert_currencies",
28656
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u652F\u6301\u7684\u4E00\u952E\u5151\u6362\u5E01\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5728\u95EA\u5151\u524D\u67E5\u770B\u652F\u6301\u54EA\u4E9B\u5151\u6362\u5BF9\u3001\u786E\u8BA4\u76EE\u6807\u5E01\u79CD\u662F\u5426\u53EF\u5151\u6362\n## \u5173\u952E\u8BCD\uFF1A\u5151\u6362\u5E01\u79CD, convert currencies, \u95EA\u5151\u5217\u8868, \u5151\u6362\u652F\u6301, \u53EF\u5151\u6362\u5E01\u79CD\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u53EF\u5151\u6362\u5E01\u79CD \u2192 okx_convert_trade \u6267\u884C\u5151\u6362 \u2192 okx_get_easy_convert_history \u67E5\u8BB0\u5F55",
28622
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28657
28623
  {},
28658
28624
  async () => {
28659
28625
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28695,7 +28661,7 @@ function registerAccountTools(server, auth) {
28695
28661
  );
28696
28662
  server.tool(
28697
28663
  "okx_get_margin_balance",
28698
- "CAT:[\u8D26\u6237] | ## \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",
28664
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28699
28665
  {
28700
28666
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
28701
28667
  mgnMode: external_exports.enum(["cross", "isolated"]).describe("\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3")
@@ -28712,7 +28678,7 @@ function registerAccountTools(server, auth) {
28712
28678
  );
28713
28679
  server.tool(
28714
28680
  "okx_get_bills",
28715
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u8D26\u5355\u6D41\u6C34\uFF08\u6240\u6709\u5E01\u79CD\u7684\u5168\u90E8\u4EA4\u6613\u6D41\u6C34\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BA1\u8BA1\u4EA4\u6613\u8BB0\u5F55\u3001\u67E5\u770B\u8D44\u91D1\u6D41\u5411\u3001\u8C03\u8BD5\u4E0D\u660E\u6263\u6B3E\n## \u5173\u952E\u8BCD\uFF1A\u8D26\u5355, bills, \u8D44\u91D1\u6D41\u6C34, \u4EA4\u6613\u6D41\u6C34, \u8D26\u6237\u8D26\u5355\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT/MARGIN/SWAP/FUTURES/OPTION\u3002\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u6D41\u6C34 \u2192 okx_get_account_bills \u67E5\u8D26\u5355\u8BE6\u60C5 \u2192 \u5BF9\u8D26",
28681
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28716
28682
  {
28717
28683
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
28718
28684
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT"),
@@ -28730,7 +28696,7 @@ function registerAccountTools(server, auth) {
28730
28696
  );
28731
28697
  server.tool(
28732
28698
  "okx_get_interest_rates",
28733
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5404\u5E01\u79CD\u7684\u501F\u5E01\u5229\u7387\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6BD4\u8F83\u4E0D\u540C\u5E01\u79CD\u7684\u501F\u8D37\u6210\u672C\u3001\u8BA1\u7B97\u6301\u4ED3\u5229\u606F\u3001\u9009\u62E9\u4F4E\u6210\u672C\u501F\u5E01\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u501F\u5E01\u5229\u7387, interest rate, \u5229\u7387\u67E5\u8BE2, \u501F\u8D37\u6210\u672C, \u5E01\u79CD\u5229\u7387\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3002\u53EF\u9009\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\u67E5\u5229\u7387 \u2192 okx_get_interest_accrued \u67E5\u5DF2\u8BA1\u5229\u606F \u2192 \u8BA1\u7B97\u603B\u6210\u672C",
28699
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28734
28700
  {
28735
28701
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
28736
28702
  },
@@ -28750,7 +28716,7 @@ function registerAccountTools(server, auth) {
28750
28716
  );
28751
28717
  server.tool(
28752
28718
  "okx_get_max_withdrawal",
28753
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5404\u5E01\u79CD\u7684\u6700\u5927\u53EF\u63D0\u73B0\u6570\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63D0\u73B0\u524D\u786E\u8BA4\u53EF\u63D0\u989D\u5EA6\u3001\u5224\u65AD\u8D26\u6237\u662F\u5426\u6709\u8DB3\u591F\u8D44\u91D1\u8F6C\u51FA\n## \u5173\u952E\u8BCD\uFF1A\u6700\u5927\u63D0\u73B0, \u53EF\u63D0\u9650\u989D, max withdrawal, \u63D0\u73B0\u989D\u5EA6, \u51FA\u91D1\u4E0A\u9650\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\u3002\u53EF\u9009\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\u67E5\u53EF\u63D0\u989D\u5EA6 \u2192 okx_get_balance \u786E\u8BA4\u4F59\u989D \u2192 okx_withdrawal \u63D0\u73B0",
28719
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28754
28720
  {
28755
28721
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
28756
28722
  },
@@ -28766,7 +28732,7 @@ function registerAccountTools(server, auth) {
28766
28732
  );
28767
28733
  server.tool(
28768
28734
  "okx_get_account_greeks",
28769
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u671F\u6743 Greeks \u98CE\u9669\u53C2\u6570\uFF08Delta/Gamma/Vega/Theta\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u671F\u6743\u6301\u4ED3\u98CE\u9669\u8BC4\u4F30\u3001\u8BA1\u7B97\u5BF9\u51B2\u6BD4\u4F8B\u3001\u7BA1\u7406\u671F\u6743\u655E\u53E3\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u98CE\u9669, greeks, \u671F\u6743\u53C2\u6570, Delta, Gamma, Vega, Theta, \u671F\u6743\u655E\u53E3\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u53EF\u9009\n## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u53EF\u9009\n## - uly: \u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\u3002\u53EF\u9009\n## - instId: \u4EA7\u54C1ID\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u98CE\u9669\u53C2\u6570 \u2192 okx_get_positions \u770B\u6301\u4ED3 \u2192 \u8C03\u6574\u5BF9\u51B2",
28735
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28770
28736
  {
28771
28737
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT/MARGIN/SWAP/FUTURES/OPTION"),
28772
28738
  instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD"),
@@ -28785,7 +28751,7 @@ function registerAccountTools(server, auth) {
28785
28751
  );
28786
28752
  server.tool(
28787
28753
  "okx_set_account_mode",
28788
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u8D26\u6237\u6A21\u5F0F\uFF08\u5355\u5E01\u79CD/\u591A\u5E01\u79CD/\u7EC4\u5408\u4FDD\u8BC1\u91D1\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5207\u6362\u8D26\u6237\u6A21\u5F0F\u4EE5\u652F\u6301\u4E0D\u540C\u4EA4\u6613\u7B56\u7565\u3001\u5347\u7EA7\u5230\u9AD8\u7EA7\u4FDD\u8BC1\u91D1\u6A21\u5F0F\n## \u5173\u952E\u8BCD\uFF1A\u8D26\u6237\u6A21\u5F0F, set account level, \u4FDD\u8BC1\u91D1\u6A21\u5F0F, \u5355\u5E01\u79CD, \u591A\u5E01\u79CD, \u7EC4\u5408\u4FDD\u8BC1\u91D1\n## \u53C2\u6570\uFF1A\n## - acctLv: \u8D26\u6237\u5C42\u7EA7\u30021=\u7B80\u5355\u4EA4\u6613\u6A21\u5F0F, 2=\u5355\u5E01\u79CD\u4FDD\u8BC1\u91D1\u6A21\u5F0F, 3=\u591A\u5E01\u79CD\u4FDD\u8BC1\u91D1\u6A21\u5F0F, 4=\u7EC4\u5408\u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u4FEE\u6539\u8D26\u6237\u6A21\u5F0F\u5F71\u54CD\u8D44\u91D1\u4F7F\u7528\u65B9\u5F0F\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u8D26\u6237\u914D\u7F6E\uFF0C\u5F71\u54CD\u6240\u6709\u4EA4\u6613\u884C\u4E3A\u548C\u4FDD\u8BC1\u91D1\u8BA1\u7B97\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_account_config \u67E5\u770B\u5F53\u524D\u6A21\u5F0F \u2192 \u672C\u5DE5\u5177\u5207\u6362 \u2192 \u8C03\u6574\u4EA4\u6613\u7B56\u7565",
28754
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28789
28755
  {
28790
28756
  acctLv: external_exports.enum(["1", "2", "3", "4"]).describe("\u8D26\u6237\u5C42\u7EA7\u30021=\u7B80\u5355\u4EA4\u6613, 2=\u5355\u5E01\u79CD\u4FDD\u8BC1\u91D1, 3=\u591A\u5E01\u79CD\u4FDD\u8BC1\u91D1, 4=\u7EC4\u5408\u4FDD\u8BC1\u91D1")
28791
28757
  },
@@ -28801,7 +28767,7 @@ function registerAccountTools(server, auth) {
28801
28767
  );
28802
28768
  server.tool(
28803
28769
  "okx_get_account_position_risk",
28804
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u6301\u4ED3\u98CE\u9669\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u8D26\u6237\u6574\u4F53\u98CE\u9669\u655E\u53E3\u3001\u67E5\u770B\u5404\u4EA7\u54C1\u7684\u98CE\u9669\u7387\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u98CE\u9669, position risk, \u98CE\u9669\u655E\u53E3, \u8D26\u6237\u98CE\u63A7\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u98CE\u9669 \u2192 okx_get_positions \u67E5\u6301\u4ED3 \u2192 \u8C03\u6574\u98CE\u9669\u7BA1\u7406",
28770
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28805
28771
  {},
28806
28772
  async () => {
28807
28773
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28815,7 +28781,7 @@ function registerAccountTools(server, auth) {
28815
28781
  );
28816
28782
  server.tool(
28817
28783
  "okx_get_interest_limits",
28818
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5404\u5E01\u79CD\u7684\u5229\u606F\u9650\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5404\u5E01\u79CD\u7684\u514D\u606F\u989D\u5EA6\u548C\u5229\u606F\u4E0A\u9650\n## \u5173\u952E\u8BCD\uFF1A\u5229\u606F\u9650\u989D, interest limits, \u514D\u606F\u989D\u5EA6, \u5229\u606F\u4E0A\u9650\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u9650\u989D \u2192 okx_get_interest_accrued \u770B\u5DF2\u8BA1\u606F \u2192 \u7BA1\u7406\u501F\u8D37",
28784
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28819
28785
  {},
28820
28786
  async () => {
28821
28787
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28829,7 +28795,7 @@ function registerAccountTools(server, auth) {
28829
28795
  );
28830
28796
  server.tool(
28831
28797
  "okx_get_account_subtypes",
28832
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u5B50\u7C7B\u578B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D26\u6237\u7684\u5B50\u7C7B\u578B\u5206\u7C7B\u548C\u914D\u7F6E\n## \u5173\u952E\u8BCD\uFF1A\u8D26\u6237\u5B50\u7C7B\u578B, account subtypes, \u8D26\u6237\u5206\u7C7B\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\u8D26\u6237\u7C7B\u578B \u2192 \u4E86\u89E3\u4EA4\u6613\u6743\u9650",
28798
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28833
28799
  {},
28834
28800
  async () => {
28835
28801
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28843,7 +28809,7 @@ function registerAccountTools(server, auth) {
28843
28809
  );
28844
28810
  server.tool(
28845
28811
  "okx_get_subaccount_trading_balance",
28846
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5B50\u8D26\u6237\u7684\u4EA4\u6613\u8D26\u6237\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5B50\u8D26\u6237\u7684\u4EA4\u6613\u8D44\u91D1\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u4EA4\u6613\u4F59\u989D, subaccount trading, \u5B50\u8D26\u6237\u8D44\u91D1\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\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 ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5B50\u8D26\u6237\u4EA4\u6613\u4F59\u989D \u2192 okx_get_subaccount_assets \u67E5\u8D44\u91D1\u4F59\u989D",
28812
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28847
28813
  {
28848
28814
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
28849
28815
  },
@@ -28859,7 +28825,7 @@ function registerAccountTools(server, auth) {
28859
28825
  );
28860
28826
  server.tool(
28861
28827
  "okx_preset_account_switch",
28862
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u9884\u8BBE\u8D26\u6237\u6A21\u5F0F\u5207\u6362\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5728\u5207\u6362\u8D26\u6237\u6A21\u5F0F\u524D\u9884\u8BBE\u53C2\u6570\n## \u53C2\u6570\uFF1A\n## - acctLv: \u76EE\u6807\u8D26\u6237\u5C42\u7EA7\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u9884\u8BBE\u8D26\u6237\u6A21\u5F0F\u5207\u6362\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u5F71\u54CD\u8D26\u6237\u914D\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u9884\u8BBE \u2192 okx_set_account_mode \u6267\u884C\u5207\u6362",
28828
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28863
28829
  {
28864
28830
  acctLv: external_exports.string().describe("\u76EE\u6807\u8D26\u6237\u5C42\u7EA7\u3002\u5FC5\u586B")
28865
28831
  },
@@ -28875,7 +28841,7 @@ function registerAccountTools(server, auth) {
28875
28841
  );
28876
28842
  server.tool(
28877
28843
  "okx_activate_option",
28878
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u6FC0\u6D3B\u671F\u6743\u4EA4\u6613\u6743\u9650\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u901A\u671F\u6743\u4EA4\u6613\u529F\u80FD\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6FC0\u6D3B, activate option, \u671F\u6743\u6743\u9650, \u5F00\u901A\u671F\u6743\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u6FC0\u6D3B\u671F\u6743\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u5F00\u901A\u671F\u6743\u540E\u6D89\u53CA\u590D\u6742\u4EA4\u6613\u54C1\u79CD\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u6FC0\u6D3B \u2192 okx_get_instruments \u67E5\u770B\u671F\u6743\u4EA7\u54C1 \u2192 \u4EA4\u6613\u671F\u6743",
28844
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28879
28845
  {},
28880
28846
  async () => {
28881
28847
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28889,7 +28855,7 @@ function registerAccountTools(server, auth) {
28889
28855
  );
28890
28856
  server.tool(
28891
28857
  "okx_position_builder",
28892
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u7EC4\u5408\u4FDD\u8BC1\u91D1\u8BD5\u7B97\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4B\u8BD5\u4E0D\u540C\u6301\u4ED3\u7EC4\u5408\u4E0B\u7684\u4FDD\u8BC1\u91D1\u9700\u6C42\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u8BD5\u7B97, position builder, \u7EC4\u5408\u4FDD\u8BC1\u91D1, \u4FDD\u8BC1\u91D1\u4F30\u7B97\n## \u53C2\u6570\uFF1A\n## - body: \u8BD5\u7B97\u53C2\u6570JSON\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u8FDB\u884C\u4FDD\u8BC1\u91D1\u8BD5\u7B97\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u8BD5\u7B97\u64CD\u4F5C\u5F71\u54CD\u8D26\u6237\u72B6\u6001\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BD5\u7B97 \u2192 \u4F18\u5316\u6301\u4ED3\u7EC4\u5408 \u2192 \u964D\u4F4E\u4FDD\u8BC1\u91D1\u5360\u7528",
28858
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28893
28859
  {
28894
28860
  body: external_exports.string().describe("\u8BD5\u7B97\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
28895
28861
  },
@@ -28906,7 +28872,7 @@ function registerAccountTools(server, auth) {
28906
28872
  );
28907
28873
  server.tool(
28908
28874
  "okx_set_auto_earn",
28909
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u81EA\u52A8\u7406\u8D22\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u542F\u6216\u5173\u95ED\u95F2\u7F6E\u8D44\u91D1\u7684\u81EA\u52A8\u7406\u8D22\u529F\u80FD\n## \u5173\u952E\u8BCD\uFF1A\u81EA\u52A8\u7406\u8D22, auto earn, \u81EA\u52A8\u8D5A\u5E01, \u95F2\u7F6E\u8D44\u91D1\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - autoEarn: \u662F\u5426\u5F00\u542F\u81EA\u52A8\u7406\u8D22\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u7406\u8D22\u8BBE\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u81EA\u52A8\u7406\u8D22\u8BBE\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BBE\u7F6E \u2192 okx_get_savings_balance \u67E5\u770B\u7406\u8D22\u4F59\u989D",
28875
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28910
28876
  {
28911
28877
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
28912
28878
  autoEarn: external_exports.boolean().describe("\u662F\u5426\u5F00\u542F\u81EA\u52A8\u7406\u8D22\u3002true=\u5F00\u542F, false=\u5173\u95ED")
@@ -28923,7 +28889,7 @@ function registerAccountTools(server, auth) {
28923
28889
  );
28924
28890
  server.tool(
28925
28891
  "okx_set_fee_type",
28926
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u624B\u7EED\u8D39\u7C7B\u578B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5207\u6362\u8BA1\u8D39\u6A21\u5F0F\uFF08\u6309\u5F20/\u6309\u5E01\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u624B\u7EED\u8D39\u7C7B\u578B, fee type, \u8BA1\u8D39\u6A21\u5F0F, \u8D39\u7387\u8BBE\u7F6E\n## \u53C2\u6570\uFF1A\n## - feeType: \u624B\u7EED\u8D39\u7C7B\u578B\u30020=\u6309\u5E01, 1=\u6309USDT\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u624B\u7EED\u8D39\u7C7B\u578B\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u8BA1\u8D39\u65B9\u5F0F\u5F71\u54CD\u4EA4\u6613\u6210\u672C\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_fee_rates \u770B\u5F53\u524D\u8D39\u7387 \u2192 \u672C\u5DE5\u5177\u5207\u7C7B\u578B \u2192 \u4F18\u5316\u6210\u672C",
28892
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28927
28893
  {
28928
28894
  feeType: external_exports.enum(["0", "1"]).describe("\u624B\u7EED\u8D39\u7C7B\u578B\u30020=\u6309\u5E01, 1=\u6309USDT")
28929
28895
  },
@@ -28939,7 +28905,7 @@ function registerAccountTools(server, auth) {
28939
28905
  );
28940
28906
  server.tool(
28941
28907
  "okx_set_settle_currency",
28942
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u8D26\u6237\u7ED3\u7B97\u5E01\u79CD\n## \u573A\u666F\uFF1A\u7528\u4E8E\u66F4\u6539\u8D26\u6237\u7684\u9ED8\u8BA4\u7ED3\u7B97\u8D27\u5E01\n## \u5173\u952E\u8BCD\uFF1A\u7ED3\u7B97\u5E01\u79CD, settle currency, \u9ED8\u8BA4\u7ED3\u7B97, \u8BA1\u4EF7\u5E01\u79CD\n## \u53C2\u6570\uFF1A\n## - ccy: \u7ED3\u7B97\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u7ED3\u7B97\u5E01\u79CD\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u7ED3\u7B97\u5E01\u79CD\u5F71\u54CD\u8D26\u6237\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BBE\u7F6E \u2192 okx_get_account_config \u786E\u8BA4\u53D8\u66F4\u751F\u6548",
28908
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28943
28909
  {
28944
28910
  ccy: external_exports.string().describe("\u7ED3\u7B97\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B")
28945
28911
  },
@@ -28955,7 +28921,7 @@ function registerAccountTools(server, auth) {
28955
28921
  );
28956
28922
  server.tool(
28957
28923
  "okx_get_position_builder_graph",
28958
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u7EC4\u5408\u4FDD\u8BC1\u91D1\u8BD5\u7B97\u7ED3\u679C\u56FE\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7EC4\u5408\u4FDD\u8BC1\u91D1\u6A21\u62DF\u7ED3\u679C\u7684\u56FE\u5F62\u6570\u636E\n## \u5173\u952E\u8BCD\uFF1A\u8BD5\u7B97\u56FE\u8868, position builder graph, \u4FDD\u8BC1\u91D1\u6A21\u62DF\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_position_builder \u8BD5\u7B97 \u2192 \u672C\u5DE5\u5177\u770B\u56FE\u8868 \u2192 \u4F18\u5316\u7EC4\u5408",
28924
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28959
28925
  {},
28960
28926
  async () => {
28961
28927
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28969,7 +28935,7 @@ function registerAccountTools(server, auth) {
28969
28935
  );
28970
28936
  server.tool(
28971
28937
  "okx_precheck_delta_neutral",
28972
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u9884\u68C0Delta\u4E2D\u6027\u8BBE\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u68C0\u67E5\u671F\u6743\u6301\u4ED3\u7684Delta\u4E2D\u6027\u6761\u4EF6\n## \u5173\u952E\u8BCD\uFF1ADelta\u4E2D\u6027, delta neutral, \u671F\u6743\u5BF9\u51B2, \u65B9\u5411\u4E2D\u6027\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u9884\u68C0Delta\u4E2D\u6027\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u9884\u68C0\u64CD\u4F5C\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u9884\u68C0 \u2192 \u8C03\u6574\u671F\u6743\u6301\u4ED3 \u2192 \u5B9E\u73B0Delta\u4E2D\u6027",
28938
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28973
28939
  {},
28974
28940
  async () => {
28975
28941
  if (!auth) return toError(AUTH_REQUIRED);
@@ -28983,7 +28949,7 @@ function registerAccountTools(server, auth) {
28983
28949
  );
28984
28950
  server.tool(
28985
28951
  "okx_get_trade_fee",
28986
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EA4\u6613\u624B\u7EED\u8D39\uFF08\u6309\u4EA7\u54C1\u7EF4\u5EA6\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5177\u4F53\u4EA7\u54C1\u7684Maker/Taker\u8D39\u7387\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u6613\u624B\u7EED\u8D39, trade fee, maker taker, \u8D39\u7387\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002\u53EF\u9009\n## - instId: \u4EA7\u54C1ID\u3002\u53EF\u9009\n## - uly: \u6807\u7684\u6307\u6570\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\uFF1A\u672C\u5DE5\u5177\u67E5\u4EA7\u54C1\u8D39\u7387 \u2192 okx_get_fee_rates \u770B\u8D26\u6237\u8D39\u7387 \u2192 \u8BC4\u4F30\u4EA4\u6613\u6210\u672C",
28952
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28987
28953
  {
28988
28954
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
28989
28955
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID"),
@@ -29001,7 +28967,7 @@ function registerAccountTools(server, auth) {
29001
28967
  );
29002
28968
  server.tool(
29003
28969
  "okx_get_risk_state",
29004
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D26\u6237\u98CE\u63A7\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u8D26\u6237\u662F\u5426\u5B58\u5728\u98CE\u9669\u8B66\u544A\n## \u5173\u952E\u8BCD\uFF1A\u98CE\u63A7\u72B6\u6001, risk state, \u8D26\u6237\u98CE\u9669, \u5F3A\u5E73\u98CE\u9669\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u98CE\u9669 \u2192 \u5F3A\u5E73\u9884\u8B66 \u2192 \u8C03\u6574\u4FDD\u8BC1\u91D1",
28970
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29005
28971
  {},
29006
28972
  async () => {
29007
28973
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29015,7 +28981,7 @@ function registerAccountTools(server, auth) {
29015
28981
  );
29016
28982
  server.tool(
29017
28983
  "okx_borrow_repay",
29018
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u501F\u5E01\u6216\u8FD8\u6B3E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u589E\u52A0\u501F\u6B3E\u6216\u507F\u8FD8\u503A\u52A1\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - side: \u65B9\u5411\u3002borrow=\u501F\u5E01, repay=\u8FD8\u6B3E\u3002\u5FC5\u586B\n## - amt: \u6570\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u64CD\u4F5C\u501F\u8D37\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u501F\u5165/\u507F\u8FD8\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u64CD\u4F5C \u2192 okx_get_borrow_repay_history \u770B\u8BB0\u5F55",
28984
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29019
28985
  {
29020
28986
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
29021
28987
  side: external_exports.enum(["borrow", "repay"]).describe("\u65B9\u5411\u3002borrow=\u501F\u5E01, repay=\u8FD8\u6B3E"),
@@ -29033,7 +28999,7 @@ function registerAccountTools(server, auth) {
29033
28999
  );
29034
29000
  server.tool(
29035
29001
  "okx_get_borrow_repay_history",
29036
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u501F\u5E01\u8FD8\u6B3E\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u501F\u8D37\u64CD\u4F5C\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u501F\u8D37\u5386\u53F2, borrow repay history, \u501F\u6B3E\u8BB0\u5F55\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_borrow_repay \u64CD\u4F5C \u2192 \u672C\u5DE5\u5177\u67E5\u8BB0\u5F55",
29002
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29037
29003
  {},
29038
29004
  async () => {
29039
29005
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29051,7 +29017,7 @@ function registerAccountTools(server, auth) {
29051
29017
  );
29052
29018
  server.tool(
29053
29019
  "okx_get_account_bills_archive",
29054
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F52\u6863\u8D26\u5355\u6D41\u6C34\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B3\u4E2A\u6708\u524D\u7684\u5386\u53F2\u8D26\u5355\n## \u5173\u952E\u8BCD\uFF1A\u5F52\u6863\u8D26\u5355, bills archive, \u5386\u53F2\u8D26\u5355\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB",
29020
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29055
29021
  {},
29056
29022
  async () => {
29057
29023
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29065,7 +29031,7 @@ function registerAccountTools(server, auth) {
29065
29031
  );
29066
29032
  server.tool(
29067
29033
  "okx_set_auto_loan",
29068
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u81EA\u52A8\u501F\u8D37\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u542F\u6216\u5173\u95ED\u6760\u6746\u4EA4\u6613\u7684\u81EA\u52A8\u501F\u5E01\u529F\u80FD\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - side: \u65B9\u5411\u3002on=\u5F00\u542F, off=\u5173\u95ED\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u81EA\u52A8\u501F\u8D37\u8BBE\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F71\u54CD\u6760\u6746\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B",
29034
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29069
29035
  {
29070
29036
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
29071
29037
  side: external_exports.enum(["on", "off"]).describe("\u65B9\u5411\u3002on=\u5F00\u542F, off=\u5173\u95ED")
@@ -29082,7 +29048,7 @@ function registerAccountTools(server, auth) {
29082
29048
  );
29083
29049
  server.tool(
29084
29050
  "okx_set_trading_config",
29085
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u4EA4\u6613\u914D\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u8D26\u6237\u7684\u4EA4\u6613\u53C2\u6570\u8BBE\u7F6E\n## \u53C2\u6570\uFF1A\n## - jsonString: \u914D\u7F6E\u53C2\u6570JSON\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u4EA4\u6613\u914D\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F71\u54CD\u4EA4\u6613\u884C\u4E3A\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B",
29051
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29086
29052
  {
29087
29053
  jsonString: external_exports.string().describe("\u914D\u7F6E\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
29088
29054
  },
@@ -29099,7 +29065,7 @@ function registerAccountTools(server, auth) {
29099
29065
  );
29100
29066
  server.tool(
29101
29067
  "okx_move_positions",
29102
- "CAT:[\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8FC1\u79FB\u6301\u4ED3\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u6301\u4ED3\u5728\u4E0D\u540C\u8D26\u6237\u95F4\u8FC1\u79FB\n## \u53C2\u6570\uFF1A\n## - body: \u8FC1\u79FB\u53C2\u6570JSON\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u8FC1\u79FB\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F71\u54CD\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~2KB",
29068
+ "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29103
29069
  {
29104
29070
  body: external_exports.string().describe("\u8FC1\u79FB\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
29105
29071
  },
@@ -29120,7 +29086,7 @@ function registerAccountTools(server, auth) {
29120
29086
  function registerTradingTools(server, auth) {
29121
29087
  server.tool(
29122
29088
  "okx_place_order",
29123
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u5728OKX\u4E0B\u5355\uFF08\u5E02\u4EF7/\u9650\u4EF7/\u53EA\u6302/\u5168\u90E8\u6210\u4EA4\u6216\u53D6\u6D88/\u7ACB\u5373\u6210\u4EA4\u5E76\u53D6\u6D88\u5269\u4F59\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u4ED3\u505A\u591A/\u505A\u7A7A\u3001\u9650\u4EF7\u6302\u5355\u3001\u5E02\u4EF7\u5FEB\u901F\u6210\u4EA4\u3001\u53EA\u6302\u5355\u4E0D\u6210\u4EA4\uFF08post_only\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u4E0B\u5355, place order, \u5E02\u4EF7\u5355, \u9650\u4EF7\u5355, \u5F00\u4ED3, \u5E73\u4ED3, \u4E70\u5165, \u5356\u51FA\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - tdMode: \u4EA4\u6613\u6A21\u5F0F\u3002cash=\u73B0\u8D27, isolated=\u9010\u4ED3, cross=\u5168\u4ED3\n## - side: \u4E70\u5356\u65B9\u5411\u3002buy=\u4E70\u5165, sell=\u5356\u51FA\n## - ordType: \u8BA2\u5355\u7C7B\u578B\u3002market=\u5E02\u4EF7, limit=\u9650\u4EF7, post_only=\u53EA\u6302, fok=\u5168\u6210\u6216\u53D6\u6D88, ioc=\u7ACB\u5373\u6210\u4EA4\u5E76\u53D6\u6D88\n## - sz: \u59D4\u6258\u6570\u91CF\uFF08\u6839\u636E\u4EA7\u54C1\u4E0D\u540C\u53EF\u4E3A\u5F20\u6570\u6216\u5E01\u6570\uFF0C\u4E0B\u5355\u524D\u5EFA\u8BAE\u5148\u7528 okx_convert_contract_coin \u6362\u7B97\uFF09\n## - px: \u59D4\u6258\u4EF7\u683C\uFF08\u9650\u4EF7\u5355\u5FC5\u586B\uFF09\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u4F1A\u4EA7\u751F\u771F\u5B9E\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u660E\u786E\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u521B\u5EFA\u771F\u5B9E\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\u4EA7\u54C1\u3001\u65B9\u5411\u3001\u6570\u91CF\u548C\u4EF7\u683C\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_ticker \u770B\u4EF7\u683C \u2192 okx_get_balance \u786E\u8BA4\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u4E0B\u5355 \u2192 okx_get_order \u786E\u8BA4\u6210\u4EA4",
29089
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29124
29090
  {
29125
29091
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
29126
29092
  tdMode: external_exports.enum(["cash", "isolated", "cross"]).describe("\u4EA4\u6613\u6A21\u5F0F\uFF1Acash=\u73B0\u8D27\uFF0Cisolated=\u9010\u4ED3\uFF0Ccross=\u5168\u4ED3"),
@@ -29143,7 +29109,7 @@ function registerTradingTools(server, auth) {
29143
29109
  );
29144
29110
  server.tool(
29145
29111
  "okx_cancel_order",
29146
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u64A4\u9500\u6307\u5B9A\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u672A\u6210\u4EA4\u7684\u9650\u4EF7\u5355\u3001\u7EA0\u6B63\u8BEF\u4E0B\u5355\u3001\u6E05\u7A7A\u67D0\u4EA7\u54C1\u6302\u5355\n## \u5173\u952E\u8BCD\uFF1A\u64A4\u5355, cancel order, \u64A4\u9500\u8BA2\u5355, \u53D6\u6D88\u6302\u5355, \u53D6\u6D88\u59D4\u6258\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - ordId: \u8BA2\u5355ID\uFF0C\u7531 okx_place_order \u8FD4\u56DE\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\uFF1AWRITE \u2014 \u64A4\u9500\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_place_order \u4E0B\u5355 \u2192 okx_get_orders_pending \u67E5\u770B\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u64A4\u5355 \u2192 okx_get_order \u786E\u8BA4\u64A4\u9500",
29112
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29147
29113
  {
29148
29114
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
29149
29115
  ordId: external_exports.string().describe("\u8BA2\u5355ID")
@@ -29160,7 +29126,7 @@ function registerTradingTools(server, auth) {
29160
29126
  );
29161
29127
  server.tool(
29162
29128
  "okx_amend_order",
29163
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u672A\u6210\u4EA4\u8BA2\u5355\u7684\u4EF7\u683C\u6216\u6570\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u9650\u4EF7\u5355\u4EF7\u683C\u8DDF\u8FDB\u5E02\u573A\u3001\u51CF\u5C11\u59D4\u6258\u6570\u91CF\u3001\u4FEE\u6539\u6302\u5355\u53C2\u6570\n## \u5173\u952E\u8BCD\uFF1A\u6539\u5355, amend order, \u4FEE\u6539\u8BA2\u5355, \u6539\u4EF7, \u6539\u91CF, \u8C03\u6574\u59D4\u6258\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - ordId: \u8BA2\u5355ID\n## - newSz: \u65B0\u59D4\u6258\u6570\u91CF\uFF08\u53EF\u9009\uFF09\n## - newPx: \u65B0\u59D4\u6258\u4EF7\u683C\uFF08\u53EF\u9009\uFF09\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\uFF1AWRITE \u2014 \u4FEE\u6539\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_orders_pending \u67E5\u770B\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u6539\u5355 \u2192 okx_get_order \u786E\u8BA4\u4FEE\u6539",
29129
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29164
29130
  {
29165
29131
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
29166
29132
  ordId: external_exports.string().describe("\u8BA2\u5355ID"),
@@ -29182,7 +29148,7 @@ function registerTradingTools(server, auth) {
29182
29148
  );
29183
29149
  server.tool(
29184
29150
  "okx_get_orders_pending",
29185
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u6240\u6709\u672A\u6210\u4EA4\u6302\u5355\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u76D1\u63A7\u672A\u6210\u4EA4\u8BA2\u5355\u3001\u68C0\u67E5\u9650\u4EF7\u5355\u662F\u5426\u4ECD\u5728\u961F\u5217\u4E2D\u3001\u6279\u91CF\u67E5\u770B\u6302\u5355\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u6302\u5355\u67E5\u8BE2, orders pending, \u672A\u6210\u4EA4\u8BA2\u5355, \u9650\u4EF7\u5355\u72B6\u6001, \u59D4\u6258\u5217\u8868, \u5F53\u524D\u6302\u5355\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\u7CBE\u786E\u7B5B\u9009\n## - ordType: \u8BA2\u5355\u7C7B\u578B\u7B5B\u9009\u3002market/limit/post_only/fok/ioc\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_place_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u6302\u5355 \u2192 okx_cancel_order \u64A4\u5355 / okx_amend_order \u6539\u5355",
29151
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29186
29152
  {
29187
29153
  instType: external_exports.enum(INST_TYPE_TRADE).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"),
29188
29154
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u7CBE\u786E\u7B5B\u9009"),
@@ -29200,7 +29166,7 @@ function registerTradingTools(server, auth) {
29200
29166
  );
29201
29167
  server.tool(
29202
29168
  "okx_get_fills",
29203
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\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\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7CBE\u786E\u8BA1\u7B97\u6210\u4EA4\u5747\u4EF7\u3001\u6838\u5BF9\u6BCF\u7B14\u6210\u4EA4\u624B\u7EED\u8D39\u3001\u6BD4\u8BA2\u5355\u5386\u53F2\u66F4\u7EC6\u7C92\u5EA6\u5730\u590D\u76D8\n## \u5173\u952E\u8BCD\uFF1A\u6210\u4EA4\u660E\u7EC6, fills, \u9010\u7B14\u6210\u4EA4, \u6210\u4EA4\u8BB0\u5F55, \u624B\u7EED\u8D39\u660E\u7EC6, \u5747\u4EF7\u8BA1\u7B97\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: \u4EA7\u54C1ID\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\uFF1A100\u6761 ~10KB \u2014 \u4E2D\u7B49\n## \u5173\u8054\uFF1Aokx_place_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u770B\u6210\u4EA4\u660E\u7EC6 \u2192 okx_get_fills_history \u67E5\u5386\u53F2\u6210\u4EA4",
29169
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29204
29170
  {
29205
29171
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
29206
29172
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID"),
@@ -29218,7 +29184,7 @@ function registerTradingTools(server, auth) {
29218
29184
  );
29219
29185
  server.tool(
29220
29186
  "okx_get_orders_history_archive",
29221
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE23\u4E2A\u6708\u4EE5\u524D\u7684\u5B8C\u6574\u5386\u53F2\u8BA2\u5355\uFF08\u5F52\u6863\u6570\u636E\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u957F\u671F\u4EA4\u6613\u8BB0\u5F55\u5206\u6790\u3001\u5E74\u5EA6\u4EA4\u6613\u590D\u76D8\u3001\u5BA1\u8BA1\u5F52\u6863\u6570\u636E\n## \u5173\u952E\u8BCD\uFF1A\u5F52\u6863\u8BA2\u5355, orders history archive, \u5386\u53F2\u5F52\u6863, \u957F\u671F\u8BB0\u5F55, \u8BA2\u5355\u5B58\u6863\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_history \u67E5\u8FD1\u671F\u8BA2\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u5F52\u6863 \u2192 \u5B8C\u6574\u4EA4\u6613\u590D\u76D8",
29187
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29222
29188
  {
29223
29189
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
29224
29190
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA450")
@@ -29398,7 +29364,7 @@ function registerTradingTools(server, auth) {
29398
29364
  );
29399
29365
  server.tool(
29400
29366
  "okx_cancel_all_after",
29401
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u5B9A\u65F6\u5168\u64A4\uFF08N\u79D2\u540E\u81EA\u52A8\u64A4\u9500\u6240\u6709\u6302\u5355\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6781\u7AEF\u884C\u60C5\u4E0B\u542F\u52A8\u7D27\u6025\u64A4\u5355\u5012\u8BA1\u65F6\u3001\u7A0B\u5E8F\u5316\u98CE\u9669\u63A7\u5236\u3001\u8D85\u65F6\u81EA\u52A8\u6E05\u7A7A\u6302\u5355\n## \u5173\u952E\u8BCD\uFF1A\u5B9A\u65F6\u5168\u64A4, cancel all after, \u5012\u8BA1\u65F6\u64A4\u5355, \u7D27\u6025\u98CE\u63A7, \u81EA\u52A8\u64A4\u5355\n## \u53C2\u6570\uFF1A\n## - timeOut: \u5012\u8BA1\u65F6\u79D2\u6570\u30020=\u53D6\u6D88\u5B9A\u65F6\u5168\u64A4, \u6B63\u6570=\u8BBEN\u79D2\u540E\u5168\u64A4\u3002\u6700\u5927120\u79D2\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u98CE\u63A7\u6838\u5FC3\u5DE5\u5177\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u5B9A\u65F6\u64A4\u9500\u6240\u6709\u6302\u5355\uFF0C\u5F71\u54CD\u8303\u56F4\u6781\u5927\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_orders_pending \u786E\u8BA4\u5F53\u524D\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u8BBE\u5012\u8BA1\u65F6 \u2192 \u5230\u65F6\u95F4\u81EA\u52A8\u64A4\u9500",
29367
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29402
29368
  {
29403
29369
  timeOut: external_exports.string().describe("\u5012\u8BA1\u65F6\u79D2\u6570\uFF0C0=\u53D6\u6D88\u5B9A\u65F6\u5168\u64A4\uFF0C\u6B63\u6570=\u8BBEN\u79D2\u540E\u5168\u64A4\uFF0C\u6700\u5927120\u79D2")
29404
29370
  },
@@ -29439,7 +29405,7 @@ function registerTradingTools(server, auth) {
29439
29405
  );
29440
29406
  server.tool(
29441
29407
  "okx_get_account_rate_limit",
29442
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u8D26\u6237\u7684API\u9891\u7387\u9650\u5236\u4F7F\u7528\u60C5\u51B5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u9AD8\u9891\u4EA4\u6613\u524D\u68C0\u67E5\u5269\u4F59\u914D\u989D\u3001\u907F\u514D\u89E6\u53D1\u9650\u9891\u3001\u8C03\u6574\u8BF7\u6C42\u8282\u594F\n## \u5173\u952E\u8BCD\uFF1A\u9891\u7387\u9650\u5236, rate limit, API\u914D\u989D, \u9650\u9891\u67E5\u8BE2, \u5269\u4F59\u6B21\u6570\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\u672C\u5DE5\u5177\u67E5\u770B\u5269\u4F59\u914D\u989D \u2192 \u9AD8\u9891\u4E0B\u5355\u524D\u786E\u8BA4 \u2192 \u907F\u514D HTTP 429 \u9519\u8BEF",
29408
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29443
29409
  {},
29444
29410
  async () => {
29445
29411
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29453,7 +29419,7 @@ function registerTradingTools(server, auth) {
29453
29419
  );
29454
29420
  server.tool(
29455
29421
  "okx_easy_convert",
29456
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u95EA\u5151\uFF08\u4E00\u952E\u5151\u6362\u4E0D\u540C\u5E01\u79CD\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u5151\u6362USDT\u5230BTC/ETH\u7B49\u3001\u5C0F\u989D\u6362\u5E01\u9700\u6C42\u3001\u65E0\u9700\u6302\u5355\u5373\u65F6\u6210\u4EA4\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u5151, easy convert, \u5E01\u79CD\u5151\u6362, \u4E00\u952E\u6362\u5E01, \u5FEB\u901F\u5151\u6362\n## \u53C2\u6570\uFF1A\n## - fromCcy: \u5356\u51FA\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B\n## - toCcy: \u4E70\u5165\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B\n## - sz: \u5356\u51FA\u6570\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\u5151\u6362\u5E01\u79CD\u548C\u6570\u91CF\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u4EA7\u751F\u771F\u5B9E\u5151\u6362\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_ticker \u770B\u5F53\u524D\u4EF7 \u2192 \u672C\u5DE5\u5177\u95EA\u5151 \u2192 okx_get_easy_convert_history \u67E5\u8BB0\u5F55",
29422
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29457
29423
  {
29458
29424
  fromCcy: external_exports.string().describe("\u5356\u51FA\u5E01\u79CD\uFF0C\u5982 USDT"),
29459
29425
  toCcy: external_exports.string().describe("\u4E70\u5165\u5E01\u79CD\uFF0C\u5982 BTC"),
@@ -29471,7 +29437,7 @@ function registerTradingTools(server, auth) {
29471
29437
  );
29472
29438
  server.tool(
29473
29439
  "okx_get_easy_convert_history",
29474
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u95EA\u5151\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u95EA\u5151\u4EA4\u6613\u3001\u6838\u5BF9\u5151\u6362\u6C47\u7387\u3001\u7EDF\u8BA1\u6362\u5E01\u6210\u672C\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u5151\u5386\u53F2, easy convert history, \u5151\u6362\u8BB0\u5F55, \u6362\u5E01\u5386\u53F2\n## \u53C2\u6570\uFF1A\n## - after: \u67E5\u8BE2\u6B64\u65F6\u95F4\u4E4B\u540E\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09\n## - before: \u67E5\u8BE2\u6B64\u65F6\u95F4\u4E4B\u524D\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09\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_easy_convert \u95EA\u5151 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 okx_get_account_bills \u5BF9\u8D26",
29440
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29475
29441
  {
29476
29442
  after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u4E4B\u540E\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09"),
29477
29443
  before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u4E4B\u524D\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09"),
@@ -29489,7 +29455,7 @@ function registerTradingTools(server, auth) {
29489
29455
  );
29490
29456
  server.tool(
29491
29457
  "okx_get_mmp_config",
29492
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2MMP\uFF08\u505A\u5E02\u5546\u4FDD\u62A4\uFF09\u914D\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u505A\u5E02\u5546\u4FDD\u62A4\u53C2\u6570\u3001\u786E\u8BA4\u98CE\u63A7\u8BBE\u7F6E\n## \u5173\u952E\u8BCD\uFF1A\u505A\u5E02\u5546\u4FDD\u62A4, MMP, mmp config, \u505A\u5E02\u5546\u98CE\u63A7, \u5E02\u573A\u4FDD\u62A4\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\u672C\u5DE5\u5177\u67E5\u770B\u914D\u7F6E \u2192 okx_set_mmp_config \u4FEE\u6539",
29458
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29493
29459
  {},
29494
29460
  async () => {
29495
29461
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29503,7 +29469,7 @@ function registerTradingTools(server, auth) {
29503
29469
  );
29504
29470
  server.tool(
29505
29471
  "okx_set_mmp_config",
29506
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6EMMP\uFF08\u505A\u5E02\u5546\u4FDD\u62A4\uFF09\u53C2\u6570\n## \u573A\u666F\uFF1A\u7528\u4E8E\u914D\u7F6E\u505A\u5E02\u5546\u98CE\u63A7\u53C2\u6570\u3001\u4FDD\u62A4\u505A\u5E02\u7B56\u7565\n## \u53C2\u6570\uFF1A\n## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B\n## - timeInterval: \u65F6\u95F4\u7A97\u53E3\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B\n## - frozenInterval: \u51BB\u7ED3\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B\n## - limit: \u9650\u5236\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u4FEE\u6539MMP\u53C2\u6570\u5F71\u54CD\u505A\u5E02\u7B56\u7565\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u98CE\u63A7\u914D\u7F6E\u53EF\u80FD\u5F71\u54CD\u4EA4\u6613\u6267\u884C\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_mmp_config \u67E5\u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 \u751F\u6548",
29472
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29507
29473
  {
29508
29474
  instFamily: external_exports.string().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B"),
29509
29475
  timeInterval: external_exports.string().describe("\u65F6\u95F4\u7A97\u53E3\uFF08\u6BEB\u79D2\uFF09\u3002\u5FC5\u586B"),
@@ -29522,7 +29488,7 @@ function registerTradingTools(server, auth) {
29522
29488
  );
29523
29489
  server.tool(
29524
29490
  "okx_get_order_algo",
29525
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6307\u5B9A\u7B56\u7565\u59D4\u6258\u7684\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u7B56\u7565\u59D4\u6258\u72B6\u6001\u3001\u67E5\u770B\u89E6\u53D1\u6761\u4EF6\u548C\u6267\u884C\u7ED3\u679C\n## \u5173\u952E\u8BCD\uFF1A\u7B56\u7565\u59D4\u6258\u8BE6\u60C5, order algo, \u7B56\u7565\u5355\u67E5\u8BE2, \u6761\u4EF6\u5355\u8BE6\u60C5\n## \u53C2\u6570\uFF1A\n## - algoId: \u7B56\u7565\u59D4\u6258ID\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 ~2KB\n## \u5173\u8054\uFF1Aokx_get_orders_algo_pending \u67E5\u770B\u7B56\u7565\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u8BE6\u60C5",
29491
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29526
29492
  {
29527
29493
  algoId: external_exports.string().optional().describe("\u7B56\u7565\u59D4\u6258ID")
29528
29494
  },
@@ -29538,7 +29504,7 @@ function registerTradingTools(server, auth) {
29538
29504
  );
29539
29505
  server.tool(
29540
29506
  "okx_reset_mmp",
29541
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u91CD\u7F6EMMP\uFF08\u505A\u5E02\u5546\u4FDD\u62A4\uFF09\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5728\u89E6\u53D1MMP\u4FDD\u62A4\u540E\u624B\u52A8\u91CD\u7F6E\u3001\u6062\u590D\u505A\u5E02\u4EA4\u6613\n## \u5173\u952E\u8BCD\uFF1A\u91CD\u7F6EMMP, reset mmp, \u505A\u5E02\u5546\u91CD\u7F6E, MMP\u590D\u4F4D\n## \u53C2\u6570\uFF1A\n## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u91CD\u7F6EMMP\u4FDD\u62A4\u72B6\u6001\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u91CD\u7F6EMMP\u540E\u505A\u5E02\u5546\u53EF\u6062\u590D\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_mmp_config \u67E5\u770BMMP\u72B6\u6001 \u2192 \u672C\u5DE5\u5177\u91CD\u7F6E \u2192 \u6062\u590D\u6B63\u5E38\u505A\u5E02",
29507
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29542
29508
  {
29543
29509
  instFamily: external_exports.string().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B")
29544
29510
  },
@@ -29554,7 +29520,7 @@ function registerTradingTools(server, auth) {
29554
29520
  );
29555
29521
  server.tool(
29556
29522
  "okx_get_orders_archive",
29557
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE23\u4E2A\u6708\u4EE5\u524D\u7684\u5B8C\u6574\u5386\u53F2\u8BA2\u5355\uFF08\u5F52\u6863\u6570\u636E\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u957F\u671F\u4EA4\u6613\u8BB0\u5F55\u5206\u6790\u3001\u5E74\u5EA6\u590D\u76D8\n## \u5173\u952E\u8BCD\uFF1A\u5F52\u6863\u8BA2\u5355, orders archive, \u5386\u53F2\u5F52\u6863, \u8BA2\u5355\u5B58\u6863\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_history \u67E5\u8FD1\u671F\u8BA2\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u5F52\u6863 \u2192 \u5B8C\u6574\u590D\u76D8",
29523
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29558
29524
  {
29559
29525
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
29560
29526
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA450")
@@ -29571,7 +29537,7 @@ function registerTradingTools(server, auth) {
29571
29537
  );
29572
29538
  server.tool(
29573
29539
  "okx_get_order_by_clOrdId",
29574
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u901A\u8FC7\u5BA2\u6237\u7AEF\u81EA\u5B9A\u4E49ID\u67E5\u8BE2\u8BA2\u5355\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u4F7F\u7528\u81EA\u5B9A\u4E49\u8BA2\u5355ID\u4E0B\u5355\u540E\u7684\u6267\u884C\u72B6\u6001\u3001\u5728\u81EA\u6709\u7CFB\u7EDF\u4E2D\u5173\u8054\u8BA2\u5355\n## \u5173\u952E\u8BCD\uFF1A\u8BA2\u5355ID, clOrdId, \u81EA\u5B9A\u4E49\u8BA2\u5355, \u5BA2\u6237\u7AEFID, \u8BA2\u5355\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - clOrdId: \u5BA2\u6237\u7AEF\u81EA\u5B9A\u4E49\u8BA2\u5355ID\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_place_order \u4E0B\u5355\u65F6\u8BBE\u7F6EclOrdId \u2192 \u672C\u5DE5\u5177\u67E5\u8BE2 \u2192 \u786E\u8BA4\u8BA2\u5355\u72B6\u6001",
29540
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29575
29541
  {
29576
29542
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
29577
29543
  clOrdId: external_exports.string().describe("\u5BA2\u6237\u7AEF\u81EA\u5B9A\u4E49\u8BA2\u5355ID\u3002\u5FC5\u586B")
@@ -29588,7 +29554,7 @@ function registerTradingTools(server, auth) {
29588
29554
  );
29589
29555
  server.tool(
29590
29556
  "okx_get_one_click_repay_list",
29591
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E00\u952E\u8FD8\u6B3E\u652F\u6301\u7684\u5E01\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u54EA\u4E9B\u5E01\u79CD\u652F\u6301\u4E00\u952E\u8FD8\u6B3E\u3001\u4E86\u89E3\u53EF\u8FD8\u6B3E\u7684\u503A\u52A1\u7C7B\u578B\n## \u5173\u952E\u8BCD\uFF1A\u4E00\u952E\u8FD8\u6B3E, one click repay, \u8FD8\u6B3E\u5E01\u79CD, \u503A\u52A1\u507F\u8FD8\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\u652F\u6301\u5E01\u79CD \u2192 okx_one_click_repay \u6267\u884C\u8FD8\u6B3E",
29557
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29592
29558
  {},
29593
29559
  async () => {
29594
29560
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29602,7 +29568,7 @@ function registerTradingTools(server, auth) {
29602
29568
  );
29603
29569
  server.tool(
29604
29570
  "okx_one_click_repay",
29605
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u6267\u884C\u4E00\u952E\u8FD8\u6B3E\uFF08\u4F7F\u7528\u8D26\u6237\u8D44\u91D1\u81EA\u52A8\u507F\u8FD8\u501F\u5E01\u503A\u52A1\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u507F\u8FD8\u6760\u6746\u501F\u8D37\u5229\u606F\u3001\u907F\u514D\u5229\u606F\u7D2F\u79EF\n## \u53C2\u6570\uFF1A\n## - ccy: \u8FD8\u6B3E\u4F7F\u7528\u7684\u5E01\u79CD\u3002\u5FC5\u586B\n## - repayCcy: \u8981\u507F\u8FD8\u7684\u503A\u52A1\u5E01\u79CD\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4F7F\u7528\u8D26\u6237\u8D44\u91D1\u8FD8\u6B3E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8FD8\u6B3E\u79FB\u52A8\u771F\u5B9E\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_one_click_repay_list \u67E5\u652F\u6301\u5E01\u79CD \u2192 \u672C\u5DE5\u5177\u8FD8\u6B3E \u2192 okx_one_click_repay_history \u67E5\u8BB0\u5F55",
29571
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29606
29572
  {
29607
29573
  ccy: external_exports.string().describe("\u8FD8\u6B3E\u4F7F\u7528\u7684\u5E01\u79CD\u3002\u5FC5\u586B"),
29608
29574
  repayCcy: external_exports.string().describe("\u8981\u507F\u8FD8\u7684\u503A\u52A1\u5E01\u79CD\u3002\u5FC5\u586B")
@@ -29619,7 +29585,7 @@ function registerTradingTools(server, auth) {
29619
29585
  );
29620
29586
  server.tool(
29621
29587
  "okx_get_one_click_repay_history",
29622
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4E00\u952E\u8FD8\u6B3E\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EE5\u5F80\u7684\u8FD8\u6B3E\u64CD\u4F5C\u3001\u6838\u5BF9\u8FD8\u6B3E\u91D1\u989D\u548C\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u8FD8\u6B3E\u5386\u53F2, repay history, \u4E00\u952E\u8FD8\u6B3E\u8BB0\u5F55, \u503A\u52A1\u507F\u8FD8\u8BB0\u5F55\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_one_click_repay \u8FD8\u6B3E \u2192 \u672C\u5DE5\u5177\u67E5\u8BB0\u5F55 \u2192 \u786E\u8BA4\u8FD8\u6B3E\u5B8C\u6210",
29588
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29623
29589
  {},
29624
29590
  async () => {
29625
29591
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29633,7 +29599,7 @@ function registerTradingTools(server, auth) {
29633
29599
  );
29634
29600
  server.tool(
29635
29601
  "okx_get_easy_convert_currency_list",
29636
- "CAT:[\u4EA4\u6613] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u5151\u652F\u6301\u7684\u5E01\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u54EA\u4E9B\u5E01\u79CD\u652F\u6301\u95EA\u5151\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u5151\u5217\u8868, easy convert list, \u95EA\u5151\u5E01\u79CD\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
29602
+ "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29637
29603
  {},
29638
29604
  async () => {
29639
29605
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29651,7 +29617,7 @@ function registerTradingTools(server, auth) {
29651
29617
  function registerAlgoTools(server, auth) {
29652
29618
  server.tool(
29653
29619
  "okx_get_algo_orders",
29654
- "CAT:[\u4EA4\u6613-\u59D4\u6258] | ## \u529F\u80FD\uFF1A\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\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u751F\u6548\u7684\u7B56\u7565\u5355\u3001\u76D1\u63A7\u6B62\u76C8\u6B62\u635F\u6302\u5355\u3001\u68C0\u67E5\u51B0\u5C71/TWAP\u6267\u884C\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u7B56\u7565\u59D4\u6258, algo orders, \u6B62\u76C8\u6B62\u635F, \u6761\u4EF6\u5355, \u51B0\u5C71\u59D4\u6258, TWAP, \u7B56\u7565\u5355\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - ordType: \u7B56\u7565\u7C7B\u578B\u3002conditional=\u6761\u4EF6\u5355, oco=OCO\u8BA2\u5355, trigger=\u89E6\u53D1\u5355, move_order_stop=\u79FB\u52A8\u6B62\u635F, iceberg=\u51B0\u5C71, twap=\u65F6\u95F4\u52A0\u6743\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\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_place_algo_order \u4E0B\u7B56\u7565\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u6302\u5355 \u2192 okx_cancel_algo_order \u64A4\u9500",
29620
+ "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29655
29621
  {
29656
29622
  ordType: external_exports.enum(["conditional", "oco", "trigger", "move_order_stop", "iceberg", "twap"]).describe("\u7B56\u7565\u7C7B\u578B"),
29657
29623
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743")
@@ -29668,7 +29634,7 @@ function registerAlgoTools(server, auth) {
29668
29634
  );
29669
29635
  server.tool(
29670
29636
  "okx_get_algo_orders_history",
29671
- "CAT:[\u4EA4\u6613-\u59D4\u6258] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5386\u53F2\u7B56\u7565\u59D4\u6258\u5355\u8BB0\u5F55\uFF08\u5DF2\u89E6\u53D1/\u5DF2\u64A4\u9500/\u5931\u8D25\u7684\u7B56\u7565\u5355\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u590D\u76D8\u7B56\u7565\u5355\u6267\u884C\u60C5\u51B5\u3001\u5206\u6790\u6B62\u76C8\u6B62\u635F\u89E6\u53D1\u5386\u53F2\u3001\u6392\u67E5\u7B56\u7565\u5931\u8D25\u539F\u56E0\n## \u5173\u952E\u8BCD\uFF1A\u7B56\u7565\u5386\u53F2, algo orders history, \u7B56\u7565\u8BB0\u5F55, \u5386\u53F2\u6761\u4EF6\u5355, \u6B62\u76C8\u6B62\u635F\u5386\u53F2, \u7B56\u7565\u590D\u76D8\n## \u53C2\u6570\uFF1A\n## - ordType: \u7B56\u7565\u7C7B\u578B\u3002conditional=\u6761\u4EF6\u5355, oco=OCO, trigger=\u89E6\u53D1\u5355, move_order_stop=\u79FB\u52A8\u6B62\u635F, iceberg=\u51B0\u5C71, twap=\u65F6\u95F4\u52A0\u6743\n## - state: \u8BA2\u5355\u72B6\u6001\u3002effective=\u5DF2\u751F\u6548, canceled=\u5DF2\u64A4\u9500, order_failed=\u5931\u8D25\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\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_algo_orders \u67E5\u770B\u5F53\u524D\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u5206\u6790\u7B56\u7565\u6548\u679C",
29637
+ "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29672
29638
  {
29673
29639
  ordType: external_exports.enum(["conditional", "oco", "trigger", "move_order_stop", "iceberg", "twap"]).describe("\u7B56\u7565\u7C7B\u578B"),
29674
29640
  state: external_exports.enum(["effective", "canceled", "order_failed"]).describe("\u8BA2\u5355\u72B6\u6001"),
@@ -29686,7 +29652,7 @@ function registerAlgoTools(server, auth) {
29686
29652
  );
29687
29653
  server.tool(
29688
29654
  "okx_place_algo_order",
29689
- "CAT:[\u4EA4\u6613-\u59D4\u6258] | ## \u529F\u80FD\uFF1A\u4E0B\u7B56\u7565\u59D4\u6258\u5355\uFF08\u6B62\u76C8\u6B62\u635F\u3001\u6761\u4EF6\u5355\u3001OCO\u7B49\uFF09\uFF0C\u5728\u6EE1\u8DB3\u6761\u4EF6\u65F6\u81EA\u52A8\u89E6\u53D1\u4E0B\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BBE\u7F6E\u6B62\u76C8\u6B62\u635F\u81EA\u52A8\u5E73\u4ED3\u3001\u5728\u4EF7\u683C\u7A81\u7834\u65F6\u81EA\u52A8\u5F00\u4ED3\u3001\u8BBE\u7F6EOCO\u4E8C\u9009\u4E00\u8BA2\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4E0B\u7B56\u7565\u5355, place algo, \u6B62\u76C8\u6B62\u635F\u4E0B\u5355, \u6761\u4EF6\u5355, OCO\u4E0B\u5355, \u81EA\u52A8\u89E6\u53D1\n## \u53C2\u6570\uFF1A\n## - params: \u8BA2\u5355\u53C2\u6570\uFF08JSON\u5BF9\u8C61\uFF09\uFF0C\u53C2\u8003OKX\u6587\u6863\u3002\u542B instId/tdMode/side/ordType/sz/px \u53CA\u7B56\u7565\u53C2\u6570\u5982 slTriggerPx/tpTriggerPx\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u4F1A\u4EA7\u751F\u771F\u5B9E\u7B56\u7565\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u521B\u5EFA\u7B56\u7565\u8BA2\u5355\uFF0C\u53EF\u80FD\u81EA\u52A8\u89E6\u53D1\u771F\u5B9E\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_algo_orders \u67E5\u770B\u5F53\u524D\u7B56\u7565 \u2192 \u672C\u5DE5\u5177\u4E0B\u7B56\u7565\u5355 \u2192 okx_get_algo_orders \u786E\u8BA4",
29655
+ "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29690
29656
  { params: external_exports.record(external_exports.unknown()).describe("\u8BA2\u5355\u53C2\u6570\uFF0C\u53C2\u8003OKX\u6587\u6863") },
29691
29657
  async ({ params }) => {
29692
29658
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29700,7 +29666,7 @@ function registerAlgoTools(server, auth) {
29700
29666
  );
29701
29667
  server.tool(
29702
29668
  "okx_cancel_algo_order",
29703
- "CAT:[\u4EA4\u6613-\u59D4\u6258] | ## \u529F\u80FD\uFF1A\u64A4\u9500\u6307\u5B9A\u7684\u7B56\u7565\u59D4\u6258\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u4E0D\u518D\u9700\u8981\u7684\u6B62\u76C8\u6B62\u635F\u3001\u5173\u95ED\u6761\u4EF6\u5355\u3001\u8C03\u6574\u7B56\u7565\u524D\u5148\u64A4\u65E7\u5355\n## \u5173\u952E\u8BCD\uFF1A\u64A4\u9500\u7B56\u7565, cancel algo, \u53D6\u6D88\u6B62\u76C8\u6B62\u635F, \u64A4\u7B56\u7565\u5355, \u53D6\u6D88\u6761\u4EF6\u5355\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - algoId: \u7B56\u7565\u8BA2\u5355ID\uFF0C\u7531 okx_place_algo_order \u8FD4\u56DE\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\uFF1AWRITE \u2014 \u64A4\u9500\u7B56\u7565\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_algo_orders \u67E5\u770B\u7B56\u7565\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u64A4\u9500 \u2192 okx_get_algo_orders_history \u786E\u8BA4\u64A4\u9500",
29669
+ "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29704
29670
  {
29705
29671
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
29706
29672
  algoId: external_exports.string().describe("\u7B56\u7565\u8BA2\u5355ID")
@@ -29717,7 +29683,7 @@ function registerAlgoTools(server, auth) {
29717
29683
  );
29718
29684
  server.tool(
29719
29685
  "okx_get_orders_algo_pending",
29720
- "CAT:[\u4EA4\u6613-\u59D4\u6258] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F85\u89E6\u53D1\u7684\u7B56\u7565\u59D4\u6258\u5355\uFF08\u66F4\u7075\u6D3B\u7684\u67E5\u8BE2\u65B9\u5F0F\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6240\u6709\u5F85\u89E6\u53D1\u7B56\u7565\u3001\u6309\u4EA7\u54C1\u6216ID\u7CBE\u786E\u67E5\u627E\u7B56\u7565\u5355\u3001\u76D1\u63A7\u81EA\u52A8\u4EA4\u6613\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u7B56\u7565\u6302\u5355, orders algo pending, \u5F85\u89E6\u53D1, \u6761\u4EF6\u5355\u67E5\u8BE2, \u6B62\u76C8\u6B62\u635F\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - algoId: \u7B56\u7565\u8BA2\u5355ID\uFF0C\u7CBE\u786E\u67E5\u8BE2\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT/MARGIN/SWAP/FUTURES/OPTION\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - ordType: \u7B56\u7565\u7C7B\u578B\u3002conditional/trigger/oco/move_order_stop/iceberg/twap\n## - limit: \u8FD4\u56DE\u6761\u6570\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\u67E5\u8BE2\u5F85\u89E6\u53D1\u7B56\u7565 \u2192 okx_place_algo_order \u4E0B\u7B56\u7565\u5355 \u2192 okx_cancel_algo_order \u64A4\u9500",
29686
+ "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29721
29687
  {
29722
29688
  algoId: external_exports.string().optional().describe("\u7B56\u7565\u8BA2\u5355ID\uFF0C\u7CBE\u786E\u67E5\u8BE2"),
29723
29689
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -29737,7 +29703,7 @@ function registerAlgoTools(server, auth) {
29737
29703
  );
29738
29704
  server.tool(
29739
29705
  "okx_amend_algo_order",
29740
- "CAT:[\u4EA4\u6613-\u59D4\u6258] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u7B56\u7565\u59D4\u6258\u5355\uFF08\u6B62\u76C8\u6B62\u635F\u4EF7\u683C\u3001\u89E6\u53D1\u6761\u4EF6\u7B49\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u6B62\u76C8\u6B62\u635F\u4EF7\u683C\u3001\u4FEE\u6539\u89E6\u53D1\u6761\u4EF6\u3001\u66F4\u65B0\u7B56\u7565\u5355\u53C2\u6570\n## \u5173\u952E\u8BCD\uFF1A\u4FEE\u6539\u7B56\u7565, amend algo, \u8C03\u6574\u6B62\u76C8\u6B62\u635F, \u4FEE\u6539\u6761\u4EF6\u5355, \u66F4\u65B0\u7B56\u7565\n## \u53C2\u6570\uFF1A\n## - orders: \u4FEE\u6539\u7B56\u7565\u8BA2\u5355\u6570\u7EC4\uFF08JSON\u6570\u7EC4\u5B57\u7B26\u4E32\uFF09\uFF0C\u6BCF\u9879\u542B algoId/instId \u53CA\u9700\u4FEE\u6539\u7684\u5B57\u6BB5\uFF08\u5982 newSz/newPx/slTriggerPx/tpTriggerPx\uFF09\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\uFF1AWRITE \u2014 \u4FEE\u6539\u7B56\u7565\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_orders_algo_pending \u67E5\u8BE2\u7B56\u7565 \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 okx_get_algo_orders \u786E\u8BA4\u4FEE\u6539",
29706
+ "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29741
29707
  {
29742
29708
  orders: external_exports.string().describe(`\u4FEE\u6539\u7B56\u7565\u8BA2\u5355\u6570\u7EC4JSON\u5B57\u7B26\u4E32\uFF0C\u5982 '[{"algoId":"123","instId":"BTC-USDT","newTpTriggerPx":"65000"}]'`)
29743
29709
  },
@@ -29758,7 +29724,7 @@ function registerAlgoTools(server, auth) {
29758
29724
  function registerFundingTools(server, auth) {
29759
29725
  server.tool(
29760
29726
  "okx_get_funding_balance",
29761
- "CAT:[\u8D44\u91D1] | ## \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",
29727
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29762
29728
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8") },
29763
29729
  async ({ ccy }) => {
29764
29730
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29772,7 +29738,7 @@ function registerFundingTools(server, auth) {
29772
29738
  );
29773
29739
  server.tool(
29774
29740
  "okx_transfer",
29775
- "CAT:[\u8D44\u91D1] | ## \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",
29741
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29776
29742
  {
29777
29743
  ccy: external_exports.string().describe("\u5212\u8F6C\u5E01\u79CD"),
29778
29744
  amt: external_exports.string().describe("\u5212\u8F6C\u6570\u91CF"),
@@ -29791,7 +29757,7 @@ function registerFundingTools(server, auth) {
29791
29757
  );
29792
29758
  server.tool(
29793
29759
  "okx_get_currencies",
29794
- "CAT:[\u8D44\u91D1] | ## \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",
29760
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29795
29761
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u5982 BTC\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
29796
29762
  async ({ ccy }) => {
29797
29763
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29805,7 +29771,7 @@ function registerFundingTools(server, auth) {
29805
29771
  );
29806
29772
  server.tool(
29807
29773
  "okx_get_deposit_address",
29808
- "CAT:[\u8D44\u91D1] | ## \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",
29774
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29809
29775
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3001ETH") },
29810
29776
  async ({ ccy }) => {
29811
29777
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29819,7 +29785,7 @@ function registerFundingTools(server, auth) {
29819
29785
  );
29820
29786
  server.tool(
29821
29787
  "okx_get_deposit_history",
29822
- "CAT:[\u8D44\u91D1] | ## \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",
29788
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29823
29789
  {
29824
29790
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
29825
29791
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -29836,7 +29802,7 @@ function registerFundingTools(server, auth) {
29836
29802
  );
29837
29803
  server.tool(
29838
29804
  "okx_get_withdrawal_history",
29839
- "CAT:[\u8D44\u91D1] | ## \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",
29805
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29840
29806
  {
29841
29807
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
29842
29808
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -29853,7 +29819,7 @@ function registerFundingTools(server, auth) {
29853
29819
  );
29854
29820
  server.tool(
29855
29821
  "okx_withdrawal",
29856
- "CAT:[\u8D44\u91D1] | ## \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",
29822
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29857
29823
  {
29858
29824
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B"),
29859
29825
  amt: external_exports.string().describe("\u63D0\u5E01\u6570\u91CF\u3002\u5FC5\u586B"),
@@ -29878,7 +29844,7 @@ function registerFundingTools(server, auth) {
29878
29844
  );
29879
29845
  server.tool(
29880
29846
  "okx_get_deposit_lightning",
29881
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u7535\u5145\u503C\u5730\u5740\uFF08\u83B7\u53D6\u4E34\u65F6\u5145\u503C\u5730\u5740\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u751F\u6210\u5145\u503C\u5730\u5740\u63A5\u6536\u8D44\u91D1\u3001\u83B7\u53D6\u672C\u5730\u8D27\u5E01\u652F\u4ED8\u65B9\u5F0F\u7684\u5145\u503C\u4FE1\u606F\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u7535\u5145\u503C, lightning deposit, \u5FEB\u901F\u5145\u503C, \u5145\u503C\u5730\u5740, \u95EA\u7535\u5165\u91D1\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 USDT\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\uFF08\u5730\u5740\u6709\u6548\u671F\u5185\u53EF\u91CD\u590D\u4F7F\u7528\uFF09\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u95EA\u7535\u5730\u5740 \u2192 \u7528\u6237\u5145\u503C \u2192 okx_get_deposit_history \u8FFD\u8E2A\u5230\u8D26",
29847
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29882
29848
  {
29883
29849
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B")
29884
29850
  },
@@ -29894,7 +29860,7 @@ function registerFundingTools(server, auth) {
29894
29860
  );
29895
29861
  server.tool(
29896
29862
  "okx_withdrawal_lightning",
29897
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u95EA\u7535\u63D0\u73B0\uFF08\u5FEB\u901F\u63D0\u73B0\u5230\u672C\u5730\u652F\u4ED8\u65B9\u5F0F\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u63D0\u73B0\u5230\u7B2C\u4E09\u65B9\u652F\u4ED8\u6E20\u9053\u3001\u5C0F\u989D\u5FEB\u901F\u51FA\u91D1\n## \u5173\u952E\u8BCD\uFF1A\u95EA\u7535\u63D0\u73B0, lightning withdrawal, \u5FEB\u901F\u63D0\u73B0, \u95EA\u7535\u51FA\u91D1\n## \u53C2\u6570\uFF1A\n## - ccy: \u63D0\u73B0\u5E01\u79CD\u3002\u5FC5\u586B\n## - amt: \u63D0\u73B0\u6570\u91CF\u3002\u5FC5\u586B\n## - to: \u63D0\u73B0\u53BB\u5411\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u63D0\u73B0\uFF09- \u5C06\u63D0\u73B0\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u4E8C\u6B21\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u63D0\u73B0\u64CD\u4F5C\u76F4\u63A5\u8F6C\u51FA\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u4E8C\u6B21\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u95EA\u7535\u63D0\u73B0 \u2192 okx_get_withdrawal_history \u8FFD\u8E2A\u63D0\u73B0\u72B6\u6001",
29863
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29898
29864
  {
29899
29865
  ccy: external_exports.string().describe("\u63D0\u73B0\u5E01\u79CD\u3002\u5FC5\u586B"),
29900
29866
  amt: external_exports.string().describe("\u63D0\u73B0\u6570\u91CF\u3002\u5FC5\u586B"),
@@ -29912,7 +29878,7 @@ function registerFundingTools(server, auth) {
29912
29878
  );
29913
29879
  server.tool(
29914
29880
  "okx_get_transfer_state",
29915
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u5212\u8F6C\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u8DE8\u8D26\u6237\u5212\u8F6C\u662F\u5426\u5230\u8D26\u3001\u786E\u8BA4\u5212\u8F6C\u6210\u529F\n## \u5173\u952E\u8BCD\uFF1A\u5212\u8F6C\u72B6\u6001, transfer state, \u8D44\u91D1\u5212\u8F6C, \u8F6C\u8D26\u72B6\u6001, \u5212\u8F6C\u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - transferId: \u5212\u8F6CID\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_transfer \u5212\u8F6C \u2192 \u672C\u5DE5\u5177\u8FFD\u8E2A\u72B6\u6001 \u2192 \u786E\u8BA4\u5230\u8D26",
29881
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29916
29882
  {
29917
29883
  transferId: external_exports.string().describe("\u5212\u8F6CID\uFF08\u4ECE okx_transfer \u8FD4\u56DE\u83B7\u53D6\uFF09\u3002\u5FC5\u586B")
29918
29884
  },
@@ -29928,7 +29894,7 @@ function registerFundingTools(server, auth) {
29928
29894
  );
29929
29895
  server.tool(
29930
29896
  "okx_get_non_tradable_assets",
29931
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4E0D\u53EF\u4EA4\u6613\u8D44\u4EA7\uFF08\u5982\u6CD5\u5E01\u3001\u975E\u6D41\u901A\u4EE3\u5E01\uFF09\u7684\u6301\u4ED3\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D26\u6237\u4E2D\u4E0D\u80FD\u76F4\u63A5\u4EA4\u6613\u4F46\u53EF\u80FD\u5177\u6709\u4EF7\u503C\u7684\u8D44\u4EA7\n## \u5173\u952E\u8BCD\uFF1A\u4E0D\u53EF\u4EA4\u6613\u8D44\u4EA7, non tradable, \u6CD5\u5E01\u8D44\u4EA7, \u975E\u6D41\u901A\u8D44\u4EA7\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u4E0D\u53EF\u4EA4\u6613\u8D44\u4EA7 \u2192 okx_get_balance \u770B\u53EF\u4EA4\u6613\u8D44\u4EA7 \u2192 \u5168\u9762\u638C\u63E1\u6301\u4ED3",
29897
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29932
29898
  {},
29933
29899
  async () => {
29934
29900
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29942,7 +29908,7 @@ function registerFundingTools(server, auth) {
29942
29908
  );
29943
29909
  server.tool(
29944
29910
  "okx_get_exchange_list",
29945
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u652F\u6301\u7684\u4EA4\u6613\u6240/\u5E73\u53F0\u5217\u8868\uFF08\u63D0\u73B0\u5916\u90E8\u5730\u5740\u6821\u9A8C\u7528\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63D0\u73B0\u65F6\u9009\u62E9\u76EE\u6807\u4EA4\u6613\u6240\u3001\u786E\u8BA4\u63D0\u73B0\u901A\u9053\u662F\u5426\u53EF\u7528\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u6613\u6240\u5217\u8868, exchange list, \u63D0\u73B0\u5E73\u53F0, \u5916\u90E8\u4EA4\u6613\u6240\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u652F\u6301\u4EA4\u6613\u6240 \u2192 okx_withdrawal \u63D0\u73B0\u65F6\u9009\u62E9\u76EE\u6807",
29911
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29946
29912
  {},
29947
29913
  async () => {
29948
29914
  try {
@@ -29955,7 +29921,7 @@ function registerFundingTools(server, auth) {
29955
29921
  );
29956
29922
  server.tool(
29957
29923
  "okx_get_deposit_withdraw_status",
29958
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5145\u503C\u63D0\u73B0\u7684\u72B6\u6001\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5145\u503C\u6216\u63D0\u73B0\u662F\u5426\u5230\u8D26\u3001\u94FE\u4E0A\u786E\u8BA4\u8FDB\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u5145\u63D0\u72B6\u6001, deposit withdraw, \u5145\u503C\u72B6\u6001, \u63D0\u73B0\u72B6\u6001, \u5230\u8D26\u67E5\u8BE2\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_deposit_address \u83B7\u53D6\u5730\u5740 \u2192 \u5145\u503C\u540E \u2192 \u672C\u5DE5\u5177\u67E5\u72B6\u6001",
29924
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29959
29925
  {},
29960
29926
  async () => {
29961
29927
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29969,7 +29935,7 @@ function registerFundingTools(server, auth) {
29969
29935
  );
29970
29936
  server.tool(
29971
29937
  "okx_get_asset_bills_history",
29972
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u8D26\u6237\u7684\u5386\u53F2\u8D26\u5355\u6D41\u6C34\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BA1\u8BA1\u8D44\u91D1\u8D26\u6237\u7684\u8D44\u91D1\u53D8\u52A8\u3001\u6838\u5BF9\u51FA\u5165\u91D1\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u91D1\u8D26\u5355, asset bills, \u8D44\u91D1\u6D41\u6C34, \u8D44\u91D1\u8D26\u6237\u8D26\u5355\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 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u8D44\u91D1\u6D41\u6C34 \u2192 okx_get_balance \u6838\u5BF9\u4F59\u989D \u2192 \u5BF9\u8D26",
29938
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29973
29939
  {
29974
29940
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
29975
29941
  },
@@ -29985,7 +29951,7 @@ function registerFundingTools(server, auth) {
29985
29951
  );
29986
29952
  server.tool(
29987
29953
  "okx_get_convert_currency_pair",
29988
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u5151\u652F\u6301\u7684\u5E01\u79CD\u5BF9\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u95EA\u5151\u4EA4\u6613\u7684\u5151\u6362\u6BD4\u4F8B\u548C\u652F\u6301\u7684\u5151\u6362\u5BF9\n## \u5173\u952E\u8BCD\uFF1A\u5151\u6362\u5E01\u79CD\u5BF9, convert pair, \u95EA\u5151\u5BF9, \u5151\u6362\u8BE6\u60C5\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5151\u6362\u5BF9 \u2192 okx_get_convert_estimate_quote \u83B7\u53D6\u9884\u4F30 \u2192 okx_convert_trade \u6267\u884C",
29954
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29989
29955
  {},
29990
29956
  async () => {
29991
29957
  if (!auth) return toError(AUTH_REQUIRED);
@@ -29999,7 +29965,7 @@ function registerFundingTools(server, auth) {
29999
29965
  );
30000
29966
  server.tool(
30001
29967
  "okx_get_convert_estimate_quote",
30002
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u5151\u9884\u4F30\u62A5\u4EF7\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5151\u6362\u524D\u67E5\u770B\u9884\u4F30\u5151\u6362\u7387\u548C\u6570\u91CF\u3001\u6BD4\u8F83\u5404\u65B9\u6848\u4F18\u52A3\n## \u53C2\u6570\uFF1A\n## - fromCcy: \u5356\u51FA\u5E01\u79CD\u3002\u5FC5\u586B\n## - toCcy: \u4E70\u5165\u5E01\u79CD\u3002\u5FC5\u586B\n## - sz: \u5151\u6362\u6570\u91CF\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 ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u9884\u4F30 \u2192 okx_get_convert_currency_pair \u770B\u8BE6\u60C5 \u2192 okx_convert_trade \u6267\u884C",
29968
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30003
29969
  {
30004
29970
  fromCcy: external_exports.string().describe("\u5356\u51FA\u5E01\u79CD\u3002\u5FC5\u586B"),
30005
29971
  toCcy: external_exports.string().describe("\u4E70\u5165\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -30017,7 +29983,7 @@ function registerFundingTools(server, auth) {
30017
29983
  );
30018
29984
  server.tool(
30019
29985
  "okx_get_monthly_statement",
30020
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u8D26\u6237\u6708\u5EA6\u8D26\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6708\u5EA6\u4EA4\u6613\u6C47\u603B\u3001\u6536\u5165\u652F\u51FA\u660E\u7EC6\n## \u5173\u952E\u8BCD\uFF1A\u6708\u5EA6\u8D26\u5355, monthly statement, \u6708\u7ED3, \u6708\u5EA6\u62A5\u544A\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6708\u5EA6\u6C47\u603B \u2192 \u8BC4\u4F30\u6708\u5EA6\u76C8\u4E8F \u2192 \u8C03\u6574\u7B56\u7565",
29986
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30021
29987
  {},
30022
29988
  async () => {
30023
29989
  if (!auth) return toError(AUTH_REQUIRED);
@@ -30031,7 +29997,7 @@ function registerFundingTools(server, auth) {
30031
29997
  );
30032
29998
  server.tool(
30033
29999
  "okx_get_asset_balances",
30034
- "CAT:[\u8D44\u91D1] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u8D26\u6237\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D44\u91D1\u8D26\u6237\u5404\u5E01\u79CD\u53EF\u7528\u548C\u51BB\u7ED3\u4F59\u989D\n## \u53C2\u6570\uFF1A\n## - ccy: \u6307\u5B9A\u5E01\u79CD\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
30000
+ "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30035
30001
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
30036
30002
  async ({ ccy }) => {
30037
30003
  if (!auth) return toError(AUTH_REQUIRED);
@@ -30049,7 +30015,7 @@ function registerFundingTools(server, auth) {
30049
30015
  function registerStatsTools(server) {
30050
30016
  server.tool(
30051
30017
  "okx_get_long_short_ratio",
30052
- "CAT:[\u7EDF\u8BA1] | ## \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",
30018
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30053
30019
  {
30054
30020
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
30055
30021
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30070,7 +30036,7 @@ function registerStatsTools(server) {
30070
30036
  );
30071
30037
  server.tool(
30072
30038
  "okx_get_taker_volume",
30073
- "CAT:[\u7EDF\u8BA1] | ## \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",
30039
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30074
30040
  {
30075
30041
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC"),
30076
30042
  instType: external_exports.enum(INST_TYPE_RUBIK).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -30092,7 +30058,7 @@ function registerStatsTools(server) {
30092
30058
  );
30093
30059
  server.tool(
30094
30060
  "okx_get_open_interest_volume",
30095
- "CAT:[\u7EDF\u8BA1] | ## \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",
30061
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30096
30062
  {
30097
30063
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC"),
30098
30064
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30113,7 +30079,7 @@ function registerStatsTools(server) {
30113
30079
  );
30114
30080
  server.tool(
30115
30081
  "okx_get_margin_lending_ratio",
30116
- "CAT:[\u7EDF\u8BA1] | ## \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",
30082
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30117
30083
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT") },
30118
30084
  async ({ ccy }) => {
30119
30085
  try {
@@ -30130,7 +30096,7 @@ function registerStatsTools(server) {
30130
30096
  );
30131
30097
  server.tool(
30132
30098
  "okx_get_stats_support_coin",
30133
- "CAT:[\u7EDF\u8BA1] | ## \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",
30099
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30134
30100
  {},
30135
30101
  async () => {
30136
30102
  try {
@@ -30143,7 +30109,7 @@ function registerStatsTools(server) {
30143
30109
  );
30144
30110
  server.tool(
30145
30111
  "okx_get_top_trader_long_short_ratio",
30146
- "CAT:[\u7EDF\u8BA1] | ## \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",
30112
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30147
30113
  {
30148
30114
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3001ETH-USDT-SWAP"),
30149
30115
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30164,7 +30130,7 @@ function registerStatsTools(server) {
30164
30130
  );
30165
30131
  server.tool(
30166
30132
  "okx_get_put_call_ratio",
30167
- "CAT:[\u7EDF\u8BA1] | ## \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",
30133
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30168
30134
  {
30169
30135
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
30170
30136
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30185,7 +30151,7 @@ function registerStatsTools(server) {
30185
30151
  );
30186
30152
  server.tool(
30187
30153
  "okx_get_lending_rate_summary",
30188
- "CAT:[\u7EDF\u8BA1] | ## \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",
30154
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30189
30155
  { ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
30190
30156
  async ({ ccy }) => {
30191
30157
  try {
@@ -30198,7 +30164,7 @@ function registerStatsTools(server) {
30198
30164
  );
30199
30165
  server.tool(
30200
30166
  "okx_get_top_traders_contract_ls_ratio",
30201
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u7CBE\u82F1\u4EA4\u6613\u5458\u591A\u7A7A\u6301\u4ED3\u6BD4\u4F8B\uFF08\u5168\u90E8\u5408\u7EA6\u6C47\u603B\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u7CBE\u82F1\u7FA4\u4F53\u6574\u4F53\u6301\u4ED3\u65B9\u5411\u3001\u5206\u6790\u5927\u6237\u60C5\u7EEA\u53D8\u5316\u8D8B\u52BF\u3001\u53D1\u73B0\u6781\u7AEF\u6301\u4ED3\u7684\u8F6C\u6298\u4FE1\u53F7\n## \u5173\u952E\u8BCD\uFF1A\u7CBE\u82F1\u591A\u7A7A\u6BD4, \u5168\u90E8\u5408\u7EA6, top traders LS ratio, \u5927\u6237\u60C5\u7EEA, \u6301\u4ED3\u6C47\u603B\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u53EF\u9009\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\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\u5355\u4E00\u5408\u7EA6\u5927\u6237 \u2192 \u672C\u5DE5\u5177\u770B\u5168\u90E8\u5408\u7EA6\u6C47\u603B \u2192 \u5224\u65AD\u6574\u4F53\u5927\u6237\u65B9\u5411",
30167
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30202
30168
  {
30203
30169
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
30204
30170
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30219,7 +30185,7 @@ function registerStatsTools(server) {
30219
30185
  );
30220
30186
  server.tool(
30221
30187
  "okx_get_contracts_taker_volume",
30222
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u4E3B\u52A8\u4E70\u5356\u91CF\u7EDF\u8BA1\uFF08\u5168\u90E8\u5408\u7EA6\u6C47\u603B\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u6574\u4F53\u5408\u7EA6\u5E02\u573A\u7684\u4E70\u5356\u529B\u91CF\u5BF9\u6BD4\u3001\u5206\u6790\u5168\u5E02\u573A\u8D44\u91D1\u6D41\u5411\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5408\u7EA6\u4E70\u5356\u91CF, contracts taker volume, \u4E3B\u52A8\u4E70\u5356, \u5168\u90E8\u5408\u7EA6, \u4E70\u5356\u529B\u91CF\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u53EF\u9009\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\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_volume \u770B\u5206\u7C7B\u578B\u4E70\u5356\u91CF \u2192 \u672C\u5DE5\u5177\u770B\u5168\u90E8\u5408\u7EA6\u6C47\u603B \u2192 \u5224\u65AD\u6574\u4F53\u5E02\u573A\u65B9\u5411",
30188
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30223
30189
  {
30224
30190
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
30225
30191
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30240,7 +30206,7 @@ function registerStatsTools(server) {
30240
30206
  );
30241
30207
  server.tool(
30242
30208
  "okx_get_contracts_long_short_ratio",
30243
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5168\u90E8\u5408\u7EA6\u591A\u7A7A\u6301\u4ED3\u6BD4\u4F8B\uFF08\u591A\u7A7A\u6BD4\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u6574\u4F53\u5408\u7EA6\u5E02\u573A\u60C5\u7EEA\uFF08>1\u591A\u5934\u504F\u591A\uFF0C<1\u7A7A\u5934\u504F\u591A\uFF09\u3001\u53D1\u73B0\u6781\u7AEF\u60C5\u7EEA\u7684\u8F6C\u6298\u4FE1\u53F7\n## \u5173\u952E\u8BCD\uFF1A\u5408\u7EA6\u591A\u7A7A\u6BD4, contracts LS ratio, \u5168\u90E8\u5408\u7EA6\u6301\u4ED3, \u5E02\u573A\u60C5\u7EEA, \u591A\u7A7A\u8D26\u6237\u6BD4\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u53EF\u9009\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\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\u5206\u5408\u7EA6\u591A\u7A7A\u6BD4 \u2192 \u672C\u5DE5\u5177\u770B\u5168\u90E8\u5408\u7EA6\u6C47\u603B \u2192 \u5BF9\u6BD4\u5224\u65AD\u60C5\u7EEA\u65B9\u5411",
30209
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30244
30210
  {
30245
30211
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
30246
30212
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30261,7 +30227,7 @@ function registerStatsTools(server) {
30261
30227
  );
30262
30228
  server.tool(
30263
30229
  "okx_get_long_short_ratio_all",
30264
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5168\u90E8\u5408\u7EA6\u7684\u591A\u7A7A\u6301\u4ED3\u6BD4\u4F8B\u6C47\u603B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u6574\u4F53\u5408\u7EA6\u5E02\u573A\u7684\u591A\u7A7A\u60C5\u7EEA\u3001\u53D1\u73B0\u6781\u7AEF\u6BD4\u4F8B\u65F6\u7684\u53CD\u8F6C\u4FE1\u53F7\n## \u5173\u952E\u8BCD\uFF1A\u5168\u90E8\u5408\u7EA6\u591A\u7A7A\u6BD4, long short ratio all, \u5168\u5E02\u573A\u591A\u7A7A, \u591A\u7A7A\u60C5\u7EEA\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u53EF\u9009\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\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\uFF1A\u672C\u5DE5\u5177\u770B\u5168\u5E02\u573A\u591A\u7A7A\u6BD4 \u2192 okx_get_long_short_ratio \u770B\u5206\u5408\u7EA6 \u2192 \u5BF9\u6BD4\u5206\u6790",
30230
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30265
30231
  {
30266
30232
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
30267
30233
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30282,7 +30248,7 @@ function registerStatsTools(server) {
30282
30248
  );
30283
30249
  server.tool(
30284
30250
  "okx_get_taker_flow_contract",
30285
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u4E3B\u52A8\u4E70\u5356\u6D41\u5411\uFF08Taker\u6D41\u91CF\uFF09\uFF0C\u7EDF\u8BA1\u4E70\u5165\u548C\u5356\u51FATaker\u6210\u4EA4\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u5408\u7EA6\u5E02\u573A\u7684\u4E3B\u52A8\u4E70\u5356\u529B\u91CF\u5BF9\u6BD4\u3001\u8FFD\u8E2A\u806A\u660E\u94B1\u6D41\u5411\n## \u5173\u952E\u8BCD\uFF1A\u4E3B\u52A8\u6D41\u5411, taker flow contract, \u5408\u7EA6\u4E3B\u52A8\u4E70\u5356, Taker\u6D41\u91CF\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\uFF08\u6BEB\u79D2\uFF09\u3002\u53EF\u9009\n## - end: \u7ED3\u675F\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09\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 \u770B\u6210\u4EA4\u91CF \u2192 \u672C\u5DE5\u5177\u770B\u4E70\u5356\u65B9\u5411 \u2192 \u5224\u65AD\u591A\u7A7A\u529B\u5EA6",
30251
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30286
30252
  {
30287
30253
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
30288
30254
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272"),
@@ -30304,7 +30270,7 @@ function registerStatsTools(server) {
30304
30270
  );
30305
30271
  server.tool(
30306
30272
  "okx_get_open_interest_history_rubik",
30307
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u6301\u4ED3\u91CF\u5386\u53F2\u8D70\u52BF\uFF08\u4EA4\u6613\u5927\u6570\u636E\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u6301\u4ED3\u91CF\u8D8B\u52BF\u3001\u5224\u65AD\u8D44\u91D1\u6D41\u5165\u6D41\u51FA\u3001\u91CF\u4EF7\u914D\u5408\u5206\u6790\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u91CF\u5386\u53F2, OI\u5386\u53F2, open interest history, rubik, \u6301\u4ED3\u8D70\u52BF\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - period: \u65F6\u95F4\u7C92\u5EA6\u30025m/15m/30m/1H/2H/4H/6H/12H/1D/1W\u3002\u9ED8\u8BA45m\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u592714400\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\u5408\u7EA6\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u67E5\u6301\u4ED3\u8D8B\u52BF \u2192 \u7ED3\u5408 okx_get_ticker \u5224\u65AD\u91CF\u4EF7\u5173\u7CFB",
30273
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30308
30274
  {
30309
30275
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
30310
30276
  period: external_exports.enum(["5m", "15m", "30m", "1H", "2H", "4H", "6H", "12H", "1D", "1W"]).optional().describe("\u65F6\u95F4\u7C92\u5EA6\uFF0C\u9ED8\u8BA45m"),
@@ -30328,7 +30294,7 @@ function registerStatsTools(server) {
30328
30294
  );
30329
30295
  server.tool(
30330
30296
  "okx_get_savings_lending_rate",
30331
- "CAT:[\u7EDF\u8BA1] | ## \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\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 \u5224\u65AD\u6760\u6746\u6210\u672C \u2192 okx_get_margin_lending_ratio \u770B\u501F\u5E01\u91CF\u8D8B\u52BF",
30297
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30332
30298
  { ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
30333
30299
  async ({ ccy }) => {
30334
30300
  try {
@@ -30341,7 +30307,7 @@ function registerStatsTools(server) {
30341
30307
  );
30342
30308
  server.tool(
30343
30309
  "okx_get_margin_lending_ratio_history",
30344
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6760\u6746\u501F\u5E01\u5229\u7387\u5386\u53F2\u8D70\u52BF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u501F\u5E01\u5229\u7387\u53D8\u5316\u8D8B\u52BF\u3001\u5224\u65AD\u6760\u6746\u8D44\u91D1\u6210\u672C\u53D8\u5316\n## \u5173\u952E\u8BCD\uFF1A\u501F\u5E01\u5229\u7387\u5386\u53F2, margin lending history, \u5229\u7387\u8D70\u52BF, \u6760\u6746\u6210\u672C\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5229\u7387\u5386\u53F2 \u2192 okx_get_margin_lending_ratio \u770B\u5F53\u524D \u2192 \u5224\u65AD\u6760\u6746\u53D8\u5316",
30310
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30345
30311
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT") },
30346
30312
  async ({ ccy }) => {
30347
30313
  try {
@@ -30358,7 +30324,7 @@ function registerStatsTools(server) {
30358
30324
  );
30359
30325
  server.tool(
30360
30326
  "okx_get_option_open_interest",
30361
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u672A\u5E73\u4ED3\u91CF\u548C\u6210\u4EA4\u91CF\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u671F\u6743\u5E02\u573A\u6D3B\u8DC3\u5EA6\u3001\u5224\u65AD\u8D44\u91D1\u6D41\u5165\u6D41\u51FA\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6301\u4ED3, option oi, \u671F\u6743\u672A\u5E73\u4ED3, \u671F\u6743\u6210\u4EA4\u91CF, \u671F\u6743\u6301\u4ED3\u91CF\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u770B\u671F\u6743\u6301\u4ED3 \u2192 okx_get_put_call_ratio \u5206\u6790\u60C5\u7EEA \u2192 okx_get_opt_summary \u770B\u6CE2\u52A8\u7387",
30327
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30362
30328
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B") },
30363
30329
  async ({ ccy }) => {
30364
30330
  try {
@@ -30371,7 +30337,7 @@ function registerStatsTools(server) {
30371
30337
  );
30372
30338
  server.tool(
30373
30339
  "okx_get_option_oi_expiry",
30374
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u6309\u5230\u671F\u65E5\u83B7\u53D6\u671F\u6743\u672A\u5E73\u4ED3\u91CF\u548C\u6210\u4EA4\u91CF\u5206\u5E03\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u4E0D\u540C\u5230\u671F\u65E5\u7684\u671F\u6743\u6301\u4ED3\u5206\u5E03\u3001\u5224\u65AD\u5E02\u573A\u7126\u70B9\u5230\u671F\u65E5\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u5230\u671F\u6301\u4ED3, option oi expiry, \u5230\u671F\u65E5\u5206\u5E03, \u5404\u671F\u9650\u6301\u4ED3\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u6309\u5230\u671F\u65E5\u770B\u6301\u4ED3 \u2192 okx_get_option_open_interest \u770B\u603B\u91CF \u2192 \u5206\u6790\u5230\u671F\u65E5\u96C6\u4E2D\u5EA6",
30340
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30375
30341
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B") },
30376
30342
  async ({ ccy }) => {
30377
30343
  try {
@@ -30393,7 +30359,7 @@ function registerStatsTools(server) {
30393
30359
  );
30394
30360
  server.tool(
30395
30361
  "okx_get_option_oi_strike",
30396
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u6309\u884C\u6743\u4EF7\u83B7\u53D6\u671F\u6743\u672A\u5E73\u4ED3\u91CF\u548C\u6210\u4EA4\u91CF\u5206\u5E03\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u4E0D\u540C\u884C\u6743\u4EF7\u7684\u671F\u6743\u6301\u4ED3\u96C6\u4E2D\u5EA6\u3001\u53D1\u73B0\u6700\u5927\u75DB\u70B9\u3001\u5224\u65AD\u5E02\u573A\u9884\u671F\u4EF7\u683C\u533A\u95F4\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u884C\u6743\u6301\u4ED3, option oi strike, \u884C\u6743\u4EF7\u5206\u5E03, \u6700\u5927\u75DB\u70B9, max pain\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B\n## - expTime: \u5230\u671F\u65E5\uFF0C\u683C\u5F0F YYYYMMDD\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u770B\u884C\u6743\u4EF7\u5206\u5E03 \u2192 \u8BA1\u7B97\u6700\u5927\u75DB\u70B9 \u2192 \u9884\u5224\u5230\u671F\u65E5\u4EF7\u683C\u8D70\u52BF",
30362
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30397
30363
  {
30398
30364
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B"),
30399
30365
  expTime: external_exports.string().describe("\u5230\u671F\u65E5\uFF0C\u683C\u5F0F YYYYMMDD\u3002\u5FC5\u586B")
@@ -30418,7 +30384,7 @@ function registerStatsTools(server) {
30418
30384
  );
30419
30385
  server.tool(
30420
30386
  "okx_get_long_short_account_ratio",
30421
- "CAT:[\u7EDF\u8BA1] | ## \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\uFF0C\u6BD4\u503C>1\u8868\u793A\u591A\u5934\u5360\u591A\u6570\n## \u5173\u952E\u8BCD\uFF1A\u591A\u7A7A\u8D26\u6237\u6BD4, long short account, \u5E02\u573A\u60C5\u7EEA\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\uFF1A\u672C\u5DE5\u5177\u770B\u8D26\u6237\u591A\u7A7A\u6BD4 \u2192 okx_get_contract_trader_ls_ratio \u770B\u5927\u6237 \u2192 \u5BF9\u6BD4",
30387
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30422
30388
  {
30423
30389
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
30424
30390
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30439,7 +30405,7 @@ function registerStatsTools(server) {
30439
30405
  );
30440
30406
  server.tool(
30441
30407
  "okx_get_contract_trader_ls_ratio",
30442
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u7CBE\u82F1\u4EA4\u6613\u5458\u5408\u7EA6\u591A\u7A7A\u6BD4\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5224\u65AD\u5927\u6237\u5BF9\u5408\u7EA6\u5E02\u573A\u7684\u770B\u6CD5\n## \u5173\u952E\u8BCD\uFF1A\u7CBE\u82F1\u591A\u7A7A\u6BD4, top trader ls, \u5927\u6237\u5408\u7EA6\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-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\uFF1A\u672C\u5DE5\u5177\u770B\u5927\u6237\u591A\u7A7A \u2192 okx_get_long_short_account_ratio \u770B\u6563\u6237 \u2192 \u5BF9\u6BD4",
30408
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30443
30409
  {
30444
30410
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
30445
30411
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30460,7 +30426,7 @@ function registerStatsTools(server) {
30460
30426
  );
30461
30427
  server.tool(
30462
30428
  "okx_get_contract_position_trader_ratio",
30463
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u7CBE\u82F1\u4EA4\u6613\u5458\u6301\u4ED3\u591A\u7A7A\u6BD4\u4F8B\uFF08\u6309\u4ED3\u4F4D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5927\u6237\u5B9E\u9645\u6301\u4ED3\u65B9\u5411\u3001\u6BD4\u8D26\u6237\u6BD4\u4F8B\u66F4\u7CBE\u786E\n## \u5173\u952E\u8BCD\uFF1A\u7CBE\u82F1\u6301\u4ED3\u6BD4, top trader position, \u5927\u6237\u4ED3\u4F4D\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u770B\u5927\u6237\u4ED3\u4F4D\u591A\u7A7A \u2192 \u7ED3\u5408\u4EF7\u683C\u5224\u65AD\u8D8B\u52BF",
30429
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30464
30430
  {
30465
30431
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B")
30466
30432
  },
@@ -30479,7 +30445,7 @@ function registerStatsTools(server) {
30479
30445
  );
30480
30446
  server.tool(
30481
30447
  "okx_get_option_oi_ratio",
30482
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u672A\u5E73\u4ED3\u91CFCall/Put\u6BD4\u548C\u6210\u4EA4\u91CF\u6BD4\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8861\u91CF\u671F\u6743\u5E02\u573A\u6574\u4F53\u60C5\u7EEA\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6301\u4ED3\u6BD4, option oi ratio, PCR, \u671F\u6743\u60C5\u7EEA\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\uFF1A\u672C\u5DE5\u5177\u770B\u671F\u6743\u6BD4 \u2192 okx_get_option_open_interest \u770B\u6301\u4ED3\u603B\u91CF",
30448
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30483
30449
  {
30484
30450
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
30485
30451
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -30500,7 +30466,7 @@ function registerStatsTools(server) {
30500
30466
  );
30501
30467
  server.tool(
30502
30468
  "okx_get_option_taker_block_volume",
30503
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u4E3B\u52A8\u6210\u4EA4\u548C\u533A\u5757\u6210\u4EA4\u7684\u7EDF\u8BA1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u671F\u6743\u5E02\u573A\u7684Taker\u6210\u4EA4\u91CF\u548C\u533A\u5757\u6210\u4EA4\u91CF\n## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6210\u4EA4\u91CF, option taker block, \u671F\u6743\u4E3B\u52A8\u4E70\u5356, \u671F\u6743\u5927\u5355\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u770B\u671F\u6743\u6210\u4EA4\u91CF \u2192 okx_get_option_open_interest \u770B\u6301\u4ED3 \u2192 \u5206\u6790\u6D3B\u8DC3\u5EA6",
30469
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30504
30470
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B") },
30505
30471
  async ({ ccy }) => {
30506
30472
  try {
@@ -30513,7 +30479,7 @@ function registerStatsTools(server) {
30513
30479
  );
30514
30480
  server.tool(
30515
30481
  "okx_get_taker_volume_contract",
30516
- "CAT:[\u7EDF\u8BA1] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u4E3B\u52A8\u4E70\u5356\u91CF\u7EDF\u8BA1\uFF08\u6309\u5408\u7EA6\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5177\u4F53\u5408\u7EA6\u7684\u4E3B\u52A8\u4E70\u5356\u529B\u91CF\n## \u5173\u952E\u8BCD\uFF1A\u5408\u7EA6\u4E70\u5356\u91CF, taker volume contract, \u4E3B\u52A8\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B\n## - instId: \u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\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\uFF1A\u672C\u5DE5\u5177\u67E5\u5355\u5408\u7EA6\u4E70\u5356\u91CF \u2192 okx_get_contracts_taker_volume \u67E5\u6C47\u603B",
30482
+ "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30517
30483
  {
30518
30484
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
30519
30485
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B")
@@ -30537,7 +30503,7 @@ function registerStatsTools(server) {
30537
30503
  function registerSubAccountTools(server, auth) {
30538
30504
  server.tool(
30539
30505
  "okx_get_subaccount_list",
30540
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \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\u5217\u8868, subaccount list, \u5B50\u8D26\u53F7\u5217\u8868, \u5B50\u8D26\u6237\u72B6\u6001\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",
30506
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30541
30507
  {
30542
30508
  enable: external_exports.boolean().optional().describe("\u7B5B\u9009\u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
30543
30509
  },
@@ -30553,7 +30519,7 @@ function registerSubAccountTools(server, auth) {
30553
30519
  );
30554
30520
  server.tool(
30555
30521
  "okx_list_subaccounts",
30556
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \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",
30522
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30557
30523
  {
30558
30524
  enable: external_exports.boolean().optional().describe("\u7B5B\u9009\u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
30559
30525
  },
@@ -30569,7 +30535,7 @@ function registerSubAccountTools(server, auth) {
30569
30535
  );
30570
30536
  server.tool(
30571
30537
  "okx_get_subaccount_balance",
30572
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \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",
30538
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30573
30539
  {
30574
30540
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0")
30575
30541
  },
@@ -30585,7 +30551,7 @@ function registerSubAccountTools(server, auth) {
30585
30551
  );
30586
30552
  server.tool(
30587
30553
  "okx_transfer_subaccount",
30588
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \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",
30554
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30589
30555
  {
30590
30556
  ccy: external_exports.string().describe("\u5212\u8F6C\u5E01\u79CD"),
30591
30557
  amt: external_exports.string().describe("\u5212\u8F6C\u6570\u91CF"),
@@ -30609,7 +30575,7 @@ function registerSubAccountTools(server, auth) {
30609
30575
  );
30610
30576
  server.tool(
30611
30577
  "okx_subaccount_set_transfer_out",
30612
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u5B50\u8D26\u6237\u7684\u8D44\u91D1\u8F6C\u51FA\u6743\u9650\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63A7\u5236\u5B50\u8D26\u6237\u662F\u5426\u53EF\u4EE5\u5411\u5916\u90E8\u8F6C\u51FA\u8D44\u91D1\u3001\u7BA1\u7406\u591A\u7B56\u7565\u8D26\u6237\u7684\u8D44\u91D1\u6743\u9650\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u8F6C\u51FA, \u8F6C\u51FA\u6743\u9650, set transfer out, \u5B50\u8D26\u6237\u6743\u9650, \u98CE\u63A7, \u8D44\u91D1\u7BA1\u7406\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - canTransferOut: \u662F\u5426\u5141\u8BB8\u8F6C\u51FA\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u5B50\u8D26\u6237\u6743\u9650\uFF0C\u5F71\u54CD\u8D44\u91D1\u5B89\u5168\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1Aokx_list_subaccounts \u83B7\u53D6\u5B50\u8D26\u6237\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u7BA1\u7406\u6743\u9650 \u2192 okx_transfer_subaccount \u5212\u8F6C",
30578
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30613
30579
  {
30614
30580
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
30615
30581
  canTransferOut: external_exports.boolean().describe("\u662F\u5426\u5141\u8BB8\u8F6C\u51FA\u3002true=\u5141\u8BB8, false=\u7981\u6B62")
@@ -30626,7 +30592,7 @@ function registerSubAccountTools(server, auth) {
30626
30592
  );
30627
30593
  server.tool(
30628
30594
  "okx_get_subaccount_api_key",
30629
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5B50\u8D26\u6237\u7684API Key\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7BA1\u7406\u5B50\u8D26\u6237\u7684API\u6743\u9650\u3001\u67E5\u770B\u5404\u5B50\u8D26\u6237\u5DF2\u521B\u5EFA\u7684API Key\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237API, subaccount apikey, \u5B50\u8D26\u6237\u79D8\u94A5, API\u7BA1\u7406\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\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 \u2192 \u672C\u5DE5\u5177\u67E5API Key \u2192 okx_create_subaccount_api_key \u521B\u5EFA",
30595
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30630
30596
  {
30631
30597
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
30632
30598
  },
@@ -30642,7 +30608,7 @@ function registerSubAccountTools(server, auth) {
30642
30608
  );
30643
30609
  server.tool(
30644
30610
  "okx_create_subaccount_api_key",
30645
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u4E3A\u5B50\u8D26\u6237\u521B\u5EFA\u65B0\u7684API Key\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E3A\u5B50\u8D26\u6237\u5F00\u901AAPI\u6743\u9650\u3001\u5206\u914D\u4EA4\u6613\u989D\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFAAPI, create apikey, \u5B50\u8D26\u6237\u521B\u5EFA\u79D8\u94A5, API\u521B\u5EFA\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - label: API Key\u5907\u6CE8\u540D\u79F0\u3002\u5FC5\u586B\n## - passphrase: API Key\u4EA4\u6613\u5BC6\u7801\u3002\u5FC5\u586B\n## - perm: \u6743\u9650\u5B57\u7B26\u4E32\uFF0C\u5982 read_only\u3001trade\u3002\u5FC5\u586B\n## - ip: IP\u767D\u540D\u5355\uFF0C\u591A\u4E2A\u7528\u9017\u53F7\u5206\u9694\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u521B\u5EFAAPI Key\u5F71\u54CD\u5B50\u8D26\u6237\u8BBF\u95EE\u6743\u9650\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_subaccount_api_key \u67E5\u770B\u73B0\u6709 \u2192 \u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_reset_subaccount_api_key \u91CD\u7F6E",
30611
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30646
30612
  {
30647
30613
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
30648
30614
  label: external_exports.string().describe("API Key\u5907\u6CE8\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30664,7 +30630,7 @@ function registerSubAccountTools(server, auth) {
30664
30630
  );
30665
30631
  server.tool(
30666
30632
  "okx_reset_subaccount_api_key",
30667
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u5B50\u8D26\u6237\u7684API Key\uFF08\u91CD\u7F6E\u6743\u9650\u3001IP\u767D\u540D\u5355\u6216\u5907\u6CE8\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u66F4\u65B0\u5B50\u8D26\u6237API Key\u7684\u6743\u9650\u8303\u56F4\u3001\u4FEE\u6539IP\u767D\u540D\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4FEE\u6539API, reset apikey, \u91CD\u7F6E\u79D8\u94A5, \u66F4\u65B0API\u6743\u9650\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - apiKey: \u9700\u8981\u4FEE\u6539\u7684API Key\u3002\u5FC5\u586B\n## - label: API Key\u65B0\u5907\u6CE8\u3002\u53EF\u9009\n## - perm: \u65B0\u6743\u9650\u5B57\u7B26\u4E32\u3002\u53EF\u9009\n## - ip: \u65B0IP\u767D\u540D\u5355\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539API Key\u5F71\u54CD\u5B50\u8D26\u6237\u8BBF\u95EE\u6743\u9650\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_create_subaccount_api_key \u521B\u5EFA \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 okx_delete_subaccount_api_key \u5220\u9664",
30633
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30668
30634
  {
30669
30635
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
30670
30636
  apiKey: external_exports.string().describe("\u9700\u8981\u4FEE\u6539\u7684API Key\u3002\u5FC5\u586B"),
@@ -30688,7 +30654,7 @@ function registerSubAccountTools(server, auth) {
30688
30654
  );
30689
30655
  server.tool(
30690
30656
  "okx_delete_subaccount_api_key",
30691
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u5220\u9664\u5B50\u8D26\u6237\u7684API Key\n## \u573A\u666F\uFF1A\u7528\u4E8E\u64A4\u9500\u5B50\u8D26\u6237\u7684API\u8BBF\u95EE\u6743\u9650\u3001\u5B50\u8D26\u6237\u4E0D\u518D\u9700\u8981\u4EA4\u6613\u65F6\u6E05\u7406API Key\n## \u5173\u952E\u8BCD\uFF1A\u5220\u9664API, delete apikey, \u79FB\u9664\u79D8\u94A5, \u64A4\u9500API\u6743\u9650\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - apiKey: \u9700\u8981\u5220\u9664\u7684API Key\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u5220\u9664API Key\u540E\u5B50\u8D26\u6237\u5C06\u65E0\u6CD5\u901A\u8FC7API\u8BBF\u95EE\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_subaccount_api_key \u67E5\u770B\u73B0\u6709 \u2192 \u672C\u5DE5\u5177\u5220\u9664 \u2192 okx_list_subaccounts \u9A8C\u8BC1",
30657
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30692
30658
  {
30693
30659
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
30694
30660
  apiKey: external_exports.string().describe("\u9700\u8981\u5220\u9664\u7684API Key\u3002\u5FC5\u586B")
@@ -30705,7 +30671,7 @@ function registerSubAccountTools(server, auth) {
30705
30671
  );
30706
30672
  server.tool(
30707
30673
  "okx_get_subaccount_bills",
30708
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5B50\u8D26\u6237\u7684\u8D44\u91D1\u6D41\u6C34\uFF08\u8D26\u5355\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BA1\u8BA1\u5B50\u8D26\u6237\u7684\u8D44\u91D1\u53D8\u52A8\u3001\u8FFD\u8E2A\u5B50\u8D26\u6237\u7684\u5212\u8F6C\u548C\u4EA4\u6613\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u8D26\u5355, subaccount bills, \u5B50\u8D26\u6237\u6D41\u6C34, \u8D44\u91D1\u53D8\u52A8, \u5B50\u8D26\u6237\u5BF9\u8D26\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - after: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09\u3002\u53EF\u9009\n## - before: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09\u3002\u53EF\u9009\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\u3002\u53EF\u9009\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1Aokx_get_subaccount_balance \u67E5\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u67E5\u6D41\u6C34 \u2192 okx_transfer_subaccount \u5212\u8F6C",
30674
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30709
30675
  {
30710
30676
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
30711
30677
  after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09"),
@@ -30724,7 +30690,7 @@ function registerSubAccountTools(server, auth) {
30724
30690
  );
30725
30691
  server.tool(
30726
30692
  "okx_get_subaccount_assets",
30727
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5B50\u8D26\u6237\u7684\u8D44\u91D1\u8D26\u6237\u4F59\u989D\uFF08\u975E\u4EA4\u6613\u8D26\u6237\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5B50\u8D26\u6237\u7684\u5145\u503C\u8D44\u91D1\u3001\u786E\u8BA4\u5B50\u8D26\u6237\u8D44\u91D1\u8D26\u6237\u8D44\u4EA7\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u8D44\u4EA7, subaccount assets, \u5B50\u8D26\u6237\u8D44\u91D1, \u5B50\u8D26\u6237\u4F59\u989D, \u5B50\u8D26\u53F7\u8D44\u91D1\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\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 ~2KB\n## \u5173\u8054\uFF1Aokx_get_subaccount_balance \u770B\u4EA4\u6613\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u770B\u8D44\u91D1\u4F59\u989D \u2192 \u7EFC\u5408\u8BC4\u4F30\u5B50\u8D26\u6237\u8D44\u4EA7",
30693
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30728
30694
  {
30729
30695
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
30730
30696
  },
@@ -30740,7 +30706,7 @@ function registerSubAccountTools(server, auth) {
30740
30706
  );
30741
30707
  server.tool(
30742
30708
  "okx_create_subaccount",
30743
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u521B\u5EFA\u65B0\u7684\u5B50\u8D26\u6237\n## \u573A\u666F\uFF1A\u7528\u4E8E\u521B\u5EFA\u5B50\u8D26\u6237\u7BA1\u7406\u591A\u4E2A\u4EA4\u6613\u7B56\u7565\u3001\u9694\u79BB\u8D44\u91D1\u548C\u98CE\u9669\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u5B50\u8D26\u6237, create subaccount, \u65B0\u589E\u5B50\u8D26\u53F7\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - label: \u5B50\u8D26\u6237\u5907\u6CE8\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u5C06\u521B\u5EFA\u65B0\u5B50\u8D26\u6237\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u521B\u5EFA\u5B50\u8D26\u6237\u5F71\u54CD\u8D26\u6237\u7ED3\u6784\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_list_subaccounts \u67E5\u770B \u2192 okx_create_subaccount_api_key \u8BBE\u7F6EAPI",
30709
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30744
30710
  {
30745
30711
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
30746
30712
  label: external_exports.string().optional().describe("\u5B50\u8D26\u6237\u5907\u6CE8")
@@ -30759,7 +30725,7 @@ function registerSubAccountTools(server, auth) {
30759
30725
  );
30760
30726
  server.tool(
30761
30727
  "okx_get_entrust_subaccount_list",
30762
- "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u59D4\u6258\u5B50\u8D26\u6237\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6258\u7BA1\u5B50\u8D26\u6237\u3001\u7BA1\u7406\u59D4\u6258\u4EA4\u6613\u6743\u9650\n## \u5173\u952E\u8BCD\uFF1A\u59D4\u6258\u5B50\u8D26\u6237, entrust subaccount, \u6258\u7BA1\u8D26\u6237, \u59D4\u6258\u7BA1\u7406\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u59D4\u6258\u5B50\u8D26\u6237 \u2192 \u7BA1\u7406\u5B50\u8D26\u6237\u6743\u9650",
30728
+ "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30763
30729
  {},
30764
30730
  async () => {
30765
30731
  if (!auth) return toError(AUTH_REQUIRED);
@@ -30777,7 +30743,7 @@ function registerSubAccountTools(server, auth) {
30777
30743
  function registerFinanceTools(server, auth) {
30778
30744
  server.tool(
30779
30745
  "okx_get_savings_balance",
30780
- "CAT:[\u91D1\u878D] | ## \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",
30746
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30781
30747
  {
30782
30748
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
30783
30749
  },
@@ -30793,7 +30759,7 @@ function registerFinanceTools(server, auth) {
30793
30759
  );
30794
30760
  server.tool(
30795
30761
  "okx_get_savings_history",
30796
- "CAT:[\u91D1\u878D] | ## \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",
30762
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30797
30763
  {
30798
30764
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT")
30799
30765
  },
@@ -30809,7 +30775,7 @@ function registerFinanceTools(server, auth) {
30809
30775
  );
30810
30776
  server.tool(
30811
30777
  "okx_get_staking_offers",
30812
- "CAT:[\u91D1\u878D] | ## \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",
30778
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30813
30779
  {
30814
30780
  productId: external_exports.string().optional().describe("\u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
30815
30781
  },
@@ -30825,7 +30791,7 @@ function registerFinanceTools(server, auth) {
30825
30791
  );
30826
30792
  server.tool(
30827
30793
  "okx_get_eth_staking_balance",
30828
- "CAT:[\u91D1\u878D] | ## \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",
30794
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30829
30795
  {},
30830
30796
  async () => {
30831
30797
  if (!auth) return toError(AUTH_REQUIRED);
@@ -30839,7 +30805,7 @@ function registerFinanceTools(server, auth) {
30839
30805
  );
30840
30806
  server.tool(
30841
30807
  "okx_get_eth_staking_history",
30842
- "CAT:[\u91D1\u878D] | ## \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",
30808
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30843
30809
  {
30844
30810
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
30845
30811
  },
@@ -30855,7 +30821,7 @@ function registerFinanceTools(server, auth) {
30855
30821
  );
30856
30822
  server.tool(
30857
30823
  "okx_get_sol_staking_balance",
30858
- "CAT:[\u91D1\u878D] | ## \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",
30824
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30859
30825
  {},
30860
30826
  async () => {
30861
30827
  if (!auth) return toError(AUTH_REQUIRED);
@@ -30869,7 +30835,7 @@ function registerFinanceTools(server, auth) {
30869
30835
  );
30870
30836
  server.tool(
30871
30837
  "okx_get_staking_orders",
30872
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u94FE\u4E0A\u8D28\u62BC\u7684\u8BA2\u5355/\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770BETH/SOL\u8D28\u62BC\u7684\u7533\u8D2D\u548C\u8D4E\u56DE\u8BB0\u5F55\u3001\u8FFD\u8E2A\u8D28\u62BC\u64CD\u4F5C\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u8D28\u62BC\u8BA2\u5355, staking orders, \u8D28\u62BC\u8BB0\u5F55, \u8D28\u62BC\u5386\u53F2, \u7533\u8D2D\u8D4E\u56DE\n## \u53C2\u6570\uFF1A\n## - productId: \u4EA7\u54C1ID\uFF0C\u5982 ETH\u3002\u53EF\u9009\n## - state: \u8BA2\u5355\u72B6\u6001\u30021=\u7B49\u5F85\u7533\u8D2D, 2=\u7533\u8D2D\u4E2D, 3=\u7533\u8D2D\u6210\u529F, 4=\u8D4E\u56DE\u4E2D, 5=\u8D4E\u56DE\u6210\u529F, 6=\u5DF2\u53D6\u6D88\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 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u8BB0\u5F55 \u2192 okx_stake_eth/okx_unstake_eth \u64CD\u4F5C \u2192 okx_get_eth_staking_balance \u786E\u8BA4",
30838
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30873
30839
  {
30874
30840
  productId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 ETH\u3002\u53EF\u9009"),
30875
30841
  state: external_exports.string().optional().describe("\u8BA2\u5355\u72B6\u6001\u30021=\u7B49\u5F85\u7533\u8D2D, 2=\u7533\u8D2D\u4E2D, 3=\u7533\u8D2D\u6210\u529F, 4=\u8D4E\u56DE\u4E2D, 5=\u8D4E\u56DE\u6210\u529F, 6=\u5DF2\u53D6\u6D88"),
@@ -30887,7 +30853,7 @@ function registerFinanceTools(server, auth) {
30887
30853
  );
30888
30854
  server.tool(
30889
30855
  "okx_stake_eth",
30890
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u7533\u8D2DETH\u94FE\u4E0A\u8D28\u62BC\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06ETH\u5B58\u5165\u8D28\u62BC\u4EE5\u8D5A\u53D6\u5E74\u5316\u6536\u76CA\u3001\u957F\u671F\u6301\u6709ETH\u7684\u88AB\u52A8\u6536\u76CA\n## \u5173\u952E\u8BCD\uFF1AETH\u8D28\u62BC, stake eth, \u7533\u8D2D\u8D28\u62BC, ETH\u5B58\u5165, \u8D28\u62BC\u7533\u8D2D\n## \u53C2\u6570\uFF1A\n## - amt: \u8D28\u62BC\u6570\u91CF\uFF08ETH\uFF09\u3002\u5FC5\u586B\n## - rate: \u6536\u76CA\u7387\u7C7B\u578B\u30020.5=\u6D3B\u671F, 0.01=\u5B9A\u671F\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\u7533\u8D2D\u6570\u91CF\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8D28\u62BCETH\u5C06\u9501\u4ED3\uFF0C\u63D0\u73B0\u5230\u8D26\u6709\u5EF6\u8FDF\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_eth_staking_balance \u770B\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u7533\u8D2D \u2192 okx_get_staking_orders \u786E\u8BA4",
30856
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30891
30857
  {
30892
30858
  amt: external_exports.string().describe("\u8D28\u62BC\u6570\u91CF\uFF08ETH\uFF09\u3002\u5FC5\u586B"),
30893
30859
  rate: external_exports.string().optional().describe("\u6536\u76CA\u7387\u7C7B\u578B\u30020.5=\u6D3B\u671F, 0.01=\u5B9A\u671F\u3002\u4E0D\u586B\u9ED8\u8BA4\u6D3B\u671F")
@@ -30906,7 +30872,7 @@ function registerFinanceTools(server, auth) {
30906
30872
  );
30907
30873
  server.tool(
30908
30874
  "okx_unstake_eth",
30909
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u8D4E\u56DEETH\u94FE\u4E0A\u8D28\u62BC\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u8D28\u62BC\u7684ETH\u8D4E\u56DE\u3001\u63D0\u53D6\u8D28\u62BC\u6536\u76CA\u3001\u5E94\u5BF9\u63D0\u73B0\u9700\u6C42\n## \u5173\u952E\u8BCD\uFF1A\u8D4E\u56DEETH, unstake eth, \u89E3\u9664\u8D28\u62BC, ETH\u8D4E\u56DE, \u63D0\u53D6\u8D28\u62BC\n## \u53C2\u6570\uFF1A\n## - amt: \u8D4E\u56DE\u6570\u91CF\uFF08ETH\uFF09\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\u8D4E\u56DE\u6570\u91CF\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8D4E\u56DEETH\u9700\u8981\u7B49\u5F85\u94FE\u4E0A\u786E\u8BA4\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_eth_staking_balance \u770B\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u8D4E\u56DE \u2192 okx_get_eth_staking_history \u786E\u8BA4",
30875
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30910
30876
  {
30911
30877
  amt: external_exports.string().describe("\u8D4E\u56DE\u6570\u91CF\uFF08ETH\uFF09\u3002\u5FC5\u586B")
30912
30878
  },
@@ -30922,7 +30888,7 @@ function registerFinanceTools(server, auth) {
30922
30888
  );
30923
30889
  server.tool(
30924
30890
  "okx_get_sol_staking_history",
30925
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2SOL\u8D28\u62BC\u7684\u7533\u8D2D/\u8D4E\u56DE\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2ASOL\u8D28\u62BC\u64CD\u4F5C\u3001\u6838\u5BF9\u8D28\u62BC\u548C\u8D4E\u56DE\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1ASOL\u8D28\u62BC\u5386\u53F2, sol staking history, \u8D28\u62BC\u8BB0\u5F55, SOL\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_sol_staking_balance \u770B\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u770B\u64CD\u4F5C\u5386\u53F2 \u2192 \u8BA1\u7B97\u6536\u76CA",
30891
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30926
30892
  {
30927
30893
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
30928
30894
  },
@@ -30938,7 +30904,7 @@ function registerFinanceTools(server, auth) {
30938
30904
  );
30939
30905
  server.tool(
30940
30906
  "okx_purchase_savings",
30941
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u7533\u8D2D\u6216\u8D4E\u56DE\u6D3B\u671F\u8D5A\u5E01\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u95F2\u7F6E\u8D44\u91D1\u5B58\u5165\u6D3B\u671F\u8D5A\u5E01\u83B7\u53D6\u6536\u76CA\u3001\u6216\u8D4E\u56DE\u8D5A\u5E01\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - amt: \u7533\u8D2D\u6570\u91CF\u3002\u5FC5\u586B\n## - side: \u65B9\u5411\u3002purchase=\u7533\u8D2D, redempt=\u8D4E\u56DE\u3002\u5FC5\u586B\n## - rate: \u5229\u7387\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u64CD\u4F5C\u6D3B\u671F\u8D5A\u5E01\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u7533\u8D2D/\u8D4E\u56DE\u5F71\u54CD\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_savings_balance \u770B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u64CD\u4F5C \u2192 okx_get_savings_history \u786E\u8BA4",
30907
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30942
30908
  {
30943
30909
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
30944
30910
  amt: external_exports.string().describe("\u7533\u8D2D\u6570\u91CF\u3002\u5FC5\u586B"),
@@ -30959,7 +30925,7 @@ function registerFinanceTools(server, auth) {
30959
30925
  );
30960
30926
  server.tool(
30961
30927
  "okx_get_sfp_products",
30962
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9CA8\u9C7C\u9CCD\uFF08SFP\uFF09\u4EA7\u54C1\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u53EF\u8D2D\u4E70\u7684\u9CA8\u9C7C\u9CCD\u7ED3\u6784\u5316\u4EA7\u54C1\n## \u5173\u952E\u8BCD\uFF1A\u9CA8\u9C7C\u9CCD, SFP, sfp products, \u7ED3\u6784\u6027\u4EA7\u54C1\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u4EA7\u54C1 \u2192 \u9009\u62E9\u8D2D\u4E70 \u2192 \u7BA1\u7406\u6536\u76CA",
30928
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30963
30929
  {},
30964
30930
  async () => {
30965
30931
  if (!auth) return toError(AUTH_REQUIRED);
@@ -30973,7 +30939,7 @@ function registerFinanceTools(server, auth) {
30973
30939
  );
30974
30940
  server.tool(
30975
30941
  "okx_redeem_sfp",
30976
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u8D4E\u56DE\u9CA8\u9C7C\u9CCD\uFF08SFP\uFF09\u4EA7\u54C1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63D0\u524D\u8D4E\u56DE\u9CA8\u9C7C\u9CCD\u7ED3\u6784\u6027\u4EA7\u54C1\n## \u5173\u952E\u8BCD\uFF1A\u8D4E\u56DESFP, redeem sfp, \u9CA8\u9C7C\u9CCD\u8D4E\u56DE\n## \u53C2\u6570\uFF1A\n## - productId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - amt: \u8D4E\u56DE\u6570\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u8D4E\u56DE\u4EA7\u54C1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8D4E\u56DE\u5F71\u54CD\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_sfp_products \u67E5\u770B\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u8D4E\u56DE \u2192 \u786E\u8BA4\u5230\u8D26",
30942
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30977
30943
  {
30978
30944
  productId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
30979
30945
  amt: external_exports.string().describe("\u8D4E\u56DE\u6570\u91CF\u3002\u5FC5\u586B")
@@ -30990,7 +30956,7 @@ function registerFinanceTools(server, auth) {
30990
30956
  );
30991
30957
  server.tool(
30992
30958
  "okx_get_staking_active_orders",
30993
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u6D3B\u8DC3\u7684\u8D28\u62BC\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6B63\u5728\u7533\u8D2D\u6216\u8D4E\u56DE\u4E2D\u7684\u8D28\u62BC\u8BA2\u5355\n## \u5173\u952E\u8BCD\uFF1A\u8D28\u62BC\u6D3B\u8DC3\u8BA2\u5355, active orders, \u8D28\u62BC\u8FDB\u884C\u4E2D\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6D3B\u8DC3\u8BA2\u5355 \u2192 okx_get_staking_orders \u770B\u5168\u90E8 \u2192 \u7BA1\u7406\u8D28\u62BC",
30959
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30994
30960
  {},
30995
30961
  async () => {
30996
30962
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31004,7 +30970,7 @@ function registerFinanceTools(server, auth) {
31004
30970
  );
31005
30971
  server.tool(
31006
30972
  "okx_cancel_redeem_eth",
31007
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u53D6\u6D88ETH\u8D28\u62BC\u7684\u8D4E\u56DE\u8BF7\u6C42\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5728\u8D4E\u56DE\u786E\u8BA4\u524D\u53D6\u6D88\u8D4E\u56DE\u64CD\u4F5C\n## \u5173\u952E\u8BCD\uFF1A\u53D6\u6D88\u8D4E\u56DE, cancel redeem, \u53D6\u6D88ETH\u8D4E\u56DE\n## \u53C2\u6570\uFF1A\n## - amt: \u53D6\u6D88\u8D4E\u56DE\u6570\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u53D6\u6D88\u8D4E\u56DE\u8BF7\u6C42\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u53D6\u6D88\u8D4E\u56DE\u540EETH\u5C06\u7EE7\u7EED\u8D28\u62BC\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_stake_eth \u8D28\u62BC \u2192 \u672C\u5DE5\u5177\u53D6\u6D88\u8D4E\u56DE \u2192 ETH\u7EE7\u7EED\u751F\u606F",
30973
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31008
30974
  {
31009
30975
  amt: external_exports.string().describe("\u53D6\u6D88\u8D4E\u56DE\u6570\u91CF\u3002\u5FC5\u586B")
31010
30976
  },
@@ -31020,7 +30986,7 @@ function registerFinanceTools(server, auth) {
31020
30986
  );
31021
30987
  server.tool(
31022
30988
  "okx_purchase_sol_staking",
31023
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u7533\u8D2DSOL\u94FE\u4E0A\u8D28\u62BC\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06SOL\u5B58\u5165\u8D28\u62BC\u4EE5\u8D5A\u53D6\u6536\u76CA\n## \u5173\u952E\u8BCD\uFF1ASOL\u8D28\u62BC, stake sol, SOL\u7533\u8D2D, \u8D28\u62BCSOL\n## \u53C2\u6570\uFF1A\n## - amt: \u8D28\u62BC\u6570\u91CF\uFF08SOL\uFF09\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u7533\u8D2DSOL\u8D28\u62BC\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8D28\u62BCSOL\u540E\u9700\u7B49\u5F85\u8D4E\u56DE\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_sol_staking_balance \u770B\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u7533\u8D2D \u2192 okx_get_staking_orders \u786E\u8BA4",
30989
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31024
30990
  {
31025
30991
  amt: external_exports.string().describe("\u8D28\u62BC\u6570\u91CF\uFF08SOL\uFF09\u3002\u5FC5\u586B")
31026
30992
  },
@@ -31036,7 +31002,7 @@ function registerFinanceTools(server, auth) {
31036
31002
  );
31037
31003
  server.tool(
31038
31004
  "okx_redeem_sol_staking",
31039
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u8D4E\u56DESOL\u94FE\u4E0A\u8D28\u62BC\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u8D28\u62BC\u7684SOL\u8D4E\u56DE\n## \u5173\u952E\u8BCD\uFF1A\u8D4E\u56DESOL, redeem sol, SOL\u89E3\u8D28\u62BC\n## \u53C2\u6570\uFF1A\n## - amt: \u8D4E\u56DE\u6570\u91CF\uFF08SOL\uFF09\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u8D4E\u56DESOL\u8D28\u62BC\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8D4E\u56DESOL\u9700\u7B49\u5F85\u94FE\u4E0A\u786E\u8BA4\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_sol_staking_balance \u770B\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u8D4E\u56DE \u2192 \u786E\u8BA4\u5230\u8D26",
31005
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31040
31006
  {
31041
31007
  amt: external_exports.string().describe("\u8D4E\u56DE\u6570\u91CF\uFF08SOL\uFF09\u3002\u5FC5\u586B")
31042
31008
  },
@@ -31052,7 +31018,7 @@ function registerFinanceTools(server, auth) {
31052
31018
  );
31053
31019
  server.tool(
31054
31020
  "okx_adjust_collateral",
31055
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u8C03\u6574\u7075\u6D3B\u501F\u8D37\u7684\u62B5\u62BC\u54C1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u589E\u52A0\u6216\u51CF\u5C11\u7075\u6D3B\u501F\u8D37\u7684\u62B5\u62BC\u8D44\u4EA7\n## \u5173\u952E\u8BCD\uFF1A\u62B5\u62BC\u8C03\u6574, adjust collateral, \u7075\u6D3B\u501F\u8D37, \u62B5\u62BC\u54C1\u7BA1\u7406\n## \u53C2\u6570\uFF1A\n## - ccy: \u62B5\u62BC\u5E01\u79CD\u3002\u5FC5\u586B\n## - amt: \u8C03\u6574\u6570\u91CF\u3002\u5FC5\u586B\n## - side: \u65B9\u5411\u3002add=\u589E\u52A0\u62B5\u62BC, reduce=\u51CF\u5C11\u62B5\u62BC\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u8C03\u6574\u62B5\u62BC\u54C1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8C03\u6574\u62B5\u62BC\u54C1\u5F71\u54CD\u501F\u8D37\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8C03\u6574 \u2192 \u7BA1\u7406\u501F\u8D37\u98CE\u9669 \u2192 \u907F\u514D\u5F3A\u5E73",
31021
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31056
31022
  {
31057
31023
  ccy: external_exports.string().describe("\u62B5\u62BC\u5E01\u79CD\u3002\u5FC5\u586B"),
31058
31024
  amt: external_exports.string().describe("\u8C03\u6574\u6570\u91CF\u3002\u5FC5\u586B"),
@@ -31070,7 +31036,7 @@ function registerFinanceTools(server, auth) {
31070
31036
  );
31071
31037
  server.tool(
31072
31038
  "okx_get_flexible_loan_collateral",
31073
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7075\u6D3B\u501F\u8D37\u652F\u6301\u7684\u62B5\u62BC\u8D44\u4EA7\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u53EF\u62B5\u62BC\u7684\u5E01\u79CD\u548C\u62B5\u62BC\u7387\n## \u5173\u952E\u8BCD\uFF1A\u62B5\u62BC\u8D44\u4EA7, collateral assets, \u7075\u6D3B\u501F\u8D37\u62B5\u62BC\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u62B5\u62BC\u8D44\u4EA7 \u2192 \u8C03\u6574\u62B5\u62BC \u2192 \u7BA1\u7406\u501F\u8D37",
31039
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31074
31040
  {},
31075
31041
  async () => {
31076
31042
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31084,7 +31050,7 @@ function registerFinanceTools(server, auth) {
31084
31050
  );
31085
31051
  server.tool(
31086
31052
  "okx_get_flexible_loan_info",
31087
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7075\u6D3B\u501F\u8D37\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u501F\u8D37\u8BE6\u60C5\n## \u5173\u952E\u8BCD\uFF1A\u7075\u6D3B\u501F\u8D37, loan info, \u501F\u8D37\u4FE1\u606F\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u501F\u8D37 \u2192 \u7BA1\u7406\u98CE\u9669",
31053
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31088
31054
  {},
31089
31055
  async () => {
31090
31056
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31098,7 +31064,7 @@ function registerFinanceTools(server, auth) {
31098
31064
  );
31099
31065
  server.tool(
31100
31066
  "okx_get_flexible_loan_history",
31101
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7075\u6D3B\u501F\u8D37\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u501F\u8D37\u64CD\u4F5C\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u501F\u8D37\u5386\u53F2, loan history, \u7075\u6D3B\u501F\u8D37\u8BB0\u5F55\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
31067
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31102
31068
  {},
31103
31069
  async () => {
31104
31070
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31112,7 +31078,7 @@ function registerFinanceTools(server, auth) {
31112
31078
  );
31113
31079
  server.tool(
31114
31080
  "okx_get_stable_rewards_product",
31115
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7A33\u5B9A\u5E01\u5956\u52B1\u4EA7\u54C1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7A33\u5B9A\u5E01\u7406\u8D22\u4EA7\u54C1\u7684\u6536\u76CA\u7387\n## \u5173\u952E\u8BCD\uFF1A\u7A33\u5B9A\u5E01\u5956\u52B1, stable rewards, \u7A33\u5B9A\u5E01\u7406\u8D22\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
31081
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31116
31082
  {},
31117
31083
  async () => {
31118
31084
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31126,7 +31092,7 @@ function registerFinanceTools(server, auth) {
31126
31092
  );
31127
31093
  server.tool(
31128
31094
  "okx_get_lending_rate_history",
31129
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6D3B\u671F\u501F\u5E01\u5229\u7387\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u501F\u5E01\u5229\u7387\u8D70\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5229\u7387\u5386\u53F2, lending rate history, \u501F\u5E01\u5229\u7387\u8D70\u52BF\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5229\u7387\u5386\u53F2 \u2192 okx_get_savings_balance \u770B\u4F59\u989D",
31095
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31130
31096
  {},
31131
31097
  async () => {
31132
31098
  try {
@@ -31143,7 +31109,7 @@ function registerFinanceTools(server, auth) {
31143
31109
  );
31144
31110
  server.tool(
31145
31111
  "okx_set_lending_rate",
31146
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u6D3B\u671F\u8D5A\u5E01\u51FA\u501F\u5229\u7387\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u6D3B\u671F\u8D5A\u5E01\u7684\u671F\u671B\u51FA\u501F\u5229\u7387\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - rate: \u51FA\u501F\u5229\u7387\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u5229\u7387\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u5229\u7387\u5F71\u54CD\u6536\u76CA\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BBE\u5229\u7387 \u2192 okx_get_savings_balance \u786E\u8BA4\u751F\u6548",
31112
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31147
31113
  {
31148
31114
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
31149
31115
  rate: external_exports.string().describe("\u51FA\u501F\u5229\u7387\u3002\u5FC5\u586B")
@@ -31160,7 +31126,7 @@ function registerFinanceTools(server, auth) {
31160
31126
  );
31161
31127
  server.tool(
31162
31128
  "okx_get_stable_rewards_apy",
31163
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7A33\u5B9A\u5E01\u5956\u52B1APY\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7A33\u5B9A\u5E01\u7406\u8D22\u7684\u5E74\u5316\u6536\u76CA\u7387\u5386\u53F2\n## \u5173\u952E\u8BCD\uFF1A\u7A33\u5B9A\u5E01APY, stable apy, \u5E74\u5316\u5386\u53F2\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
31129
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31164
31130
  {},
31165
31131
  async () => {
31166
31132
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31174,7 +31140,7 @@ function registerFinanceTools(server, auth) {
31174
31140
  );
31175
31141
  server.tool(
31176
31142
  "okx_get_stable_rewards_history",
31177
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7A33\u5B9A\u5E01\u5956\u52B1\u7533\u8D2D\u8D4E\u56DE\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7A33\u5B9A\u5E01\u7406\u8D22\u7684\u64CD\u4F5C\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u7A33\u5B9A\u5E01\u8BB0\u5F55, stable history, \u7533\u8D2D\u8D4E\u56DE\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
31143
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31178
31144
  {},
31179
31145
  async () => {
31180
31146
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31188,7 +31154,7 @@ function registerFinanceTools(server, auth) {
31188
31154
  );
31189
31155
  server.tool(
31190
31156
  "okx_get_sfp_order_history",
31191
- "CAT:[\u91D1\u878D] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u9CA8\u9C7C\u9CCD\u4EA7\u54C1\u8BA2\u5355\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u9CA8\u9C7C\u9CCD\u4EA7\u54C1\u7684\u7533\u8D2D\u8D4E\u56DE\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u9CA8\u9C7C\u9CCD\u5386\u53F2, sfp history, \u7ED3\u6784\u4EA7\u54C1\u8BA2\u5355\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\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
31157
+ "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31192
31158
  {},
31193
31159
  async () => {
31194
31160
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31206,7 +31172,7 @@ function registerFinanceTools(server, auth) {
31206
31172
  function registerOutcomesTools(server) {
31207
31173
  server.tool(
31208
31174
  "outcomes_list_events",
31209
- "CAT:[\u9884\u6D4B] | ## \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",
31175
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31210
31176
  {
31211
31177
  pageSize: external_exports.number().int().min(1).max(100).optional().describe("\u6BCF\u9875\u6570\u91CF\uFF0C\u9ED8\u8BA420"),
31212
31178
  search: external_exports.string().optional().describe("\u5173\u952E\u8BCD\u641C\u7D22\u4E8B\u4EF6\u6807\u9898"),
@@ -31229,7 +31195,7 @@ function registerOutcomesTools(server) {
31229
31195
  );
31230
31196
  server.tool(
31231
31197
  "outcomes_get_event",
31232
- "CAT:[\u9884\u6D4B] | ## \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",
31198
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31233
31199
  { eventId: external_exports.string().describe("\u4E8B\u4EF6ID") },
31234
31200
  async ({ eventId }) => {
31235
31201
  const client = getHRailsClient();
@@ -31244,7 +31210,7 @@ function registerOutcomesTools(server) {
31244
31210
  );
31245
31211
  server.tool(
31246
31212
  "outcomes_get_market",
31247
- "CAT:[\u9884\u6D4B] | ## \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",
31213
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31248
31214
  { marketId: external_exports.string().describe("\u5E02\u573AID") },
31249
31215
  async ({ marketId }) => {
31250
31216
  const client = getHRailsClient();
@@ -31259,7 +31225,7 @@ function registerOutcomesTools(server) {
31259
31225
  );
31260
31226
  server.tool(
31261
31227
  "outcomes_get_ticker",
31262
- "CAT:[\u9884\u6D4B] | ## \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",
31228
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31263
31229
  {
31264
31230
  marketId: external_exports.string().describe("\u5E02\u573AID"),
31265
31231
  outcome: external_exports.enum(["YES", "NO"]).describe("\u7ED3\u679C\u65B9\u5411")
@@ -31277,7 +31243,7 @@ function registerOutcomesTools(server) {
31277
31243
  );
31278
31244
  server.tool(
31279
31245
  "outcomes_get_orderbook",
31280
- "CAT:[\u9884\u6D4B] | ## \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",
31246
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31281
31247
  {
31282
31248
  marketId: external_exports.string().describe("\u5E02\u573AID"),
31283
31249
  outcome: external_exports.enum(["YES", "NO"]).describe("\u7ED3\u679C\u65B9\u5411"),
@@ -31296,7 +31262,7 @@ function registerOutcomesTools(server) {
31296
31262
  );
31297
31263
  server.tool(
31298
31264
  "outcomes_get_candles",
31299
- "CAT:[\u9884\u6D4B] | ## \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",
31265
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31300
31266
  {
31301
31267
  marketId: external_exports.string().describe("\u5E02\u573AID"),
31302
31268
  outcome: external_exports.enum(["YES", "NO"]).describe("\u7ED3\u679C\u65B9\u5411"),
@@ -31316,7 +31282,7 @@ function registerOutcomesTools(server) {
31316
31282
  );
31317
31283
  server.tool(
31318
31284
  "outcomes_check_arbitrage",
31319
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u68C0\u6D4B\u9884\u6D4B\u5E02\u573A\u65E0\u98CE\u9669\u5957\u5229\u673A\u4F1A\uFF08YES+NO\u4E70\u4EF7\u4E4B\u548C < 1.0\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u81EA\u52A8\u626B\u63CF\u5957\u5229\u7A97\u53E3\u3001\u4F4E\u98CE\u9669\u5957\u5229\u51B3\u7B56\u53C2\u8003\n## \u5173\u952E\u8BCD\uFF1A\u5957\u5229, \u9884\u6D4B\u5E02\u573A\u5957\u5229, arbitrage, \u65E0\u98CE\u9669\u5957\u5229, YES+NO, \u53CC\u8FB9\u5957\u5229\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\uFF0C\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 HRAILS API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u68C0\u6D4B\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u5148\u8C03 outcomes_get_market \u83B7\u53D6\u5E02\u573A \u2192 \u672C\u5DE5\u5177\u68C0\u6D4B\u5957\u5229 \u2192 \u624B\u52A8\u4E0B\u5355",
31285
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31320
31286
  {
31321
31287
  marketId: external_exports.string().describe("\u5E02\u573AID\uFF0C\u5FC5\u586B")
31322
31288
  },
@@ -31355,7 +31321,7 @@ function registerOutcomesTools(server) {
31355
31321
  );
31356
31322
  server.tool(
31357
31323
  "outcomes_list_markets",
31358
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u5217\u51FA\u6240\u6709\u9884\u6D4B\u5E02\u573A\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4F\u89C8\u5168\u90E8\u53EF\u7528\u5E02\u573A\u3001\u53D1\u73B0\u4EA4\u6613\u673A\u4F1A\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u5E02\u573A, markets, \u5E02\u573A\u5217\u8868\n## \u53C2\u6570\uFF1A\n## - pageSize: \u6BCF\u9875\u6570\u91CF\uFF0C\u9ED8\u8BA420\n## \u9274\u6743\uFF1A\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_list_events \u2192 \u672C\u5DE5\u5177 \u2192 outcomes_get_market \u770B\u8BE6\u60C5",
31324
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31359
31325
  {
31360
31326
  pageSize: external_exports.number().int().min(1).max(100).optional().describe("\u6BCF\u9875\u6570\u91CF")
31361
31327
  },
@@ -31373,7 +31339,7 @@ function registerOutcomesTools(server) {
31373
31339
  );
31374
31340
  server.tool(
31375
31341
  "okx_get_event_series",
31376
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\u5408\u7EA6\u7CFB\u5217\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4F\u89C8\u53EF\u4EA4\u6613\u7684\u4E8B\u4EF6\u5408\u7EA6\u7CFB\u5217\uFF08\u5982SOL\u4EF7\u683C\u533A\u95F4\u9884\u6D4B\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, event series, \u9884\u6D4B\u5E02\u573A, \u4E8B\u4EF6\u7CFB\u5217, \u4E8B\u4EF6\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u4E8B\u4EF6\u7CFB\u5217 \u2192 okx_get_event_markets \u67E5\u770B\u5177\u4F53\u5E02\u573A \u2192 \u9009\u62E9\u4EA4\u6613",
31342
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31377
31343
  {},
31378
31344
  async () => {
31379
31345
  try {
@@ -31386,7 +31352,7 @@ function registerOutcomesTools(server) {
31386
31352
  );
31387
31353
  server.tool(
31388
31354
  "okx_get_event_markets",
31389
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u6307\u5B9A\u7CFB\u5217\u4E0B\u7684\u6240\u6709\u5E02\u573A\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u67D0\u4E8B\u4EF6\u7CFB\u5217\u4E0B\u7684\u6240\u6709\u53EF\u4EA4\u6613\u5408\u7EA6\u54C1\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5E02\u573A, event markets, \u9884\u6D4B\u5E02\u573A, \u5408\u7EA6\u5E02\u573A\n## \u53C2\u6570\uFF1A\n## - seriesId: \u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B\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_event_series \u67E5\u7CFB\u5217 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u5E02\u573A \u2192 \u8BC4\u4F30\u4EA4\u6613\u673A\u4F1A",
31355
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31390
31356
  {
31391
31357
  seriesId: external_exports.string().describe("\u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B")
31392
31358
  },
@@ -31401,7 +31367,7 @@ function registerOutcomesTools(server) {
31401
31367
  );
31402
31368
  server.tool(
31403
31369
  "okx_get_event_events",
31404
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u6307\u5B9A\u7CFB\u5217\u4E0B\u7684\u4E8B\u4EF6\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4E8B\u4EF6\u5408\u7EA6\u7684\u5230\u671F\u65E5\u3001\u72B6\u6001\u548C\u6709\u5173\u4FE1\u606F\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5217\u8868, event events, \u9884\u6D4B\u4E8B\u4EF6, \u4E8B\u4EF6\u72B6\u6001\n## \u53C2\u6570\uFF1A\n## - seriesId: \u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B\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_event_series \u67E5\u7CFB\u5217 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u4E8B\u4EF6 \u2192 \u9009\u62E9\u5230\u671F\u65E5",
31370
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31405
31371
  {
31406
31372
  seriesId: external_exports.string().describe("\u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B")
31407
31373
  },
@@ -31416,7 +31382,7 @@ function registerOutcomesTools(server) {
31416
31382
  );
31417
31383
  server.tool(
31418
31384
  "okx_predictions_list_events",
31419
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6 OKX \u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4F\u89C8\u53EF\u9009\u4E8B\u4EF6\u3001\u53D1\u73B0\u70ED\u95E8\u9884\u6D4B\u4E3B\u9898\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u5E02\u573A, predictions, events, \u4E8B\u4EF6\u5217\u8868\n## \u53C2\u6570\uFF1A\n## - limit: \u8FD4\u56DE\u6570\u91CF\uFF0C\u9ED8\u8BA420\n## - sort: \u6392\u5E8F\u5B57\u6BB5\n## - category: \u5206\u7C7B\u7B5B\u9009\n## - status: \u72B6\u6001\u7B5B\u9009\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177 \u2192 okx_predictions_get_event \u770B\u8BE6\u60C5 \u2192 okx_predictions_get_event_markets \u770B\u5E02\u573A",
31385
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31420
31386
  {
31421
31387
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6570\u91CF"),
31422
31388
  sort: external_exports.string().optional().describe("\u6392\u5E8F\u5B57\u6BB5"),
@@ -31439,7 +31405,7 @@ function registerOutcomesTools(server) {
31439
31405
  );
31440
31406
  server.tool(
31441
31407
  "okx_predictions_search_events",
31442
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u5168\u6587\u5173\u952E\u8BCD\u641C\u7D22\u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\n## \u573A\u666F\uFF1A\u5FEB\u901F\u627E\u5230\u7279\u5B9A\u4E3B\u9898\u7684\u9884\u6D4B\u4E8B\u4EF6\uFF08\u5982\u67D0\u9009\u4E3E\u3001\u6BD4\u8D5B\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u5E02\u573A, predictions, \u641C\u7D22\u4E8B\u4EF6, \u5173\u952E\u8BCD\u641C\u7D22\n## \u53C2\u6570\uFF1A\n## - keyword: \u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5FC5\u586B\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1Aokx_predictions_list_events \u5217\u8868 \u2192 \u672C\u5DE5\u5177\u641C\u7D22 \u2192 okx_predictions_get_event \u8BE6\u60C5",
31408
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31443
31409
  {
31444
31410
  keyword: external_exports.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5FC5\u586B")
31445
31411
  },
@@ -31454,7 +31420,7 @@ function registerOutcomesTools(server) {
31454
31420
  );
31455
31421
  server.tool(
31456
31422
  "okx_predictions_get_event",
31457
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5355\u4E2A\u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u67E5\u770B\u4E8B\u4EF6\u63CF\u8FF0\u3001\u72B6\u6001\u3001\u5173\u8054\u5E02\u573A\u6982\u89C8\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u4E8B\u4EF6, event \u8BE6\u60C5, predictions\n## \u53C2\u6570\uFF1A\n## - eventId: \u4E8B\u4EF6ID\uFF0C\u5FC5\u586B\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u5217\u8868/\u641C\u7D22 \u2192 \u672C\u5DE5\u5177 \u2192 okx_predictions_get_event_markets \u770B\u5E02\u573A",
31423
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31458
31424
  {
31459
31425
  eventId: external_exports.string().describe("\u4E8B\u4EF6ID\uFF0C\u5FC5\u586B")
31460
31426
  },
@@ -31469,7 +31435,7 @@ function registerOutcomesTools(server) {
31469
31435
  );
31470
31436
  server.tool(
31471
31437
  "okx_predictions_get_event_markets",
31472
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E8B\u4EF6\u4E0B\u6240\u6709\u4EA4\u6613\u5E02\u573A\n## \u573A\u666F\uFF1A\u67E5\u770B\u67D0\u4E8B\u4EF6\u5305\u542B\u7684\u591A\u4E2A\u9884\u6D4B\u5E02\u573A\uFF08\u80DC/\u8D1F/\u6BD4\u5206\u7B49\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5E02\u573A, \u9884\u6D4B\u5E02\u573A\u5217\u8868, predictions markets\n## \u53C2\u6570\uFF1A\n## - eventId: \u4E8B\u4EF6ID\uFF0C\u5FC5\u586B\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_predictions_get_event \u2192 \u672C\u5DE5\u5177 \u2192 okx_predictions_get_market \u5355\u4E2A\u5E02\u573A",
31438
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31473
31439
  {
31474
31440
  eventId: external_exports.string().describe("\u4E8B\u4EF6ID\uFF0C\u5FC5\u586B")
31475
31441
  },
@@ -31484,7 +31450,7 @@ function registerOutcomesTools(server) {
31484
31450
  );
31485
31451
  server.tool(
31486
31452
  "okx_predictions_get_market",
31487
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u5355\u4E2A\u9884\u6D4B\u5E02\u573A\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u67E5\u770B\u5177\u4F53\u5E02\u573A\u8D54\u7387\u3001\u6210\u4EA4\u91CF\u3001\u7ED3\u7B97\u4FE1\u606F\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u5E02\u573A, market \u8BE6\u60C5, predictions\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\uFF0C\u5FC5\u586B\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aokx_predictions_get_event_markets \u2192 \u672C\u5DE5\u5177 \u2192 \u884C\u60C5\u67E5\u8BE2",
31453
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31488
31454
  {
31489
31455
  marketId: external_exports.string().describe("\u5E02\u573AID\uFF0C\u5FC5\u586B")
31490
31456
  },
@@ -31499,7 +31465,7 @@ function registerOutcomesTools(server) {
31499
31465
  );
31500
31466
  server.tool(
31501
31467
  "okx_predictions_ticker",
31502
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A YES/NO \u8D44\u4EA7\u884C\u60C5\u62A5\u4EF7\n## \u573A\u666F\uFF1A\u5B9E\u65F6\u4EF7\u683C\u3001\u4E70\u5356\u4EF7\u3001\u6210\u4EA4\u91CF\uFF0C\u7528\u4E8E\u5224\u65AD\u5E02\u573A\u6E29\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u884C\u60C5, ticker, predictions, \u62A5\u4EF7\n## \u53C2\u6570\uFF1A\n## - instId: YES \u6216 NO \u7684 instId\uFF08yesAssetId\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1Aokx_predictions_get_market \u2192 \u672C\u5DE5\u5177 \u2192 okx_predictions_orderbook \u6DF1\u5EA6",
31468
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31503
31469
  {
31504
31470
  instId: external_exports.string().describe("YES/NO \u8D44\u4EA7\u7684 instId\uFF08yesAssetId\uFF09\uFF0C\u5FC5\u586B")
31505
31471
  },
@@ -31514,7 +31480,7 @@ function registerOutcomesTools(server) {
31514
31480
  );
31515
31481
  server.tool(
31516
31482
  "okx_predictions_candles",
31517
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A K \u7EBF\n## \u573A\u666F\uFF1A\u5206\u6790\u6982\u7387\u8D70\u52BF\u3001\u91CF\u80FD\u53D8\u5316\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4BK\u7EBF, candles, predictions, \u8D8B\u52BF\n## \u53C2\u6570\uFF1A\n## - instId: YES/NO instId\n## - bar: K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49\n## \u5173\u8054\uFF1Aticker \u2192 \u672C\u5DE5\u5177 \u2192 \u5206\u6790",
31483
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31518
31484
  {
31519
31485
  instId: external_exports.string().describe("YES/NO \u8D44\u4EA7 instId"),
31520
31486
  bar: external_exports.string().optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -31531,7 +31497,7 @@ function registerOutcomesTools(server) {
31531
31497
  );
31532
31498
  server.tool(
31533
31499
  "okx_predictions_orderbook",
31534
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u6DF1\u5EA6\uFF08pm-books\uFF0C\u6700\u591A400\u6863\uFF09\n## \u573A\u666F\uFF1A\u5206\u6790\u4E70\u5356\u76D8\u3001\u6D41\u52A8\u6027\u3001\u53EF\u80FD\u7684\u5957\u5229\u7A7A\u95F4\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u6DF1\u5EA6, orderbook, pm-books, \u6302\u5355\n## \u53C2\u6570\uFF1A\n## - instId: YES/NO instId\n## - sz: \u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA4400\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB+\n## \u5173\u8054\uFF1Aticker \u2192 \u672C\u5DE5\u5177 \u6DF1\u5EA6\u5206\u6790",
31500
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31535
31501
  {
31536
31502
  instId: external_exports.string().describe("YES/NO \u8D44\u4EA7 instId"),
31537
31503
  sz: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA4400")
@@ -31547,7 +31513,7 @@ function registerOutcomesTools(server) {
31547
31513
  );
31548
31514
  server.tool(
31549
31515
  "okx_event_place_order",
31550
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u4E0B\u4E8B\u4EF6\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BF9\u4E8B\u4EF6\u5408\u7EA6\uFF08instType=EVENTS\uFF09\u4E0B\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, event, place order, \u4E0B\u5355\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6ID\n## - side: buy/sell\n## - outcome: yes/no\uFF08\u5FC5\u586B\uFF09\n## - sz: \u6570\u91CF\n## - px: \u9650\u4EF7\uFF08\u53EF\u9009\uFF09\n## - ordType: market/limit/post_only\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4E0B\u5355\u64CD\u4F5C\uFF0C\u9700\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177 \u2192 okx_event_cancel_order \u64A4\u5355",
31516
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31551
31517
  {
31552
31518
  instId: external_exports.string().describe("\u5408\u7EA6ID"),
31553
31519
  side: external_exports.enum(["buy", "sell"]).describe("\u4E70\u5356\u65B9\u5411"),
@@ -31573,7 +31539,7 @@ function registerOutcomesTools(server) {
31573
31539
  );
31574
31540
  server.tool(
31575
31541
  "okx_event_cancel_order",
31576
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u64A4\u9500\u4E8B\u4EF6\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u5DF2\u4E0B\u4F46\u672A\u6210\u4EA4\u7684\u4E8B\u4EF6\u5408\u7EA6\u8BA2\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, cancel, \u64A4\u5355\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6ID\n## - ordId: \u8BA2\u5355ID\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u64A4\u5355\u64CD\u4F5C\uFF0C\u9700\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_event_place_order \u2192 \u672C\u5DE5\u5177",
31542
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31577
31543
  { instId: external_exports.string().describe("\u5408\u7EA6ID"), ordId: external_exports.string().describe("\u8BA2\u5355ID") },
31578
31544
  async ({ instId, ordId }) => {
31579
31545
  const auth = getAuth();
@@ -31588,7 +31554,7 @@ function registerOutcomesTools(server) {
31588
31554
  );
31589
31555
  server.tool(
31590
31556
  "okx_event_amend_order",
31591
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u4E8B\u4EF6\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4FEE\u6539\u5DF2\u4E0B\u4F46\u672A\u6210\u4EA4\u7684\u4E8B\u4EF6\u5408\u7EA6\u8BA2\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, amend, \u6539\u5355\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6ID\n## - ordId: \u8BA2\u5355ID\n## - newSz: \u65B0\u6570\u91CF\uFF08\u53EF\u9009\uFF09\n## - newPx: \u65B0\u4EF7\u683C\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u6539\u5355\u64CD\u4F5C\uFF0C\u9700\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_event_place_order \u2192 \u672C\u5DE5\u5177",
31557
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31592
31558
  {
31593
31559
  instId: external_exports.string().describe("\u5408\u7EA6ID"),
31594
31560
  ordId: external_exports.string().describe("\u8BA2\u5355ID"),
@@ -31611,7 +31577,7 @@ function registerOutcomesTools(server) {
31611
31577
  );
31612
31578
  server.tool(
31613
31579
  "okx_event_fills",
31614
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4E8B\u4EF6\u5408\u7EA6\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4E8B\u4EF6\u5408\u7EA6\u7684\u5386\u53F2\u6210\u4EA4\u660E\u7EC6\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, fills, \u6210\u4EA4\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - instId: \u5408\u7EA6ID\uFF08\u53EF\u9009\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\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_event_place_order \u2192 \u672C\u5DE5\u5177",
31580
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31615
31581
  { instId: external_exports.string().optional().describe("\u5408\u7EA6ID"), limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570") },
31616
31582
  async ({ instId, limit }) => {
31617
31583
  const auth = getAuth();
@@ -31626,7 +31592,7 @@ function registerOutcomesTools(server) {
31626
31592
  );
31627
31593
  server.tool(
31628
31594
  "okx_event_instruments",
31629
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u53EF\u4EA4\u6613\u7684\u4E8B\u4EF6\u5408\u7EA6\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4F\u89C8\u6240\u6709\u53EF\u7528\u7684\u4E8B\u4EF6\u5408\u7EA6\u54C1\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, instruments, \u5408\u7EA6\u5217\u8868\n## \u53C2\u6570\uFF1A\n## - seriesId: \u4E8B\u4EF6\u7CFB\u5217ID\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\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 \u2192 okx_event_place_order \u4E0B\u5355",
31595
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31630
31596
  { seriesId: external_exports.string().optional().describe("\u4E8B\u4EF6\u7CFB\u5217ID") },
31631
31597
  async ({ seriesId }) => {
31632
31598
  const auth = getAuth();
@@ -31641,7 +31607,7 @@ function registerOutcomesTools(server) {
31641
31607
  );
31642
31608
  server.tool(
31643
31609
  "okx_predictions_place_order",
31644
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u4E0B Outcomes \u9884\u6D4B\u5E02\u573A\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BF9\u9884\u6D4B\u5E02\u573A\uFF08YES/NO\uFF09\u4E0B\u4E70\u5355\u6216\u5356\u5355\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u8BA2\u5355, place order, outcomes, \u4E0B\u5355\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\uFF08\u5FC5\u586B\uFF09\n## - side: buy=\u4E70\u5165, sell=\u5356\u51FA\uFF08\u5FC5\u586B\uFF09\n## - outcome: yes=\u770B\u6DA8, no=\u770B\u8DCC\uFF08\u5FC5\u586B\uFF09\n## - size: \u5408\u7EA6\u5F20\u6570\uFF08\u5FC5\u586B\uFF09\n## - price: \u9650\u4EF7\uFF0C\u4E0D\u586B\u5219\u5E02\u4EF7\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650+EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4E0B\u5355\u64CD\u4F5C\uFF0C\u9700\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177 \u2192 okx_predictions_cancel_order \u64A4\u5355",
31610
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31645
31611
  {
31646
31612
  marketId: external_exports.string().describe("\u5E02\u573AID\uFF08\u5FC5\u586B\uFF09"),
31647
31613
  side: external_exports.enum(["buy", "sell"]).describe("\u4E70\u5356\u65B9\u5411"),
@@ -31664,7 +31630,7 @@ function registerOutcomesTools(server) {
31664
31630
  );
31665
31631
  server.tool(
31666
31632
  "okx_predictions_cancel_order",
31667
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u64A4\u9500 Outcomes \u9884\u6D4B\u5E02\u573A\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u5DF2\u4E0B\u4F46\u672A\u6210\u4EA4\u7684\u9884\u6D4B\u5E02\u573A\u8BA2\u5355\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u8BA2\u5355, cancel order, \u64A4\u5355\n## \u53C2\u6570\uFF1A\n## - orderId: \u8BA2\u5355ID\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650+EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u64A4\u5355\u64CD\u4F5C\uFF0C\u9700\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_predictions_place_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177",
31633
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31668
31634
  { orderId: external_exports.string().optional().describe("\u8BA2\u5355ID") },
31669
31635
  async ({ orderId }) => {
31670
31636
  const auth = getAuth();
@@ -31681,7 +31647,7 @@ function registerOutcomesTools(server) {
31681
31647
  );
31682
31648
  server.tool(
31683
31649
  "okx_predictions_cancel_all",
31684
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u64A4\u9500\u6240\u6709 Outcomes \u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6E05\u7A7A\u5F53\u524D\u5E02\u573A\u6240\u6709\u6302\u5355\n## \u5173\u952E\u8BCD\uFF1A\u9884\u6D4B\u8BA2\u5355, cancel all, \u5168\u90E8\u64A4\u5355\n## \u53C2\u6570\uFF1A\n## - assetIds: \u8D44\u4EA7ID\u5217\u8868\uFF0C\u9017\u53F7\u5206\u9694\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650+EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u6279\u91CF\u64A4\u5355\uFF0C\u9700\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177 \u2192 okx_predictions_order_list \u67E5\u8BA2\u5355",
31650
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31685
31651
  { assetIds: external_exports.string().optional().describe("\u8D44\u4EA7ID\u5217\u8868\uFF0C\u9017\u53F7\u5206\u9694") },
31686
31652
  async ({ assetIds }) => {
31687
31653
  const auth = getAuth();
@@ -31698,7 +31664,7 @@ function registerOutcomesTools(server) {
31698
31664
  );
31699
31665
  server.tool(
31700
31666
  "okx_predictions_heartbeat",
31701
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1AOutcomes \u5FC3\u8DF3\u4FDD\u6D3B\n## \u573A\u666F\uFF1A\u5B9A\u65F6\u53D1\u9001\u5FC3\u8DF3\u9632\u6B62\u7CFB\u7EDF\u56E0\u8D85\u65F6\u81EA\u52A8\u64A4\u5355\n## \u5173\u952E\u8BCD\uFF1A\u5FC3\u8DF3, heartbeat, keep-alive\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u53D1\u9001\u5FC3\u8DF3\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u4E0B\u5355\u524D/\u540E \u2192 \u672C\u5DE5\u5177\u4FDD\u6301\u8FDE\u63A5",
31667
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31702
31668
  {},
31703
31669
  async () => {
31704
31670
  const auth = getAuth();
@@ -31713,7 +31679,7 @@ function registerOutcomesTools(server) {
31713
31679
  );
31714
31680
  server.tool(
31715
31681
  "okx_predictions_get_order",
31716
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5355\u4E2A Outcomes \u8BA2\u5355\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8BA2\u5355\u72B6\u6001\u3001\u6210\u4EA4\u6570\u91CF\u3001\u4EF7\u683C\n## \u5173\u952E\u8BCD\uFF1A\u8BA2\u5355\u8BE6\u60C5, order detail, \u67E5\u8BE2\n## \u53C2\u6570\uFF1A\n## - orderId: \u8BA2\u5355ID\uFF08\u5FC5\u586B\uFF09\n## \u9274\u6743\uFF1A\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_predictions_order_list \u2192 \u672C\u5DE5\u5177",
31682
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31717
31683
  { orderId: external_exports.string().describe("\u8BA2\u5355ID\uFF08\u5FC5\u586B\uFF09") },
31718
31684
  async ({ orderId }) => {
31719
31685
  const auth = getAuth();
@@ -31728,7 +31694,7 @@ function registerOutcomesTools(server) {
31728
31694
  );
31729
31695
  server.tool(
31730
31696
  "okx_predictions_order_list",
31731
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2 Outcomes \u8BA2\u5355\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5386\u53F2\u8BA2\u5355\u3001\u6309\u5E02\u573A\u6216\u72B6\u6001\u7B5B\u9009\n## \u5173\u952E\u8BCD\uFF1A\u8BA2\u5355\u5217\u8868, order list, \u5386\u53F2\u8BA2\u5355\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\uFF08\u53EF\u9009\uFF09\n## - status: \u8BA2\u5355\u72B6\u6001\uFF08\u53EF\u9009\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\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 \u2192 okx_predictions_get_order \u770B\u8BE6\u60C5",
31697
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31732
31698
  {
31733
31699
  marketId: external_exports.string().optional().describe("\u5E02\u573AID"),
31734
31700
  status: external_exports.string().optional().describe("\u8BA2\u5355\u72B6\u6001"),
@@ -31747,7 +31713,7 @@ function registerOutcomesTools(server) {
31747
31713
  );
31748
31714
  server.tool(
31749
31715
  "okx_predictions_positions",
31750
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2 Outcomes \u6301\u4ED3\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u6301\u6709\u7684 YES/NO \u4ED3\u4F4D\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3, positions, \u4ED3\u4F4D\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\uFF08\u53EF\u9009\uFF09\n## - status: \u6301\u4ED3\u72B6\u6001\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\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 \u2192 okx_predictions_split \u62C6\u5206\u4ED3\u4F4D",
31716
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31751
31717
  {
31752
31718
  marketId: external_exports.string().optional().describe("\u5E02\u573AID"),
31753
31719
  status: external_exports.string().optional().describe("\u6301\u4ED3\u72B6\u6001")
@@ -31765,7 +31731,7 @@ function registerOutcomesTools(server) {
31765
31731
  );
31766
31732
  server.tool(
31767
31733
  "okx_predictions_split",
31768
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u5C06 xp \u62C6\u5206\u4E3A YES \u548C NO \u4EE3\u5E01\n## \u573A\u666F\uFF1A\u62C6\u5206\u8D44\u91D1\u5230 YES/NO \u53CC\u65B9\u5411\uFF0C\u53C2\u4E0E\u9884\u6D4B\u5E02\u573A\n## \u5173\u952E\u8BCD\uFF1A\u62C6\u5206, split, xp\n## \u53C2\u6570\uFF1A\n## - amount: \u62C6\u5206\u6570\u91CF\uFF08\u5FC5\u586B\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u8D44\u91D1\u64CD\u4F5C\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_predictions_balance \u2192 \u672C\u5DE5\u5177",
31734
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31769
31735
  { amount: external_exports.string().describe("\u62C6\u5206\u6570\u91CF\uFF08\u5FC5\u586B\uFF09") },
31770
31736
  async ({ amount }) => {
31771
31737
  const auth = getAuth();
@@ -31780,7 +31746,7 @@ function registerOutcomesTools(server) {
31780
31746
  );
31781
31747
  server.tool(
31782
31748
  "okx_predictions_merge",
31783
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u5C06 YES+NO \u5408\u5E76\u4E3A xp\n## \u573A\u666F\uFF1A\u9000\u51FA\u9884\u6D4B\u5E02\u573A\u4ED3\u4F4D\uFF0C\u56DE\u6536\u8D44\u91D1\n## \u5173\u952E\u8BCD\uFF1A\u5408\u5E76, merge, xp\n## \u53C2\u6570\uFF1A\n## - amount: \u5408\u5E76\u6570\u91CF\uFF08\u5FC5\u586B\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u8D44\u91D1\u64CD\u4F5C\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_predictions_split \u2192 \u672C\u5DE5\u5177",
31749
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31784
31750
  { amount: external_exports.string().describe("\u5408\u5E76\u6570\u91CF\uFF08\u5FC5\u586B\uFF09") },
31785
31751
  async ({ amount }) => {
31786
31752
  const auth = getAuth();
@@ -31795,7 +31761,7 @@ function registerOutcomesTools(server) {
31795
31761
  );
31796
31762
  server.tool(
31797
31763
  "okx_predictions_redeem",
31798
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u7ED3\u7B97\u540E\u8D4E\u56DE\u83B7\u80DC\u4EE3\u5E01\u4E3A xp\n## \u573A\u666F\uFF1A\u4E8B\u4EF6\u7ED3\u7B97\u540E\u5151\u56DE\n## \u5173\u952E\u8BCD\uFF1A\u8D4E\u56DE, redeem, \u7ED3\u7B97\n## \u53C2\u6570\uFF1A\n## - assetId: \u8D44\u4EA7ID\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08EIP-712\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u8D44\u91D1\u64CD\u4F5C\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u4E8B\u4EF6\u7ED3\u7B97 \u2192 \u672C\u5DE5\u5177 \u2192 okx_predictions_balance",
31764
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31799
31765
  { assetId: external_exports.string().optional().describe("\u8D44\u4EA7ID") },
31800
31766
  async ({ assetId }) => {
31801
31767
  const auth = getAuth();
@@ -31812,7 +31778,7 @@ function registerOutcomesTools(server) {
31812
31778
  );
31813
31779
  server.tool(
31814
31780
  "okx_predictions_balance",
31815
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2 Outcomes \u8D26\u6237 xp \u4F59\u989D\n## \u573A\u666F\uFF1A\u67E5\u770B\u9884\u6D4B\u5E02\u573A\u53EF\u7528\u8D44\u91D1\n## \u5173\u952E\u8BCD\uFF1A\u4F59\u989D, balance, xp\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177 \u2192 okx_predictions_positions",
31781
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31816
31782
  {},
31817
31783
  async () => {
31818
31784
  const auth = getAuth();
@@ -31827,7 +31793,7 @@ function registerOutcomesTools(server) {
31827
31793
  );
31828
31794
  server.tool(
31829
31795
  "okx_predictions_trades",
31830
- "CAT:[\u9884\u6D4B] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2 Outcomes \u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u67E5\u770B\u5386\u53F2\u6210\u4EA4\u660E\u7EC6\n## \u5173\u952E\u8BCD\uFF1A\u6210\u4EA4\u8BB0\u5F55, trades, \u5386\u53F2\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - marketId: \u5E02\u573AID\uFF08\u53EF\u9009\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF08\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1A\u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_predictions_positions \u2192 \u672C\u5DE5\u5177",
31796
+ "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31831
31797
  {
31832
31798
  marketId: external_exports.string().optional().describe("\u5E02\u573AID"),
31833
31799
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570")
@@ -31849,7 +31815,7 @@ function registerOutcomesTools(server) {
31849
31815
  function registerBotTools(server, auth) {
31850
31816
  server.tool(
31851
31817
  "okx_get_grid_ai_param",
31852
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \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",
31818
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31853
31819
  {
31854
31820
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001BTC-USDT-SWAP"),
31855
31821
  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"),
@@ -31866,7 +31832,7 @@ function registerBotTools(server, auth) {
31866
31832
  );
31867
31833
  server.tool(
31868
31834
  "okx_get_grid_orders_pending",
31869
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \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",
31835
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31870
31836
  {
31871
31837
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
31872
31838
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -31884,7 +31850,7 @@ function registerBotTools(server, auth) {
31884
31850
  );
31885
31851
  server.tool(
31886
31852
  "okx_get_grid_orders_history",
31887
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \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",
31853
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31888
31854
  {
31889
31855
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
31890
31856
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -31902,7 +31868,7 @@ function registerBotTools(server, auth) {
31902
31868
  );
31903
31869
  server.tool(
31904
31870
  "okx_get_grid_sub_orders",
31905
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \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",
31871
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31906
31872
  {
31907
31873
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID"),
31908
31874
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
@@ -31920,7 +31886,7 @@ function registerBotTools(server, auth) {
31920
31886
  );
31921
31887
  server.tool(
31922
31888
  "okx_get_recurring_orders_pending",
31923
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \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",
31889
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31924
31890
  {},
31925
31891
  async () => {
31926
31892
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31934,7 +31900,7 @@ function registerBotTools(server, auth) {
31934
31900
  );
31935
31901
  server.tool(
31936
31902
  "okx_get_recurring_orders_history",
31937
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \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",
31903
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31938
31904
  {},
31939
31905
  async () => {
31940
31906
  if (!auth) return toError(AUTH_REQUIRED);
@@ -31948,7 +31914,7 @@ function registerBotTools(server, auth) {
31948
31914
  );
31949
31915
  server.tool(
31950
31916
  "okx_create_recurring_plan",
31951
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u521B\u5EFA\u5B9A\u6295\u8BA1\u5212\uFF08DCA\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BBE\u7F6E\u5B9A\u671F\u4E70\u5165\u8BA1\u5212\u3001\u81EA\u52A8\u5316\u5B9A\u6295\u7B56\u7565\u3001\u5206\u6279\u5EFA\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u5B9A\u6295, create recurring, DCA, \u5B9A\u6295\u8BA1\u5212, \u81EA\u52A8\u5B9A\u6295\n## \u53C2\u6570\uFF1A\n## - instId: \u5B9A\u6295\u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - currency: \u5B9A\u6295\u5E01\u79CD\u3002\u5FC5\u586B\n## - amount: \u6BCF\u671F\u6295\u8D44\u6570\u91CF\u3002\u5FC5\u586B\n## - period: \u5B9A\u6295\u5468\u671F\u3002daily=\u6BCF\u65E5, weekly=\u6BCF\u5468, monthly=\u6BCF\u6708\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u521B\u5EFA\u81EA\u52A8\u5B9A\u6295\u8BA1\u5212\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u521B\u5EFA\u5B9A\u6295\u8BA1\u5212\u540E\u7CFB\u7EDF\u5C06\u81EA\u52A8\u6267\u884C\u6295\u8D44\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_get_recurring_orders_pending \u67E5\u770B\u72B6\u6001 \u2192 okx_stop_recurring_plan \u505C\u6B62",
31917
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31952
31918
  {
31953
31919
  instId: external_exports.string().describe("\u5B9A\u6295\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
31954
31920
  currency: external_exports.string().describe("\u5B9A\u6295\u8D44\u91D1\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -31967,7 +31933,7 @@ function registerBotTools(server, auth) {
31967
31933
  );
31968
31934
  server.tool(
31969
31935
  "okx_stop_recurring_plan",
31970
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u505C\u6B62\u5B9A\u6295\u8BA1\u5212\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7EC8\u6B62\u8FD0\u884C\u4E2D\u7684\u5B9A\u6295\u8BA1\u5212\u3001\u4E0D\u518D\u7EE7\u7EED\u81EA\u52A8\u5B9A\u6295\n## \u5173\u952E\u8BCD\uFF1A\u505C\u6B62\u5B9A\u6295, stop recurring, \u7EC8\u6B62\u5B9A\u6295, \u53D6\u6D88\u5B9A\u6295\n## \u53C2\u6570\uFF1A\n## - algoId: \u5B9A\u6295\u8BA1\u5212ID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u505C\u6B62\u81EA\u52A8\u5B9A\u6295\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u505C\u6B62\u540E\u4E0D\u518D\u81EA\u52A8\u6295\u8D44\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_recurring_orders_pending \u67E5\u770B\u8FD0\u884C\u4E2D\u8BA1\u5212 \u2192 \u672C\u5DE5\u5177\u505C\u6B62",
31936
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31971
31937
  {
31972
31938
  algoId: external_exports.string().describe("\u5B9A\u6295\u8BA1\u5212ID\u3002\u5FC5\u586B")
31973
31939
  },
@@ -31983,7 +31949,7 @@ function registerBotTools(server, auth) {
31983
31949
  );
31984
31950
  server.tool(
31985
31951
  "okx_get_recurring_sub_orders",
31986
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5B9A\u6295\u8BA1\u5212\u7684\u5B50\u8BA2\u5355\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5B9A\u6295\u8BA1\u5212\u7684\u6BCF\u6B21\u6267\u884C\u8BB0\u5F55\u3001\u68C0\u67E5\u6BCF\u6B21\u6210\u4EA4\u4EF7\u683C\u548C\u6570\u91CF\n## \u5173\u952E\u8BCD\uFF1A\u5B9A\u6295\u5B50\u8BA2\u5355, recurring sub orders, \u5B9A\u6295\u660E\u7EC6, DCA\u8BA2\u5355, \u5B9A\u6295\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - algoId: \u5B9A\u6295\u8BA1\u5212ID\u3002\u5FC5\u586B\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_recurring_orders_pending \u67E5\u8BA1\u5212 \u2192 \u672C\u5DE5\u5177\u67E5\u6BCF\u6B21\u6267\u884C \u2192 \u8BA1\u7B97\u5E73\u5747\u6210\u672C",
31952
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31987
31953
  {
31988
31954
  algoId: external_exports.string().describe("\u5B9A\u6295\u8BA1\u5212ID\u3002\u5FC5\u586B"),
31989
31955
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -32000,7 +31966,7 @@ function registerBotTools(server, auth) {
32000
31966
  );
32001
31967
  server.tool(
32002
31968
  "okx_create_grid_order",
32003
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u521B\u5EFA\u7F51\u683C\u4EA4\u6613\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BBE\u7F6E\u73B0\u8D27\u7F51\u683C/\u5408\u7EA6\u7F51\u683C/\u5929\u5730\u7F51\u683C\u7B56\u7565\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u7F51\u683C, create grid, \u7F51\u683C\u4EA4\u6613, \u73B0\u8D27\u7F51\u683C, \u5408\u7EA6\u7F51\u683C, \u5929\u5730\u7F51\u683C\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002grid=\u73B0\u8D27\u7F51\u683C, contract_grid=\u5408\u7EA6\u7F51\u683C, moon_grid=\u5929\u5730\u7F51\u683C\u3002\u5FC5\u586B\n## - maxPx: \u4EF7\u683C\u4E0A\u9650\u3002\u5FC5\u586B\n## - minPx: \u4EF7\u683C\u4E0B\u9650\u3002\u5FC5\u586B\n## - gridNum: \u7F51\u683C\u6570\u91CF\u3002\u5FC5\u586B\n## - direction: \u5408\u7EA6\u7F51\u683C\u65B9\u5411\u3002long=\u505A\u591A, short=\u505A\u7A7A, neutral=\u4E2D\u6027\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u521B\u5EFA\u7F51\u683C\u7B56\u7565\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u7F51\u683C\u4EA4\u6613\u4F1A\u81EA\u52A8\u4E0B\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_get_grid_orders_pending \u67E5\u770B \u2192 okx_stop_grid_order \u505C\u6B62",
31969
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32004
31970
  {
32005
31971
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
32006
31972
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B\u3002grid=\u73B0\u8D27\u7F51\u683C, contract_grid=\u5408\u7EA6\u7F51\u683C, moon_grid=\u5929\u5730\u7F51\u683C"),
@@ -32023,7 +31989,7 @@ function registerBotTools(server, auth) {
32023
31989
  );
32024
31990
  server.tool(
32025
31991
  "okx_stop_grid_order",
32026
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u505C\u6B62\u7F51\u683C\u4EA4\u6613\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7EC8\u6B62\u8FD0\u884C\u4E2D\u7684\u7F51\u683C\u7B56\u7565\u3001\u6E05\u7A7A\u7F51\u683C\u4ED3\u4F4D\n## \u5173\u952E\u8BCD\uFF1A\u505C\u6B62\u7F51\u683C, stop grid, \u7F51\u683C\u505C\u6B62, \u7EC8\u6B62\u7F51\u683C\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u505C\u6B62\u7F51\u683C\u7B56\u7565\u5E73\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u505C\u6B62\u7F51\u683C\u5C06\u6E05\u7A7A\u6240\u6709\u7F51\u683C\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_grid_orders_pending \u67E5\u770B\u8FD0\u884C\u4E2D \u2192 \u672C\u5DE5\u5177\u505C\u6B62 \u2192 \u786E\u8BA4\u5DF2\u505C\u6B62",
31992
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32027
31993
  {
32028
31994
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B"),
32029
31995
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
@@ -32041,7 +32007,7 @@ function registerBotTools(server, auth) {
32041
32007
  );
32042
32008
  server.tool(
32043
32009
  "okx_close_grid_position",
32044
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u5E73\u4ED3\u7F51\u683C\u7B56\u7565\u7684\u6301\u4ED3\n## \u573A\u666F\uFF1A\u7528\u4E8E\u624B\u52A8\u5E73\u6389\u7F51\u683C\u7B56\u7565\u7684\u5F53\u524D\u6301\u4ED3\u3001\u90E8\u5206\u6216\u5168\u90E8\u5E73\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u7F51\u683C\u5E73\u4ED3, close grid position, \u7F51\u683C\u6301\u4ED3\u5E73\u4ED3\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B\n## - algoOrdType: \u7F51\u683C\u7C7B\u578B\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u5E73\u6389\u7F51\u683C\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5E73\u4ED3\u64CD\u4F5C\u5F71\u54CD\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_grid_positions \u67E5\u770B\u7F51\u683C\u6301\u4ED3 \u2192 \u672C\u5DE5\u5177\u5E73\u4ED3",
32010
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32045
32011
  {
32046
32012
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B"),
32047
32013
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B")
@@ -32058,7 +32024,7 @@ function registerBotTools(server, auth) {
32058
32024
  );
32059
32025
  server.tool(
32060
32026
  "okx_get_grid_positions",
32061
- "CAT:[\u7B56\u7565-\u7F51\u683C] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7F51\u683C\u7B56\u7565\u7684\u6301\u4ED3\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7F51\u683C\u6301\u4ED3\u65B9\u5411\u3001\u6570\u91CF\u548C\u76C8\u4E8F\n## \u5173\u952E\u8BCD\uFF1A\u7F51\u683C\u6301\u4ED3, grid positions, \u7F51\u683C\u4ED3\u4F4D, \u7F51\u683C\u76C8\u4E8F\n## \u53C2\u6570\uFF1A\n## - algoId: \u7F51\u683C\u7B56\u7565ID\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 ~2KB\n## \u5173\u8054\uFF1Aokx_get_grid_orders_pending \u67E5\u770B\u7B56\u7565 \u2192 \u672C\u5DE5\u5177\u770B\u6301\u4ED3 \u2192 \u51B3\u5B9A\u662F\u5426\u5E73\u4ED3",
32027
+ "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32062
32028
  {
32063
32029
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B")
32064
32030
  },
@@ -32078,7 +32044,7 @@ function registerBotTools(server, auth) {
32078
32044
  function registerSpreadTools(server, auth) {
32079
32045
  server.tool(
32080
32046
  "okx_get_spreads",
32081
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \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",
32047
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32082
32048
  {
32083
32049
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USDT_BTC-USDT-SWAP"),
32084
32050
  baseCcy: external_exports.string().optional().describe("\u6807\u7684\u5E01\u79CD\uFF0C\u5982 BTC"),
@@ -32096,7 +32062,7 @@ function registerSpreadTools(server, auth) {
32096
32062
  );
32097
32063
  server.tool(
32098
32064
  "okx_get_spread_ticker",
32099
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \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",
32065
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32100
32066
  {
32101
32067
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USD-SWAP_BTC-USD-260925")
32102
32068
  },
@@ -32115,7 +32081,7 @@ function registerSpreadTools(server, auth) {
32115
32081
  );
32116
32082
  server.tool(
32117
32083
  "okx_get_spread_orderbook",
32118
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \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",
32084
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32119
32085
  {
32120
32086
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
32121
32087
  depth: external_exports.number().int().min(1).max(400).optional().describe("\u6DF1\u5EA6\u6863\u4F4D\uFF0C\u9ED8\u8BA420\uFF0C\u6700\u5927400")
@@ -32138,7 +32104,7 @@ function registerSpreadTools(server, auth) {
32138
32104
  );
32139
32105
  server.tool(
32140
32106
  "okx_get_spread_trades",
32141
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \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",
32107
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32142
32108
  {
32143
32109
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
32144
32110
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -32158,7 +32124,7 @@ function registerSpreadTools(server, auth) {
32158
32124
  );
32159
32125
  server.tool(
32160
32126
  "okx_get_spread_candles",
32161
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \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",
32127
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32162
32128
  {
32163
32129
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
32164
32130
  bar: external_exports.enum(["1m", "5m", "15m", "30m", "1H", "4H", "1D"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
@@ -32185,7 +32151,7 @@ function registerSpreadTools(server, auth) {
32185
32151
  );
32186
32152
  server.tool(
32187
32153
  "okx_place_spread_order",
32188
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u4E0B\u4EF7\u5DEE\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6267\u884C\u4EF7\u5DEE\u5957\u5229\u4EA4\u6613\u3001\u4E0B\u8DE8\u671F\u5957\u5229\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u4E0B\u5355, spread order, \u4EF7\u5DEE\u4EA4\u6613, \u8DE8\u671F\u5957\u5229, \u4EF7\u5DEE\u5957\u5229\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - side: \u4E70\u5356\u65B9\u5411\u3002buy=\u4E70\u5165, sell=\u5356\u51FA\u3002\u5FC5\u586B\n## - ordType: \u8BA2\u5355\u7C7B\u578B\u3002market=\u5E02\u4EF7, limit=\u9650\u4EF7\u3002\u5FC5\u586B\n## - sz: \u6570\u91CF\u3002\u5FC5\u586B\n## - px: \u4EF7\u683C\uFF08\u9650\u4EF7\u5355\u5FC5\u586B\uFF09\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u63D0\u4EA4\u4EF7\u5DEE\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4E0B\u5355\u64CD\u4F5C\u76F4\u63A5\u5F71\u54CD\u4EF7\u5DEE\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_spread_ticker \u770B\u884C\u60C5 \u2192 \u672C\u5DE5\u5177\u4E0B\u5355 \u2192 okx_get_spread_orders \u67E5\u8BA2\u5355",
32154
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32189
32155
  {
32190
32156
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
32191
32157
  side: external_exports.enum(["buy", "sell"]).describe("\u4E70\u5356\u65B9\u5411\u3002buy=\u4E70\u5165, sell=\u5356\u51FA"),
@@ -32207,7 +32173,7 @@ function registerSpreadTools(server, auth) {
32207
32173
  );
32208
32174
  server.tool(
32209
32175
  "okx_cancel_spread_order",
32210
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u64A4\u9500\u4EF7\u5DEE\u5408\u7EA6\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u672A\u6210\u4EA4\u7684\u4EF7\u5DEE\u6302\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u64A4\u5355, cancel spread, \u53D6\u6D88\u4EF7\u5DEE, \u64A4\u5355\u4EF7\u5DEE\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - ordId: \u8BA2\u5355ID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u64A4\u9500\u4EF7\u5DEE\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u64A4\u5355\u64CD\u4F5C\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u770B\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u64A4\u9500 \u2192 \u786E\u8BA4\u64A4\u9500\u6210\u529F",
32176
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32211
32177
  {
32212
32178
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
32213
32179
  ordId: external_exports.string().describe("\u8BA2\u5355ID\u3002\u5FC5\u586B")
@@ -32224,7 +32190,7 @@ function registerSpreadTools(server, auth) {
32224
32190
  );
32225
32191
  server.tool(
32226
32192
  "okx_get_spread_orders",
32227
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5F53\u524D\u6302\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u5408\u7EA6\u7684\u672A\u6210\u4EA4\u8BA2\u5355\u5217\u8868\u3001\u76D1\u63A7\u6302\u5355\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6302\u5355, spread orders, \u4EF7\u5DEE\u59D4\u6258, \u4EF7\u5DEE\u672A\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\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 ~2KB\n## \u5173\u8054\uFF1Aokx_place_spread_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u770B \u2192 okx_cancel_spread_order \u64A4\u9500",
32193
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32228
32194
  {
32229
32195
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
32230
32196
  },
@@ -32240,7 +32206,7 @@ function registerSpreadTools(server, auth) {
32240
32206
  );
32241
32207
  server.tool(
32242
32208
  "okx_amend_spread_order",
32243
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u4EF7\u5DEE\u5408\u7EA6\u672A\u6210\u4EA4\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u4EF7\u5DEE\u6302\u5355\u7684\u4EF7\u683C\u6216\u6570\u91CF\n## \u5173\u952E\u8BCD\uFF1A\u4FEE\u6539\u4EF7\u5DEE, amend spread, \u4EF7\u5DEE\u6539\u5355, \u4EF7\u5DEE\u6539\u4EF7\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - ordId: \u8BA2\u5355ID\u3002\u5FC5\u586B\n## - newSz: \u65B0\u6570\u91CF\u3002\u53EF\u9009\n## - newPx: \u65B0\u4EF7\u683C\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u4EF7\u5DEE\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u8BA2\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u770B\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 \u786E\u8BA4\u4FEE\u6539\u7ED3\u679C",
32209
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32244
32210
  {
32245
32211
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
32246
32212
  ordId: external_exports.string().describe("\u8BA2\u5355ID\u3002\u5FC5\u586B"),
@@ -32262,7 +32228,7 @@ function registerSpreadTools(server, auth) {
32262
32228
  );
32263
32229
  server.tool(
32264
32230
  "okx_get_spread_orders_history",
32265
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5386\u53F2\u8BA2\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5DF2\u5B8C\u6210\u7684\u5386\u53F2\u4EF7\u5DEE\u8BA2\u5355\u3001\u590D\u76D8\u4EF7\u5DEE\u4EA4\u6613\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5386\u53F2\u8BA2\u5355, spread orders history, \u4EF7\u5DEE\u6210\u4EA4\u5386\u53F2\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\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 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u5F53\u524D\u6302\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u590D\u76D8\u4EA4\u6613",
32231
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32266
32232
  {
32267
32233
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
32268
32234
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -32279,7 +32245,7 @@ function registerSpreadTools(server, auth) {
32279
32245
  );
32280
32246
  server.tool(
32281
32247
  "okx_get_spread_fills",
32282
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u6210\u4EA4\u660E\u7EC6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u8BA2\u5355\u7684\u9010\u7B14\u6210\u4EA4\u8BB0\u5F55\u3001\u6838\u5BF9\u6210\u4EA4\u4EF7\u683C\u548C\u6570\u91CF\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6210\u4EA4, spread fills, \u4EF7\u5DEE\u6210\u4EA4\u660E\u7EC6, \u4EF7\u5DEE\u9010\u7B14\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\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 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u8BA2\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u6210\u4EA4 \u2192 \u6838\u7B97\u6210\u672C",
32248
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32283
32249
  {
32284
32250
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
32285
32251
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -32296,7 +32262,7 @@ function registerSpreadTools(server, auth) {
32296
32262
  );
32297
32263
  server.tool(
32298
32264
  "okx_get_spread_books",
32299
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u5168\u6DF1\u5EA6\u8BA2\u5355\u7C3F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u4EF7\u5DEE\u5E02\u573A\u6D41\u52A8\u6027\u5168\u8C8C\u3001\u53D1\u73B0\u9690\u85CF\u7684\u5927\u989D\u6302\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5168\u6DF1\u5EA6, spread books, \u4EF7\u5DEE\u5B8C\u6574\u6DF1\u5EA6, \u4EF7\u5DEE\u6240\u6709\u6863\u4F4D\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\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\n## \u5173\u8054\uFF1Aokx_get_spread_orderbook \u770B\u6709\u9650\u6DF1\u5EA6 \u2192 \u672C\u5DE5\u5177\u770B\u5168\u6DF1\u5EA6 \u2192 \u5206\u6790\u6D41\u52A8\u6027",
32265
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32300
32266
  {
32301
32267
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B")
32302
32268
  },
@@ -32318,7 +32284,7 @@ function registerSpreadTools(server, auth) {
32318
32284
  );
32319
32285
  server.tool(
32320
32286
  "okx_get_spread_orders_pending",
32321
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5F53\u524D\u6302\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u5408\u7EA6\u7684\u672A\u6210\u4EA4\u8BA2\u5355\u5217\u8868\u3001\u76D1\u63A7\u6302\u5355\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6302\u5355, spread pending, \u4EF7\u5DEE\u59D4\u6258, \u4EF7\u5DEE\u672A\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\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 ~2KB\n## \u5173\u8054\uFF1Aokx_place_spread_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u770B \u2192 okx_cancel_spread_order \u64A4\u9500",
32287
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32322
32288
  {
32323
32289
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
32324
32290
  },
@@ -32334,7 +32300,7 @@ function registerSpreadTools(server, auth) {
32334
32300
  );
32335
32301
  server.tool(
32336
32302
  "okx_get_spread_orders_history_archive",
32337
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5F52\u6863\u5386\u53F2\u8BA2\u5355\uFF083\u4E2A\u6708\u524D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u957F\u671F\u590D\u76D8\u4EF7\u5DEE\u4EA4\u6613\u3001\u5E74\u5EA6\u4EA4\u6613\u7EDF\u8BA1\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5F52\u6863, spread archive, \u4EF7\u5DEE\u5386\u53F2\u5F52\u6863, \u4EF7\u5DEE\u5B58\u6863\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_orders_history \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5F52\u6863 \u2192 \u5B8C\u6574\u590D\u76D8",
32303
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32338
32304
  {
32339
32305
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
32340
32306
  },
@@ -32350,7 +32316,7 @@ function registerSpreadTools(server, auth) {
32350
32316
  );
32351
32317
  server.tool(
32352
32318
  "okx_get_spread_trades_public",
32353
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u516C\u5F00\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u65E0\u9700\u9274\u6743\u67E5\u770B\u4EF7\u5DEE\u5E02\u573A\u7684\u6210\u4EA4\u60C5\u51B5\u3001\u5206\u6790\u4EF7\u683C\u8D70\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u516C\u5F00\u6210\u4EA4, spread public trades, \u516C\u5F00\u6210\u4EA4, \u4EF7\u5DEE\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\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_trades \u770B\u5E26\u8BE6\u60C5\u6210\u4EA4 \u2192 \u672C\u5DE5\u5177\u516C\u5F00\u67E5\u8BE2",
32319
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32354
32320
  {
32355
32321
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B")
32356
32322
  },
@@ -32369,7 +32335,7 @@ function registerSpreadTools(server, auth) {
32369
32335
  );
32370
32336
  server.tool(
32371
32337
  "okx_get_spread_trades_fills",
32372
- "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u7684\u6210\u4EA4\u660E\u7EC6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u8BA2\u5355\u7684\u9010\u7B14\u6210\u4EA4\u8BB0\u5F55\u3001\u6838\u5BF9\u6210\u4EA4\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6210\u4EA4\u660E\u7EC6, spread fills, \u4EF7\u5DEE\u9010\u7B14, \u4EF7\u5DEE\u6210\u4EA4\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u8BA2\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u6210\u4EA4 \u2192 \u6838\u7B97\u6210\u672C",
32338
+ "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32373
32339
  {
32374
32340
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
32375
32341
  },
@@ -32393,7 +32359,7 @@ function registerSpreadTools(server, auth) {
32393
32359
  function registerCopyTools(server, auth) {
32394
32360
  server.tool(
32395
32361
  "okx_get_lead_trader_positions",
32396
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32362
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32397
32363
  {
32398
32364
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\uFF0C\u4ECEOKX App\u300C\u8DDF\u5355\u300D\u9875\u9762\u83B7\u53D6"),
32399
32365
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
@@ -32409,7 +32375,7 @@ function registerCopyTools(server, auth) {
32409
32375
  );
32410
32376
  server.tool(
32411
32377
  "okx_get_lead_trader_history",
32412
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32378
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32413
32379
  {
32414
32380
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
32415
32381
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -32426,7 +32392,7 @@ function registerCopyTools(server, auth) {
32426
32392
  );
32427
32393
  server.tool(
32428
32394
  "okx_get_lead_trader_stats",
32429
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32395
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32430
32396
  {
32431
32397
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
32432
32398
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -32443,7 +32409,7 @@ function registerCopyTools(server, auth) {
32443
32409
  );
32444
32410
  server.tool(
32445
32411
  "okx_get_my_lead_positions",
32446
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32412
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32447
32413
  {
32448
32414
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
32449
32415
  },
@@ -32459,7 +32425,7 @@ function registerCopyTools(server, auth) {
32459
32425
  );
32460
32426
  server.tool(
32461
32427
  "okx_get_my_lead_history",
32462
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32428
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32463
32429
  {
32464
32430
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
32465
32431
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -32476,7 +32442,7 @@ function registerCopyTools(server, auth) {
32476
32442
  );
32477
32443
  server.tool(
32478
32444
  "okx_get_copy_instruments",
32479
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32445
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32480
32446
  {
32481
32447
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
32482
32448
  },
@@ -32492,7 +32458,7 @@ function registerCopyTools(server, auth) {
32492
32458
  );
32493
32459
  server.tool(
32494
32460
  "okx_get_profit_sharing_total",
32495
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32461
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32496
32462
  {
32497
32463
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
32498
32464
  },
@@ -32508,7 +32474,7 @@ function registerCopyTools(server, auth) {
32508
32474
  );
32509
32475
  server.tool(
32510
32476
  "okx_get_profit_sharing_details",
32511
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \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",
32477
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32512
32478
  {
32513
32479
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
32514
32480
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -32525,7 +32491,7 @@ function registerCopyTools(server, auth) {
32525
32491
  );
32526
32492
  server.tool(
32527
32493
  "okx_copy_trader",
32528
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u8DDF\u5355\uFF08\u8DDF\u5355\u6307\u5B9A\u5E26\u5355\u5458\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u59CB\u8DDF\u5355\u67D0\u4E2A\u5E26\u5355\u5458\u3001\u8BBE\u7F6E\u8DDF\u5355\u53C2\u6570\n## \u5173\u952E\u8BCD\uFF1A\u8DDF\u5355, copy trade, \u5F00\u59CB\u8DDF\u5355, \u8BBE\u7F6E\u8DDF\u5355\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272\u3002\u5FC5\u586B\n## - amount: \u8DDF\u5355\u6570\u91CF\u3002\u5FC5\u586B\n## - amountType: \u6570\u91CF\u7C7B\u578B\u30021=\u56FA\u5B9A\u5F20\u6570, 2=\u56FA\u5B9A\u91D1\u989D, 3=\u6BD4\u4F8B\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u5F00\u59CB\u8DDF\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F00\u59CB\u8DDF\u5355\u540E\u7CFB\u7EDF\u5C06\u81EA\u52A8\u590D\u5236\u5E26\u5355\u5458\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_lead_trader_stats \u8BC4\u4F30\u5E26\u5355\u5458 \u2192 \u672C\u5DE5\u5177\u8DDF\u5355 \u2192 okx_get_copy_settings \u67E5\u770B\u8BBE\u7F6E",
32494
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32529
32495
  {
32530
32496
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B"),
32531
32497
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272"),
@@ -32546,7 +32512,7 @@ function registerCopyTools(server, auth) {
32546
32512
  );
32547
32513
  server.tool(
32548
32514
  "okx_stop_copy_trader",
32549
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u505C\u6B62\u8DDF\u5355\uFF08\u5173\u95ED\u5B50\u6301\u4ED3\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u505C\u6B62\u8DDF\u968F\u67D0\u5E26\u5355\u5458\u7684\u4EA4\u6613\u3001\u5E73\u6389\u6240\u6709\u8DDF\u968F\u4ED3\u4F4D\n## \u5173\u952E\u8BCD\uFF1A\u505C\u6B62\u8DDF\u5355, stop copy, \u5173\u95ED\u8DDF\u5355, \u53D6\u6D88\u8DDF\u5355\n## \u53C2\u6570\uFF1A\n## - subPosId: \u5B50\u6301\u4ED3ID\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u5E73\u6389\u8DDF\u5355\u4ED3\u4F4D\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5E73\u4ED3\u64CD\u4F5C\u5F71\u54CD\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u505C\u6B62\u8DDF\u5355 \u2192 okx_get_my_lead_history \u786E\u8BA4\u7ED3\u679C",
32515
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32550
32516
  {
32551
32517
  subPosId: external_exports.string().optional().describe("\u5B50\u6301\u4ED3ID")
32552
32518
  },
@@ -32564,7 +32530,7 @@ function registerCopyTools(server, auth) {
32564
32530
  );
32565
32531
  server.tool(
32566
32532
  "okx_get_copy_settings",
32567
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F53\u524D\u8DDF\u5355\u8BBE\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5DF2\u8BBE\u7F6E\u7684\u8DDF\u5355\u89C4\u5219\u3001\u8DDF\u5355\u6570\u91CF\u548C\u7C7B\u578B\n## \u5173\u952E\u8BCD\uFF1A\u8DDF\u5355\u8BBE\u7F6E, copy settings, \u8DDF\u5355\u89C4\u5219, \u8DDF\u5355\u914D\u7F6E\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\u8BBE\u7F6E \u2192 okx_set_copy_settings \u4FEE\u6539 \u2192 \u7BA1\u7406\u8DDF\u5355\u7B56\u7565",
32533
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32568
32534
  {},
32569
32535
  async () => {
32570
32536
  if (!auth) return toError(AUTH_REQUIRED);
@@ -32578,7 +32544,7 @@ function registerCopyTools(server, auth) {
32578
32544
  );
32579
32545
  server.tool(
32580
32546
  "okx_set_copy_settings",
32581
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u8DDF\u5355\u8BBE\u7F6E\uFF08\u8DDF\u5355\u6570\u91CF/\u6BD4\u4F8B\u7B49\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u5DF2\u6709\u8DDF\u5355\u7684\u53C2\u6570\u3001\u4FEE\u6539\u8DDF\u5355\u91D1\u989D\u6216\u6BD4\u4F8B\n## \u5173\u952E\u8BCD\uFF1A\u4FEE\u6539\u8DDF\u5355, update copy settings, \u8C03\u6574\u8DDF\u5355, \u8DDF\u5355\u53C2\u6570\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u53EF\u9009\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES\u3002\u53EF\u9009\n## - amount: \u8DDF\u5355\u6570\u91CF\u3002\u53EF\u9009\n## - amountType: \u6570\u91CF\u7C7B\u578B\u30021=\u56FA\u5B9A\u5F20\u6570, 2=\u56FA\u5B9A\u91D1\u989D, 3=\u6BD4\u4F8B\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u4FEE\u6539\u8DDF\u5355\u8BBE\u7F6E\u5F71\u54CD\u540E\u7EED\u8DDF\u5355\uFF0C\u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u8DDF\u5355\u53C2\u6570\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_copy_settings \u67E5\u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 \u786E\u8BA4\u53D8\u66F4\u751F\u6548",
32547
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32582
32548
  {
32583
32549
  uniqueCode: external_exports.string().optional().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
32584
32550
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -32602,7 +32568,7 @@ function registerCopyTools(server, auth) {
32602
32568
  );
32603
32569
  server.tool(
32604
32570
  "okx_get_public_lead_traders",
32605
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u516C\u5F00\u67E5\u8BE2\u5E26\u5355\u5458\u6392\u884C\u699C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D1\u73B0\u4F18\u79C0\u5E26\u5355\u5458\u3001\u8BC4\u4F30\u5E26\u5355\u5458\u7EFC\u5408\u8868\u73B0\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u5458\u6392\u884C, public lead traders, \u5E26\u5355\u6392\u884C\u699C, \u8DDF\u5355\u63A8\u8350\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6392\u884C\u699C \u2192 okx_get_lead_trader_stats \u770B\u8BE6\u60C5 \u2192 \u9009\u62E9\u8DDF\u5355",
32571
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32606
32572
  {},
32607
32573
  async () => {
32608
32574
  try {
@@ -32615,7 +32581,7 @@ function registerCopyTools(server, auth) {
32615
32581
  );
32616
32582
  server.tool(
32617
32583
  "okx_get_public_copy_config",
32618
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u516C\u5F00\u67E5\u8BE2\u8DDF\u5355\u7CFB\u7EDF\u914D\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E86\u89E3\u8DDF\u5355\u89C4\u5219\u3001\u6700\u4F4E\u8DDF\u5355\u91D1\u989D\u3001\u6700\u5927\u8DDF\u5355\u6BD4\u4F8B\u7B49\n## \u5173\u952E\u8BCD\uFF1A\u8DDF\u5355\u914D\u7F6E, copy config, \u8DDF\u5355\u89C4\u5219, \u8DDF\u5355\u9650\u5236\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\u67E5\u770B\u89C4\u5219 \u2192 \u8BBE\u7F6E\u8DDF\u5355\u53C2\u6570",
32584
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32619
32585
  {},
32620
32586
  async () => {
32621
32587
  try {
@@ -32628,7 +32594,7 @@ function registerCopyTools(server, auth) {
32628
32594
  );
32629
32595
  server.tool(
32630
32596
  "okx_get_public_lead_trader_pnl",
32631
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u516C\u5F00\u67E5\u8BE2\u5E26\u5355\u5458\u6536\u76CA\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u5E26\u5355\u5458\u7684\u5386\u53F2\u6536\u76CA\u8868\u73B0\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u6536\u76CA, lead trader pnl, \u8DDF\u5355\u6536\u76CA, \u5E26\u5355\u76C8\u5229\u7387\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B\n## - lastDays: \u7EDF\u8BA1\u5468\u671F\uFF08\u5929\uFF09\uFF1A7/30/90/180\u3002\u5FC5\u586B\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\u5F31 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u6536\u76CA \u2192 okx_get_lead_trader_stats \u770B\u7EDF\u8BA1 \u2192 \u51B3\u5B9A\u662F\u5426\u8DDF\u5355",
32597
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32632
32598
  {
32633
32599
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B"),
32634
32600
  lastDays: external_exports.enum(["7", "30", "90", "180"]).describe("\u7EDF\u8BA1\u5468\u671F\uFF08\u5929\uFF09\uFF1A7/30/90/180")
@@ -32644,7 +32610,7 @@ function registerCopyTools(server, auth) {
32644
32610
  );
32645
32611
  server.tool(
32646
32612
  "okx_get_copy_traders",
32647
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8DDF\u5355\u6211\u7684\u4EA4\u6613\u5458\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6709\u54EA\u4E9B\u4EA4\u6613\u5458\u5728\u8DDF\u5355\u81EA\u5DF1\u3001\u7BA1\u7406\u8DDF\u5355\u5173\u7CFB\n## \u5173\u952E\u8BCD\uFF1A\u6211\u7684\u8DDF\u5355\u8005, copy traders, \u8DDF\u5355\u5458, \u7C89\u4E1D\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u8DDF\u5355\u8005 \u2192 \u7BA1\u7406\u8DDF\u5355\u5173\u7CFB",
32613
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32648
32614
  {},
32649
32615
  async () => {
32650
32616
  if (!auth) return toError(AUTH_REQUIRED);
@@ -32658,7 +32624,7 @@ function registerCopyTools(server, auth) {
32658
32624
  );
32659
32625
  server.tool(
32660
32626
  "okx_first_copy_settings",
32661
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u9996\u6B21\u8BBE\u7F6E\u8DDF\u5355\uFF08\u521D\u59CB\u914D\u7F6E\u8DDF\u5355\u53C2\u6570\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u9996\u6B21\u5F00\u59CB\u8DDF\u5355\u65F6\u8BBE\u7F6E\u5168\u90E8\u53C2\u6570\n## \u5173\u952E\u8BCD\uFF1A\u9996\u6B21\u8DDF\u5355, first copy, \u521D\u6B21\u8DDF\u5355, \u8DDF\u5355\u521D\u59CB\u5316\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES\u3002\u5FC5\u586B\n## - amount: \u8DDF\u5355\u6570\u91CF\u3002\u5FC5\u586B\n## - amountType: \u6570\u91CF\u7C7B\u578B\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u5F00\u59CB\u8DDF\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u9996\u6B21\u8DDF\u5355\u8BBE\u7F6E\u540E\u5C06\u81EA\u52A8\u590D\u5236\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_lead_trader_stats \u8BC4\u4F30 \u2192 \u672C\u5DE5\u5177\u9996\u6B21\u8DDF\u5355 \u2192 okx_get_copy_settings \u786E\u8BA4",
32627
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32662
32628
  {
32663
32629
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B"),
32664
32630
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272"),
@@ -32679,7 +32645,7 @@ function registerCopyTools(server, auth) {
32679
32645
  );
32680
32646
  server.tool(
32681
32647
  "okx_get_unrealized_profit_sharing",
32682
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5E26\u5355\u672A\u5B9E\u73B0\u7684\u5206\u6210\u91D1\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u6301\u4ED3\u4E2D\u5C1A\u672A\u7ED3\u7B97\u7684\u6F5C\u5728\u5206\u6210\u6536\u5165\n## \u5173\u952E\u8BCD\uFF1A\u672A\u5B9E\u73B0\u5206\u6210, unrealized profit, \u5F85\u7ED3\u7B97\u5206\u6210, \u6301\u4ED3\u5206\u6210\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\u5F31 ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u672A\u5B9E\u73B0\u5206\u6210 \u2192 okx_get_profit_sharing_total \u770B\u5DF2\u5B9E\u73B0\u5206\u6210",
32648
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32683
32649
  {},
32684
32650
  async () => {
32685
32651
  if (!auth) return toError(AUTH_REQUIRED);
@@ -32693,7 +32659,7 @@ function registerCopyTools(server, auth) {
32693
32659
  );
32694
32660
  server.tool(
32695
32661
  "okx_get_total_unrealized_profit_sharing",
32696
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5E26\u5355\u7D2F\u8BA1\u672A\u5B9E\u73B0\u5206\u6210\u603B\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6240\u6709\u5E26\u5355\u7684\u7D2F\u8BA1\u6F5C\u5728\u5206\u6210\u6536\u5165\n## \u5173\u952E\u8BCD\uFF1A\u7D2F\u8BA1\u672A\u5B9E\u73B0, total unrealized, \u672A\u5B9E\u73B0\u603B\u989D, \u6F5C\u5728\u5206\u6210\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\u5F31 ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u7D2F\u8BA1\u672A\u5B9E\u73B0 \u2192 okx_get_unrealized_profit_sharing \u770B\u660E\u7EC6",
32662
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32697
32663
  {},
32698
32664
  async () => {
32699
32665
  if (!auth) return toError(AUTH_REQUIRED);
@@ -32707,7 +32673,7 @@ function registerCopyTools(server, auth) {
32707
32673
  );
32708
32674
  server.tool(
32709
32675
  "okx_amend_profit_sharing_ratio",
32710
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u5E26\u5355\u5206\u6210\u6BD4\u4F8B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u8DDF\u5355\u8005\u7684\u76C8\u5229\u5206\u6210\u6BD4\u4F8B\n## \u5173\u952E\u8BCD\uFF1A\u4FEE\u6539\u5206\u6210, profit ratio, \u5206\u6210\u6BD4\u4F8B, \u8C03\u6574\u5206\u6210\n## \u53C2\u6570\uFF1A\n## - profitSharingRatio: \u5206\u6210\u6BD4\u4F8B\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u5206\u6210\u6BD4\u4F8B\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u5206\u6210\u6BD4\u4F8B\u5F71\u54CD\u6536\u5165\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_profit_sharing_total \u770B\u5F53\u524D\u5206\u6210 \u2192 \u672C\u5DE5\u5177\u4FEE\u6539\u6BD4\u4F8B",
32676
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32711
32677
  {
32712
32678
  profitSharingRatio: external_exports.string().describe("\u5206\u6210\u6BD4\u4F8B\u3002\u5FC5\u586B")
32713
32679
  },
@@ -32723,7 +32689,7 @@ function registerCopyTools(server, auth) {
32723
32689
  );
32724
32690
  server.tool(
32725
32691
  "okx_amend_copy_settings",
32726
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u4FEE\u6539\u8DDF\u5355\u8BBE\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u5DF2\u6709\u8DDF\u5355\u7684\u53C2\u6570\u3001\u66F4\u65B0\u8DDF\u5355\u6570\u91CF\u6216\u7C7B\u578B\n## \u5173\u952E\u8BCD\uFF1A\u4FEE\u6539\u8DDF\u5355, amend copy, \u8DDF\u5355\u8C03\u6574, \u8DDF\u5355\u53C2\u6570\u4FEE\u6539\n## \u53C2\u6570\uFF1A\n## - subPosId: \u5B50\u6301\u4ED3ID\u3002\u5FC5\u586B\n## - amount: \u65B0\u8DDF\u5355\u6570\u91CF\u3002\u53EF\u9009\n## - amountType: \u65B0\u6570\u91CF\u7C7B\u578B\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u8DDF\u5355\u8BBE\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u8DDF\u5355\u53C2\u6570\u5F71\u54CD\u540E\u7EED\u8DDF\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_copy_settings \u67E5\u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u4FEE\u6539 \u2192 \u786E\u8BA4\u53D8\u66F4",
32692
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32727
32693
  {
32728
32694
  subPosId: external_exports.string().describe("\u5B50\u6301\u4ED3ID\u3002\u5FC5\u586B"),
32729
32695
  amount: external_exports.string().optional().describe("\u65B0\u8DDF\u5355\u6570\u91CF"),
@@ -32744,7 +32710,7 @@ function registerCopyTools(server, auth) {
32744
32710
  );
32745
32711
  server.tool(
32746
32712
  "okx_get_public_preference_currency",
32747
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u516C\u5F00\u67E5\u8BE2\u5E26\u5355\u5458\u504F\u597D\u7684\u7ED3\u7B97\u5E01\u79CD\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5E26\u5355\u5458\u652F\u6301\u7684\u8DDF\u5355\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u5E26\u5355\u5E01\u79CD, preference currency, \u8DDF\u5355\u5E01\u79CD, \u7ED3\u7B97\u5E01\u79CD\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B\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 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5E01\u79CD\u504F\u597D \u2192 okx_get_lead_trader_stats \u67E5\u7EE9\u6548 \u2192 \u51B3\u5B9A\u8DDF\u5355",
32713
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32748
32714
  {
32749
32715
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B")
32750
32716
  },
@@ -32759,7 +32725,7 @@ function registerCopyTools(server, auth) {
32759
32725
  );
32760
32726
  server.tool(
32761
32727
  "okx_stop_copy_trading",
32762
- "CAT:[\u7B56\u7565-\u8DDF\u5355] | ## \u529F\u80FD\uFF1A\u505C\u6B62\u8DDF\u5355/\u505C\u6B62\u5E26\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u505C\u6B62\u5F53\u524D\u7684\u8DDF\u5355\u5173\u7CFB\u6216\u7EC8\u6B62\u5E26\u5355\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u505C\u6B62\u8DDF\u5355\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u505C\u6B62\u8DDF\u5355\u5F71\u54CD\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_copy_settings \u67E5\u770B\u8BBE\u7F6E \u2192 \u672C\u5DE5\u5177\u505C\u6B62",
32728
+ "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32763
32729
  {},
32764
32730
  async () => {
32765
32731
  if (!auth) return toError(AUTH_REQUIRED);
@@ -32777,7 +32743,7 @@ function registerCopyTools(server, auth) {
32777
32743
  function registerSignalTools(server, auth) {
32778
32744
  server.tool(
32779
32745
  "okx_get_signal_bots_pending",
32780
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \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",
32746
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32781
32747
  {
32782
32748
  algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
32783
32749
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
@@ -32794,7 +32760,7 @@ function registerSignalTools(server, auth) {
32794
32760
  );
32795
32761
  server.tool(
32796
32762
  "okx_get_signal_bots_history",
32797
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \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",
32763
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32798
32764
  {
32799
32765
  algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID"),
32800
32766
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -32812,7 +32778,7 @@ function registerSignalTools(server, auth) {
32812
32778
  );
32813
32779
  server.tool(
32814
32780
  "okx_get_signal_positions",
32815
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \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",
32781
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32816
32782
  {
32817
32783
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_pending \u83B7\u53D6\uFF09")
32818
32784
  },
@@ -32828,7 +32794,7 @@ function registerSignalTools(server, auth) {
32828
32794
  );
32829
32795
  server.tool(
32830
32796
  "okx_get_signal_positions_history",
32831
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \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",
32797
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32832
32798
  {
32833
32799
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_history \u83B7\u53D6\uFF09"),
32834
32800
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -32845,7 +32811,7 @@ function registerSignalTools(server, auth) {
32845
32811
  );
32846
32812
  server.tool(
32847
32813
  "okx_get_signal_sub_orders",
32848
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \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",
32814
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32849
32815
  {
32850
32816
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
32851
32817
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -32862,7 +32828,7 @@ function registerSignalTools(server, auth) {
32862
32828
  );
32863
32829
  server.tool(
32864
32830
  "okx_get_signal_event_history",
32865
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \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",
32831
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32866
32832
  {
32867
32833
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
32868
32834
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
@@ -32879,7 +32845,7 @@ function registerSignalTools(server, auth) {
32879
32845
  );
32880
32846
  server.tool(
32881
32847
  "okx_create_signal_bot",
32882
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \u529F\u80FD\uFF1A\u521B\u5EFA\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA2\u9605\u5916\u90E8\u4FE1\u53F7\u6E90\u3001\u81EA\u52A8\u8DDF\u968F\u4FE1\u53F7\u5F00\u5E73\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u4FE1\u53F7, create signal, \u4FE1\u53F7\u673A\u5668\u4EBA, \u4FE1\u53F7\u4EA4\u6613\n## \u53C2\u6570\uFF1A\n## - channel: \u4FE1\u53F7\u6E20\u9053\u3002\u5FC5\u586B\n## - signalName: \u4FE1\u53F7\u540D\u79F0\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u521B\u5EFA\u4FE1\u53F7\u673A\u5668\u4EBA\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FE1\u53F7\u673A\u5668\u4EBA\u4F1A\u81EA\u52A8\u6267\u884C\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_get_signal_bots_pending \u67E5\u770B\u72B6\u6001 \u2192 okx_stop_signal_bot \u505C\u6B62",
32848
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32883
32849
  {
32884
32850
  channel: external_exports.string().describe("\u4FE1\u53F7\u6E20\u9053\u3002\u5FC5\u586B"),
32885
32851
  signalName: external_exports.string().describe("\u4FE1\u53F7\u540D\u79F0\u3002\u5FC5\u586B")
@@ -32896,7 +32862,7 @@ function registerSignalTools(server, auth) {
32896
32862
  );
32897
32863
  server.tool(
32898
32864
  "okx_stop_signal_bot",
32899
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \u529F\u80FD\uFF1A\u505C\u6B62\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7EC8\u6B62\u8FD0\u884C\u4E2D\u7684\u4FE1\u53F7\u7B56\u7565\u3001\u5E73\u6389\u6240\u6709\u4FE1\u53F7\u6301\u4ED3\n## \u5173\u952E\u8BCD\uFF1A\u505C\u6B62\u4FE1\u53F7, stop signal, \u4FE1\u53F7\u505C\u6B62, \u5173\u95ED\u4FE1\u53F7\u673A\u5668\u4EBA\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u505C\u6B62\u4FE1\u53F7\u5E76\u5E73\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u505C\u6B62\u4FE1\u53F7\u4F1A\u5E73\u6389\u6240\u6709\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_signal_bots_pending \u67E5\u770B\u8FD0\u884C\u4E2D \u2192 \u672C\u5DE5\u5177\u505C\u6B62",
32865
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32900
32866
  {
32901
32867
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B")
32902
32868
  },
@@ -32912,7 +32878,7 @@ function registerSignalTools(server, auth) {
32912
32878
  );
32913
32879
  server.tool(
32914
32880
  "okx_get_signal_orders",
32915
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u8BA2\u5355\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4FE1\u53F7\u7B56\u7565\u7684\u89E6\u53D1\u8BA2\u5355\u5217\u8868\u548C\u6210\u4EA4\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u8BA2\u5355, signal orders, \u4FE1\u53F7\u59D4\u6258, \u4FE1\u53F7\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - algoId: \u4FE1\u53F7\u673A\u5668\u4EBAID\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_signal_bots_pending \u67E5\u770B\u673A\u5668\u4EBA \u2192 \u672C\u5DE5\u5177\u67E5\u8BA2\u5355 \u2192 \u5206\u6790\u8868\u73B0",
32881
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32916
32882
  {
32917
32883
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B")
32918
32884
  },
@@ -32928,7 +32894,7 @@ function registerSignalTools(server, auth) {
32928
32894
  );
32929
32895
  server.tool(
32930
32896
  "okx_get_signal_subscriptions",
32931
- "CAT:[\u7B56\u7565-\u4FE1\u53F7] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5DF2\u8BA2\u9605\u7684\u4FE1\u53F7\u6E90\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5F53\u524D\u8BA2\u9605\u4E86\u54EA\u4E9B\u4FE1\u53F7\u3001\u4FE1\u53F7\u6E90\u4FE1\u606F\u548C\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u4FE1\u53F7\u8BA2\u9605, signal subscriptions, \u4FE1\u53F7\u6E90, \u8BA2\u9605\u5217\u8868\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\u5DF2\u8BA2\u9605\u4FE1\u53F7 \u2192 okx_create_signal_bot \u521B\u5EFA\u65B0\u7684\u4FE1\u53F7\u673A\u5668\u4EBA",
32897
+ "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32932
32898
  {},
32933
32899
  async () => {
32934
32900
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33056,7 +33022,7 @@ function registerRfqTools(server, auth) {
33056
33022
  );
33057
33023
  server.tool(
33058
33024
  "okx_get_rfq_counterparties",
33059
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u83B7\u53D6RFQ\u5BF9\u624B\u65B9\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u53EF\u8BE2\u4EF7\u7684\u505A\u5E02\u5546\u548C\u5BF9\u624B\u65B9\n## \u5173\u952E\u8BCD\uFF1ARFQ\u5BF9\u624B\u65B9, counterparties, \u62A5\u4EF7\u5BF9\u624B, \u8BE2\u4EF7\u5BF9\u624B\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5BF9\u624B\u65B9 \u2192 okx_create_rfq \u53D1\u8D77\u8BE2\u4EF7",
33025
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33060
33026
  {},
33061
33027
  async () => {
33062
33028
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33070,7 +33036,7 @@ function registerRfqTools(server, auth) {
33070
33036
  );
33071
33037
  server.tool(
33072
33038
  "okx_cancel_rfq",
33073
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u53D6\u6D88RFQ\u62A5\u4EF7\u8BF7\u6C42\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u5DF2\u53D1\u9001\u4F46\u672A\u6536\u5230\u62A5\u4EF7\u7684\u8BE2\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u53D6\u6D88\u8BE2\u4EF7, cancel rfq, \u64A4\u9500\u8BE2\u4EF7\n## \u53C2\u6570\uFF1A\n## - rfqId: RFQ ID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u53D6\u6D88\u8BE2\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u53D6\u6D88\u8BE2\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_rfqs \u67E5\u770B\u8BE2\u4EF7 \u2192 \u672C\u5DE5\u5177\u53D6\u6D88 \u2192 \u91CD\u65B0\u8BE2\u4EF7",
33039
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33074
33040
  {
33075
33041
  rfqId: external_exports.string().describe("RFQ ID\u3002\u5FC5\u586B")
33076
33042
  },
@@ -33086,7 +33052,7 @@ function registerRfqTools(server, auth) {
33086
33052
  );
33087
33053
  server.tool(
33088
33054
  "okx_cancel_batch_rfqs",
33089
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u6279\u91CF\u53D6\u6D88RFQ\u62A5\u4EF7\u8BF7\u6C42\n## \u573A\u666F\uFF1A\u7528\u4E8E\u540C\u65F6\u53D6\u6D88\u591A\u4E2A\u8BE2\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u6279\u91CF\u53D6\u6D88, cancel batch rfqs, \u6279\u91CF\u64A4\u9500\u8BE2\u4EF7\n## \u53C2\u6570\uFF1A\n## - rfqIds: RFQ ID\u6570\u7EC4\uFF08JSON\u6570\u7EC4\u5B57\u7B26\u4E32\uFF09\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u6279\u91CF\u53D6\u6D88\u8BE2\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u6279\u91CF\u53D6\u6D88\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~2KB\n## \u5173\u8054\uFF1Aokx_get_rfqs \u67E5\u770B\u8BE2\u4EF7 \u2192 \u672C\u5DE5\u5177\u6279\u91CF\u53D6\u6D88",
33055
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33090
33056
  {
33091
33057
  rfqIds: external_exports.string().describe(`RFQ ID\u6570\u7EC4JSON\u5B57\u7B26\u4E32\uFF0C\u5982 '["123","456"]'`)
33092
33058
  },
@@ -33103,7 +33069,7 @@ function registerRfqTools(server, auth) {
33103
33069
  );
33104
33070
  server.tool(
33105
33071
  "okx_cancel_all_rfqs",
33106
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u53D6\u6D88\u6240\u6709RFQ\u62A5\u4EF7\u8BF7\u6C42\n## \u573A\u666F\uFF1A\u7528\u4E8E\u4E00\u952E\u6E05\u7A7A\u6240\u6709\u672A\u5B8C\u6210\u7684\u8BE2\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u5168\u90E8\u53D6\u6D88, cancel all rfqs, \u6E05\u7A7A\u8BE2\u4EF7\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u53D6\u6D88\u6240\u6709\u8BE2\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u53D6\u6D88\u5168\u90E8\u8BE2\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u4E00\u952E\u53D6\u6D88\u6240\u6709 \u2192 okx_create_rfq \u91CD\u65B0\u8BE2\u4EF7",
33072
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33107
33073
  {},
33108
33074
  async () => {
33109
33075
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33117,7 +33083,7 @@ function registerRfqTools(server, auth) {
33117
33083
  );
33118
33084
  server.tool(
33119
33085
  "okx_create_quote",
33120
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u521B\u5EFA\u62A5\u4EF7\uFF08\u56DE\u590DRFQ\u8BE2\u4EF7\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u505A\u5E02\u5546\u56DE\u590D\u8BE2\u4EF7\u3001\u63D0\u4F9B\u62A5\u4EF7\n## \u53C2\u6570\uFF1A\n## - rfqId: RFQ ID\u3002\u5FC5\u586B\n## - quotePx: \u62A5\u4EF7\u4EF7\u683C\u3002\u5FC5\u586B\n## - sz: \u62A5\u4EF7\u6570\u91CF\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u53D1\u9001\u62A5\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u53D1\u9001\u62A5\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_rfqs \u67E5\u770B\u8BE2\u4EF7 \u2192 \u672C\u5DE5\u5177\u62A5\u4EF7 \u2192 okx_get_quotes \u67E5\u770B\u62A5\u4EF7",
33086
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33121
33087
  {
33122
33088
  rfqId: external_exports.string().describe("RFQ ID\u3002\u5FC5\u586B"),
33123
33089
  quotePx: external_exports.string().describe("\u62A5\u4EF7\u4EF7\u683C\u3002\u5FC5\u586B"),
@@ -33135,7 +33101,7 @@ function registerRfqTools(server, auth) {
33135
33101
  );
33136
33102
  server.tool(
33137
33103
  "okx_cancel_quote",
33138
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u53D6\u6D88\u5DF2\u53D1\u9001\u7684\u62A5\u4EF7\n## \u573A\u666F\uFF1A\u7528\u4E8E\u53D6\u6D88\u5C1A\u672A\u88AB\u63A5\u53D7\u7684\u62A5\u4EF7\n## \u53C2\u6570\uFF1A\n## - rfqId: RFQ ID\u3002\u5FC5\u586B\n## - quoteId: \u62A5\u4EF7ID\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u53D6\u6D88\u62A5\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u53D6\u6D88\u62A5\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aokx_get_quotes \u67E5\u770B\u62A5\u4EF7 \u2192 \u672C\u5DE5\u5177\u53D6\u6D88 \u2192 \u91CD\u65B0\u62A5\u4EF7",
33104
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33139
33105
  {
33140
33106
  rfqId: external_exports.string().describe("RFQ ID\u3002\u5FC5\u586B"),
33141
33107
  quoteId: external_exports.string().describe("\u62A5\u4EF7ID\u3002\u5FC5\u586B")
@@ -33152,7 +33118,7 @@ function registerRfqTools(server, auth) {
33152
33118
  );
33153
33119
  server.tool(
33154
33120
  "okx_get_rfq_trades",
33155
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2RFQ\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5927\u5B97\u4EA4\u6613\u7684\u6210\u4EA4\u5386\u53F2\n## \u5173\u952E\u8BCD\uFF1ARFQ\u6210\u4EA4, rfq trades, \u5927\u5B97\u6210\u4EA4, \u8BE2\u4EF7\u6210\u4EA4\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_rfqs \u67E5\u8BE2\u4EF7 \u2192 \u672C\u5DE5\u5177\u67E5\u6210\u4EA4 \u2192 \u6838\u5BF9\u5927\u5B97\u4EA4\u6613",
33121
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33156
33122
  {},
33157
33123
  async () => {
33158
33124
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33166,7 +33132,7 @@ function registerRfqTools(server, auth) {
33166
33132
  );
33167
33133
  server.tool(
33168
33134
  "okx_reset_rfq_mmp",
33169
- "CAT:[\u7B56\u7565-RFQ] | ## \u529F\u80FD\uFF1A\u91CD\u7F6ERFQ\u7684\u505A\u5E02\u5546\u4FDD\u62A4\uFF08MMP\uFF09\u72B6\u6001\n## \u573A\u666F\uFF1A\u7528\u4E8E\u89E6\u53D1MMP\u4FDD\u62A4\u540E\u624B\u52A8\u6062\u590D\u505A\u5E02\u62A5\u4EF7\n## \u5173\u952E\u8BCD\uFF1ARFQ-MMP, reset mmp, \u505A\u5E02\u4FDD\u62A4\u91CD\u7F6E\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u91CD\u7F6E\u505A\u5E02\u4FDD\u62A4\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u91CD\u7F6EMMP\u540E\u505A\u5E02\u5546\u53EF\u6062\u590D\u62A5\u4EF7\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u91CD\u7F6E \u2192 \u6062\u590D\u6B63\u5E38RFQ\u62A5\u4EF7",
33135
+ "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33170
33136
  {},
33171
33137
  async () => {
33172
33138
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33184,7 +33150,7 @@ function registerRfqTools(server, auth) {
33184
33150
  function registerAffiliateTools(server, auth) {
33185
33151
  server.tool(
33186
33152
  "okx_get_affiliate_invitee_list",
33187
- "CAT:[\u63A8\u5E7F] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u9080\u8BF7\u7684\u7528\u6237\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63A8\u5E7F\u5458\u67E5\u770B\u9080\u8BF7\u4E86\u54EA\u4E9B\u7528\u6237\u3001\u7EDF\u8BA1\u63A8\u5E7F\u6548\u679C\n## \u5173\u952E\u8BCD\uFF1A\u63A8\u5E7F\u5217\u8868, invitee list, \u9080\u8BF7\u5217\u8868, \u63A8\u5E7F\u5927\u4F7F\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u9080\u8BF7\u5217\u8868 \u2192 okx_get_affiliate_performance \u67E5\u770B\u63A8\u5E7F\u7EE9\u6548",
33153
+ "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33188
33154
  {},
33189
33155
  async () => {
33190
33156
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33198,7 +33164,7 @@ function registerAffiliateTools(server, auth) {
33198
33164
  );
33199
33165
  server.tool(
33200
33166
  "okx_get_affiliate_invitee_detail",
33201
- "CAT:[\u63A8\u5E7F] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u9080\u8BF7\u7684\u67D0\u4E2A\u7528\u6237\u8BE6\u7EC6\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7279\u5B9A\u88AB\u9080\u8BF7\u7528\u6237\u7684\u4EA4\u6613\u91CF\u548C\u8FD4\u4F63\u8BE6\u60C5\n## \u5173\u952E\u8BCD\uFF1A\u9080\u8BF7\u8BE6\u60C5, invitee detail, \u63A8\u5E7F\u660E\u7EC6, \u7528\u6237\u8BE6\u60C5\n## \u53C2\u6570\uFF1A\n## - uid: \u7528\u6237ID\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 ~2KB\n## \u5173\u8054\uFF1Aokx_get_affiliate_invitee_list \u83B7\u53D6\u7528\u6237\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u8BE6\u60C5",
33167
+ "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33202
33168
  {
33203
33169
  uid: external_exports.string().optional().describe("\u7528\u6237ID")
33204
33170
  },
@@ -33214,7 +33180,7 @@ function registerAffiliateTools(server, auth) {
33214
33180
  );
33215
33181
  server.tool(
33216
33182
  "okx_get_affiliate_link_list",
33217
- "CAT:[\u63A8\u5E7F] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u94FE\u63A5\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5DF2\u521B\u5EFA\u7684\u63A8\u5E7F\u94FE\u63A5\u3001\u7BA1\u7406\u63A8\u5E7F\u6E20\u9053\n## \u5173\u952E\u8BCD\uFF1A\u63A8\u5E7F\u94FE\u63A5, affiliate link, \u9080\u8BF7\u94FE\u63A5, \u63A8\u5E7F\u6E20\u9053\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u94FE\u63A5 \u2192 \u5206\u4EAB\u7ED9\u7528\u6237 \u2192 \u8FFD\u8E2A\u63A8\u5E7F\u6548\u679C",
33183
+ "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33218
33184
  {},
33219
33185
  async () => {
33220
33186
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33228,7 +33194,7 @@ function registerAffiliateTools(server, auth) {
33228
33194
  );
33229
33195
  server.tool(
33230
33196
  "okx_get_affiliate_performance",
33231
- "CAT:[\u63A8\u5E7F] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u7EE9\u6548\u6C47\u603B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u63A8\u5E7F\u6536\u76CA\u3001\u4EA4\u6613\u91CF\u3001\u8FD4\u4F63\u6BD4\u4F8B\u7B49\u6838\u5FC3\u6570\u636E\n## \u5173\u952E\u8BCD\uFF1A\u63A8\u5E7F\u7EE9\u6548, affiliate performance, \u63A8\u5E7F\u6536\u76CA, \u8FD4\u4F63, \u4F63\u91D1\u7EDF\u8BA1\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\u603B\u7EE9\u6548 \u2192 okx_get_affiliate_invitee_list \u770B\u660E\u7EC6 \u2192 \u4F18\u5316\u63A8\u5E7F\u7B56\u7565",
33197
+ "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33232
33198
  {},
33233
33199
  async () => {
33234
33200
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33242,7 +33208,7 @@ function registerAffiliateTools(server, auth) {
33242
33208
  );
33243
33209
  server.tool(
33244
33210
  "okx_get_co_inviter_list",
33245
- "CAT:[\u63A8\u5E7F] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u8054\u5408\u9080\u8BF7\u4EBA\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5408\u4F5C\u63A8\u5E7F\u7684\u8054\u5408\u9080\u8BF7\u4EBA\n## \u5173\u952E\u8BCD\uFF1A\u8054\u5408\u9080\u8BF7, co-inviter, \u5408\u4F5C\u63A8\u5E7F, \u5408\u9080\u5217\u8868\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u8054\u5408\u9080\u8BF7\u4EBA \u2192 \u7BA1\u7406\u5408\u4F5C\u63A8\u5E7F\u5173\u7CFB",
33211
+ "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33246
33212
  {},
33247
33213
  async () => {
33248
33214
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33256,7 +33222,7 @@ function registerAffiliateTools(server, auth) {
33256
33222
  );
33257
33223
  server.tool(
33258
33224
  "okx_get_sub_affiliate_list",
33259
- "CAT:[\u63A8\u5E7F] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E0B\u7EA7\u63A8\u5E7F\u5458\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u81EA\u5DF1\u7684\u4E0B\u7EA7\u63A8\u5E7F\u5458\u3001\u7BA1\u7406\u63A8\u5E7F\u56E2\u961F\n## \u5173\u952E\u8BCD\uFF1A\u4E0B\u7EA7\u63A8\u5E7F, sub affiliate, \u4E0B\u7EA7\u4EE3\u7406, \u63A8\u5E7F\u56E2\u961F\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u4E0B\u7EA7\u63A8\u5E7F\u5458 \u2192 \u7BA1\u7406\u63A8\u5E7F\u56E2\u961F \u2192 \u5E26\u52A8\u56E2\u961F\u4E1A\u7EE9",
33225
+ "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33260
33226
  {},
33261
33227
  async () => {
33262
33228
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33274,7 +33240,7 @@ function registerAffiliateTools(server, auth) {
33274
33240
  function registerFiatTools(server, auth) {
33275
33241
  server.tool(
33276
33242
  "okx_get_fiat_buy_sell_pair",
33277
- "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6CD5\u5E01\u4E70\u5356\u652F\u6301\u7684\u5E01\u79CD\u5BF9\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u652F\u6301\u7684\u6CD5\u5E01\u4EA4\u6613\u5BF9\u3001\u4E86\u89E3\u53EF\u76F4\u63A5\u7528\u6CD5\u5E01\u4E70\u5356\u7684\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u4EA4\u6613\u5BF9, fiat pair, \u6CD5\u5E01\u4E70\u5356, \u6CD5\u5E01\u5E01\u79CD\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u652F\u6301\u5BF9 \u2192 okx_get_fiat_deposit \u67E5\u770B\u5165\u91D1\u65B9\u5F0F",
33243
+ "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33278
33244
  {},
33279
33245
  async () => {
33280
33246
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33288,7 +33254,7 @@ function registerFiatTools(server, auth) {
33288
33254
  );
33289
33255
  server.tool(
33290
33256
  "okx_get_fiat_deposit",
33291
- "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6CD5\u5E01\u5165\u91D1\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6CD5\u5E01\u5145\u503C\u6E20\u9053\u3001\u5165\u91D1\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u5165\u91D1, fiat deposit, \u6CD5\u5E01\u5145\u503C, \u6CD5\u5E01\u5165\u91D1\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\u5165\u91D1 \u2192 okx_get_fiat_deposit_methods \u770B\u652F\u4ED8\u65B9\u5F0F",
33257
+ "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33292
33258
  {},
33293
33259
  async () => {
33294
33260
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33302,7 +33268,7 @@ function registerFiatTools(server, auth) {
33302
33268
  );
33303
33269
  server.tool(
33304
33270
  "okx_get_fiat_deposit_orders",
33305
- "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6CD5\u5E01\u5165\u91D1\u8BA2\u5355\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u6CD5\u5E01\u5145\u503C\u8BB0\u5F55\u3001\u6838\u5BF9\u5165\u91D1\u72B6\u6001\u548C\u91D1\u989D\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u5165\u91D1\u8BA2\u5355, fiat deposit orders, \u5145\u503C\u8BB0\u5F55, \u5165\u91D1\u5386\u53F2\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5165\u91D1\u5386\u53F2 \u2192 \u5230\u8D26\u786E\u8BA4 \u2192 \u4EA4\u6613\u51C6\u5907",
33271
+ "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33306
33272
  {},
33307
33273
  async () => {
33308
33274
  if (!auth) return toError(AUTH_REQUIRED);
@@ -33316,7 +33282,7 @@ function registerFiatTools(server, auth) {
33316
33282
  );
33317
33283
  server.tool(
33318
33284
  "okx_get_fiat_deposit_methods",
33319
- "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | ## \u529F\u80FD\uFF1A\u83B7\u53D6\u6CD5\u5E01\u5165\u91D1\u652F\u6301\u7684\u652F\u4ED8\u65B9\u5F0F\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u53EF\u7528\u7684\u6CD5\u5E01\u5165\u91D1\u652F\u4ED8\u65B9\u5F0F\uFF08\u94F6\u884C\u8F6C\u8D26/\u7B2C\u4E09\u65B9\u652F\u4ED8\u7B49\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u652F\u4ED8\u65B9\u5F0F, fiat methods, \u5165\u91D1\u65B9\u5F0F, \u652F\u4ED8\u6E20\u9053\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u652F\u4ED8\u65B9\u5F0F \u2192 \u9009\u62E9\u5408\u9002\u65B9\u5F0F\u5165\u91D1",
33285
+ "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33320
33286
  {},
33321
33287
  async () => {
33322
33288
  if (!auth) return toError(AUTH_REQUIRED);
@@ -35012,7 +34978,7 @@ function adxSignal(adx, plusDI, minusDI) {
35012
34978
  function registerIndicatorTools(server) {
35013
34979
  server.tool(
35014
34980
  "okx_indicator",
35015
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u8BA1\u7B97\u6307\u5B9A\u4EA7\u54C1\u7684\u5355\u4E2A\u6280\u672F\u6307\u6807\uFF0C\u8FD4\u56DE\u539F\u59CB\u503C + \u4E2D\u6587Agent\u4FE1\u53F7\u89E3\u8BFB\uFF08\u8D85\u4E70/\u8D85\u5356/\u91D1\u53C9/\u6B7B\u53C9/\u8D8B\u52BF\u65B9\u5411\uFF09\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54\u300CRSI \u591A\u5C11\u300D\u300CMACD \u91D1\u53C9\u4E86\u5417\u300D\u300C\u5E03\u6797\u5E26\u4EC0\u4E48\u4F4D\u7F6E\u300D\u7B49\u6307\u6807\u95EE\u9898\u65F6\u8C03\u7528\uFF0C\u4E00\u6B21\u62FF\u5230\u8BA1\u7B97\u7ED3\u679C\u548C\u64CD\u4F5C\u5EFA\u8BAE\n## \u5173\u952E\u8BCD\uFF1A\u6280\u672F\u6307\u6807, indicator, RSI, MACD, \u5E03\u6797\u5E26, KDJ, ADX, \u8D85\u4E70, \u8D85\u5356, \u91D1\u53C9, \u6B7B\u53C9, \u5747\u7EBF\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\n## - indicator: \u6307\u6807\u540D (sma/ema/rsi/macd/bb/atr/stoch/wr/cci/obv/vwap/adx/mfi/cmf/supertrend/keltner/pattern)\n## - period: \u5468\u671F\u53C2\u6570\uFF0C\u9ED8\u8BA4\u503C\u56E0\u6307\u6807\u800C\u5F02\uFF08RSI=14\uFF0CMACD=12/26/9 \u7B49\uFF09\n## - bar: K\u7EBF\u7C92\u5EA6\uFF0C\u9ED8\u8BA4 1H\u3002\u652F\u6301 1m/5m/15m/30m/1H/2H/4H/6H/12H/1D\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF08\u57FA\u4E8E okx_get_candles\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BA1\u7B97\u4E0D\u4EA4\u6613\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BA1\u7B97\u6307\u6807 \u2192 okx_quick_market \u770B\u76D8\u53E3 \u2192 agent_quick_trade \u4E0B\u5355",
34981
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35016
34982
  {
35017
34983
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP"),
35018
34984
  indicator: external_exports.enum(["sma", "ema", "rsi", "macd", "bb", "atr", "stoch", "wr", "cci", "obv", "vwap", "adx", "mfi", "cmf", "supertrend", "keltner", "pattern"]).describe("\u6307\u6807\u540D"),
@@ -35220,7 +35186,7 @@ function registerIndicatorTools(server) {
35220
35186
  );
35221
35187
  server.tool(
35222
35188
  "okx_indicator_batch",
35223
- "CAT:[\u884C\u60C5] | ## \u529F\u80FD\uFF1A\u6279\u91CF\u8BA1\u7B97\u591A\u4E2A\u6280\u672F\u6307\u6807\uFF0C\u4E00\u6B21\u6027\u8FD4\u56DE\u5168\u90E8\u6307\u6807\u503C\u548C\u7EFC\u5408\u4EA4\u6613\u4FE1\u53F7\u603B\u7ED3\n## \u573A\u666F\uFF1AAgent \u9700\u8981\u7EFC\u5408\u5206\u6790\u591A\u4E2A\u6307\u6807\uFF08\u5982\u540C\u65F6\u770BRSI+MACD+\u5E03\u6797\u5E26\uFF09\u65F6\u8C03\u7528\uFF0C\u4E00\u6B21\u62FF\u5230\u6240\u6709\u7ED3\u679C\u548C\u7EFC\u5408\u5224\u65AD\n## \u5173\u952E\u8BCD\uFF1A\u6279\u91CF\u6307\u6807, indicator batch, \u591A\u6307\u6807, \u7EFC\u5408\u4FE1\u53F7, \u6280\u672F\u5206\u6790, \u6307\u6807\u7EC4\u5408\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\n## - indicators: \u6307\u6807\u540D\u5217\u8868\uFF0C\u7528\u9017\u53F7\u5206\u9694\u3002\u5982 RSI,MACD,BB,ATR\n## - bar: K\u7EBF\u7C92\u5EA6\uFF0C\u9ED8\u8BA4 1H\n## \u9274\u6743\uFF1APUBLIC\n## \u98CE\u9669\uFF1AREAD\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u6279\u91CF \u2192 \u5355\u6307\u6807\u6DF1\u5165\u7528 okx_indicator \u2192 agent_quick_trade \u4E0B\u5355",
35189
+ "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35224
35190
  {
35225
35191
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
35226
35192
  indicators: external_exports.string().describe("\u6307\u6807\u540D\u5217\u8868\uFF0C\u9017\u53F7\u5206\u9694\u3002\u53EF\u9009: sma,ema,rsi,macd,bb,atr,stoch,wr,cci,obv,vwap,adx,mfi,cmf,supertrend,keltner,pattern"),
@@ -35400,7 +35366,7 @@ function registerIndicatorTools(server) {
35400
35366
  function registerSmartMoneyTools(server, auth) {
35401
35367
  server.tool(
35402
35368
  "okx_smart_leaderboard",
35403
- "CAT:[Smart Money] | ## \u529F\u80FD\uFF1A\u4EA4\u6613\u5458\u6392\u884C\u699C\u2014\u2014\u6309\u6536\u76CA\u7387/\u603B\u6536\u76CA\u6392\u5E8F\uFF0C\u542B\u8FD1N\u65E5\u80DC\u7387\u3001\u6700\u5927\u56DE\u64A4\u3001\u8DDF\u5355\u4EBA\u6570\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54\u300C\u54EA\u4E9B\u4EA4\u6613\u5458\u5389\u5BB3\u300D\u300C\u8DDF\u8C01\u8D5A\u94B1\u300D\u3001\u5BFB\u627E\u4F18\u8D28\u4EA4\u6613\u5458\u3001\u5206\u6790\u806A\u660E\u94B1\u6D41\u5411\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u6613\u5458, \u6392\u884C\u699C, leaderboard, \u806A\u660E\u94B1, smart money, \u8DDF\u5355, \u6536\u76CA\u6392\u540D\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, SWAP=\u6C38\u7EED\u3002\u9ED8\u8BA4SPOT\n## - sortBy: \u6392\u5E8F\u5B57\u6BB5\u3002pnl=\u6536\u76CA\u7387, totalPnl=\u603B\u6536\u76CA, followers=\u8DDF\u5355\u4EBA\u6570\n## - topN: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA410\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u6392\u884C \u2192 okx_smart_trader_detail \u770B\u8BE6\u60C5 \u2192 okx_copy_trader \u8DDF\u5355\uFF08\u9700\u786E\u8BA4\uFF09",
35369
+ "CAT:[Smart Money] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35404
35370
  {
35405
35371
  instType: external_exports.enum(["SPOT", "SWAP"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u9ED8\u8BA4SPOT"),
35406
35372
  sortBy: external_exports.enum(["pnl", "totalPnl", "followers"]).optional().describe("\u6392\u5E8F\u3002pnl=\u6536\u76CA\u7387, totalPnl=\u603B\u6536\u76CA, followers=\u8DDF\u5355\u4EBA\u6570"),
@@ -35448,7 +35414,7 @@ function registerSmartMoneyTools(server, auth) {
35448
35414
  );
35449
35415
  server.tool(
35450
35416
  "okx_smart_trader_detail",
35451
- "CAT:[Smart Money] | ## \u529F\u80FD\uFF1A\u5355\u4EA4\u6613\u5458\u5168\u666F\u5206\u6790\u2014\u2014\u6536\u76CA\u7387+\u80DC\u7387+\u56DE\u64A4+\u5F53\u524D\u6301\u4ED3+\u8FD130\u5929PnL\u66F2\u7EBF\n## \u573A\u666F\uFF1AAgent \u6DF1\u5165\u4E86\u89E3\u67D0\u4F4D\u4EA4\u6613\u5458\uFF08\u4ECE\u6392\u884C\u699C\u70B9\u51FB\u8FDB\u5165\uFF09\u3001\u5224\u65AD\u662F\u5426\u503C\u5F97\u8DDF\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u6613\u5458\u8BE6\u60C5, trader detail, \u8DDF\u5355\u5206\u6790, \u6301\u4ED3\u67E5\u770B, \u4E1A\u7EE9\u5206\u6790\n## \u53C2\u6570\uFF1A\n## - uniqueCode: \u4EA4\u6613\u5458\u552F\u4E00\u7801\uFF08\u4ECE\u6392\u884C\u699C\u4E2D\u83B7\u53D6\uFF09\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SPOT=\u73B0\u8D27, SWAP=\u6C38\u7EED\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1Aokx_smart_leaderboard \u6392\u884C \u2192 \u672C\u5DE5\u5177\u8BE6\u60C5 \u2192 okx_copy_trader \u8DDF\u5355",
35417
+ "CAT:[Smart Money] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35452
35418
  {
35453
35419
  uniqueCode: external_exports.string().describe("\u4EA4\u6613\u5458\u552F\u4E00\u7801\uFF08\u5982 A12345678\uFF09"),
35454
35420
  instType: external_exports.enum(["SPOT", "SWAP"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u9ED8\u8BA4SPOT")
@@ -35507,7 +35473,7 @@ function registerSmartMoneyTools(server, auth) {
35507
35473
  );
35508
35474
  server.tool(
35509
35475
  "okx_smart_sentiment",
35510
- "CAT:[Smart Money] | ## \u529F\u80FD\uFF1A\u5E02\u573A\u60C5\u7EEA\u4EEA\u8868\u76D8\u2014\u2014\u7EFC\u5408\u591A\u7A7A\u6BD4\u3001\u671F\u6743PCR\u3001\u8D44\u91D1\u8D39\u7387\u3001\u6210\u4EA4\u91CF\uFF0C\u7ED9\u51FA\u91CF\u5316\u60C5\u7EEA\u8BC4\u5206\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54\u300C\u73B0\u5728\u5E02\u573A\u60C5\u7EEA\u600E\u4E48\u6837\u300D\u300C\u6563\u6237\u548C\u806A\u660E\u94B1\u5728\u505A\u4EC0\u4E48\u300D\u300C\u8BE5\u8FFD\u591A\u8FD8\u662F\u89C2\u671B\u300D\n## \u5173\u952E\u8BCD\uFF1A\u5E02\u573A\u60C5\u7EEA, sentiment, \u591A\u7A7A\u6BD4, PCR, \u8D44\u91D1\u8D39\u7387, \u6050\u614C\u8D2A\u5A6A, \u60C5\u7EEA\u6307\u6807\n## \u53C2\u6570\uFF1A\n## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u9ED8\u8BA4 BTC-USD\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u60C5\u7EEA \u2192 agent_market_scan \u770B\u5F02\u52A8 \u2192 agent_quick_trade \u4E0B\u5355",
35476
+ "CAT:[Smart Money] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35511
35477
  {
35512
35478
  instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3001ETH-USD\u3002\u9ED8\u8BA4 BTC-USD")
35513
35479
  },
@@ -35613,7 +35579,7 @@ var XLayerWSManager = class {
35613
35579
  async connect() {
35614
35580
  if (this.ws?.readyState === wrapper_default.OPEN) return;
35615
35581
  if (this.connectPromise) return this.connectPromise;
35616
- this.connectPromise = new Promise((resolve, reject) => {
35582
+ this.connectPromise = new Promise((resolve2, reject) => {
35617
35583
  const ws = new wrapper_default(WS_URL);
35618
35584
  ws.on("open", () => {
35619
35585
  this.ws = ws;
@@ -35621,7 +35587,7 @@ var XLayerWSManager = class {
35621
35587
  this.pingTimer = setInterval(() => {
35622
35588
  if (ws.readyState === wrapper_default.OPEN) ws.ping();
35623
35589
  }, 3e4);
35624
- resolve();
35590
+ resolve2();
35625
35591
  });
35626
35592
  ws.on("message", (raw) => {
35627
35593
  try {
@@ -35674,12 +35640,12 @@ var XLayerWSManager = class {
35674
35640
  await this.connect();
35675
35641
  const ws = this.ws;
35676
35642
  const id = ++this.idCounter;
35677
- return new Promise((resolve, reject) => {
35643
+ return new Promise((resolve2, reject) => {
35678
35644
  const timer = setTimeout(() => {
35679
35645
  this.pending.delete(id);
35680
35646
  reject(new Error(`RPC \u8C03\u7528\u8D85\u65F6: ${method}`));
35681
35647
  }, 3e4);
35682
- this.pending.set(id, { resolve, reject, timer });
35648
+ this.pending.set(id, { resolve: resolve2, reject, timer });
35683
35649
  ws.send(JSON.stringify({ jsonrpc: "2.0", id, method, params }));
35684
35650
  });
35685
35651
  }
@@ -35739,7 +35705,7 @@ var xlayerWS = new XLayerWSManager();
35739
35705
  function registerXLayerWSTools(server) {
35740
35706
  server.tool(
35741
35707
  "xlayer_subscribe",
35742
- "CAT:[\u94FE\u4E0A] | ## \u529F\u80FD\uFF1A\u8BA2\u9605 X Layer \u94FE\u4E0A\u4E8B\u4EF6\uFF08\u65B0\u533A\u5757\u5934 / \u5408\u7EA6\u65E5\u5FD7\uFF09\uFF0C\u8FD4\u56DE\u8BA2\u9605ID\n## \u573A\u666F\uFF1A\u7528\u4E8E\u76D1\u542C\u65B0\u533A\u5757\u4EA7\u751F\u3001\u8FFD\u8E2A\u7279\u5B9A\u5408\u7EA6\u4E8B\u4EF6\u3001\u5B9E\u65F6\u76D1\u63A7\u94FE\u4E0A\u6D3B\u52A8\n## \u5173\u952E\u8BCD\uFF1AX Layer, WebSocket, \u8BA2\u9605, subscribe, newHeads, logs, \u94FE\u4E0A\u4E8B\u4EF6, \u4E8B\u4EF6\u76D1\u542C\n## \u53C2\u6570\uFF1A\n## - type: \u8BA2\u9605\u7C7B\u578B\u3002newHeads=\u65B0\u533A\u5757\u5934, logs=\u5408\u7EA6\u65E5\u5FD7\n## - address: \u5408\u7EA6\u5730\u5740\uFF08logs \u7C7B\u578B\u53EF\u9009\uFF0C\u652F\u6301\u5355\u4E2A\u5730\u5740\u6216\u5730\u5740\u6570\u7EC4\uFF09\n## - topics: \u65E5\u5FD7\u4E3B\u9898\u8FC7\u6EE4\uFF08logs \u7C7B\u578B\u53EF\u9009\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u65E0\u9700 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u8BA2\u9605\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B \u2014 \u8FD4\u56DE\u8BA2\u9605ID\u548C\u72B6\u6001\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BA2\u9605\u4E8B\u4EF6 \u2192 xlayer_get_events \u62C9\u53D6\u7F13\u5B58\u4E8B\u4EF6 \u2192 xlayer_unsubscribe \u53D6\u6D88\u8BA2\u9605",
35708
+ "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35743
35709
  {
35744
35710
  type: external_exports.enum(["newHeads", "logs"]).describe("\u8BA2\u9605\u7C7B\u578B\u3002newHeads=\u65B0\u533A\u5757\u5934, logs=\u5408\u7EA6\u65E5\u5FD7"),
35745
35711
  address: external_exports.string().optional().describe("\u5408\u7EA6\u5730\u5740\uFF0Clogs\u7C7B\u578B\u53EF\u7528\uFF08\u591A\u4E2A\u5730\u5740\u7528\u9017\u53F7\u5206\u9694\uFF09"),
@@ -35769,7 +35735,7 @@ function registerXLayerWSTools(server) {
35769
35735
  );
35770
35736
  server.tool(
35771
35737
  "xlayer_get_events",
35772
- "CAT:[\u94FE\u4E0A] | ## \u529F\u80FD\uFF1A\u62C9\u53D6\u6307\u5B9A\u8BA2\u9605\u7684\u7F13\u5B58\u4E8B\u4EF6\uFF0C\u6BCF\u6B21\u62C9\u53D6\u540E\u81EA\u52A8\u6E05\u7A7A\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5B9A\u671F\u8F6E\u8BE2\u8BA2\u9605\u4E8B\u4EF6\u3001\u83B7\u53D6\u6700\u65B0\u7684\u65B0\u533A\u5757\u6216\u5408\u7EA6\u65E5\u5FD7\n## \u5173\u952E\u8BCD\uFF1AX Layer, \u4E8B\u4EF6\u62C9\u53D6, get events, \u8F6E\u8BE2, \u8BA2\u9605\u4E8B\u4EF6, \u7F13\u5B58\u4E8B\u4EF6\n## \u53C2\u6570\uFF1A\n## - subscriptionId: \u8BA2\u9605ID\uFF08\u7531 xlayer_subscribe \u8FD4\u56DE\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u53D6\u51B3\u4E8E\u7F13\u5B58\u4E8B\u4EF6\u6570\u91CF\uFF0C\u901A\u5E38 1~50 \u6761 ~5KB\n## \u5173\u8054\uFF1Axlayer_subscribe \u83B7\u5F97\u8BA2\u9605 \u2192 \u672C\u5DE5\u5177\u62C9\u53D6\u4E8B\u4EF6 \u2192 xlayer_unsubscribe \u53D6\u6D88",
35738
+ "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35773
35739
  {
35774
35740
  subscriptionId: external_exports.string().describe("\u8BA2\u9605ID\uFF0C\u7531 xlayer_subscribe \u8FD4\u56DE")
35775
35741
  },
@@ -35799,7 +35765,7 @@ function registerXLayerWSTools(server) {
35799
35765
  );
35800
35766
  server.tool(
35801
35767
  "xlayer_unsubscribe",
35802
- "CAT:[\u94FE\u4E0A] | ## \u529F\u80FD\uFF1A\u53D6\u6D88 X Layer WebSocket \u8BA2\u9605\n## \u573A\u666F\uFF1A\u7528\u4E8E\u505C\u6B62\u4E0D\u518D\u9700\u8981\u7684\u94FE\u4E0A\u4E8B\u4EF6\u76D1\u542C\u3001\u91CA\u653E\u8FDE\u63A5\u8D44\u6E90\n## \u5173\u952E\u8BCD\uFF1AX Layer, \u53D6\u6D88\u8BA2\u9605, unsubscribe, \u505C\u6B62\u76D1\u542C\n## \u53C2\u6570\uFF1A\n## - subscriptionId: \u8981\u53D6\u6D88\u7684\u8BA2\u9605ID\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u64CD\u4F5C\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~100B\n## \u5173\u8054\uFF1Axlayer_subscribe \u521B\u5EFA\u8BA2\u9605 \u2192 xlayer_get_events \u62C9\u53D6\u4E8B\u4EF6 \u2192 \u672C\u5DE5\u5177\u53D6\u6D88\u8BA2\u9605",
35768
+ "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35803
35769
  {
35804
35770
  subscriptionId: external_exports.string().describe("\u8981\u53D6\u6D88\u7684\u8BA2\u9605ID")
35805
35771
  },
@@ -35814,16 +35780,7 @@ function registerXLayerWSTools(server) {
35814
35780
  );
35815
35781
  server.tool(
35816
35782
  "xlayer_call",
35817
- `CAT:[\u94FE\u4E0A] | ## \u529F\u80FD\uFF1A\u901A\u8FC7 WebSocket \u8C03\u7528 X Layer JSON-RPC \u65B9\u6CD5\uFF0C\u652F\u6301\u6240\u6709\u4EE5\u592A\u574A\u517C\u5BB9 RPC
35818
- ## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u8BE2\u533A\u5757\u8BE6\u60C5/\u4EA4\u6613\u6536\u636E/\u8D26\u6237\u4F59\u989D/\u5408\u7EA6\u72B6\u6001\u3001\u8C03\u7528 eth_call \u6A21\u62DF\u4EA4\u6613\u3001\u83B7\u53D6\u94FE\u4E0A\u4EFB\u610F\u6570\u636E
35819
- ## \u5173\u952E\u8BCD\uFF1AX Layer, JSON-RPC, eth_call, eth_getBlockByNumber, eth_getBalance, eth_getTransactionReceipt, \u94FE\u4E0A\u67E5\u8BE2
35820
- ## \u53C2\u6570\uFF1A
35821
- ## - method: JSON-RPC \u65B9\u6CD5\u540D\u3002\u5982 eth_blockNumber / eth_getBlockByNumber / eth_getBalance / eth_getTransactionReceipt / eth_call
35822
- ## - params: JSON-RPC \u53C2\u6570\u6570\u7EC4\uFF0CJSON \u5B57\u7B26\u4E32\u683C\u5F0F\u3002\u5982 '["0x...", "latest"]'
35823
- ## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u65E0\u9700 API Key
35824
- ## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF08\u9664\u975E\u53D1\u9001\u4EA4\u6613\uFF0C\u4F46\u672C\u5DE5\u5177\u4E0D\u63D0\u4F9B eth_sendRawTransaction\uFF09
35825
- ## \u8FD4\u56DE\u91CF\uFF1A\u53D6\u51B3\u4E8E\u65B9\u6CD5\uFF0C\u901A\u5E38 1~5KB
35826
- ## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u901A\u7528\u67E5\u8BE2 \u2192 xlayer_subscribe \u8BA2\u9605\u9700\u8981\u6301\u7EED\u76D1\u542C\u7684\u4E8B\u4EF6 \u2192 xlayer_get_events \u62C9\u53D6\u63A8\u9001`,
35783
+ "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35827
35784
  {
35828
35785
  method: external_exports.string().describe("JSON-RPC \u65B9\u6CD5\u540D\u3002\u5E38\u7528: eth_blockNumber, eth_getBlockByNumber, eth_getBalance, eth_getTransactionReceipt, eth_call, eth_getLogs"),
35829
35786
  params: external_exports.string().optional().describe(`JSON-RPC \u53C2\u6570\u6570\u7EC4\uFF0CJSON \u5B57\u7B26\u4E32\u3002\u5982 '[\\"0xabc123\\", false]'\u3002\u7559\u7A7A\u8868\u793A\u4F20\u7A7A\u6570\u7EC4`)
@@ -35848,7 +35805,7 @@ function registerXLayerWSTools(server) {
35848
35805
  );
35849
35806
  server.tool(
35850
35807
  "xlayer_list_subscriptions",
35851
- "CAT:[\u94FE\u4E0A] | ## \u529F\u80FD\uFF1A\u5217\u51FA\u5F53\u524D WebSocket \u8FDE\u63A5\u7684\u6240\u6709\u6D3B\u8DC3\u8BA2\u9605\u53CA\u7F13\u5B58\u4E8B\u4EF6\u6570\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7BA1\u7406\u8BA2\u9605\u751F\u547D\u5468\u671F\u3001\u67E5\u770B\u54EA\u4E9B\u4E8B\u4EF6\u7C7B\u578B\u6B63\u5728\u76D1\u542C\n## \u5173\u952E\u8BCD\uFF1AX Layer, \u8BA2\u9605\u5217\u8868, list subscriptions, \u8BA2\u9605\u7BA1\u7406\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1Axlayer_subscribe \u521B\u5EFA\u8BA2\u9605 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u8BA2\u9605\u72B6\u6001 \u2192 xlayer_unsubscribe \u53D6\u6D88",
35808
+ "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35852
35809
  {},
35853
35810
  async () => {
35854
35811
  try {
@@ -35985,7 +35942,7 @@ var WsManager = class {
35985
35942
  return count;
35986
35943
  }
35987
35944
  connect(url, auth, type) {
35988
- return new Promise((resolve, reject) => {
35945
+ return new Promise((resolve2, reject) => {
35989
35946
  const ws = new wrapper_default(url);
35990
35947
  const timeout = setTimeout(() => {
35991
35948
  ws.close();
@@ -36012,7 +35969,7 @@ var WsManager = class {
36012
35969
  }, 25e3);
36013
35970
  this.setPing(type, timer);
36014
35971
  this.setWs(type, ws);
36015
- resolve();
35972
+ resolve2();
36016
35973
  });
36017
35974
  ws.on("message", (raw) => {
36018
35975
  try {
@@ -36158,7 +36115,7 @@ var ALL_CHANNELS = {
36158
36115
  function registerWsTools(server, auth) {
36159
36116
  server.tool(
36160
36117
  "okx_ws_subscribe",
36161
- "CAT:[\u884C\u60C5-WS] | ## \u529F\u80FD\uFF1A\u8BA2\u9605 OKX WebSocket \u5B9E\u65F6\u516C\u5F00\u9891\u9053\uFF0C\u4E8B\u4EF6\u81EA\u52A8\u7F13\u51B2\u5728\u5185\u5B58\u4E2D\n## \u573A\u666F\uFF1AAgent \u9700\u8981\u5B9E\u65F6\u76D1\u63A7\u884C\u60C5\u3001\u7206\u4ED3\u5355\u3001\u8D44\u91D1\u8D39\u7387\u3001\u4EF7\u5DEE/\u5927\u5B97\u5E02\u573A\u65F6\u8C03\u7528\uFF0C\u66FF\u4EE3 REST \u8F6E\u8BE2\n## \u5173\u952E\u8BCD\uFF1AWebSocket, ws, \u5B9E\u65F6\u63A8\u9001, \u5B9E\u65F6\u884C\u60C5, \u8BA2\u9605, subscribe, \u7206\u4ED3, \u8D44\u91D1\u8D39\u7387, \u4EF7\u5DEE, \u5927\u5B97\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP\u3002status/instruments/economic-calendar \u7B49\u5168\u5C40\u9891\u9053\u4E0D\u9700\u8981 instId\n## - channel: \u9891\u9053\u540D\u3002\u53EF\u9009: tickers / trades / all-trades / candle1m~1D / books5 / books / funding-rate / open-interest / price-limit / instruments / mark-price / mark-price-candles / index-tickers / index-candles / option-summary / estimated-price / liquidation-orders / adl-warning / event-contract-markets / economic-calendar / status / sprd/* / public-*-block-trades / block-tickers\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u9891\u9053\uFF0C\u65E0\u9700 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BA2\u9605 \u2192 okx_ws_events \u62C9\u53D6 \u2192 okx_ws_close \u5173\u95ED",
36118
+ "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36162
36119
  {
36163
36120
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP\u3002\u7EAF\u5168\u5C40\u9891\u9053\uFF08status/instruments/economic-calendar\uFF09\u53EF\u4F20\u7A7A\u5B57\u7B26\u4E32"),
36164
36121
  channel: external_exports.string().describe("\u9891\u9053\u540D\u3002\u516C\u5F00\u9891\u9053\u5171 33 \u4E2A\uFF0C\u652F\u6301 tickers/trades/candle1m~1D/books5/books/funding-rate/open-interest/price-limit/instruments/mark-price/mark-price-candles/index-tickers/index-candles/option-summary/estimated-price/liquidation-orders/adl-warning/event-contract-markets/economic-calendar/status/sprd\u7CFB\u5217/public-block-trades\u7CFB\u5217/block-tickers"),
@@ -36192,7 +36149,7 @@ function registerWsTools(server, auth) {
36192
36149
  );
36193
36150
  server.tool(
36194
36151
  "okx_ws_subscribe_private",
36195
- "CAT:[\u884C\u60C5-WS] | ## \u529F\u80FD\uFF1A\u8BA2\u9605 OKX WebSocket \u79C1\u6709\u9891\u9053\u2014\u2014\u5B9E\u65F6\u63A8\u9001\u8D26\u6237\u4F59\u989D\u3001\u6301\u4ED3\u53D8\u52A8\u3001\u8BA2\u5355\u6210\u4EA4\u3001\u7F51\u683C/\u7B56\u7565/\u8DDF\u5355\u72B6\u6001\n## \u573A\u666F\uFF1AAgent \u9700\u8981\u5B9E\u65F6\u8DDF\u8E2A\u8D26\u6237\u53D8\u5316\uFF08\u975E\u8F6E\u8BE2 REST\uFF09\u65F6\u8C03\u7528\n## \u5173\u952E\u8BCD\uFF1AWebSocket, ws, \u79C1\u6709\u9891\u9053, \u5B9E\u65F6\u8D26\u6237, \u8BA2\u5355\u63A8\u9001, positions, orders, \u7F51\u683C, \u8DDF\u5355\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\u3002account/positions/balance_and_position \u7B49\u8D26\u6237\u7EA7\u9891\u9053\u53EF\u4E0D\u4F20\n## - channel: \u79C1\u6709\u9891\u9053\u540D\u3002\u53EF\u9009: account / positions / balance_and_position / position-risk-warning / account-greeks / orders / fills / algo-orders / advance-algo-orders / spot-grid-algo-orders / contract-grid-algo-orders / grid-positions / grid-sub-orders / recurring-buy-orders / lead-trading-notification / deposit-info / withdrawal-info / rfqs / quotes / structure-block-trades / sprd/orders / sprd/trades\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u5FC5\u987B\u5F00\u901A\u8BFB\u53D6\u6743\u9650\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u8BA2\u9605\uFF0C\u4F46\u9700 API Key\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BA2\u9605 \u2192 okx_ws_events \u62C9\u53D6 \u2192 okx_ws_close \u5173\u95ED",
36152
+ "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36196
36153
  {
36197
36154
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\u3002\u8D26\u6237\u7EA7\u9891\u9053\u53EF\u4E0D\u4F20\uFF08\u5982 account/positions/balances\uFF09"),
36198
36155
  channel: external_exports.string().describe("\u79C1\u6709\u9891\u9053\u540D\u3002\u5171 22 \u4E2A: account / positions / balance_and_position / position-risk-warning / account-greeks / orders / fills / algo-orders / advance-algo-orders / spot-grid-algo-orders / contract-grid-algo-orders / grid-positions / grid-sub-orders / recurring-buy-orders / lead-trading-notification / deposit-info / withdrawal-info / rfqs / quotes / structure-block-trades / sprd/orders / sprd/trades")
@@ -36231,7 +36188,7 @@ function registerWsTools(server, auth) {
36231
36188
  );
36232
36189
  server.tool(
36233
36190
  "okx_ws_events",
36234
- "CAT:[\u884C\u60C5-WS] | ## \u529F\u80FD\uFF1A\u62C9\u53D6 okx_ws_subscribe \u7F13\u51B2\u7684\u5B9E\u65F6\u4E8B\u4EF6\uFF0C\u6BCF\u6B21\u62C9\u53D6\u540E\u6E05\u7A7A\n## \u573A\u666F\uFF1AAgent \u5B9A\u671F\u68C0\u67E5\u6700\u65B0\u884C\u60C5\u3001\u4EE3\u66FF\u8F6E\u8BE2 REST API\n## \u5173\u952E\u8BCD\uFF1A\u62C9\u53D6, poll, \u4E8B\u4EF6, events, \u7F13\u51B2\u533A, \u6700\u65B0\u6D88\u606F\n## \u53C2\u6570\uFF1A\n## - subscriptionId: \u8BA2\u9605ID\uFF08\u9009\u586B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\uFF09\n## - limit: \u6700\u5927\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420\n## - filter: \u8FC7\u6EE4\u5173\u952E\u8BCD\n## \u9274\u6743\uFF1APUBLIC \u2014 \u8BFB\u5185\u5B58\u7F13\u51B2\u533A\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u53D7 limit \u63A7\u5236\uFF0C\u9ED8\u8BA4 ~2KB\n## \u5173\u8054\uFF1Aokx_ws_subscribe \u8BA2\u9605 \u2192 \u672C\u5DE5\u5177\u62C9\u53D6 \u2192 \u51B3\u7B56",
36191
+ "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36235
36192
  {
36236
36193
  subscriptionId: external_exports.string().optional().describe("\u8BA2\u9605ID"),
36237
36194
  limit: external_exports.number().int().min(1).max(50).default(20).describe("\u6700\u5927\u8FD4\u56DE\u6761\u6570"),
@@ -36259,7 +36216,7 @@ function registerWsTools(server, auth) {
36259
36216
  );
36260
36217
  server.tool(
36261
36218
  "okx_ws_status",
36262
- "CAT:[\u884C\u60C5-WS] | ## \u529F\u80FD\uFF1A\u67E5\u770B\u5F53\u524D\u6240\u6709 WebSocket \u8BA2\u9605\u72B6\u6001\u53CA\u7F13\u51B2\u533A\u4E8B\u4EF6\u6570\u91CF\n## \u573A\u666F\uFF1AAgent \u67E5\u770B\u8BA2\u9605\u5217\u8868\u3001\u7F13\u51B2\u533A\u79EF\u538B\u60C5\u51B5\n## \u5173\u952E\u8BCD\uFF1A\u72B6\u6001, status, \u8BA2\u9605\u5217\u8868, \u7F13\u51B2\u533A, \u8FDE\u63A5\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_ws_subscribe \u2192 \u672C\u5DE5\u5177 \u2192 okx_ws_close \u5173\u95ED",
36219
+ "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36263
36220
  {},
36264
36221
  async () => {
36265
36222
  try {
@@ -36276,7 +36233,7 @@ function registerWsTools(server, auth) {
36276
36233
  );
36277
36234
  server.tool(
36278
36235
  "okx_ws_close",
36279
- "CAT:[\u884C\u60C5-WS] | ## \u529F\u80FD\uFF1A\u5173\u95ED\u6307\u5B9A\u6216\u6240\u6709 WebSocket \u8BA2\u9605\uFF0C\u91CA\u653E\u8FDE\u63A5\u8D44\u6E90\n## \u573A\u666F\uFF1AAgent \u5B8C\u6210\u76D1\u63A7\u540E\u6E05\u7406\n## \u5173\u952E\u8BCD\uFF1A\u5173\u95ED, close, \u53D6\u6D88\u8BA2\u9605, \u65AD\u5F00, \u505C\u6B62\n## \u53C2\u6570\uFF1A\n## - subscriptionId: \u8981\u5173\u95ED\u7684\u8BA2\u9605ID\uFF08\u4E0D\u4F20\u5173\u95ED\u6240\u6709\uFF09\n## \u9274\u6743\uFF1APUBLIC\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4F1A\u65AD\u5F00\u8FDE\u63A5\uFF0C\u4F46\u65E0\u8D44\u91D1\u98CE\u9669\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1Aokx_ws_status \u2192 \u672C\u5DE5\u5177\u5173\u95ED",
36236
+ "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36280
36237
  {
36281
36238
  subscriptionId: external_exports.string().optional().describe("\u8BA2\u9605ID\uFF0C\u4E0D\u4F20\u5173\u95ED\u6240\u6709")
36282
36239
  },
@@ -36698,7 +36655,7 @@ function startAgentHub(port, host = "0.0.0.0", version2 = "0.0.0") {
36698
36655
  function registerAgentHubTools(server) {
36699
36656
  server.tool(
36700
36657
  "agent_hub_status",
36701
- "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u67E5\u770B Agent Hub \u5168\u666F\uFF1A\u6240\u6709\u5728\u7EBF Agent\u3001\u4EFB\u52A1\u5206\u914D\u3001\u623F\u95F4\u6D88\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5DE1\u68C0 Agent \u96C6\u7FA4\u5065\u5EB7\u72B6\u51B5\u3001\u4E86\u89E3\u54EA\u4E9B\u4EFB\u52A1\u5728\u63A8\u8FDB\u3001\u54EA\u4E2A Agent \u7A7A\u95F2\u53EF\u6D3E\u6D3B\n## \u5173\u952E\u8BCD\uFF1AAgent Hub, \u96C6\u7FA4\u72B6\u6001, \u4EFB\u52A1\u8FDB\u5EA6, \u5728\u7EBFAgent, \u8C03\u5EA6\u9762\u677F, \u623F\u95F4\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 Agent Hub \u5185\u90E8\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u72B6\u6001\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5168\u5C40 \u2192 agent_hub_dispatch \u6D3E\u53D1\u4EFB\u52A1 \u2192 agent_room_send \u53D1\u6D88\u606F",
36658
+ "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36702
36659
  {},
36703
36660
  async () => {
36704
36661
  try {
@@ -36710,7 +36667,7 @@ function registerAgentHubTools(server) {
36710
36667
  );
36711
36668
  server.tool(
36712
36669
  "agent_hub_dispatch",
36713
- "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u5411\u6307\u5B9A Agent \u6216\u5168\u4F53\u5728\u7EBF Agent \u6D3E\u53D1\u4EFB\u52A1\n## \u573A\u666F\uFF1A\u7528\u4E8E\u624B\u52A8\u5C06\u4EFB\u52A1\u6C60\u4E2D\u7684\u5DE5\u5355\u5206\u53D1\u7ED9\u7A7A\u95F2 Agent\u3001\u8865\u5145\u81EA\u52A8\u6D3E\u53D1\u672A\u8986\u76D6\u7684\u4EFB\u52A1\n## \u5173\u952E\u8BCD\uFF1A\u6D3E\u53D1, dispatch, \u4EFB\u52A1\u5206\u914D, \u8C03\u5EA6, assign\n## \u53C2\u6570\uFF1A\n## - taskId: \u4EFB\u52A1\u7F16\u53F7\n## - agentId: \u76EE\u6807 Agent ID\uFF08\u9009\u586B\uFF0C\u4E0D\u586B\u5219\u627E\u7B2C\u4E00\u4E2A\u5339\u914D\u7684\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u8C03\u5EA6\u63A7\u5236\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u6D3E\u53D1\u6D88\u606F\uFF0C\u4E0D\u4FEE\u6539\u4EE3\u7801\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1Aagent_hub_status \u67E5\u770B Agent \u72B6\u6001 \u2192 \u672C\u5DE5\u5177\u6D3E\u53D1 \u2192 Agent \u6536\u5230 task:dispatch",
36670
+ "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36714
36671
  {
36715
36672
  taskId: external_exports.enum(["T-001", "T-002", "T-003", "T-004", "T-005", "T-006"]).describe("\u4EFB\u52A1\u7F16\u53F7"),
36716
36673
  agentId: external_exports.string().optional().describe("\u76EE\u6807 Agent ID\u3002\u4E0D\u586B\u5219\u81EA\u52A8\u5339\u914D\u6709\u5BF9\u5E94\u6280\u80FD\u7684 Agent")
@@ -36761,7 +36718,7 @@ function registerAgentHubTools(server) {
36761
36718
  );
36762
36719
  server.tool(
36763
36720
  "agent_hub_review",
36764
- "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u5BA1\u6838 Agent \u63D0\u4EA4\u7684\u4EFB\u52A1\u7ED3\u679C\uFF0C\u901A\u8FC7/\u9A73\u56DE\uFF0C\u81EA\u52A8\u901A\u77E5\u5BF9\u5E94\u4EFB\u52A1\u623F\u95F4\n## \u573A\u666F\uFF1A\u5BA1\u6838\u5458\u5BA1\u5B8C\u4EE3\u7801\u540E\u53D1\u7ED3\u679C\uFF0CAgent \u5728\u623F\u95F4\u5B9E\u65F6\u6536\u5230\u53CD\u9988\n## \u5173\u952E\u8BCD\uFF1A\u5BA1\u6838, review, \u6279\u51C6, \u9A73\u56DE, approve, reject, \u623F\u95F4\u901A\u77E5\n## \u53C2\u6570\uFF1A\n## - taskId: \u4EFB\u52A1\u7F16\u53F7\n## - verdict: \u5BA1\u6838\u7ED3\u679C\u3002approved=\u901A\u8FC7, rejected=\u9A73\u56DE\n## - feedback: \u5BA1\u6838\u610F\u89C1\uFF08\u9A73\u56DE\u65F6\u5FC5\u586B\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u5BA1\u6838\u63A7\u5236\u63A5\u53E3\n## \u98CE\u9669\uFF1AREAD \u2014 \u53D1\u6D88\u606F\u901A\u77E5\uFF0C\u4EE3\u7801\u7684\u5408\u5E76\u7531\u5B9A\u65F6\u4EFB\u52A1\u6267\u884C\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u5BA1\u6838\u4E0D\u901A\u8FC7 \u2192 agent_room_send \u53D1\u623F\u95F4\u6D88\u606F \u2192 Agent \u6539\u4EE3\u7801",
36721
+ "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36765
36722
  {
36766
36723
  taskId: external_exports.enum(["T-001", "T-002", "T-003", "T-004", "T-005", "T-006"]).describe("\u4EFB\u52A1\u7F16\u53F7"),
36767
36724
  verdict: external_exports.enum(["approved", "rejected"]).describe("\u5BA1\u6838\u7ED3\u679C"),
@@ -36793,7 +36750,7 @@ function registerAgentHubTools(server) {
36793
36750
  );
36794
36751
  server.tool(
36795
36752
  "agent_room_send",
36796
- "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u5411\u6307\u5B9A\u623F\u95F4\u53D1\u9001\u6D88\u606F\uFF0C\u6240\u6709\u623F\u95F4\u6210\u5458\u5B9E\u65F6\u6536\u5230\n## \u573A\u666F\uFF1A\u5BA1\u6838\u5458\u7ED9 Agent \u53D1\u53CD\u9988\u3001\u5728\u4EFB\u52A1\u623F\u95F4\u534F\u8C03\u3001\u5411\u6240\u6709\u4EBA\u5E7F\u64AD\n## \u5173\u952E\u8BCD\uFF1A\u623F\u95F4\u6D88\u606F, room, \u53D1\u9001, \u901A\u77E5, \u5E7F\u64AD\n## \u53C2\u6570\uFF1A\n## - roomId: \u623F\u95F4ID\u3002#lobby / #review / #task-T-XXX\n## - text: \u6D88\u606F\u5185\u5BB9\n## \u9274\u6743\uFF1APUBLIC\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u53D1\u6D88\u606F\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u5BA1\u6838\u4E0D\u901A\u8FC7 \u2192 \u672C\u5DE5\u5177\u53D1 #task-T-XXX \u2192 Agent \u6536\u5230",
36753
+ "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36797
36754
  {
36798
36755
  roomId: external_exports.string().describe("\u623F\u95F4ID\u3002#lobby / #review / #task-T-003"),
36799
36756
  text: external_exports.string().describe("\u6D88\u606F\u5185\u5BB9")
@@ -36814,7 +36771,7 @@ function registerAgentHubTools(server) {
36814
36771
  );
36815
36772
  server.tool(
36816
36773
  "agent_room_view",
36817
- "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u67E5\u770B\u623F\u95F4\u5217\u8868\u6216\u6307\u5B9A\u623F\u95F4\u7684\u6D88\u606F\u5386\u53F2\n## \u573A\u666F\uFF1A\u68C0\u67E5\u54EA\u4E9B\u623F\u95F4\u6D3B\u8DC3\u3001\u8BFB\u53D6\u5386\u53F2\u6D88\u606F\u3001\u770B\u8C01\u5728\u623F\u95F4\u91CC\n## \u5173\u952E\u8BCD\uFF1A\u623F\u95F4, room, \u6D88\u606F\u5386\u53F2, \u5728\u7EBF\u6210\u5458\n## \u53C2\u6570\uFF1A\n## - roomId: \u623F\u95F4ID\uFF08\u9009\u586B\uFF0C\u4E0D\u586B\u5217\u51FA\u6240\u6709\u623F\u95F4\uFF09\n## - limit: \u6D88\u606F\u6761\u6570\uFF0C\u9ED8\u8BA4 30\n## \u9274\u6743\uFF1APUBLIC\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~3KB\n## \u5173\u8054\uFF1Aagent_room_send \u53D1\u6D88\u606F \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u5386\u53F2",
36774
+ "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36818
36775
  {
36819
36776
  roomId: external_exports.string().optional().describe("\u623F\u95F4ID\uFF0C\u4E0D\u586B\u5217\u51FA\u6240\u6709"),
36820
36777
  limit: external_exports.number().int().min(1).max(200).optional().describe("\u6D88\u606F\u6761\u6570\uFF0C\u9ED8\u8BA430")
@@ -36845,75 +36802,213 @@ function registerAgentHubTools(server) {
36845
36802
  }
36846
36803
 
36847
36804
  // src/tools/codegraph.ts
36848
- var _cg = null;
36849
- var _cgInitError = null;
36850
- var _cgInitDone = false;
36851
- async function getCodeGraph() {
36852
- if (_cgInitDone) return _cg;
36805
+ var path2 = __toESM(require("node:path"));
36806
+ var fs2 = __toESM(require("node:fs"));
36807
+ var DatabaseSync = null;
36808
+ var _sqliteAvailable = null;
36809
+ function isSqliteAvailable() {
36810
+ if (_sqliteAvailable !== null) return _sqliteAvailable;
36853
36811
  try {
36854
- const mod = await Promise.resolve().then(() => __toESM(require_npm_sdk()));
36855
- const CodeGraph = mod.CodeGraph || mod.default?.CodeGraph;
36856
- _cg = await CodeGraph.open(".");
36857
- _cgInitDone = true;
36858
- return _cg;
36859
- } catch (e) {
36860
- _cgInitError = e.message || String(e);
36861
- _cgInitDone = true;
36812
+ const sqlite = require("node:sqlite");
36813
+ DatabaseSync = sqlite.DatabaseSync;
36814
+ _sqliteAvailable = true;
36815
+ return true;
36816
+ } catch {
36817
+ _sqliteAvailable = false;
36818
+ return false;
36819
+ }
36820
+ }
36821
+ function getDBPath() {
36822
+ return path2.resolve(".codegraph", "codegraph.db");
36823
+ }
36824
+ function openDB() {
36825
+ if (!isSqliteAvailable()) return null;
36826
+ const dbPath = getDBPath();
36827
+ if (!fs2.existsSync(dbPath)) return null;
36828
+ try {
36829
+ return new DatabaseSync(dbPath, { readonly: true });
36830
+ } catch {
36862
36831
  return null;
36863
36832
  }
36864
36833
  }
36834
+ function safeGet(db, sql, ...params) {
36835
+ try {
36836
+ const stmt = db.prepare(sql);
36837
+ return stmt.get(...params.length ? params : []);
36838
+ } catch {
36839
+ return null;
36840
+ }
36841
+ }
36842
+ function safeAll(db, sql, limit, ...params) {
36843
+ try {
36844
+ const stmt = db.prepare(sql);
36845
+ const all = stmt.all(...params.length ? params : []);
36846
+ return (Array.isArray(all) ? all : []).slice(0, limit);
36847
+ } catch {
36848
+ return [];
36849
+ }
36850
+ }
36851
+ function findNodes(db, name, limit = 5) {
36852
+ const exact = safeAll(
36853
+ db,
36854
+ "SELECT * FROM nodes WHERE name = ? LIMIT ?",
36855
+ limit,
36856
+ name,
36857
+ limit
36858
+ );
36859
+ if (exact.length > 0) return exact;
36860
+ return safeAll(
36861
+ db,
36862
+ "SELECT * FROM nodes WHERE name LIKE ? LIMIT ?",
36863
+ limit,
36864
+ `%${name}%`,
36865
+ limit
36866
+ );
36867
+ }
36868
+ function getCallers(db, nodeId, limit = 50) {
36869
+ return safeAll(db, `
36870
+ SELECT n.name, n.kind, n.file_path, n.start_line, e.line, e.kind as edge_kind
36871
+ FROM edges e
36872
+ JOIN nodes n ON e.source = n.id
36873
+ WHERE e.target = ? AND e.kind = 'calls'
36874
+ ORDER BY n.file_path, n.start_line
36875
+ LIMIT ?
36876
+ `, limit, nodeId, limit);
36877
+ }
36878
+ function getCallees(db, nodeId, limit = 50) {
36879
+ return safeAll(db, `
36880
+ SELECT n.name, n.kind, n.file_path, n.start_line, e.line, e.kind as edge_kind
36881
+ FROM edges e
36882
+ JOIN nodes n ON e.target = n.id
36883
+ WHERE e.source = ? AND e.kind = 'calls'
36884
+ ORDER BY n.file_path, n.start_line
36885
+ LIMIT ?
36886
+ `, limit, nodeId, limit);
36887
+ }
36888
+ function getImpact(db, nodeId, maxDepth = 2, limit = 50) {
36889
+ const direct = getCallers(db, nodeId, limit);
36890
+ const indirectMap = /* @__PURE__ */ new Map();
36891
+ for (const d of direct.slice(0, 10)) {
36892
+ const node = safeGet(
36893
+ db,
36894
+ "SELECT id, name, kind, file_path FROM nodes WHERE name = ? AND file_path = ? LIMIT 1",
36895
+ d.name,
36896
+ d.file_path
36897
+ );
36898
+ if (node) {
36899
+ const indirect = safeAll(db, `
36900
+ SELECT n.name, n.kind, n.file_path, n.start_line
36901
+ FROM edges e JOIN nodes n ON e.source = n.id
36902
+ WHERE e.target = ? AND e.kind = 'calls'
36903
+ LIMIT 5
36904
+ `, 5, node.id);
36905
+ for (const idr of indirect) {
36906
+ const key = `${idr.name}@${idr.file_path}`;
36907
+ if (!indirectMap.has(key)) indirectMap.set(key, idr);
36908
+ }
36909
+ }
36910
+ }
36911
+ return { direct, indirect: [...indirectMap.values()].slice(0, limit) };
36912
+ }
36865
36913
  function registerCodeGraphTools(server) {
36866
36914
  server.tool(
36867
36915
  "codegraph_status",
36868
- "CAT:[\u4EE3\u7801\u667A\u80FD] | ## \u529F\u80FD\uFF1A\u68C0\u67E5\u4EE3\u7801\u77E5\u8BC6\u56FE\u8C31\u72B6\u6001\u2014\u2014\u8282\u70B9\u6570\u3001\u8FB9\u6570\u3001\u8986\u76D6\u6587\u4EF6\u3001\u88AB\u8C03\u7528\u6700\u591A\u7684\u51FD\u6570\n## \u573A\u666F\uFF1AAgent \u9996\u6B21\u8FDE\u63A5\u65F6\u786E\u8BA4\u56FE\u8C31\u662F\u5426\u5C31\u7EEA\uFF0C\u6216\u7528\u6237\u95EE\u300Chvip \u4EE3\u7801\u7ED3\u6784\u80FD\u67E5\u5417\u300D\u65F6\u786E\u8BA4\n## \u5173\u952E\u8BCD\uFF1A\u4EE3\u7801\u56FE\u8C31, codegraph, \u77E5\u8BC6\u56FE\u8C31, \u7D22\u5F15\u72B6\u6001, \u8C03\u7528\u6392\u884C\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u672C\u5730\u8BFB\u6570\u636E\u5E93\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~800B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u786E\u8BA4\u72B6\u6001 \u2192 codegraph_query \u8FFD\u8E2A\u8C03\u7528\u94FE/\u641C\u7D22\u7B26\u53F7",
36916
+ "CAT:[\u4EE3\u7801\u667A\u80FD] | ## \u529F\u80FD\uFF1A\u68C0\u67E5\u4EE3\u7801\u77E5\u8BC6\u56FE\u8C31\u72B6\u6001\u2014\u2014\u8282\u70B9\u6570\u3001\u8FB9\u6570\u3001\u8986\u76D6\u6587\u4EF6\u3001\u88AB\u8C03\u6700\u591A\u7684\u51FD\u6570\n## \u573A\u666F\uFF1AAgent \u9996\u6B21\u8FDE\u63A5\u65F6\u786E\u8BA4\u56FE\u8C31\u5C31\u7EEA\n## \u5173\u952E\u8BCD\uFF1A\u4EE3\u7801\u56FE\u8C31, codegraph, \u77E5\u8BC6\u56FE\u8C31, \u7D22\u5F15\u72B6\u6001, \u8C03\u7528\u6392\u884C\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u672C\u5730\u8BFB DB\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u786E\u8BA4\u72B6\u6001 \u2192 codegraph_query \u8FFD\u8E2A\u8C03\u7528\u94FE",
36869
36917
  {},
36870
36918
  async () => {
36871
36919
  try {
36872
- const cg = await getCodeGraph();
36873
- if (!cg) {
36920
+ if (!isSqliteAvailable()) {
36921
+ const nodeVersion = process.versions.node;
36874
36922
  return toResult({
36875
36923
  status: "unavailable",
36876
- reason: _cgInitError || "CodeGraph \u5F15\u64CE\u52A0\u8F7D\u5931\u8D25",
36877
- how_to_setup: "npm i @colbymchenry/codegraph && codegraph index",
36878
- alternatives: "\u56FE\u8C31\u4E0D\u53EF\u7528\u65F6\uFF0C\u4ECD\u53EF\u7528\u672C\u5DE5\u5177\u8FD4\u56DE\u7684\u8282\u70B9\u6570\u548C\u8FB9\u6570\u4E86\u89E3\u4EE3\u7801\u89C4\u6A21",
36924
+ reason: `Node.js ${nodeVersion} \u4E0D\u652F\u6301\u5185\u7F6E sqlite\uFF0C\u9700\u8981 Node >= 22.5.0`,
36925
+ nodeVersion,
36926
+ tsIso: (/* @__PURE__ */ new Date()).toISOString(),
36927
+ _summary: `\u4EE3\u7801\u56FE\u8C31\u4E0D\u53EF\u7528\uFF1A\u9700 Node >= 22.5.0\uFF0C\u5F53\u524D ${nodeVersion}`
36928
+ });
36929
+ }
36930
+ const dbPath = getDBPath();
36931
+ if (!fs2.existsSync(dbPath)) {
36932
+ return toResult({
36933
+ status: "no_db",
36934
+ reason: `.codegraph/codegraph.db \u4E0D\u5B58\u5728`,
36935
+ how_to_setup: [
36936
+ "1. npm i -g @colbymchenry/codegraph",
36937
+ "2. cd \u5230\u9879\u76EE\u6839\u76EE\u5F55\u8FD0\u884C codegraph index",
36938
+ "3. \u91CD\u542F MCP Server",
36939
+ "\uFF08Claude Code \u7528\u6237\uFF1A\u56FE\u8C31\u7531 CodeGraph \u529F\u80FD\u81EA\u52A8\u751F\u6210\uFF09"
36940
+ ].join("\n"),
36941
+ tsIso: (/* @__PURE__ */ new Date()).toISOString(),
36942
+ _summary: "\u4EE3\u7801\u56FE\u8C31\u672A\u751F\u6210\u3002\u8FD0\u884C codegraph index \u540E\u53EF\u7528\u3002"
36943
+ });
36944
+ }
36945
+ const db = openDB();
36946
+ if (!db) {
36947
+ return toResult({
36948
+ status: "error",
36949
+ reason: "\u65E0\u6CD5\u6253\u5F00\u4EE3\u7801\u56FE\u8C31\u6570\u636E\u5E93\uFF08\u53EF\u80FD\u88AB\u9501\u5B9A\uFF09",
36950
+ dbPath,
36879
36951
  tsIso: (/* @__PURE__ */ new Date()).toISOString(),
36880
- _summary: "\u4EE3\u7801\u56FE\u8C31\u672A\u5C31\u7EEA\u3002\u8BF7\u8FD0\u884C codegraph index \u751F\u6210\u6570\u636E\u5E93\u3002"
36952
+ _summary: "\u4EE3\u7801\u56FE\u8C31\u6570\u636E\u5E93\u6253\u5F00\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\u3002"
36881
36953
  });
36882
36954
  }
36883
- const stats = await cg.getStats();
36884
- let topCalled = [];
36885
36955
  try {
36886
- const allExported = await cg.getNodesByKind("function").then((nodes) => nodes.filter((n) => n.isExported)).catch(() => []);
36887
- const sample = allExported.slice(0, 50);
36888
- const withCounts = await Promise.all(
36889
- sample.map(async (n) => {
36890
- try {
36891
- const callers = await cg.getCallers(n.id, 1);
36892
- return { name: n.name, file: n.filePath, callers: callers?.length || 0 };
36893
- } catch {
36894
- return { name: n.name, file: n.filePath, callers: 0 };
36895
- }
36896
- })
36956
+ const nodeCount = safeGet(db, "SELECT count(*) as n FROM nodes")?.n || 0;
36957
+ const edgeCount = safeGet(db, "SELECT count(*) as n FROM edges")?.n || 0;
36958
+ const fileCount = safeGet(db, "SELECT count(*) as n FROM files")?.n || 0;
36959
+ const byLang = safeAll(
36960
+ db,
36961
+ "SELECT language, count(*) as n FROM files GROUP BY language ORDER BY n DESC",
36962
+ 20
36897
36963
  );
36898
- topCalled = withCounts.sort((a, b) => b.callers - a.callers).slice(0, 5);
36899
- } catch {
36964
+ const byKind = safeAll(
36965
+ db,
36966
+ "SELECT kind, count(*) as n FROM nodes GROUP BY kind ORDER BY n DESC",
36967
+ 20
36968
+ );
36969
+ let topCalled = [];
36970
+ try {
36971
+ topCalled = safeAll(db, `
36972
+ SELECT n.name, n.kind, n.file_path, count(e.id) as caller_count
36973
+ FROM edges e
36974
+ JOIN nodes n ON e.target = n.id
36975
+ WHERE e.kind = 'calls'
36976
+ GROUP BY e.target
36977
+ ORDER BY caller_count DESC
36978
+ LIMIT 5
36979
+ `, 5) || [];
36980
+ } catch {
36981
+ }
36982
+ const lastIndexed = safeGet(
36983
+ db,
36984
+ "SELECT max(indexed_at) as ts FROM files"
36985
+ )?.ts;
36986
+ db.close();
36987
+ const status = {
36988
+ status: "ready",
36989
+ dbPath,
36990
+ database: { nodeCount, edgeCount, fileCount },
36991
+ languages: byLang.reduce((acc, r) => ({ ...acc, [r.language]: r.n }), {}),
36992
+ nodesByKind: byKind.reduce((acc, r) => ({ ...acc, [r.kind]: r.n }), {}),
36993
+ lastIndexed: lastIndexed ? new Date(lastIndexed).toISOString() : "unknown",
36994
+ topCalledFunctions: topCalled.map((r) => ({
36995
+ name: r.name,
36996
+ kind: r.kind,
36997
+ file: r.file_path,
36998
+ callers: r.caller_count
36999
+ })),
37000
+ queryHint: "codegraph_query { mode: 'callers', symbol: 'toResult' }",
37001
+ tsIso: (/* @__PURE__ */ new Date()).toISOString(),
37002
+ _summary: `\u4EE3\u7801\u56FE\u8C31\u5C31\u7EEA\u3002${nodeCount} \u4E2A\u8282\u70B9\uFF0C${edgeCount} \u6761\u5173\u7CFB\uFF0C${fileCount} \u4E2A\u6587\u4EF6\u3002${topCalled.length ? `\u88AB\u8C03\u6700\u591A: ${topCalled.slice(0, 3).map((f) => f.name).join("\u3001")}` : ""}`
37003
+ };
37004
+ return toResult(status);
37005
+ } catch (e) {
37006
+ try {
37007
+ db.close();
37008
+ } catch {
37009
+ }
37010
+ throw e;
36900
37011
  }
36901
- const status = {
36902
- status: "ready",
36903
- stats: {
36904
- nodes: stats.nodeCount,
36905
- edges: stats.edgeCount,
36906
- files: stats.fileCount,
36907
- byKind: stats.nodesByKind,
36908
- byLanguage: stats.filesByLanguage,
36909
- dbSize: stats.dbSizeBytes ? `${(stats.dbSizeBytes / 1024 / 1024).toFixed(1)} MB` : "unknown"
36910
- },
36911
- topCalled,
36912
- queryHint: "\u7528 codegraph_query \u67E5\u8C03\u7528\u94FE\u3002\u4F8B: codegraph_query({ mode: 'callers', symbol: 'toResult' })",
36913
- tsIso: (/* @__PURE__ */ new Date()).toISOString(),
36914
- _summary: `\u4EE3\u7801\u77E5\u8BC6\u56FE\u8C31\u5C31\u7EEA\u3002${stats.nodeCount} \u4E2A\u8282\u70B9\uFF0C${stats.edgeCount} \u6761\u5173\u7CFB\uFF0C\u8986\u76D6 ${stats.fileCount} \u4E2A\u6587\u4EF6\u3002${topCalled.length ? `\u88AB\u8C03\u6700\u591A: ${topCalled.slice(0, 3).map((f) => f.name).join("\u3001")}` : ""}`
36915
- };
36916
- return toResult(status);
36917
37012
  } catch (e) {
36918
37013
  return toError(e);
36919
37014
  }
@@ -36921,143 +37016,186 @@ function registerCodeGraphTools(server) {
36921
37016
  );
36922
37017
  server.tool(
36923
37018
  "codegraph_query",
36924
- "CAT:[\u4EE3\u7801\u667A\u80FD] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EE3\u7801\u77E5\u8BC6\u56FE\u8C31\u2014\u2014\u8FFD\u8E2A\u8C03\u7528\u94FE\u3001\u641C\u7D22\u7B26\u53F7\u3001\u63A2\u7D22\u6A21\u5757\u4F9D\u8D56\u3001\u6309\u6587\u4EF6\u5217\u51FA\u7B26\u53F7\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54\u300CtoResult \u88AB\u54EA\u4E9B\u5DE5\u5177\u8C03\u7528\u300D\u300CregisterMarketTools \u7684\u4E0A\u4E0B\u6E38\u300D\u300C\u4EE3\u7801\u91CC\u54EA\u91CC\u5904\u7406\u4E86 WebSocket\u300D\u65F6\u8C03\u7528\n## \u5173\u952E\u8BCD\uFF1Acodegraph, \u8C03\u7528\u94FE, callers, callees, \u4F9D\u8D56, \u4EE3\u7801\u641C\u7D22, \u7B26\u53F7\u67E5\u8BE2, \u4E0A\u4E0B\u6E38, \u5F71\u54CD\u5206\u6790\n## \u53C2\u6570\uFF1A\n## - mode: \u67E5\u8BE2\u6A21\u5F0F\u3002callers=\u8C01\u8C03\u7528\u5B83, callees=\u5B83\u8C03\u7528\u8C01, search=\u5168\u6587\u641C\u7D22, file=\u6309\u6587\u4EF6\u5217\u51FA\n## - symbol: \u7B26\u53F7\u540D/\u8282\u70B9ID (callers/callees/file \u6A21\u5F0F)\n## - query: \u641C\u7D22\u8BCD (search \u6A21\u5F0F)\n## - limit: \u8FD4\u56DE\u6570\uFF0C\u9ED8\u8BA4 15\n## \u9274\u6743\uFF1APUBLIC \u2014 \u672C\u5730\u8BFB\u6570\u636E\u5E93\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Acodegraph_status \u770B\u72B6\u6001 \u2192 \u672C\u5DE5\u5177\u67E5\u8BE2 \u2192 Agent \u5B9A\u4F4D\u6E90\u7801",
37019
+ "CAT:[\u4EE3\u7801\u667A\u80FD] | ## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EE3\u7801\u77E5\u8BC6\u56FE\u8C31\u2014\u2014\u8FFD\u8E2A\u8C03\u7528\u94FE\uFF08callers/callees\uFF09\u3001\u641C\u7D22\u7B26\u53F7\u3001\u6309\u6587\u4EF6\u5217\u7B26\u53F7\u3001\u5F71\u54CD\u5206\u6790\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54\u300CtoResult \u88AB\u54EA\u4E9B\u5DE5\u5177\u8C03\u7528\u300D\u300C\u6539 shared.ts \u5F71\u54CD\u54EA\u4E9B\u6A21\u5757\u300D\u300CWebSocket \u5728\u54EA\u4E9B\u6587\u4EF6\u91CC\u300D\u65F6\u8C03\u7528\n## \u5173\u952E\u8BCD\uFF1Acodegraph, \u8C03\u7528\u94FE, callers, callees, \u641C\u7D22, \u5F71\u54CD\u5206\u6790, \u4F9D\u8D56\n## \u53C2\u6570\uFF1A\n## - mode: \u67E5\u8BE2\u6A21\u5F0F\u3002callers / callees / search / file / impact\n## - symbol: \u7B26\u53F7\u540D\u6216\u6587\u4EF6\u540D\n## - limit: \u8FD4\u56DE\u6570\uFF0C\u9ED8\u8BA4 15\n## \u9274\u6743\uFF1APUBLIC \u2014 \u672C\u5730\u8BFB DB\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Acodegraph_status \u2192 codegraph_query",
36925
37020
  {
36926
- mode: external_exports.enum(["callers", "callees", "search", "file"]).describe("callers=\u8C01\u8C03\u7528\u5B83, callees=\u5B83\u8C03\u7528\u8C01, search=\u5168\u6587\u641C\u7D22, file=\u6309\u6587\u4EF6\u5217\u51FA\u7B26\u53F7"),
36927
- symbol: external_exports.string().optional().describe("\u7B26\u53F7\u540D\uFF08\u5982 toResult\uFF09\u6216\u6587\u4EF6\u540D\uFF08\u5982 agent-utils.ts\uFF09"),
36928
- query: external_exports.string().optional().describe("\u641C\u7D22\u8BCD\uFF08search \u6A21\u5F0F\uFF09\uFF0C\u5982 'websocket \u8FDE\u63A5'"),
37021
+ mode: external_exports.enum(["callers", "callees", "search", "file", "impact"]).describe("callers=\u8C01\u8C03\u7528\u5B83, callees=\u5B83\u8C03\u7528\u8C01, search=\u641C\u7B26\u53F7, file=\u6309\u6587\u4EF6, impact=2\u8DF3\u5F71\u54CD\u5206\u6790"),
37022
+ symbol: external_exports.string().optional().describe("\u7B26\u53F7\u540D\uFF08\u5982 toResult\uFF09\u6216\u6587\u4EF6\u540D\uFF08\u5982 agent-utils.ts\uFF09\u6216\u641C\u7D22\u8BCD"),
36929
37023
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6570\uFF0C\u9ED8\u8BA4 15")
36930
37024
  },
36931
- async ({ mode, symbol, query, limit }) => {
37025
+ async ({ mode, symbol, limit }) => {
36932
37026
  try {
36933
- const cg = await getCodeGraph();
36934
- if (!cg) return toError("\u4EE3\u7801\u56FE\u8C31\u4E0D\u53EF\u7528\u3002\u8BF7\u5148\u8C03 codegraph_status \u68C0\u67E5\u72B6\u6001\u3002");
37027
+ const db = openDB();
37028
+ if (!db) return toError("\u4EE3\u7801\u56FE\u8C31\u4E0D\u53EF\u7528\u3002\u8BF7\u8C03 codegraph_status \u68C0\u67E5\u72B6\u6001\u3002");
36935
37029
  const n = limit || 15;
36936
- if (mode === "search") {
36937
- const q = query || symbol || "";
36938
- if (!q) return toError("search \u6A21\u5F0F\u9700\u8981 query \u6216 symbol \u53C2\u6570");
36939
- const results = await cg.searchNodes(q, { limit: n });
36940
- if (!results?.length) {
37030
+ try {
37031
+ if (mode === "search") {
37032
+ if (!symbol) return toError("search \u6A21\u5F0F\u9700\u8981 symbol \u53C2\u6570");
37033
+ const q = symbol;
37034
+ let rows = safeAll(db, `
37035
+ SELECT n.id, n.name, n.kind, n.file_path, n.start_line, n.signature,
37036
+ n.docstring, n.qualified_name
37037
+ FROM nodes_fts f
37038
+ JOIN nodes n ON f.id = n.id
37039
+ WHERE nodes_fts MATCH ?
37040
+ ORDER BY rank
37041
+ LIMIT ?
37042
+ `, n, q, n);
37043
+ if (!rows || rows.length === 0) {
37044
+ rows = safeAll(db, `
37045
+ SELECT id, name, kind, file_path, start_line, signature, docstring, qualified_name
37046
+ FROM nodes
37047
+ WHERE name LIKE ? OR qualified_name LIKE ?
37048
+ ORDER BY name
37049
+ LIMIT ?
37050
+ `, n, `%${q}%`, `%${q}%`, n);
37051
+ }
37052
+ if (!rows || rows.length === 0) {
37053
+ return toResult({
37054
+ mode: "search",
37055
+ query: q,
37056
+ found: false,
37057
+ hint: `\u672A\u627E\u5230 "${q}"\u3002\u8BD5\u8BD5\u51FD\u6570\u540D\uFF08\u5982 registerTools\uFF09\u6216\u6587\u4EF6\u540D\u7247\u6BB5\u3002`,
37058
+ tsIso: (/* @__PURE__ */ new Date()).toISOString()
37059
+ });
37060
+ }
37061
+ const items = rows.slice(0, n).map((r) => ({
37062
+ name: r.name,
37063
+ kind: r.kind,
37064
+ file: r.file_path,
37065
+ line: r.start_line,
37066
+ signature: r.signature?.slice(0, 120),
37067
+ docstring: r.docstring?.slice(0, 100)
37068
+ }));
36941
37069
  return toResult({
36942
37070
  mode: "search",
36943
37071
  query: q,
36944
- found: false,
36945
- hint: `\u672A\u627E\u5230\u4E0E "${q}" \u76F8\u5173\u7684\u7B26\u53F7\u3002\u8BD5\u8BD5\u51FD\u6570\u540D\uFF08\u5982 registerTools\uFF09\u6216\u6587\u4EF6\u540D\u3002`,
37072
+ total: rows.length,
37073
+ results: items,
37074
+ _summary: `\u641C\u7D22 "${q}" \u627E\u5230 ${rows.length} \u4E2A\u7B26\u53F7\u3002${items.slice(0, 3).map((i) => `${i.name}(${i.kind})`).join(" | ")}`,
37075
+ hint: `\u627E\u5230\u540E: codegraph_query({ mode: 'callers', symbol: '<name>' })`,
36946
37076
  tsIso: (/* @__PURE__ */ new Date()).toISOString()
36947
37077
  });
36948
37078
  }
36949
- const items = await Promise.all(results.slice(0, n).map(async (r) => {
36950
- const node = r.node || r;
36951
- let callerCount = 0, calleeCount = 0;
36952
- try {
36953
- callerCount = (await cg.getCallers(node.id, 1))?.length || 0;
36954
- } catch {
37079
+ if (mode === "callers") {
37080
+ if (!symbol) return toError("callers \u6A21\u5F0F\u9700\u8981 symbol");
37081
+ const nodes = findNodes(db, symbol, 3);
37082
+ if (!nodes.length) {
37083
+ return toResult({ mode: "callers", symbol, found: false, tsIso: (/* @__PURE__ */ new Date()).toISOString() });
36955
37084
  }
36956
- try {
36957
- calleeCount = (await cg.getCallees(node.id, 1))?.length || 0;
36958
- } catch {
37085
+ const results = nodes.map((node) => {
37086
+ const callers = getCallers(db, node.id, n);
37087
+ return {
37088
+ target: { id: node.id, name: node.name, kind: node.kind, file: node.file_path, line: node.start_line },
37089
+ callers: callers.map((c) => ({
37090
+ name: c.name,
37091
+ kind: c.kind,
37092
+ file: c.file_path,
37093
+ line: c.start_line
37094
+ })),
37095
+ total: callers.length
37096
+ };
37097
+ });
37098
+ const total = results.reduce((s, r) => s + r.total, 0);
37099
+ return toResult({
37100
+ mode: "callers",
37101
+ symbol,
37102
+ matched: nodes.length,
37103
+ results,
37104
+ _summary: `"${symbol}" \u5339\u914D ${nodes.length} \u4E2A\u7B26\u53F7\uFF0C\u5171 ${total} \u4E2A\u8C03\u7528\u8005\u3002`,
37105
+ tsIso: (/* @__PURE__ */ new Date()).toISOString()
37106
+ });
37107
+ }
37108
+ if (mode === "callees") {
37109
+ if (!symbol) return toError("callees \u6A21\u5F0F\u9700\u8981 symbol");
37110
+ const nodes = findNodes(db, symbol, 3);
37111
+ if (!nodes.length) {
37112
+ return toResult({ mode: "callees", symbol, found: false, tsIso: (/* @__PURE__ */ new Date()).toISOString() });
36959
37113
  }
36960
- return {
36961
- id: node.id,
36962
- name: node.name,
36963
- kind: node.kind,
36964
- file: node.filePath,
36965
- line: node.startLine,
36966
- signature: node.signature?.slice(0, 120),
36967
- stats: { callers: callerCount, callees: calleeCount }
36968
- };
36969
- }));
36970
- return toResult({
36971
- mode: "search",
36972
- query: q,
36973
- total: results.length,
36974
- results: items,
36975
- _summary: `\u641C\u7D22 "${q}" \u627E\u5230 ${results.length} \u4E2A\u7B26\u53F7\u3002${items.slice(0, 3).map((i) => `${i.name}(${i.kind})`).join(" | ")}`,
36976
- hint: `\u627E\u5230\u5177\u4F53\u7B26\u53F7\u540E\uFF0C\u7528 codegraph_query({ mode: 'callers', symbol: '<id>' }) \u8FFD\u8E2A\u8C03\u7528\u94FE\u3002`,
36977
- tsIso: (/* @__PURE__ */ new Date()).toISOString()
36978
- });
36979
- }
36980
- if (mode === "callers") {
36981
- if (!symbol) return toError("callers \u6A21\u5F0F\u9700\u8981 symbol \u53C2\u6570");
36982
- const nodes = await cg.getNodesByName(symbol);
36983
- if (!nodes?.length) {
36984
- return toResult({ mode: "callers", symbol, found: false, tsIso: (/* @__PURE__ */ new Date()).toISOString() });
37114
+ const results = nodes.map((node) => {
37115
+ const callees = getCallees(db, node.id, n);
37116
+ return {
37117
+ source: { id: node.id, name: node.name, kind: node.kind, file: node.file_path, line: node.start_line },
37118
+ callees: callees.map((c) => ({
37119
+ name: c.name,
37120
+ kind: c.kind,
37121
+ file: c.file_path,
37122
+ line: c.start_line
37123
+ })),
37124
+ total: callees.length
37125
+ };
37126
+ });
37127
+ const total = results.reduce((s, r) => s + r.total, 0);
37128
+ return toResult({
37129
+ mode: "callees",
37130
+ symbol,
37131
+ matched: nodes.length,
37132
+ results,
37133
+ _summary: `"${symbol}" \u5339\u914D ${nodes.length} \u4E2A\u7B26\u53F7\uFF0C\u5171\u8C03\u7528 ${total} \u4E2A\u4E0B\u6E38\u3002`,
37134
+ tsIso: (/* @__PURE__ */ new Date()).toISOString()
37135
+ });
36985
37136
  }
36986
- const results = await Promise.all(nodes.slice(0, 5).map(async (node) => {
36987
- const callers = await cg.getCallers(node.id, 1);
36988
- return {
36989
- target: { id: node.id, name: node.name, kind: node.kind, file: node.filePath, line: node.startLine },
36990
- callers: (callers || []).slice(0, n).map((c) => ({
37137
+ if (mode === "file") {
37138
+ if (!symbol) return toError("file \u6A21\u5F0F\u9700\u8981 symbol\uFF08\u6587\u4EF6\u540D\uFF09");
37139
+ const file = safeGet(
37140
+ db,
37141
+ "SELECT * FROM files WHERE path LIKE ? LIMIT 1",
37142
+ `%${symbol}%`
37143
+ );
37144
+ const nodes = safeAll(db, `
37145
+ SELECT name, kind, start_line, signature, is_exported
37146
+ FROM nodes WHERE file_path LIKE ?
37147
+ ORDER BY start_line LIMIT ?
37148
+ `, n, `%${symbol}%`, n);
37149
+ return toResult({
37150
+ mode: "file",
37151
+ file: symbol,
37152
+ fileInfo: file ? { path: file.path, language: file.language, size: file.size, nodeCount: file.node_count } : null,
37153
+ symbols: nodes.map((r) => ({
37154
+ name: r.name,
37155
+ kind: r.kind,
37156
+ line: r.start_line,
37157
+ signature: r.signature?.slice(0, 120),
37158
+ exported: r.is_exported === 1
37159
+ })),
37160
+ _summary: `\u6587\u4EF6 "${symbol}" \u5305\u542B ${nodes.length} \u4E2A\u7B26\u53F7\u3002`,
37161
+ tsIso: (/* @__PURE__ */ new Date()).toISOString()
37162
+ });
37163
+ }
37164
+ if (mode === "impact") {
37165
+ if (!symbol) return toError("impact \u6A21\u5F0F\u9700\u8981 symbol");
37166
+ const nodes = findNodes(db, symbol, 1);
37167
+ if (!nodes.length) {
37168
+ return toResult({ mode: "impact", symbol, found: false, tsIso: (/* @__PURE__ */ new Date()).toISOString() });
37169
+ }
37170
+ const node = nodes[0];
37171
+ const { direct, indirect } = getImpact(db, node.id, 2, n);
37172
+ return toResult({
37173
+ mode: "impact",
37174
+ symbol,
37175
+ node: { id: node.id, name: node.name, kind: node.kind, file: node.file_path, line: node.start_line },
37176
+ directlyAffected: direct.map((c) => ({
36991
37177
  name: c.name,
36992
37178
  kind: c.kind,
36993
- file: c.filePath,
36994
- line: c.line,
36995
- relation: c.edgeKind
37179
+ file: c.file_path,
37180
+ line: c.start_line
36996
37181
  })),
36997
- total: callers?.length || 0
36998
- };
36999
- }));
37000
- const total = results.reduce((s, r) => s + r.total, 0);
37001
- return toResult({
37002
- mode: "callers",
37003
- symbol,
37004
- matched: nodes.length,
37005
- results,
37006
- _summary: `"${symbol}" \u5339\u914D ${nodes.length} \u4E2A\u7B26\u53F7\uFF0C\u5171 ${total} \u4E2A\u8C03\u7528\u8005\u3002`,
37007
- tsIso: (/* @__PURE__ */ new Date()).toISOString()
37008
- });
37009
- }
37010
- if (mode === "callees") {
37011
- if (!symbol) return toError("callees \u6A21\u5F0F\u9700\u8981 symbol \u53C2\u6570");
37012
- const nodes = await cg.getNodesByName(symbol);
37013
- if (!nodes?.length) {
37014
- return toResult({ mode: "callees", symbol, found: false, tsIso: (/* @__PURE__ */ new Date()).toISOString() });
37015
- }
37016
- const results = await Promise.all(nodes.slice(0, 5).map(async (node) => {
37017
- const callees = await cg.getCallees(node.id, 1);
37018
- return {
37019
- source: { id: node.id, name: node.name, kind: node.kind, file: node.filePath, line: node.startLine },
37020
- callees: (callees || []).slice(0, n).map((c) => ({
37182
+ indirectlyAffected: indirect.map((c) => ({
37021
37183
  name: c.name,
37022
37184
  kind: c.kind,
37023
- file: c.filePath,
37024
- line: c.line,
37025
- relation: c.edgeKind
37185
+ file: c.file_path,
37186
+ line: c.start_line
37026
37187
  })),
37027
- total: callees?.length || 0
37028
- };
37029
- }));
37030
- const total = results.reduce((s, r) => s + r.total, 0);
37031
- return toResult({
37032
- mode: "callees",
37033
- symbol,
37034
- matched: nodes.length,
37035
- results,
37036
- _summary: `"${symbol}" \u5339\u914D ${nodes.length} \u4E2A\u7B26\u53F7\uFF0C\u5171\u8C03\u7528 ${total} \u4E2A\u4E0B\u6E38\u3002`,
37037
- tsIso: (/* @__PURE__ */ new Date()).toISOString()
37038
- });
37039
- }
37040
- if (mode === "file") {
37041
- if (!symbol) return toError("file \u6A21\u5F0F\u9700\u8981 symbol \u53C2\u6570\uFF08\u6587\u4EF6\u540D\uFF09");
37042
- const files = await cg.getFiles({ pattern: symbol });
37043
- const fileInfo = files?.[0];
37044
- const symbols = fileInfo ? await cg.getNodesInFile(fileInfo.path) : [];
37045
- return toResult({
37046
- mode: "file",
37047
- file: symbol,
37048
- fileInfo: fileInfo ? { path: fileInfo.path, language: fileInfo.language, size: fileInfo.size } : null,
37049
- symbols: (symbols || []).slice(0, n).map((s) => ({
37050
- name: s.name,
37051
- kind: s.kind,
37052
- line: s.startLine,
37053
- signature: s.signature?.slice(0, 120),
37054
- exported: s.isExported
37055
- })),
37056
- _summary: `\u6587\u4EF6 "${symbol}" \u5305\u542B ${symbols?.length || 0} \u4E2A\u7B26\u53F7\u3002`,
37057
- tsIso: (/* @__PURE__ */ new Date()).toISOString()
37058
- });
37188
+ _summary: `\u4FEE\u6539 "${symbol}" \u76F4\u63A5\u5F71\u54CD ${direct.length} \u4E2A\u8C03\u7528\u8005\uFF0C\u95F4\u63A5\u5F71\u54CD ${indirect.length} \u4E2A\u4E0B\u6E38\u3002`,
37189
+ tsIso: (/* @__PURE__ */ new Date()).toISOString()
37190
+ });
37191
+ }
37192
+ return toError(`\u672A\u77E5\u6A21\u5F0F: ${mode}`);
37193
+ } finally {
37194
+ try {
37195
+ db.close();
37196
+ } catch {
37197
+ }
37059
37198
  }
37060
- return toError(`\u672A\u77E5\u6A21\u5F0F: ${mode}`);
37061
37199
  } catch (e) {
37062
37200
  return toError(e);
37063
37201
  }
@@ -37213,7 +37351,7 @@ async function startStdio(server, version2, auth, readOnly, skipped, skipLog) {
37213
37351
  await server.connect(transport);
37214
37352
  }
37215
37353
  async function main() {
37216
- const VERSION = "0.2.50";
37354
+ const VERSION = "0.2.52";
37217
37355
  const auth = getAuth();
37218
37356
  const mode = resolveTransportMode();
37219
37357
  const exec = resolveExecutionMode();