hvip-mcp-server 0.2.52 → 0.2.53

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 +1173 -372
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -10982,6 +10982,8 @@ var require_websocket_server = __commonJS({
10982
10982
 
10983
10983
  // src/index.ts
10984
10984
  var import_node_http = require("node:http");
10985
+ var import_node_fs = require("node:fs");
10986
+ var import_node_path = require("node:path");
10985
10987
 
10986
10988
  // node_modules/zod/v3/external.js
10987
10989
  var external_exports = {};
@@ -27225,10 +27227,17 @@ function classifyError(msg) {
27225
27227
  if (msg.includes("API Key")) return { errorCode: "AUTH_REQUIRED", errorCategory: "AUTH", errorMessage: msg };
27226
27228
  return { errorCode: "UNKNOWN_ERROR", errorCategory: "BUSINESS", errorMessage: msg };
27227
27229
  }
27228
- function classifyRisk(toolName) {
27230
+ function registerTool(server, name, accessLevel, description, paramsSchema, callback) {
27231
+ const taggedDesc = `[L:${accessLevel}] ${description}`;
27232
+ server.tool(name, taggedDesc, paramsSchema, callback);
27233
+ }
27234
+ function classifyRisk(toolNameOrDesc) {
27235
+ const m = toolNameOrDesc.match(/\[L:(READ|WRITE|FUND_TRANSFER|ADMIN)\]/);
27236
+ if (m) return m[1];
27237
+ const toolName = toolNameOrDesc;
27229
27238
  const admin = ["okx_set_account_mode", "okx_set_position_mode", "okx_set_settle_currency"];
27230
27239
  if (admin.includes(toolName)) return "ADMIN";
27231
- const fund = ["okx_withdrawal"];
27240
+ const fund = ["okx_withdrawal", "okx_predictions_redeem"];
27232
27241
  if (fund.some((p) => toolName.startsWith(p))) return "FUND_TRANSFER";
27233
27242
  const writePrefixes = [
27234
27243
  "okx_place_",
@@ -27250,6 +27259,15 @@ function classifyRisk(toolName) {
27250
27259
  "okx_first_",
27251
27260
  "okx_one_click_",
27252
27261
  "okx_easy_convert",
27262
+ "okx_mass_cancel",
27263
+ "okx_subaccount_set_",
27264
+ "okx_event_place_",
27265
+ "okx_event_cancel_",
27266
+ "okx_event_amend_",
27267
+ "okx_predictions_place_",
27268
+ "okx_predictions_cancel_",
27269
+ "okx_predictions_split",
27270
+ "okx_predictions_merge",
27253
27271
  "agent_quick_trade"
27254
27272
  ];
27255
27273
  if (writePrefixes.some((p) => toolName.startsWith(p))) return "WRITE";
@@ -27265,12 +27283,24 @@ function classifyRisk(toolName) {
27265
27283
  "agent_room_send",
27266
27284
  "agent_room_view",
27267
27285
  "okx_ws_subscribe",
27286
+ "okx_ws_subscribe_private",
27268
27287
  "okx_ws_events",
27269
27288
  "okx_ws_status",
27270
27289
  "okx_ws_close",
27290
+ "okx_predictions_ws_subscribe",
27291
+ "okx_predictions_ws_unsubscribe",
27292
+ "okx_predictions_ws_events",
27293
+ "okx_predictions_ws_status",
27271
27294
  "xlayer_subscribe",
27272
27295
  "xlayer_get_events",
27273
- "xlayer_unsubscribe"
27296
+ "xlayer_unsubscribe",
27297
+ "codegraph_status",
27298
+ "codegraph_query",
27299
+ "agent_get_preference",
27300
+ "agent_set_preference",
27301
+ "agent_simulate_transfer",
27302
+ "agent_read_only_trade",
27303
+ "okx_event_instruments"
27274
27304
  ];
27275
27305
  if (readSpecials.includes(toolName)) return "READ";
27276
27306
  if (toolName.startsWith("xlayer_call")) return "WRITE";
@@ -27290,8 +27320,10 @@ function toError(e) {
27290
27320
 
27291
27321
  // src/tools/market.ts
27292
27322
  function registerMarketTools(server) {
27293
- server.tool(
27323
+ registerTool(
27324
+ server,
27294
27325
  "okx_get_ticker",
27326
+ "READ",
27295
27327
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27296
27328
  { 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") },
27297
27329
  async ({ instId }) => {
@@ -27312,8 +27344,10 @@ function registerMarketTools(server) {
27312
27344
  }
27313
27345
  }
27314
27346
  );
27315
- server.tool(
27347
+ registerTool(
27348
+ server,
27316
27349
  "okx_get_tickers",
27350
+ "READ",
27317
27351
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27318
27352
  { instType: external_exports.enum(INST_TYPE_MARKET).describe("\u4EA7\u54C1\u7C7B\u578B") },
27319
27353
  async ({ instType }) => {
@@ -27330,8 +27364,10 @@ function registerMarketTools(server) {
27330
27364
  }
27331
27365
  }
27332
27366
  );
27333
- server.tool(
27367
+ registerTool(
27368
+ server,
27334
27369
  "okx_get_orderbook",
27370
+ "READ",
27335
27371
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27336
27372
  {
27337
27373
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -27360,8 +27396,10 @@ function registerMarketTools(server) {
27360
27396
  }
27361
27397
  }
27362
27398
  );
27363
- server.tool(
27399
+ registerTool(
27400
+ server,
27364
27401
  "okx_get_candles",
27402
+ "READ",
27365
27403
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27366
27404
  {
27367
27405
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -27387,8 +27425,10 @@ function registerMarketTools(server) {
27387
27425
  }
27388
27426
  }
27389
27427
  );
27390
- server.tool(
27428
+ registerTool(
27429
+ server,
27391
27430
  "okx_get_trades",
27431
+ "READ",
27392
27432
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27393
27433
  {
27394
27434
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -27407,8 +27447,10 @@ function registerMarketTools(server) {
27407
27447
  }
27408
27448
  }
27409
27449
  );
27410
- server.tool(
27450
+ registerTool(
27451
+ server,
27411
27452
  "okx_get_history_candles",
27453
+ "READ",
27412
27454
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27413
27455
  {
27414
27456
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -27436,8 +27478,10 @@ function registerMarketTools(server) {
27436
27478
  }
27437
27479
  }
27438
27480
  );
27439
- server.tool(
27481
+ registerTool(
27482
+ server,
27440
27483
  "okx_get_history_trades",
27484
+ "READ",
27441
27485
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27442
27486
  {
27443
27487
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -27456,8 +27500,10 @@ function registerMarketTools(server) {
27456
27500
  }
27457
27501
  }
27458
27502
  );
27459
- server.tool(
27503
+ registerTool(
27504
+ server,
27460
27505
  "okx_get_system_status",
27506
+ "READ",
27461
27507
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27462
27508
  {},
27463
27509
  async () => {
@@ -27469,8 +27515,10 @@ function registerMarketTools(server) {
27469
27515
  }
27470
27516
  }
27471
27517
  );
27472
- server.tool(
27518
+ registerTool(
27519
+ server,
27473
27520
  "okx_get_block_tickers",
27521
+ "READ",
27474
27522
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27475
27523
  {
27476
27524
  instType: external_exports.enum(INST_TYPE_MARKET).describe("\u4EA7\u54C1\u7C7B\u578B")
@@ -27489,8 +27537,10 @@ function registerMarketTools(server) {
27489
27537
  }
27490
27538
  }
27491
27539
  );
27492
- server.tool(
27540
+ registerTool(
27541
+ server,
27493
27542
  "okx_get_books_full",
27543
+ "READ",
27494
27544
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27495
27545
  {
27496
27546
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -27519,8 +27569,10 @@ function registerMarketTools(server) {
27519
27569
  }
27520
27570
  }
27521
27571
  );
27522
- server.tool(
27572
+ registerTool(
27573
+ server,
27523
27574
  "okx_get_index_tickers",
27575
+ "READ",
27524
27576
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27525
27577
  {
27526
27578
  quoteCcy: external_exports.string().optional().describe("\u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USDT\u3001USD\u3001BTC"),
@@ -27539,8 +27591,10 @@ function registerMarketTools(server) {
27539
27591
  }
27540
27592
  }
27541
27593
  );
27542
- server.tool(
27594
+ registerTool(
27595
+ server,
27543
27596
  "okx_get_index_candles",
27597
+ "READ",
27544
27598
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27545
27599
  {
27546
27600
  instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -27568,8 +27622,10 @@ function registerMarketTools(server) {
27568
27622
  }
27569
27623
  }
27570
27624
  );
27571
- server.tool(
27625
+ registerTool(
27626
+ server,
27572
27627
  "okx_get_block_ticker",
27628
+ "READ",
27573
27629
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27574
27630
  {
27575
27631
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B")
@@ -27587,8 +27643,10 @@ function registerMarketTools(server) {
27587
27643
  }
27588
27644
  }
27589
27645
  );
27590
- server.tool(
27646
+ registerTool(
27647
+ server,
27591
27648
  "okx_get_history_index_candles",
27649
+ "READ",
27592
27650
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27593
27651
  {
27594
27652
  instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
@@ -27615,8 +27673,10 @@ function registerMarketTools(server) {
27615
27673
  }
27616
27674
  }
27617
27675
  );
27618
- server.tool(
27676
+ registerTool(
27677
+ server,
27619
27678
  "okx_get_history_mark_price_candles",
27679
+ "READ",
27620
27680
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27621
27681
  {
27622
27682
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -27643,8 +27703,10 @@ function registerMarketTools(server) {
27643
27703
  }
27644
27704
  }
27645
27705
  );
27646
- server.tool(
27706
+ registerTool(
27707
+ server,
27647
27708
  "okx_get_mark_price_candles",
27709
+ "READ",
27648
27710
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27649
27711
  {
27650
27712
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -27671,8 +27733,10 @@ function registerMarketTools(server) {
27671
27733
  }
27672
27734
  }
27673
27735
  );
27674
- server.tool(
27736
+ registerTool(
27737
+ server,
27675
27738
  "okx_get_sprd_history_candles",
27739
+ "READ",
27676
27740
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27677
27741
  {
27678
27742
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
@@ -27704,8 +27768,10 @@ function registerMarketTools(server) {
27704
27768
 
27705
27769
  // src/tools/public.ts
27706
27770
  function registerPublicTools(server, auth) {
27707
- server.tool(
27771
+ registerTool(
27772
+ server,
27708
27773
  "okx_get_instruments",
27774
+ "READ",
27709
27775
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27710
27776
  {
27711
27777
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -27722,8 +27788,10 @@ function registerPublicTools(server, auth) {
27722
27788
  }
27723
27789
  }
27724
27790
  );
27725
- server.tool(
27791
+ registerTool(
27792
+ server,
27726
27793
  "okx_get_funding_rate",
27794
+ "READ",
27727
27795
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27728
27796
  { instId: external_exports.string().describe("\u6C38\u7EED\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP") },
27729
27797
  async ({ instId }) => {
@@ -27741,8 +27809,10 @@ function registerPublicTools(server, auth) {
27741
27809
  }
27742
27810
  }
27743
27811
  );
27744
- server.tool(
27812
+ registerTool(
27813
+ server,
27745
27814
  "okx_get_mark_price",
27815
+ "READ",
27746
27816
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27747
27817
  {
27748
27818
  instType: external_exports.enum(INST_TYPE_PUBLIC).describe("\u4EA7\u54C1\u7C7B\u578B\u3002MARGIN=\u6760\u6746, SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
@@ -27762,8 +27832,10 @@ function registerPublicTools(server, auth) {
27762
27832
  }
27763
27833
  }
27764
27834
  );
27765
- server.tool(
27835
+ registerTool(
27836
+ server,
27766
27837
  "okx_get_index_price",
27838
+ "READ",
27767
27839
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27768
27840
  { instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT") },
27769
27841
  async ({ instId }) => {
@@ -27779,8 +27851,10 @@ function registerPublicTools(server, auth) {
27779
27851
  }
27780
27852
  }
27781
27853
  );
27782
- server.tool(
27854
+ registerTool(
27855
+ server,
27783
27856
  "okx_get_open_interest",
27857
+ "READ",
27784
27858
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27785
27859
  {
27786
27860
  instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743"),
@@ -27800,8 +27874,10 @@ function registerPublicTools(server, auth) {
27800
27874
  }
27801
27875
  }
27802
27876
  );
27803
- server.tool(
27877
+ registerTool(
27878
+ server,
27804
27879
  "okx_get_system_time",
27880
+ "READ",
27805
27881
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27806
27882
  {},
27807
27883
  async () => {
@@ -27813,8 +27889,10 @@ function registerPublicTools(server, auth) {
27813
27889
  }
27814
27890
  }
27815
27891
  );
27816
- server.tool(
27892
+ registerTool(
27893
+ server,
27817
27894
  "okx_get_opt_summary",
27895
+ "READ",
27818
27896
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27819
27897
  {
27820
27898
  uly: external_exports.string().describe("\u6807\u7684\u6307\u6570\uFF0C\u5982 BTC-USD\u3001ETH-USD"),
@@ -27833,8 +27911,10 @@ function registerPublicTools(server, auth) {
27833
27911
  }
27834
27912
  }
27835
27913
  );
27836
- server.tool(
27914
+ registerTool(
27915
+ server,
27837
27916
  "okx_get_insurance_fund",
27917
+ "READ",
27838
27918
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27839
27919
  {
27840
27920
  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"),
@@ -27853,8 +27933,10 @@ function registerPublicTools(server, auth) {
27853
27933
  }
27854
27934
  }
27855
27935
  );
27856
- server.tool(
27936
+ registerTool(
27937
+ server,
27857
27938
  "okx_convert_contract_coin",
27939
+ "READ",
27858
27940
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27859
27941
  {
27860
27942
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
@@ -27871,8 +27953,10 @@ function registerPublicTools(server, auth) {
27871
27953
  }
27872
27954
  }
27873
27955
  );
27874
- server.tool(
27956
+ registerTool(
27957
+ server,
27875
27958
  "okx_get_announcements",
27959
+ "READ",
27876
27960
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27877
27961
  {
27878
27962
  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"),
@@ -27887,8 +27971,10 @@ function registerPublicTools(server, auth) {
27887
27971
  }
27888
27972
  }
27889
27973
  );
27890
- server.tool(
27974
+ registerTool(
27975
+ server,
27891
27976
  "okx_get_announcement_types",
27977
+ "READ",
27892
27978
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27893
27979
  {},
27894
27980
  async () => {
@@ -27900,8 +27986,10 @@ function registerPublicTools(server, auth) {
27900
27986
  }
27901
27987
  }
27902
27988
  );
27903
- server.tool(
27989
+ registerTool(
27990
+ server,
27904
27991
  "okx_get_price_limit",
27992
+ "READ",
27905
27993
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27906
27994
  {
27907
27995
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\uFF0C\u4E0D\u652F\u6301\u5168\u91CF\u67E5\u8BE2")
@@ -27919,8 +28007,10 @@ function registerPublicTools(server, auth) {
27919
28007
  }
27920
28008
  }
27921
28009
  );
27922
- server.tool(
28010
+ registerTool(
28011
+ server,
27923
28012
  "okx_get_position_tiers",
28013
+ "READ",
27924
28014
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27925
28015
  {
27926
28016
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED\u5408\u7EA6, FUTURES=\u4EA4\u5272\u5408\u7EA6"),
@@ -27937,8 +28027,10 @@ function registerPublicTools(server, auth) {
27937
28027
  }
27938
28028
  }
27939
28029
  );
27940
- server.tool(
28030
+ registerTool(
28031
+ server,
27941
28032
  "okx_get_open_interest_history",
28033
+ "READ",
27942
28034
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27943
28035
  {
27944
28036
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -27961,8 +28053,10 @@ function registerPublicTools(server, auth) {
27961
28053
  }
27962
28054
  }
27963
28055
  );
27964
- server.tool(
28056
+ registerTool(
28057
+ server,
27965
28058
  "okx_get_underlying",
28059
+ "READ",
27966
28060
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27967
28061
  {
27968
28062
  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")
@@ -27976,8 +28070,10 @@ function registerPublicTools(server, auth) {
27976
28070
  }
27977
28071
  }
27978
28072
  );
27979
- server.tool(
28073
+ registerTool(
28074
+ server,
27980
28075
  "okx_get_taker_flow",
28076
+ "READ",
27981
28077
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
27982
28078
  {
27983
28079
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
@@ -27998,8 +28094,10 @@ function registerPublicTools(server, auth) {
27998
28094
  }
27999
28095
  }
28000
28096
  );
28001
- server.tool(
28097
+ registerTool(
28098
+ server,
28002
28099
  "okx_get_platform_24_volume",
28100
+ "READ",
28003
28101
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28004
28102
  {},
28005
28103
  async () => {
@@ -28015,8 +28113,10 @@ function registerPublicTools(server, auth) {
28015
28113
  }
28016
28114
  }
28017
28115
  );
28018
- server.tool(
28116
+ registerTool(
28117
+ server,
28019
28118
  "okx_get_call_auction_details",
28119
+ "READ",
28020
28120
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28021
28121
  {
28022
28122
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B")
@@ -28035,8 +28135,10 @@ function registerPublicTools(server, auth) {
28035
28135
  }
28036
28136
  }
28037
28137
  );
28038
- server.tool(
28138
+ registerTool(
28139
+ server,
28039
28140
  "okx_get_option_instrument_family_trades",
28141
+ "READ",
28040
28142
  `## \u529F\u80FD\uFF1A\u6309\u4EA7\u54C1\u65CF\u83B7\u53D6\u671F\u6743\u94FE\u6700\u65B0\u6210\u4EA4\uFF08\u6309\u671F\u6743\u7C7B\u578B\u5F52\u7EC4\uFF09
28041
28143
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u6D4F\u89C8\u67D0BTC/ETH\u671F\u6743\u94FE\u6574\u4F53\u6210\u4EA4\u6982\u51B5\u3001\u5BF9\u6BD4\u770B\u6DA8/\u770B\u8DCC\u6210\u4EA4\u5206\u5E03\u3001\u53D1\u73B0\u5927\u989D\u671F\u6743\u5F02\u52A8
28042
28144
  ## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u65CF\u6210\u4EA4, option family trades, \u671F\u6743\u94FE\u6210\u4EA4, \u671F\u6743\u6210\u4EA4\u6982\u51B5, \u671F\u6743\u6210\u4EA4\u6C47\u603B
@@ -28060,8 +28162,10 @@ function registerPublicTools(server, auth) {
28060
28162
  }
28061
28163
  }
28062
28164
  );
28063
- server.tool(
28165
+ registerTool(
28166
+ server,
28064
28167
  "okx_get_option_trades",
28168
+ "READ",
28065
28169
  `## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u9010\u7B14\u6210\u4EA4\u8BB0\u5F55
28066
28170
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5177\u4F53\u671F\u6743\u5408\u7EA6\u7684\u6210\u4EA4\u4EF7\u91CF\u5206\u5E03\u3001\u5224\u65AD\u4E3B\u52A8\u4E70\u5356\u65B9\u5411\u3001\u8DDF\u8E2A\u671F\u6743\u5927\u5355
28067
28171
  ## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6210\u4EA4, option trades, \u9010\u7B14\u671F\u6743\u6210\u4EA4, \u671F\u6743\u660E\u7EC6, \u671F\u6743\u5927\u5355, option fill
@@ -28091,8 +28195,10 @@ function registerPublicTools(server, auth) {
28091
28195
  }
28092
28196
  }
28093
28197
  );
28094
- server.tool(
28198
+ registerTool(
28199
+ server,
28095
28200
  "okx_get_exchange_rate",
28201
+ "READ",
28096
28202
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28097
28203
  {},
28098
28204
  async () => {
@@ -28104,8 +28210,10 @@ function registerPublicTools(server, auth) {
28104
28210
  }
28105
28211
  }
28106
28212
  );
28107
- server.tool(
28213
+ registerTool(
28214
+ server,
28108
28215
  "okx_search_instruments",
28216
+ "READ",
28109
28217
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28110
28218
  {
28111
28219
  keyword: external_exports.string().min(2).describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 BTC\u3001ETH\u3001SOL\u3002\u6700\u5C112\u4E2A\u5B57\u7B26"),
@@ -28130,8 +28238,10 @@ function registerPublicTools(server, auth) {
28130
28238
  }
28131
28239
  }
28132
28240
  );
28133
- server.tool(
28241
+ registerTool(
28242
+ server,
28134
28243
  "okx_get_economic_calendar",
28244
+ "READ",
28135
28245
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28136
28246
  {
28137
28247
  begin: external_exports.string().optional().describe("\u5F00\u59CB\u65F6\u95F4\u6233\uFF08\u6BEB\u79D2\uFF09"),
@@ -28152,8 +28262,10 @@ function registerPublicTools(server, auth) {
28152
28262
  }
28153
28263
  }
28154
28264
  );
28155
- server.tool(
28265
+ registerTool(
28266
+ server,
28156
28267
  "okx_get_index_components",
28268
+ "READ",
28157
28269
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28158
28270
  {
28159
28271
  index: external_exports.string().describe("\u6307\u6570\u540D\u79F0\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B")
@@ -28171,8 +28283,10 @@ function registerPublicTools(server, auth) {
28171
28283
  }
28172
28284
  }
28173
28285
  );
28174
- server.tool(
28286
+ registerTool(
28287
+ server,
28175
28288
  "okx_get_index_components_market",
28289
+ "READ",
28176
28290
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28177
28291
  {
28178
28292
  index: external_exports.string().describe("\u6307\u6570\u540D\u79F0\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B")
@@ -28190,8 +28304,10 @@ function registerPublicTools(server, auth) {
28190
28304
  }
28191
28305
  }
28192
28306
  );
28193
- server.tool(
28307
+ registerTool(
28308
+ server,
28194
28309
  "okx_get_discount_info",
28310
+ "READ",
28195
28311
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28196
28312
  {},
28197
28313
  async () => {
@@ -28203,8 +28319,10 @@ function registerPublicTools(server, auth) {
28203
28319
  }
28204
28320
  }
28205
28321
  );
28206
- server.tool(
28322
+ registerTool(
28323
+ server,
28207
28324
  "okx_get_estimated_price",
28325
+ "READ",
28208
28326
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28209
28327
  {
28210
28328
  instId: external_exports.string().describe("\u671F\u6743\u4EA7\u54C1ID\uFF0C\u5982 BTC-USD-260612-64000-C\u3002\u5FC5\u586B")
@@ -28222,8 +28340,10 @@ function registerPublicTools(server, auth) {
28222
28340
  }
28223
28341
  }
28224
28342
  );
28225
- server.tool(
28343
+ registerTool(
28344
+ server,
28226
28345
  "okx_get_funding_rate_history",
28346
+ "READ",
28227
28347
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28228
28348
  {
28229
28349
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -28244,8 +28364,10 @@ function registerPublicTools(server, auth) {
28244
28364
  }
28245
28365
  }
28246
28366
  );
28247
- server.tool(
28367
+ registerTool(
28368
+ server,
28248
28369
  "okx_get_interest_rate_loan_quota",
28370
+ "READ",
28249
28371
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28250
28372
  {},
28251
28373
  async () => {
@@ -28257,8 +28379,10 @@ function registerPublicTools(server, auth) {
28257
28379
  }
28258
28380
  }
28259
28381
  );
28260
- server.tool(
28382
+ registerTool(
28383
+ server,
28261
28384
  "okx_get_premium_history",
28385
+ "READ",
28262
28386
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28263
28387
  {
28264
28388
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -28277,8 +28401,10 @@ function registerPublicTools(server, auth) {
28277
28401
  }
28278
28402
  }
28279
28403
  );
28280
- server.tool(
28404
+ registerTool(
28405
+ server,
28281
28406
  "okx_get_delivery_exercise_history",
28407
+ "READ",
28282
28408
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28283
28409
  {
28284
28410
  instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B"),
@@ -28294,8 +28420,10 @@ function registerPublicTools(server, auth) {
28294
28420
  }
28295
28421
  }
28296
28422
  );
28297
- server.tool(
28423
+ registerTool(
28424
+ server,
28298
28425
  "okx_get_settlement_history",
28426
+ "READ",
28299
28427
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28300
28428
  {
28301
28429
  instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B"),
@@ -28311,8 +28439,10 @@ function registerPublicTools(server, auth) {
28311
28439
  }
28312
28440
  }
28313
28441
  );
28314
- server.tool(
28442
+ registerTool(
28443
+ server,
28315
28444
  "okx_get_public_block_trades",
28445
+ "READ",
28316
28446
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28317
28447
  {
28318
28448
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B")
@@ -28330,8 +28460,10 @@ function registerPublicTools(server, auth) {
28330
28460
  }
28331
28461
  }
28332
28462
  );
28333
- server.tool(
28463
+ registerTool(
28464
+ server,
28334
28465
  "okx_get_instrument_tick_bands",
28466
+ "READ",
28335
28467
  "CAT:[\u516C\u5171] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28336
28468
  {
28337
28469
  instType: external_exports.enum(["OPTION"]).describe("\u4EA7\u54C1\u7C7B\u578B\u3002\u4EC5 OPTION \u652F\u6301\u6B64\u67E5\u8BE2")
@@ -28349,8 +28481,10 @@ function registerPublicTools(server, auth) {
28349
28481
 
28350
28482
  // src/tools/account.ts
28351
28483
  function registerAccountTools(server, auth) {
28352
- server.tool(
28484
+ registerTool(
28485
+ server,
28353
28486
  "okx_get_balance",
28487
+ "READ",
28354
28488
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28355
28489
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u6240\u6709\u5E01\u79CD") },
28356
28490
  async ({ ccy }) => {
@@ -28363,8 +28497,10 @@ function registerAccountTools(server, auth) {
28363
28497
  }
28364
28498
  }
28365
28499
  );
28366
- server.tool(
28500
+ registerTool(
28501
+ server,
28367
28502
  "okx_get_positions",
28503
+ "READ",
28368
28504
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28369
28505
  { instType: external_exports.enum(INST_TYPE_PUBLIC).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8") },
28370
28506
  async ({ instType }) => {
@@ -28392,8 +28528,10 @@ function registerAccountTools(server, auth) {
28392
28528
  }
28393
28529
  }
28394
28530
  );
28395
- server.tool(
28531
+ registerTool(
28532
+ server,
28396
28533
  "okx_get_order",
28534
+ "READ",
28397
28535
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28398
28536
  {
28399
28537
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -28409,8 +28547,10 @@ function registerAccountTools(server, auth) {
28409
28547
  }
28410
28548
  }
28411
28549
  );
28412
- server.tool(
28550
+ registerTool(
28551
+ server,
28413
28552
  "okx_get_orders_history",
28553
+ "READ",
28414
28554
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28415
28555
  {
28416
28556
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -28426,8 +28566,10 @@ function registerAccountTools(server, auth) {
28426
28566
  }
28427
28567
  }
28428
28568
  );
28429
- server.tool(
28569
+ registerTool(
28570
+ server,
28430
28571
  "okx_get_account_bills",
28572
+ "READ",
28431
28573
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28432
28574
  {
28433
28575
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -28444,8 +28586,10 @@ function registerAccountTools(server, auth) {
28444
28586
  }
28445
28587
  }
28446
28588
  );
28447
- server.tool(
28589
+ registerTool(
28590
+ server,
28448
28591
  "okx_get_account_config",
28592
+ "READ",
28449
28593
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28450
28594
  {},
28451
28595
  async () => {
@@ -28458,8 +28602,10 @@ function registerAccountTools(server, auth) {
28458
28602
  }
28459
28603
  }
28460
28604
  );
28461
- server.tool(
28605
+ registerTool(
28606
+ server,
28462
28607
  "okx_get_leverage_info",
28608
+ "READ",
28463
28609
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28464
28610
  {
28465
28611
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
@@ -28475,8 +28621,10 @@ function registerAccountTools(server, auth) {
28475
28621
  }
28476
28622
  }
28477
28623
  );
28478
- server.tool(
28624
+ registerTool(
28625
+ server,
28479
28626
  "okx_get_max_size",
28627
+ "READ",
28480
28628
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28481
28629
  {
28482
28630
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -28493,8 +28641,10 @@ function registerAccountTools(server, auth) {
28493
28641
  }
28494
28642
  }
28495
28643
  );
28496
- server.tool(
28644
+ registerTool(
28645
+ server,
28497
28646
  "okx_get_fee_rates",
28647
+ "READ",
28498
28648
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28499
28649
  {
28500
28650
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -28511,8 +28661,10 @@ function registerAccountTools(server, auth) {
28511
28661
  }
28512
28662
  }
28513
28663
  );
28514
- server.tool(
28664
+ registerTool(
28665
+ server,
28515
28666
  "okx_get_positions_history",
28667
+ "READ",
28516
28668
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28517
28669
  {
28518
28670
  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"),
@@ -28529,8 +28681,10 @@ function registerAccountTools(server, auth) {
28529
28681
  }
28530
28682
  }
28531
28683
  );
28532
- server.tool(
28684
+ registerTool(
28685
+ server,
28533
28686
  "okx_set_leverage",
28687
+ "WRITE",
28534
28688
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28535
28689
  {
28536
28690
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -28550,8 +28704,10 @@ function registerAccountTools(server, auth) {
28550
28704
  }
28551
28705
  }
28552
28706
  );
28553
- server.tool(
28707
+ registerTool(
28708
+ server,
28554
28709
  "okx_get_max_loan",
28710
+ "READ",
28555
28711
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28556
28712
  {
28557
28713
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
@@ -28567,8 +28723,10 @@ function registerAccountTools(server, auth) {
28567
28723
  }
28568
28724
  }
28569
28725
  );
28570
- server.tool(
28726
+ registerTool(
28727
+ server,
28571
28728
  "okx_get_interest_accrued",
28729
+ "READ",
28572
28730
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28573
28731
  {
28574
28732
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u53EF\u9009"),
@@ -28585,8 +28743,10 @@ function registerAccountTools(server, auth) {
28585
28743
  }
28586
28744
  }
28587
28745
  );
28588
- server.tool(
28746
+ registerTool(
28747
+ server,
28589
28748
  "okx_set_position_mode",
28749
+ "ADMIN",
28590
28750
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28591
28751
  {
28592
28752
  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")
@@ -28601,8 +28761,10 @@ function registerAccountTools(server, auth) {
28601
28761
  }
28602
28762
  }
28603
28763
  );
28604
- server.tool(
28764
+ registerTool(
28765
+ server,
28605
28766
  "okx_get_asset_valuation",
28767
+ "READ",
28606
28768
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28607
28769
  {
28608
28770
  ccy: external_exports.string().optional().describe("\u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USD\u3001CNY\u3002\u4E0D\u586B\u9ED8\u8BA4\u6309\u6240\u6709\u5E01\u79CD")
@@ -28617,8 +28779,10 @@ function registerAccountTools(server, auth) {
28617
28779
  }
28618
28780
  }
28619
28781
  );
28620
- server.tool(
28782
+ registerTool(
28783
+ server,
28621
28784
  "okx_get_convert_currencies",
28785
+ "READ",
28622
28786
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28623
28787
  {},
28624
28788
  async () => {
@@ -28631,8 +28795,10 @@ function registerAccountTools(server, auth) {
28631
28795
  }
28632
28796
  }
28633
28797
  );
28634
- server.tool(
28798
+ registerTool(
28799
+ server,
28635
28800
  "okx_convert_trade",
28801
+ "WRITE",
28636
28802
  `## \u529F\u80FD\uFF1A\u6267\u884C\u8D44\u4EA7\u5151\u6362\uFF08\u5C06\u4E00\u79CD\u8D44\u4EA7\u76F4\u63A5\u6362\u6210\u53E6\u4E00\u79CD\uFF0C\u5982 USDT\u2192BTC\uFF09
28637
28803
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u6362\u5E01\u3001\u5C0F\u989D\u8D44\u4EA7\u5151\u6362\u3001\u65E0\u9700\u6302\u5355\u7684\u5373\u65F6\u5151\u6362
28638
28804
  ## \u5173\u952E\u8BCD\uFF1A\u5151\u6362, convert trade, \u8D44\u4EA7\u5151\u6362, \u6362\u5E01, \u4E00\u952E\u5151\u6362, \u95EA\u5151
@@ -28659,8 +28825,10 @@ function registerAccountTools(server, auth) {
28659
28825
  }
28660
28826
  }
28661
28827
  );
28662
- server.tool(
28828
+ registerTool(
28829
+ server,
28663
28830
  "okx_get_margin_balance",
28831
+ "READ",
28664
28832
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28665
28833
  {
28666
28834
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
@@ -28676,8 +28844,10 @@ function registerAccountTools(server, auth) {
28676
28844
  }
28677
28845
  }
28678
28846
  );
28679
- server.tool(
28847
+ registerTool(
28848
+ server,
28680
28849
  "okx_get_bills",
28850
+ "READ",
28681
28851
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28682
28852
  {
28683
28853
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -28694,8 +28864,10 @@ function registerAccountTools(server, auth) {
28694
28864
  }
28695
28865
  }
28696
28866
  );
28697
- server.tool(
28867
+ registerTool(
28868
+ server,
28698
28869
  "okx_get_interest_rates",
28870
+ "READ",
28699
28871
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28700
28872
  {
28701
28873
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
@@ -28714,8 +28886,10 @@ function registerAccountTools(server, auth) {
28714
28886
  }
28715
28887
  }
28716
28888
  );
28717
- server.tool(
28889
+ registerTool(
28890
+ server,
28718
28891
  "okx_get_max_withdrawal",
28892
+ "READ",
28719
28893
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28720
28894
  {
28721
28895
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
@@ -28730,8 +28904,10 @@ function registerAccountTools(server, auth) {
28730
28904
  }
28731
28905
  }
28732
28906
  );
28733
- server.tool(
28907
+ registerTool(
28908
+ server,
28734
28909
  "okx_get_account_greeks",
28910
+ "READ",
28735
28911
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28736
28912
  {
28737
28913
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B\u3002SPOT/MARGIN/SWAP/FUTURES/OPTION"),
@@ -28749,8 +28925,10 @@ function registerAccountTools(server, auth) {
28749
28925
  }
28750
28926
  }
28751
28927
  );
28752
- server.tool(
28928
+ registerTool(
28929
+ server,
28753
28930
  "okx_set_account_mode",
28931
+ "ADMIN",
28754
28932
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28755
28933
  {
28756
28934
  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")
@@ -28765,8 +28943,10 @@ function registerAccountTools(server, auth) {
28765
28943
  }
28766
28944
  }
28767
28945
  );
28768
- server.tool(
28946
+ registerTool(
28947
+ server,
28769
28948
  "okx_get_account_position_risk",
28949
+ "READ",
28770
28950
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28771
28951
  {},
28772
28952
  async () => {
@@ -28779,8 +28959,10 @@ function registerAccountTools(server, auth) {
28779
28959
  }
28780
28960
  }
28781
28961
  );
28782
- server.tool(
28962
+ registerTool(
28963
+ server,
28783
28964
  "okx_get_interest_limits",
28965
+ "READ",
28784
28966
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28785
28967
  {},
28786
28968
  async () => {
@@ -28793,8 +28975,10 @@ function registerAccountTools(server, auth) {
28793
28975
  }
28794
28976
  }
28795
28977
  );
28796
- server.tool(
28978
+ registerTool(
28979
+ server,
28797
28980
  "okx_get_account_subtypes",
28981
+ "READ",
28798
28982
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28799
28983
  {},
28800
28984
  async () => {
@@ -28807,8 +28991,10 @@ function registerAccountTools(server, auth) {
28807
28991
  }
28808
28992
  }
28809
28993
  );
28810
- server.tool(
28994
+ registerTool(
28995
+ server,
28811
28996
  "okx_get_subaccount_trading_balance",
28997
+ "READ",
28812
28998
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28813
28999
  {
28814
29000
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
@@ -28823,8 +29009,10 @@ function registerAccountTools(server, auth) {
28823
29009
  }
28824
29010
  }
28825
29011
  );
28826
- server.tool(
29012
+ registerTool(
29013
+ server,
28827
29014
  "okx_preset_account_switch",
29015
+ "WRITE",
28828
29016
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28829
29017
  {
28830
29018
  acctLv: external_exports.string().describe("\u76EE\u6807\u8D26\u6237\u5C42\u7EA7\u3002\u5FC5\u586B")
@@ -28839,8 +29027,10 @@ function registerAccountTools(server, auth) {
28839
29027
  }
28840
29028
  }
28841
29029
  );
28842
- server.tool(
29030
+ registerTool(
29031
+ server,
28843
29032
  "okx_activate_option",
29033
+ "WRITE",
28844
29034
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28845
29035
  {},
28846
29036
  async () => {
@@ -28853,8 +29043,10 @@ function registerAccountTools(server, auth) {
28853
29043
  }
28854
29044
  }
28855
29045
  );
28856
- server.tool(
29046
+ registerTool(
29047
+ server,
28857
29048
  "okx_position_builder",
29049
+ "READ",
28858
29050
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28859
29051
  {
28860
29052
  body: external_exports.string().describe("\u8BD5\u7B97\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
@@ -28870,8 +29062,10 @@ function registerAccountTools(server, auth) {
28870
29062
  }
28871
29063
  }
28872
29064
  );
28873
- server.tool(
29065
+ registerTool(
29066
+ server,
28874
29067
  "okx_set_auto_earn",
29068
+ "WRITE",
28875
29069
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28876
29070
  {
28877
29071
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -28887,8 +29081,10 @@ function registerAccountTools(server, auth) {
28887
29081
  }
28888
29082
  }
28889
29083
  );
28890
- server.tool(
29084
+ registerTool(
29085
+ server,
28891
29086
  "okx_set_fee_type",
29087
+ "WRITE",
28892
29088
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28893
29089
  {
28894
29090
  feeType: external_exports.enum(["0", "1"]).describe("\u624B\u7EED\u8D39\u7C7B\u578B\u30020=\u6309\u5E01, 1=\u6309USDT")
@@ -28903,8 +29099,10 @@ function registerAccountTools(server, auth) {
28903
29099
  }
28904
29100
  }
28905
29101
  );
28906
- server.tool(
29102
+ registerTool(
29103
+ server,
28907
29104
  "okx_set_settle_currency",
29105
+ "ADMIN",
28908
29106
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28909
29107
  {
28910
29108
  ccy: external_exports.string().describe("\u7ED3\u7B97\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B")
@@ -28919,8 +29117,10 @@ function registerAccountTools(server, auth) {
28919
29117
  }
28920
29118
  }
28921
29119
  );
28922
- server.tool(
29120
+ registerTool(
29121
+ server,
28923
29122
  "okx_get_position_builder_graph",
29123
+ "READ",
28924
29124
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28925
29125
  {},
28926
29126
  async () => {
@@ -28933,8 +29133,10 @@ function registerAccountTools(server, auth) {
28933
29133
  }
28934
29134
  }
28935
29135
  );
28936
- server.tool(
29136
+ registerTool(
29137
+ server,
28937
29138
  "okx_precheck_delta_neutral",
29139
+ "READ",
28938
29140
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28939
29141
  {},
28940
29142
  async () => {
@@ -28947,8 +29149,10 @@ function registerAccountTools(server, auth) {
28947
29149
  }
28948
29150
  }
28949
29151
  );
28950
- server.tool(
29152
+ registerTool(
29153
+ server,
28951
29154
  "okx_get_trade_fee",
29155
+ "READ",
28952
29156
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28953
29157
  {
28954
29158
  instType: external_exports.enum(INST_TYPE_TRADE).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -28965,8 +29169,10 @@ function registerAccountTools(server, auth) {
28965
29169
  }
28966
29170
  }
28967
29171
  );
28968
- server.tool(
29172
+ registerTool(
29173
+ server,
28969
29174
  "okx_get_risk_state",
29175
+ "READ",
28970
29176
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28971
29177
  {},
28972
29178
  async () => {
@@ -28979,8 +29185,10 @@ function registerAccountTools(server, auth) {
28979
29185
  }
28980
29186
  }
28981
29187
  );
28982
- server.tool(
29188
+ registerTool(
29189
+ server,
28983
29190
  "okx_borrow_repay",
29191
+ "WRITE",
28984
29192
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
28985
29193
  {
28986
29194
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -28997,8 +29205,10 @@ function registerAccountTools(server, auth) {
28997
29205
  }
28998
29206
  }
28999
29207
  );
29000
- server.tool(
29208
+ registerTool(
29209
+ server,
29001
29210
  "okx_get_borrow_repay_history",
29211
+ "READ",
29002
29212
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29003
29213
  {},
29004
29214
  async () => {
@@ -29015,8 +29225,10 @@ function registerAccountTools(server, auth) {
29015
29225
  }
29016
29226
  }
29017
29227
  );
29018
- server.tool(
29228
+ registerTool(
29229
+ server,
29019
29230
  "okx_get_account_bills_archive",
29231
+ "READ",
29020
29232
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29021
29233
  {},
29022
29234
  async () => {
@@ -29029,8 +29241,10 @@ function registerAccountTools(server, auth) {
29029
29241
  }
29030
29242
  }
29031
29243
  );
29032
- server.tool(
29244
+ registerTool(
29245
+ server,
29033
29246
  "okx_set_auto_loan",
29247
+ "WRITE",
29034
29248
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29035
29249
  {
29036
29250
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -29046,8 +29260,10 @@ function registerAccountTools(server, auth) {
29046
29260
  }
29047
29261
  }
29048
29262
  );
29049
- server.tool(
29263
+ registerTool(
29264
+ server,
29050
29265
  "okx_set_trading_config",
29266
+ "WRITE",
29051
29267
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29052
29268
  {
29053
29269
  jsonString: external_exports.string().describe("\u914D\u7F6E\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
@@ -29063,8 +29279,10 @@ function registerAccountTools(server, auth) {
29063
29279
  }
29064
29280
  }
29065
29281
  );
29066
- server.tool(
29282
+ registerTool(
29283
+ server,
29067
29284
  "okx_move_positions",
29285
+ "WRITE",
29068
29286
  "CAT:[\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29069
29287
  {
29070
29288
  body: external_exports.string().describe("\u8FC1\u79FB\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
@@ -29084,8 +29302,10 @@ function registerAccountTools(server, auth) {
29084
29302
 
29085
29303
  // src/tools/trading.ts
29086
29304
  function registerTradingTools(server, auth) {
29087
- server.tool(
29305
+ registerTool(
29306
+ server,
29088
29307
  "okx_place_order",
29308
+ "WRITE",
29089
29309
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29090
29310
  {
29091
29311
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -29107,8 +29327,10 @@ function registerTradingTools(server, auth) {
29107
29327
  }
29108
29328
  }
29109
29329
  );
29110
- server.tool(
29330
+ registerTool(
29331
+ server,
29111
29332
  "okx_cancel_order",
29333
+ "WRITE",
29112
29334
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29113
29335
  {
29114
29336
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -29124,8 +29346,10 @@ function registerTradingTools(server, auth) {
29124
29346
  }
29125
29347
  }
29126
29348
  );
29127
- server.tool(
29349
+ registerTool(
29350
+ server,
29128
29351
  "okx_amend_order",
29352
+ "WRITE",
29129
29353
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29130
29354
  {
29131
29355
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -29146,8 +29370,10 @@ function registerTradingTools(server, auth) {
29146
29370
  }
29147
29371
  }
29148
29372
  );
29149
- server.tool(
29373
+ registerTool(
29374
+ server,
29150
29375
  "okx_get_orders_pending",
29376
+ "READ",
29151
29377
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29152
29378
  {
29153
29379
  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"),
@@ -29164,8 +29390,10 @@ function registerTradingTools(server, auth) {
29164
29390
  }
29165
29391
  }
29166
29392
  );
29167
- server.tool(
29393
+ registerTool(
29394
+ server,
29168
29395
  "okx_get_fills",
29396
+ "READ",
29169
29397
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29170
29398
  {
29171
29399
  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"),
@@ -29182,8 +29410,10 @@ function registerTradingTools(server, auth) {
29182
29410
  }
29183
29411
  }
29184
29412
  );
29185
- server.tool(
29413
+ registerTool(
29414
+ server,
29186
29415
  "okx_get_orders_history_archive",
29416
+ "READ",
29187
29417
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29188
29418
  {
29189
29419
  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"),
@@ -29199,8 +29429,10 @@ function registerTradingTools(server, auth) {
29199
29429
  }
29200
29430
  }
29201
29431
  );
29202
- server.tool(
29432
+ registerTool(
29433
+ server,
29203
29434
  "okx_batch_orders",
29435
+ "WRITE",
29204
29436
  `## \u529F\u80FD\uFF1A\u6279\u91CF\u4E0B\u5355\uFF08\u6700\u591A20\u7B14\uFF09
29205
29437
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u9700\u8981\u540C\u65F6\u4E0B\u591A\u4E2A\u8BA2\u5355\u7684\u7B56\u7565\uFF08\u5982\u4E00\u7BEE\u5B50\u5EFA\u4ED3\u3001\u591A\u4EA7\u54C1\u5957\u5229\u5E03\u5C40\uFF09
29206
29438
  ## \u5173\u952E\u8BCD\uFF1A\u6279\u91CF\u4E0B\u5355, \u6279\u91CF\u59D4\u6258, batch orders, \u4E00\u7BEE\u5B50\u8BA2\u5355, \u7EC4\u5408\u4E0B\u5355
@@ -29224,8 +29456,10 @@ function registerTradingTools(server, auth) {
29224
29456
  }
29225
29457
  }
29226
29458
  );
29227
- server.tool(
29459
+ registerTool(
29460
+ server,
29228
29461
  "okx_batch_cancel_orders",
29462
+ "WRITE",
29229
29463
  `## \u529F\u80FD\uFF1A\u6279\u91CF\u64A4\u9500\u8BA2\u5355
29230
29464
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u4E00\u952E\u64A4\u9500\u6240\u6709\u672A\u6210\u4EA4\u6302\u5355\u3001\u6E05\u7A7A\u7279\u5B9A\u4EA7\u54C1\u7684\u8BA2\u5355\u961F\u5217
29231
29465
  ## \u5173\u952E\u8BCD\uFF1A\u6279\u91CF\u64A4\u5355, \u6279\u91CF\u64A4\u9500, batch cancel, \u4E00\u952E\u64A4\u5355, \u6E05\u7A7A\u6302\u5355
@@ -29249,8 +29483,10 @@ function registerTradingTools(server, auth) {
29249
29483
  }
29250
29484
  }
29251
29485
  );
29252
- server.tool(
29486
+ registerTool(
29487
+ server,
29253
29488
  "okx_close_position",
29489
+ "WRITE",
29254
29490
  `## \u529F\u80FD\uFF1A\u5E02\u4EF7\u5168\u5E73\u67D0\u4ED3\u4F4D
29255
29491
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u7D27\u6025\u5E73\u4ED3\u6B62\u635F/\u6B62\u76C8\u3001\u6E05\u7A7A\u67D0\u65B9\u5411\u5168\u90E8\u6301\u4ED3
29256
29492
  ## \u5173\u952E\u8BCD\uFF1A\u5E73\u4ED3, \u5E02\u4EF7\u5168\u5E73, close position, \u6B62\u635F\u5E73\u4ED3, \u6E05\u4ED3, \u7D27\u6025\u5E73\u4ED3
@@ -29283,8 +29519,10 @@ function registerTradingTools(server, auth) {
29283
29519
  }
29284
29520
  }
29285
29521
  );
29286
- server.tool(
29522
+ registerTool(
29523
+ server,
29287
29524
  "okx_amend_batch_orders",
29525
+ "WRITE",
29288
29526
  `## \u529F\u80FD\uFF1A\u6279\u91CF\u4FEE\u6539\u672A\u6210\u4EA4\u8BA2\u5355
29289
29527
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u540C\u65F6\u8C03\u6574\u591A\u4E2A\u9650\u4EF7\u5355\u7684\u4EF7\u683C\u6216\u6570\u91CF\u3001\u6279\u91CF\u66F4\u65B0\u6302\u5355\u7B56\u7565
29290
29528
  ## \u5173\u952E\u8BCD\uFF1A\u6279\u91CF\u6539\u5355, \u6279\u91CF\u4FEE\u6539, amend batch orders, \u6279\u91CF\u6539\u4EF7, \u6279\u91CF\u8C03\u91CF
@@ -29308,8 +29546,10 @@ function registerTradingTools(server, auth) {
29308
29546
  }
29309
29547
  }
29310
29548
  );
29311
- server.tool(
29549
+ registerTool(
29550
+ server,
29312
29551
  "okx_get_fills_history",
29552
+ "READ",
29313
29553
  `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5386\u53F2\u6210\u4EA4\u660E\u7EC6\uFF08\u6700\u8FD13\u4E2A\u6708\uFF09
29314
29554
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u7CBE\u786E\u8BA1\u7B97\u5386\u53F2\u6210\u4EA4\u5747\u4EF7\u3001\u590D\u76D8\u4EA4\u6613\u8868\u73B0\u3001\u6838\u5BF9\u6210\u4EA4\u8BB0\u5F55
29315
29555
  ## \u5173\u952E\u8BCD\uFF1A\u6210\u4EA4\u5386\u53F2, \u6210\u4EA4\u660E\u7EC6, fills history, \u5386\u53F2\u6210\u4EA4, \u9010\u7B14\u6210\u4EA4\u5386\u53F2
@@ -29336,8 +29576,10 @@ function registerTradingTools(server, auth) {
29336
29576
  }
29337
29577
  }
29338
29578
  );
29339
- server.tool(
29579
+ registerTool(
29580
+ server,
29340
29581
  "okx_mass_cancel",
29582
+ "WRITE",
29341
29583
  `## \u529F\u80FD\uFF1A\u6279\u91CF\u64A4\u9500\u67D0\u4EA7\u54C1\u7C7B\u578B\u4E0B\u6240\u6709\u6302\u5355
29342
29584
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u6781\u7AEF\u884C\u60C5\u4E0B\u7D27\u6025\u6E05\u7A7A\u6240\u6709\u6302\u5355\u3001\u5FEB\u901F\u91CD\u7F6E\u4EA4\u6613\u7B56\u7565
29343
29585
  ## \u5173\u952E\u8BCD\uFF1A\u6279\u91CF\u64A4\u5355, \u5168\u90E8\u64A4\u5355, mass cancel, \u6E05\u7A7A\u6302\u5355, \u7D27\u6025\u64A4\u5355
@@ -29362,8 +29604,10 @@ function registerTradingTools(server, auth) {
29362
29604
  }
29363
29605
  }
29364
29606
  );
29365
- server.tool(
29607
+ registerTool(
29608
+ server,
29366
29609
  "okx_cancel_all_after",
29610
+ "WRITE",
29367
29611
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29368
29612
  {
29369
29613
  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")
@@ -29378,8 +29622,10 @@ function registerTradingTools(server, auth) {
29378
29622
  }
29379
29623
  }
29380
29624
  );
29381
- server.tool(
29625
+ registerTool(
29626
+ server,
29382
29627
  "okx_order_precheck",
29628
+ "READ",
29383
29629
  `## \u529F\u80FD\uFF1A\u4E0B\u5355\u9884\u68C0\uFF08\u9A8C\u8BC1\u8BA2\u5355\u53C2\u6570\u662F\u5426\u5408\u6CD5\uFF0C\u4E0D\u5B9E\u9645\u4E0B\u5355\uFF09
29384
29630
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u4E0B\u5355\u524D\u9A8C\u8BC1\u53C2\u6570\u6B63\u786E\u6027\u3001\u68C0\u67E5\u4F59\u989D\u548C\u98CE\u63A7\u9650\u5236\u3001\u907F\u514D\u56E0\u53C2\u6570\u9519\u8BEF\u5BFC\u81F4\u7684\u8BA2\u5355\u5931\u8D25
29385
29631
  ## \u5173\u952E\u8BCD\uFF1A\u4E0B\u5355\u9884\u68C0, \u9884\u68C0\u67E5, order precheck, \u8BA2\u5355\u9A8C\u8BC1, \u53C2\u6570\u68C0\u67E5
@@ -29403,8 +29649,10 @@ function registerTradingTools(server, auth) {
29403
29649
  }
29404
29650
  }
29405
29651
  );
29406
- server.tool(
29652
+ registerTool(
29653
+ server,
29407
29654
  "okx_get_account_rate_limit",
29655
+ "READ",
29408
29656
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29409
29657
  {},
29410
29658
  async () => {
@@ -29417,8 +29665,10 @@ function registerTradingTools(server, auth) {
29417
29665
  }
29418
29666
  }
29419
29667
  );
29420
- server.tool(
29668
+ registerTool(
29669
+ server,
29421
29670
  "okx_easy_convert",
29671
+ "WRITE",
29422
29672
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29423
29673
  {
29424
29674
  fromCcy: external_exports.string().describe("\u5356\u51FA\u5E01\u79CD\uFF0C\u5982 USDT"),
@@ -29435,8 +29685,10 @@ function registerTradingTools(server, auth) {
29435
29685
  }
29436
29686
  }
29437
29687
  );
29438
- server.tool(
29688
+ registerTool(
29689
+ server,
29439
29690
  "okx_get_easy_convert_history",
29691
+ "READ",
29440
29692
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29441
29693
  {
29442
29694
  after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u4E4B\u540E\u7684\u8BB0\u5F55\uFF08\u6BEB\u79D2Unix\u65F6\u95F4\u6233\uFF09"),
@@ -29453,8 +29705,10 @@ function registerTradingTools(server, auth) {
29453
29705
  }
29454
29706
  }
29455
29707
  );
29456
- server.tool(
29708
+ registerTool(
29709
+ server,
29457
29710
  "okx_get_mmp_config",
29711
+ "READ",
29458
29712
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29459
29713
  {},
29460
29714
  async () => {
@@ -29467,8 +29721,10 @@ function registerTradingTools(server, auth) {
29467
29721
  }
29468
29722
  }
29469
29723
  );
29470
- server.tool(
29724
+ registerTool(
29725
+ server,
29471
29726
  "okx_set_mmp_config",
29727
+ "WRITE",
29472
29728
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29473
29729
  {
29474
29730
  instFamily: external_exports.string().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B"),
@@ -29486,8 +29742,10 @@ function registerTradingTools(server, auth) {
29486
29742
  }
29487
29743
  }
29488
29744
  );
29489
- server.tool(
29745
+ registerTool(
29746
+ server,
29490
29747
  "okx_get_order_algo",
29748
+ "READ",
29491
29749
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29492
29750
  {
29493
29751
  algoId: external_exports.string().optional().describe("\u7B56\u7565\u59D4\u6258ID")
@@ -29502,8 +29760,10 @@ function registerTradingTools(server, auth) {
29502
29760
  }
29503
29761
  }
29504
29762
  );
29505
- server.tool(
29763
+ registerTool(
29764
+ server,
29506
29765
  "okx_reset_mmp",
29766
+ "READ",
29507
29767
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29508
29768
  {
29509
29769
  instFamily: external_exports.string().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B")
@@ -29518,8 +29778,10 @@ function registerTradingTools(server, auth) {
29518
29778
  }
29519
29779
  }
29520
29780
  );
29521
- server.tool(
29781
+ registerTool(
29782
+ server,
29522
29783
  "okx_get_orders_archive",
29784
+ "READ",
29523
29785
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29524
29786
  {
29525
29787
  instType: external_exports.enum(INST_TYPE_TRADE).describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -29535,8 +29797,10 @@ function registerTradingTools(server, auth) {
29535
29797
  }
29536
29798
  }
29537
29799
  );
29538
- server.tool(
29800
+ registerTool(
29801
+ server,
29539
29802
  "okx_get_order_by_clOrdId",
29803
+ "READ",
29540
29804
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29541
29805
  {
29542
29806
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
@@ -29552,8 +29816,10 @@ function registerTradingTools(server, auth) {
29552
29816
  }
29553
29817
  }
29554
29818
  );
29555
- server.tool(
29819
+ registerTool(
29820
+ server,
29556
29821
  "okx_get_one_click_repay_list",
29822
+ "READ",
29557
29823
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29558
29824
  {},
29559
29825
  async () => {
@@ -29566,8 +29832,10 @@ function registerTradingTools(server, auth) {
29566
29832
  }
29567
29833
  }
29568
29834
  );
29569
- server.tool(
29835
+ registerTool(
29836
+ server,
29570
29837
  "okx_one_click_repay",
29838
+ "WRITE",
29571
29839
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29572
29840
  {
29573
29841
  ccy: external_exports.string().describe("\u8FD8\u6B3E\u4F7F\u7528\u7684\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -29583,8 +29851,10 @@ function registerTradingTools(server, auth) {
29583
29851
  }
29584
29852
  }
29585
29853
  );
29586
- server.tool(
29854
+ registerTool(
29855
+ server,
29587
29856
  "okx_get_one_click_repay_history",
29857
+ "READ",
29588
29858
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29589
29859
  {},
29590
29860
  async () => {
@@ -29597,8 +29867,10 @@ function registerTradingTools(server, auth) {
29597
29867
  }
29598
29868
  }
29599
29869
  );
29600
- server.tool(
29870
+ registerTool(
29871
+ server,
29601
29872
  "okx_get_easy_convert_currency_list",
29873
+ "READ",
29602
29874
  "CAT:[\u4EA4\u6613] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29603
29875
  {},
29604
29876
  async () => {
@@ -29615,8 +29887,10 @@ function registerTradingTools(server, auth) {
29615
29887
 
29616
29888
  // src/tools/algo.ts
29617
29889
  function registerAlgoTools(server, auth) {
29618
- server.tool(
29890
+ registerTool(
29891
+ server,
29619
29892
  "okx_get_algo_orders",
29893
+ "READ",
29620
29894
  "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29621
29895
  {
29622
29896
  ordType: external_exports.enum(["conditional", "oco", "trigger", "move_order_stop", "iceberg", "twap"]).describe("\u7B56\u7565\u7C7B\u578B"),
@@ -29632,8 +29906,10 @@ function registerAlgoTools(server, auth) {
29632
29906
  }
29633
29907
  }
29634
29908
  );
29635
- server.tool(
29909
+ registerTool(
29910
+ server,
29636
29911
  "okx_get_algo_orders_history",
29912
+ "READ",
29637
29913
  "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29638
29914
  {
29639
29915
  ordType: external_exports.enum(["conditional", "oco", "trigger", "move_order_stop", "iceberg", "twap"]).describe("\u7B56\u7565\u7C7B\u578B"),
@@ -29650,8 +29926,10 @@ function registerAlgoTools(server, auth) {
29650
29926
  }
29651
29927
  }
29652
29928
  );
29653
- server.tool(
29929
+ registerTool(
29930
+ server,
29654
29931
  "okx_place_algo_order",
29932
+ "WRITE",
29655
29933
  "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29656
29934
  { params: external_exports.record(external_exports.unknown()).describe("\u8BA2\u5355\u53C2\u6570\uFF0C\u53C2\u8003OKX\u6587\u6863") },
29657
29935
  async ({ params }) => {
@@ -29664,8 +29942,10 @@ function registerAlgoTools(server, auth) {
29664
29942
  }
29665
29943
  }
29666
29944
  );
29667
- server.tool(
29945
+ registerTool(
29946
+ server,
29668
29947
  "okx_cancel_algo_order",
29948
+ "WRITE",
29669
29949
  "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29670
29950
  {
29671
29951
  instId: external_exports.string().describe("\u4EA7\u54C1ID"),
@@ -29681,8 +29961,10 @@ function registerAlgoTools(server, auth) {
29681
29961
  }
29682
29962
  }
29683
29963
  );
29684
- server.tool(
29964
+ registerTool(
29965
+ server,
29685
29966
  "okx_get_orders_algo_pending",
29967
+ "READ",
29686
29968
  "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29687
29969
  {
29688
29970
  algoId: external_exports.string().optional().describe("\u7B56\u7565\u8BA2\u5355ID\uFF0C\u7CBE\u786E\u67E5\u8BE2"),
@@ -29701,8 +29983,10 @@ function registerAlgoTools(server, auth) {
29701
29983
  }
29702
29984
  }
29703
29985
  );
29704
- server.tool(
29986
+ registerTool(
29987
+ server,
29705
29988
  "okx_amend_algo_order",
29989
+ "WRITE",
29706
29990
  "CAT:[\u4EA4\u6613-\u59D4\u6258] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29707
29991
  {
29708
29992
  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"}]'`)
@@ -29722,8 +30006,10 @@ function registerAlgoTools(server, auth) {
29722
30006
 
29723
30007
  // src/tools/funding.ts
29724
30008
  function registerFundingTools(server, auth) {
29725
- server.tool(
30009
+ registerTool(
30010
+ server,
29726
30011
  "okx_get_funding_balance",
30012
+ "READ",
29727
30013
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29728
30014
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8") },
29729
30015
  async ({ ccy }) => {
@@ -29736,8 +30022,10 @@ function registerFundingTools(server, auth) {
29736
30022
  }
29737
30023
  }
29738
30024
  );
29739
- server.tool(
30025
+ registerTool(
30026
+ server,
29740
30027
  "okx_transfer",
30028
+ "WRITE",
29741
30029
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29742
30030
  {
29743
30031
  ccy: external_exports.string().describe("\u5212\u8F6C\u5E01\u79CD"),
@@ -29755,8 +30043,10 @@ function registerFundingTools(server, auth) {
29755
30043
  }
29756
30044
  }
29757
30045
  );
29758
- server.tool(
30046
+ registerTool(
30047
+ server,
29759
30048
  "okx_get_currencies",
30049
+ "READ",
29760
30050
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29761
30051
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u5982 BTC\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
29762
30052
  async ({ ccy }) => {
@@ -29769,8 +30059,10 @@ function registerFundingTools(server, auth) {
29769
30059
  }
29770
30060
  }
29771
30061
  );
29772
- server.tool(
30062
+ registerTool(
30063
+ server,
29773
30064
  "okx_get_deposit_address",
30065
+ "READ",
29774
30066
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29775
30067
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3001BTC\u3001ETH") },
29776
30068
  async ({ ccy }) => {
@@ -29783,8 +30075,10 @@ function registerFundingTools(server, auth) {
29783
30075
  }
29784
30076
  }
29785
30077
  );
29786
- server.tool(
30078
+ registerTool(
30079
+ server,
29787
30080
  "okx_get_deposit_history",
30081
+ "READ",
29788
30082
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29789
30083
  {
29790
30084
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -29800,8 +30094,10 @@ function registerFundingTools(server, auth) {
29800
30094
  }
29801
30095
  }
29802
30096
  );
29803
- server.tool(
30097
+ registerTool(
30098
+ server,
29804
30099
  "okx_get_withdrawal_history",
30100
+ "READ",
29805
30101
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29806
30102
  {
29807
30103
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -29817,8 +30113,10 @@ function registerFundingTools(server, auth) {
29817
30113
  }
29818
30114
  }
29819
30115
  );
29820
- server.tool(
30116
+ registerTool(
30117
+ server,
29821
30118
  "okx_withdrawal",
30119
+ "FUND_TRANSFER",
29822
30120
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29823
30121
  {
29824
30122
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B"),
@@ -29842,8 +30140,10 @@ function registerFundingTools(server, auth) {
29842
30140
  }
29843
30141
  }
29844
30142
  );
29845
- server.tool(
30143
+ registerTool(
30144
+ server,
29846
30145
  "okx_get_deposit_lightning",
30146
+ "READ",
29847
30147
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29848
30148
  {
29849
30149
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B")
@@ -29858,8 +30158,10 @@ function registerFundingTools(server, auth) {
29858
30158
  }
29859
30159
  }
29860
30160
  );
29861
- server.tool(
30161
+ registerTool(
30162
+ server,
29862
30163
  "okx_withdrawal_lightning",
30164
+ "FUND_TRANSFER",
29863
30165
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29864
30166
  {
29865
30167
  ccy: external_exports.string().describe("\u63D0\u73B0\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -29876,8 +30178,10 @@ function registerFundingTools(server, auth) {
29876
30178
  }
29877
30179
  }
29878
30180
  );
29879
- server.tool(
30181
+ registerTool(
30182
+ server,
29880
30183
  "okx_get_transfer_state",
30184
+ "READ",
29881
30185
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29882
30186
  {
29883
30187
  transferId: external_exports.string().describe("\u5212\u8F6CID\uFF08\u4ECE okx_transfer \u8FD4\u56DE\u83B7\u53D6\uFF09\u3002\u5FC5\u586B")
@@ -29892,8 +30196,10 @@ function registerFundingTools(server, auth) {
29892
30196
  }
29893
30197
  }
29894
30198
  );
29895
- server.tool(
30199
+ registerTool(
30200
+ server,
29896
30201
  "okx_get_non_tradable_assets",
30202
+ "READ",
29897
30203
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29898
30204
  {},
29899
30205
  async () => {
@@ -29906,8 +30212,10 @@ function registerFundingTools(server, auth) {
29906
30212
  }
29907
30213
  }
29908
30214
  );
29909
- server.tool(
30215
+ registerTool(
30216
+ server,
29910
30217
  "okx_get_exchange_list",
30218
+ "READ",
29911
30219
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29912
30220
  {},
29913
30221
  async () => {
@@ -29919,8 +30227,10 @@ function registerFundingTools(server, auth) {
29919
30227
  }
29920
30228
  }
29921
30229
  );
29922
- server.tool(
30230
+ registerTool(
30231
+ server,
29923
30232
  "okx_get_deposit_withdraw_status",
30233
+ "READ",
29924
30234
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29925
30235
  {},
29926
30236
  async () => {
@@ -29933,8 +30243,10 @@ function registerFundingTools(server, auth) {
29933
30243
  }
29934
30244
  }
29935
30245
  );
29936
- server.tool(
30246
+ registerTool(
30247
+ server,
29937
30248
  "okx_get_asset_bills_history",
30249
+ "READ",
29938
30250
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29939
30251
  {
29940
30252
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -29949,8 +30261,10 @@ function registerFundingTools(server, auth) {
29949
30261
  }
29950
30262
  }
29951
30263
  );
29952
- server.tool(
30264
+ registerTool(
30265
+ server,
29953
30266
  "okx_get_convert_currency_pair",
30267
+ "READ",
29954
30268
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29955
30269
  {},
29956
30270
  async () => {
@@ -29963,8 +30277,10 @@ function registerFundingTools(server, auth) {
29963
30277
  }
29964
30278
  }
29965
30279
  );
29966
- server.tool(
30280
+ registerTool(
30281
+ server,
29967
30282
  "okx_get_convert_estimate_quote",
30283
+ "READ",
29968
30284
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29969
30285
  {
29970
30286
  fromCcy: external_exports.string().describe("\u5356\u51FA\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -29981,8 +30297,10 @@ function registerFundingTools(server, auth) {
29981
30297
  }
29982
30298
  }
29983
30299
  );
29984
- server.tool(
30300
+ registerTool(
30301
+ server,
29985
30302
  "okx_get_monthly_statement",
30303
+ "READ",
29986
30304
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
29987
30305
  {},
29988
30306
  async () => {
@@ -29995,8 +30313,10 @@ function registerFundingTools(server, auth) {
29995
30313
  }
29996
30314
  }
29997
30315
  );
29998
- server.tool(
30316
+ registerTool(
30317
+ server,
29999
30318
  "okx_get_asset_balances",
30319
+ "READ",
30000
30320
  "CAT:[\u8D44\u91D1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30001
30321
  { ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
30002
30322
  async ({ ccy }) => {
@@ -30013,8 +30333,10 @@ function registerFundingTools(server, auth) {
30013
30333
 
30014
30334
  // src/tools/stats.ts
30015
30335
  function registerStatsTools(server) {
30016
- server.tool(
30336
+ registerTool(
30337
+ server,
30017
30338
  "okx_get_long_short_ratio",
30339
+ "READ",
30018
30340
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30019
30341
  {
30020
30342
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
@@ -30034,8 +30356,10 @@ function registerStatsTools(server) {
30034
30356
  }
30035
30357
  }
30036
30358
  );
30037
- server.tool(
30359
+ registerTool(
30360
+ server,
30038
30361
  "okx_get_taker_volume",
30362
+ "READ",
30039
30363
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30040
30364
  {
30041
30365
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC"),
@@ -30056,8 +30380,10 @@ function registerStatsTools(server) {
30056
30380
  }
30057
30381
  }
30058
30382
  );
30059
- server.tool(
30383
+ registerTool(
30384
+ server,
30060
30385
  "okx_get_open_interest_volume",
30386
+ "READ",
30061
30387
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30062
30388
  {
30063
30389
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC"),
@@ -30077,8 +30403,10 @@ function registerStatsTools(server) {
30077
30403
  }
30078
30404
  }
30079
30405
  );
30080
- server.tool(
30406
+ registerTool(
30407
+ server,
30081
30408
  "okx_get_margin_lending_ratio",
30409
+ "READ",
30082
30410
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30083
30411
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT") },
30084
30412
  async ({ ccy }) => {
@@ -30094,8 +30422,10 @@ function registerStatsTools(server) {
30094
30422
  }
30095
30423
  }
30096
30424
  );
30097
- server.tool(
30425
+ registerTool(
30426
+ server,
30098
30427
  "okx_get_stats_support_coin",
30428
+ "READ",
30099
30429
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30100
30430
  {},
30101
30431
  async () => {
@@ -30107,8 +30437,10 @@ function registerStatsTools(server) {
30107
30437
  }
30108
30438
  }
30109
30439
  );
30110
- server.tool(
30440
+ registerTool(
30441
+ server,
30111
30442
  "okx_get_top_trader_long_short_ratio",
30443
+ "READ",
30112
30444
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30113
30445
  {
30114
30446
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3001ETH-USDT-SWAP"),
@@ -30128,8 +30460,10 @@ function registerStatsTools(server) {
30128
30460
  }
30129
30461
  }
30130
30462
  );
30131
- server.tool(
30463
+ registerTool(
30464
+ server,
30132
30465
  "okx_get_put_call_ratio",
30466
+ "READ",
30133
30467
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30134
30468
  {
30135
30469
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
@@ -30149,8 +30483,10 @@ function registerStatsTools(server) {
30149
30483
  }
30150
30484
  }
30151
30485
  );
30152
- server.tool(
30486
+ registerTool(
30487
+ server,
30153
30488
  "okx_get_lending_rate_summary",
30489
+ "READ",
30154
30490
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30155
30491
  { ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
30156
30492
  async ({ ccy }) => {
@@ -30162,8 +30498,10 @@ function registerStatsTools(server) {
30162
30498
  }
30163
30499
  }
30164
30500
  );
30165
- server.tool(
30501
+ registerTool(
30502
+ server,
30166
30503
  "okx_get_top_traders_contract_ls_ratio",
30504
+ "READ",
30167
30505
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30168
30506
  {
30169
30507
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -30183,8 +30521,10 @@ function registerStatsTools(server) {
30183
30521
  }
30184
30522
  }
30185
30523
  );
30186
- server.tool(
30524
+ registerTool(
30525
+ server,
30187
30526
  "okx_get_contracts_taker_volume",
30527
+ "READ",
30188
30528
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30189
30529
  {
30190
30530
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -30204,8 +30544,10 @@ function registerStatsTools(server) {
30204
30544
  }
30205
30545
  }
30206
30546
  );
30207
- server.tool(
30547
+ registerTool(
30548
+ server,
30208
30549
  "okx_get_contracts_long_short_ratio",
30550
+ "READ",
30209
30551
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30210
30552
  {
30211
30553
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -30225,8 +30567,10 @@ function registerStatsTools(server) {
30225
30567
  }
30226
30568
  }
30227
30569
  );
30228
- server.tool(
30570
+ registerTool(
30571
+ server,
30229
30572
  "okx_get_long_short_ratio_all",
30573
+ "READ",
30230
30574
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30231
30575
  {
30232
30576
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -30246,8 +30590,10 @@ function registerStatsTools(server) {
30246
30590
  }
30247
30591
  }
30248
30592
  );
30249
- server.tool(
30593
+ registerTool(
30594
+ server,
30250
30595
  "okx_get_taker_flow_contract",
30596
+ "READ",
30251
30597
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30252
30598
  {
30253
30599
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
@@ -30268,8 +30614,10 @@ function registerStatsTools(server) {
30268
30614
  }
30269
30615
  }
30270
30616
  );
30271
- server.tool(
30617
+ registerTool(
30618
+ server,
30272
30619
  "okx_get_open_interest_history_rubik",
30620
+ "READ",
30273
30621
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30274
30622
  {
30275
30623
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -30292,8 +30640,10 @@ function registerStatsTools(server) {
30292
30640
  }
30293
30641
  }
30294
30642
  );
30295
- server.tool(
30643
+ registerTool(
30644
+ server,
30296
30645
  "okx_get_savings_lending_rate",
30646
+ "READ",
30297
30647
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30298
30648
  { ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
30299
30649
  async ({ ccy }) => {
@@ -30305,8 +30655,10 @@ function registerStatsTools(server) {
30305
30655
  }
30306
30656
  }
30307
30657
  );
30308
- server.tool(
30658
+ registerTool(
30659
+ server,
30309
30660
  "okx_get_margin_lending_ratio_history",
30661
+ "READ",
30310
30662
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30311
30663
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001USDT") },
30312
30664
  async ({ ccy }) => {
@@ -30322,8 +30674,10 @@ function registerStatsTools(server) {
30322
30674
  }
30323
30675
  }
30324
30676
  );
30325
- server.tool(
30677
+ registerTool(
30678
+ server,
30326
30679
  "okx_get_option_open_interest",
30680
+ "READ",
30327
30681
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30328
30682
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B") },
30329
30683
  async ({ ccy }) => {
@@ -30335,8 +30689,10 @@ function registerStatsTools(server) {
30335
30689
  }
30336
30690
  }
30337
30691
  );
30338
- server.tool(
30692
+ registerTool(
30693
+ server,
30339
30694
  "okx_get_option_oi_expiry",
30695
+ "READ",
30340
30696
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30341
30697
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B") },
30342
30698
  async ({ ccy }) => {
@@ -30357,8 +30713,10 @@ function registerStatsTools(server) {
30357
30713
  }
30358
30714
  }
30359
30715
  );
30360
- server.tool(
30716
+ registerTool(
30717
+ server,
30361
30718
  "okx_get_option_oi_strike",
30719
+ "READ",
30362
30720
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30363
30721
  {
30364
30722
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B"),
@@ -30382,8 +30740,10 @@ function registerStatsTools(server) {
30382
30740
  }
30383
30741
  }
30384
30742
  );
30385
- server.tool(
30743
+ registerTool(
30744
+ server,
30386
30745
  "okx_get_long_short_account_ratio",
30746
+ "READ",
30387
30747
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30388
30748
  {
30389
30749
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
@@ -30403,8 +30763,10 @@ function registerStatsTools(server) {
30403
30763
  }
30404
30764
  }
30405
30765
  );
30406
- server.tool(
30766
+ registerTool(
30767
+ server,
30407
30768
  "okx_get_contract_trader_ls_ratio",
30769
+ "READ",
30408
30770
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30409
30771
  {
30410
30772
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
@@ -30424,8 +30786,10 @@ function registerStatsTools(server) {
30424
30786
  }
30425
30787
  }
30426
30788
  );
30427
- server.tool(
30789
+ registerTool(
30790
+ server,
30428
30791
  "okx_get_contract_position_trader_ratio",
30792
+ "READ",
30429
30793
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30430
30794
  {
30431
30795
  instId: external_exports.string().describe("\u5408\u7EA6\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B")
@@ -30443,8 +30807,10 @@ function registerStatsTools(server) {
30443
30807
  }
30444
30808
  }
30445
30809
  );
30446
- server.tool(
30810
+ registerTool(
30811
+ server,
30447
30812
  "okx_get_option_oi_ratio",
30813
+ "READ",
30448
30814
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30449
30815
  {
30450
30816
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH"),
@@ -30464,8 +30830,10 @@ function registerStatsTools(server) {
30464
30830
  }
30465
30831
  }
30466
30832
  );
30467
- server.tool(
30833
+ registerTool(
30834
+ server,
30468
30835
  "okx_get_option_taker_block_volume",
30836
+ "READ",
30469
30837
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30470
30838
  { ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3001ETH\u3002\u5FC5\u586B") },
30471
30839
  async ({ ccy }) => {
@@ -30477,8 +30845,10 @@ function registerStatsTools(server) {
30477
30845
  }
30478
30846
  }
30479
30847
  );
30480
- server.tool(
30848
+ registerTool(
30849
+ server,
30481
30850
  "okx_get_taker_volume_contract",
30851
+ "READ",
30482
30852
  "CAT:[\u7EDF\u8BA1] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30483
30853
  {
30484
30854
  ccy: external_exports.string().describe("\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
@@ -30501,8 +30871,10 @@ function registerStatsTools(server) {
30501
30871
 
30502
30872
  // src/tools/subaccount.ts
30503
30873
  function registerSubAccountTools(server, auth) {
30504
- server.tool(
30874
+ registerTool(
30875
+ server,
30505
30876
  "okx_get_subaccount_list",
30877
+ "READ",
30506
30878
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30507
30879
  {
30508
30880
  enable: external_exports.boolean().optional().describe("\u7B5B\u9009\u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
@@ -30517,8 +30889,10 @@ function registerSubAccountTools(server, auth) {
30517
30889
  }
30518
30890
  }
30519
30891
  );
30520
- server.tool(
30892
+ registerTool(
30893
+ server,
30521
30894
  "okx_list_subaccounts",
30895
+ "READ",
30522
30896
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30523
30897
  {
30524
30898
  enable: external_exports.boolean().optional().describe("\u7B5B\u9009\u542F\u7528\u72B6\u6001\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
@@ -30533,8 +30907,10 @@ function registerSubAccountTools(server, auth) {
30533
30907
  }
30534
30908
  }
30535
30909
  );
30536
- server.tool(
30910
+ registerTool(
30911
+ server,
30537
30912
  "okx_get_subaccount_balance",
30913
+ "READ",
30538
30914
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30539
30915
  {
30540
30916
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0")
@@ -30549,8 +30925,10 @@ function registerSubAccountTools(server, auth) {
30549
30925
  }
30550
30926
  }
30551
30927
  );
30552
- server.tool(
30928
+ registerTool(
30929
+ server,
30553
30930
  "okx_transfer_subaccount",
30931
+ "WRITE",
30554
30932
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30555
30933
  {
30556
30934
  ccy: external_exports.string().describe("\u5212\u8F6C\u5E01\u79CD"),
@@ -30573,8 +30951,10 @@ function registerSubAccountTools(server, auth) {
30573
30951
  }
30574
30952
  }
30575
30953
  );
30576
- server.tool(
30954
+ registerTool(
30955
+ server,
30577
30956
  "okx_subaccount_set_transfer_out",
30957
+ "WRITE",
30578
30958
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30579
30959
  {
30580
30960
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30590,8 +30970,10 @@ function registerSubAccountTools(server, auth) {
30590
30970
  }
30591
30971
  }
30592
30972
  );
30593
- server.tool(
30973
+ registerTool(
30974
+ server,
30594
30975
  "okx_get_subaccount_api_key",
30976
+ "READ",
30595
30977
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30596
30978
  {
30597
30979
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
@@ -30606,8 +30988,10 @@ function registerSubAccountTools(server, auth) {
30606
30988
  }
30607
30989
  }
30608
30990
  );
30609
- server.tool(
30991
+ registerTool(
30992
+ server,
30610
30993
  "okx_create_subaccount_api_key",
30994
+ "WRITE",
30611
30995
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30612
30996
  {
30613
30997
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30628,8 +31012,10 @@ function registerSubAccountTools(server, auth) {
30628
31012
  }
30629
31013
  }
30630
31014
  );
30631
- server.tool(
31015
+ registerTool(
31016
+ server,
30632
31017
  "okx_reset_subaccount_api_key",
31018
+ "READ",
30633
31019
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30634
31020
  {
30635
31021
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30652,8 +31038,10 @@ function registerSubAccountTools(server, auth) {
30652
31038
  }
30653
31039
  }
30654
31040
  );
30655
- server.tool(
31041
+ registerTool(
31042
+ server,
30656
31043
  "okx_delete_subaccount_api_key",
31044
+ "READ",
30657
31045
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30658
31046
  {
30659
31047
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30669,8 +31057,10 @@ function registerSubAccountTools(server, auth) {
30669
31057
  }
30670
31058
  }
30671
31059
  );
30672
- server.tool(
31060
+ registerTool(
31061
+ server,
30673
31062
  "okx_get_subaccount_bills",
31063
+ "READ",
30674
31064
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30675
31065
  {
30676
31066
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30688,8 +31078,10 @@ function registerSubAccountTools(server, auth) {
30688
31078
  }
30689
31079
  }
30690
31080
  );
30691
- server.tool(
31081
+ registerTool(
31082
+ server,
30692
31083
  "okx_get_subaccount_assets",
31084
+ "READ",
30693
31085
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30694
31086
  {
30695
31087
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
@@ -30704,8 +31096,10 @@ function registerSubAccountTools(server, auth) {
30704
31096
  }
30705
31097
  }
30706
31098
  );
30707
- server.tool(
31099
+ registerTool(
31100
+ server,
30708
31101
  "okx_create_subaccount",
31102
+ "WRITE",
30709
31103
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30710
31104
  {
30711
31105
  subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
@@ -30723,8 +31117,10 @@ function registerSubAccountTools(server, auth) {
30723
31117
  }
30724
31118
  }
30725
31119
  );
30726
- server.tool(
31120
+ registerTool(
31121
+ server,
30727
31122
  "okx_get_entrust_subaccount_list",
31123
+ "READ",
30728
31124
  "CAT:[\u8D26\u6237-\u5B50\u8D26\u6237] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30729
31125
  {},
30730
31126
  async () => {
@@ -30741,8 +31137,10 @@ function registerSubAccountTools(server, auth) {
30741
31137
 
30742
31138
  // src/tools/finance.ts
30743
31139
  function registerFinanceTools(server, auth) {
30744
- server.tool(
31140
+ registerTool(
31141
+ server,
30745
31142
  "okx_get_savings_balance",
31143
+ "READ",
30746
31144
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30747
31145
  {
30748
31146
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
@@ -30757,8 +31155,10 @@ function registerFinanceTools(server, auth) {
30757
31155
  }
30758
31156
  }
30759
31157
  );
30760
- server.tool(
31158
+ registerTool(
31159
+ server,
30761
31160
  "okx_get_savings_history",
31161
+ "READ",
30762
31162
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30763
31163
  {
30764
31164
  ccy: external_exports.string().optional().describe("\u5E01\u79CD\uFF0C\u5982 USDT")
@@ -30773,8 +31173,10 @@ function registerFinanceTools(server, auth) {
30773
31173
  }
30774
31174
  }
30775
31175
  );
30776
- server.tool(
31176
+ registerTool(
31177
+ server,
30777
31178
  "okx_get_staking_offers",
31179
+ "READ",
30778
31180
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30779
31181
  {
30780
31182
  productId: external_exports.string().optional().describe("\u6307\u5B9A\u4EA7\u54C1ID\uFF0C\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8")
@@ -30789,8 +31191,10 @@ function registerFinanceTools(server, auth) {
30789
31191
  }
30790
31192
  }
30791
31193
  );
30792
- server.tool(
31194
+ registerTool(
31195
+ server,
30793
31196
  "okx_get_eth_staking_balance",
31197
+ "READ",
30794
31198
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30795
31199
  {},
30796
31200
  async () => {
@@ -30803,8 +31207,10 @@ function registerFinanceTools(server, auth) {
30803
31207
  }
30804
31208
  }
30805
31209
  );
30806
- server.tool(
31210
+ registerTool(
31211
+ server,
30807
31212
  "okx_get_eth_staking_history",
31213
+ "READ",
30808
31214
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30809
31215
  {
30810
31216
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -30819,8 +31225,10 @@ function registerFinanceTools(server, auth) {
30819
31225
  }
30820
31226
  }
30821
31227
  );
30822
- server.tool(
31228
+ registerTool(
31229
+ server,
30823
31230
  "okx_get_sol_staking_balance",
31231
+ "READ",
30824
31232
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30825
31233
  {},
30826
31234
  async () => {
@@ -30833,8 +31241,10 @@ function registerFinanceTools(server, auth) {
30833
31241
  }
30834
31242
  }
30835
31243
  );
30836
- server.tool(
31244
+ registerTool(
31245
+ server,
30837
31246
  "okx_get_staking_orders",
31247
+ "READ",
30838
31248
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30839
31249
  {
30840
31250
  productId: external_exports.string().optional().describe("\u4EA7\u54C1ID\uFF0C\u5982 ETH\u3002\u53EF\u9009"),
@@ -30851,8 +31261,10 @@ function registerFinanceTools(server, auth) {
30851
31261
  }
30852
31262
  }
30853
31263
  );
30854
- server.tool(
31264
+ registerTool(
31265
+ server,
30855
31266
  "okx_stake_eth",
31267
+ "READ",
30856
31268
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30857
31269
  {
30858
31270
  amt: external_exports.string().describe("\u8D28\u62BC\u6570\u91CF\uFF08ETH\uFF09\u3002\u5FC5\u586B"),
@@ -30870,8 +31282,10 @@ function registerFinanceTools(server, auth) {
30870
31282
  }
30871
31283
  }
30872
31284
  );
30873
- server.tool(
31285
+ registerTool(
31286
+ server,
30874
31287
  "okx_unstake_eth",
31288
+ "READ",
30875
31289
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30876
31290
  {
30877
31291
  amt: external_exports.string().describe("\u8D4E\u56DE\u6570\u91CF\uFF08ETH\uFF09\u3002\u5FC5\u586B")
@@ -30886,8 +31300,10 @@ function registerFinanceTools(server, auth) {
30886
31300
  }
30887
31301
  }
30888
31302
  );
30889
- server.tool(
31303
+ registerTool(
31304
+ server,
30890
31305
  "okx_get_sol_staking_history",
31306
+ "READ",
30891
31307
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30892
31308
  {
30893
31309
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
@@ -30902,8 +31318,10 @@ function registerFinanceTools(server, auth) {
30902
31318
  }
30903
31319
  }
30904
31320
  );
30905
- server.tool(
31321
+ registerTool(
31322
+ server,
30906
31323
  "okx_purchase_savings",
31324
+ "READ",
30907
31325
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30908
31326
  {
30909
31327
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -30923,8 +31341,10 @@ function registerFinanceTools(server, auth) {
30923
31341
  }
30924
31342
  }
30925
31343
  );
30926
- server.tool(
31344
+ registerTool(
31345
+ server,
30927
31346
  "okx_get_sfp_products",
31347
+ "READ",
30928
31348
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30929
31349
  {},
30930
31350
  async () => {
@@ -30937,8 +31357,10 @@ function registerFinanceTools(server, auth) {
30937
31357
  }
30938
31358
  }
30939
31359
  );
30940
- server.tool(
31360
+ registerTool(
31361
+ server,
30941
31362
  "okx_redeem_sfp",
31363
+ "READ",
30942
31364
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30943
31365
  {
30944
31366
  productId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
@@ -30954,8 +31376,10 @@ function registerFinanceTools(server, auth) {
30954
31376
  }
30955
31377
  }
30956
31378
  );
30957
- server.tool(
31379
+ registerTool(
31380
+ server,
30958
31381
  "okx_get_staking_active_orders",
31382
+ "READ",
30959
31383
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30960
31384
  {},
30961
31385
  async () => {
@@ -30968,8 +31392,10 @@ function registerFinanceTools(server, auth) {
30968
31392
  }
30969
31393
  }
30970
31394
  );
30971
- server.tool(
31395
+ registerTool(
31396
+ server,
30972
31397
  "okx_cancel_redeem_eth",
31398
+ "WRITE",
30973
31399
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30974
31400
  {
30975
31401
  amt: external_exports.string().describe("\u53D6\u6D88\u8D4E\u56DE\u6570\u91CF\u3002\u5FC5\u586B")
@@ -30984,8 +31410,10 @@ function registerFinanceTools(server, auth) {
30984
31410
  }
30985
31411
  }
30986
31412
  );
30987
- server.tool(
31413
+ registerTool(
31414
+ server,
30988
31415
  "okx_purchase_sol_staking",
31416
+ "READ",
30989
31417
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
30990
31418
  {
30991
31419
  amt: external_exports.string().describe("\u8D28\u62BC\u6570\u91CF\uFF08SOL\uFF09\u3002\u5FC5\u586B")
@@ -31000,8 +31428,10 @@ function registerFinanceTools(server, auth) {
31000
31428
  }
31001
31429
  }
31002
31430
  );
31003
- server.tool(
31431
+ registerTool(
31432
+ server,
31004
31433
  "okx_redeem_sol_staking",
31434
+ "READ",
31005
31435
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31006
31436
  {
31007
31437
  amt: external_exports.string().describe("\u8D4E\u56DE\u6570\u91CF\uFF08SOL\uFF09\u3002\u5FC5\u586B")
@@ -31016,8 +31446,10 @@ function registerFinanceTools(server, auth) {
31016
31446
  }
31017
31447
  }
31018
31448
  );
31019
- server.tool(
31449
+ registerTool(
31450
+ server,
31020
31451
  "okx_adjust_collateral",
31452
+ "READ",
31021
31453
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31022
31454
  {
31023
31455
  ccy: external_exports.string().describe("\u62B5\u62BC\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -31034,8 +31466,10 @@ function registerFinanceTools(server, auth) {
31034
31466
  }
31035
31467
  }
31036
31468
  );
31037
- server.tool(
31469
+ registerTool(
31470
+ server,
31038
31471
  "okx_get_flexible_loan_collateral",
31472
+ "READ",
31039
31473
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31040
31474
  {},
31041
31475
  async () => {
@@ -31048,8 +31482,10 @@ function registerFinanceTools(server, auth) {
31048
31482
  }
31049
31483
  }
31050
31484
  );
31051
- server.tool(
31485
+ registerTool(
31486
+ server,
31052
31487
  "okx_get_flexible_loan_info",
31488
+ "READ",
31053
31489
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31054
31490
  {},
31055
31491
  async () => {
@@ -31062,8 +31498,10 @@ function registerFinanceTools(server, auth) {
31062
31498
  }
31063
31499
  }
31064
31500
  );
31065
- server.tool(
31501
+ registerTool(
31502
+ server,
31066
31503
  "okx_get_flexible_loan_history",
31504
+ "READ",
31067
31505
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31068
31506
  {},
31069
31507
  async () => {
@@ -31076,8 +31514,10 @@ function registerFinanceTools(server, auth) {
31076
31514
  }
31077
31515
  }
31078
31516
  );
31079
- server.tool(
31517
+ registerTool(
31518
+ server,
31080
31519
  "okx_get_stable_rewards_product",
31520
+ "READ",
31081
31521
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31082
31522
  {},
31083
31523
  async () => {
@@ -31090,8 +31530,10 @@ function registerFinanceTools(server, auth) {
31090
31530
  }
31091
31531
  }
31092
31532
  );
31093
- server.tool(
31533
+ registerTool(
31534
+ server,
31094
31535
  "okx_get_lending_rate_history",
31536
+ "READ",
31095
31537
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31096
31538
  {},
31097
31539
  async () => {
@@ -31107,8 +31549,10 @@ function registerFinanceTools(server, auth) {
31107
31549
  }
31108
31550
  }
31109
31551
  );
31110
- server.tool(
31552
+ registerTool(
31553
+ server,
31111
31554
  "okx_set_lending_rate",
31555
+ "WRITE",
31112
31556
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31113
31557
  {
31114
31558
  ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
@@ -31124,8 +31568,10 @@ function registerFinanceTools(server, auth) {
31124
31568
  }
31125
31569
  }
31126
31570
  );
31127
- server.tool(
31571
+ registerTool(
31572
+ server,
31128
31573
  "okx_get_stable_rewards_apy",
31574
+ "READ",
31129
31575
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31130
31576
  {},
31131
31577
  async () => {
@@ -31138,8 +31584,10 @@ function registerFinanceTools(server, auth) {
31138
31584
  }
31139
31585
  }
31140
31586
  );
31141
- server.tool(
31587
+ registerTool(
31588
+ server,
31142
31589
  "okx_get_stable_rewards_history",
31590
+ "READ",
31143
31591
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31144
31592
  {},
31145
31593
  async () => {
@@ -31152,8 +31600,10 @@ function registerFinanceTools(server, auth) {
31152
31600
  }
31153
31601
  }
31154
31602
  );
31155
- server.tool(
31603
+ registerTool(
31604
+ server,
31156
31605
  "okx_get_sfp_order_history",
31606
+ "READ",
31157
31607
  "CAT:[\u91D1\u878D] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31158
31608
  {},
31159
31609
  async () => {
@@ -31170,8 +31620,10 @@ function registerFinanceTools(server, auth) {
31170
31620
 
31171
31621
  // src/tools/outcomes.ts
31172
31622
  function registerOutcomesTools(server) {
31173
- server.tool(
31623
+ registerTool(
31624
+ server,
31174
31625
  "outcomes_list_events",
31626
+ "READ",
31175
31627
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31176
31628
  {
31177
31629
  pageSize: external_exports.number().int().min(1).max(100).optional().describe("\u6BCF\u9875\u6570\u91CF\uFF0C\u9ED8\u8BA420"),
@@ -31193,8 +31645,10 @@ function registerOutcomesTools(server) {
31193
31645
  }
31194
31646
  }
31195
31647
  );
31196
- server.tool(
31648
+ registerTool(
31649
+ server,
31197
31650
  "outcomes_get_event",
31651
+ "READ",
31198
31652
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31199
31653
  { eventId: external_exports.string().describe("\u4E8B\u4EF6ID") },
31200
31654
  async ({ eventId }) => {
@@ -31208,8 +31662,10 @@ function registerOutcomesTools(server) {
31208
31662
  }
31209
31663
  }
31210
31664
  );
31211
- server.tool(
31665
+ registerTool(
31666
+ server,
31212
31667
  "outcomes_get_market",
31668
+ "READ",
31213
31669
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31214
31670
  { marketId: external_exports.string().describe("\u5E02\u573AID") },
31215
31671
  async ({ marketId }) => {
@@ -31223,8 +31679,10 @@ function registerOutcomesTools(server) {
31223
31679
  }
31224
31680
  }
31225
31681
  );
31226
- server.tool(
31682
+ registerTool(
31683
+ server,
31227
31684
  "outcomes_get_ticker",
31685
+ "READ",
31228
31686
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31229
31687
  {
31230
31688
  marketId: external_exports.string().describe("\u5E02\u573AID"),
@@ -31241,8 +31699,10 @@ function registerOutcomesTools(server) {
31241
31699
  }
31242
31700
  }
31243
31701
  );
31244
- server.tool(
31702
+ registerTool(
31703
+ server,
31245
31704
  "outcomes_get_orderbook",
31705
+ "READ",
31246
31706
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31247
31707
  {
31248
31708
  marketId: external_exports.string().describe("\u5E02\u573AID"),
@@ -31260,8 +31720,10 @@ function registerOutcomesTools(server) {
31260
31720
  }
31261
31721
  }
31262
31722
  );
31263
- server.tool(
31723
+ registerTool(
31724
+ server,
31264
31725
  "outcomes_get_candles",
31726
+ "READ",
31265
31727
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31266
31728
  {
31267
31729
  marketId: external_exports.string().describe("\u5E02\u573AID"),
@@ -31280,8 +31742,10 @@ function registerOutcomesTools(server) {
31280
31742
  }
31281
31743
  }
31282
31744
  );
31283
- server.tool(
31745
+ registerTool(
31746
+ server,
31284
31747
  "outcomes_check_arbitrage",
31748
+ "READ",
31285
31749
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31286
31750
  {
31287
31751
  marketId: external_exports.string().describe("\u5E02\u573AID\uFF0C\u5FC5\u586B")
@@ -31319,8 +31783,10 @@ function registerOutcomesTools(server) {
31319
31783
  }
31320
31784
  }
31321
31785
  );
31322
- server.tool(
31786
+ registerTool(
31787
+ server,
31323
31788
  "outcomes_list_markets",
31789
+ "READ",
31324
31790
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31325
31791
  {
31326
31792
  pageSize: external_exports.number().int().min(1).max(100).optional().describe("\u6BCF\u9875\u6570\u91CF")
@@ -31337,8 +31803,10 @@ function registerOutcomesTools(server) {
31337
31803
  }
31338
31804
  }
31339
31805
  );
31340
- server.tool(
31806
+ registerTool(
31807
+ server,
31341
31808
  "okx_get_event_series",
31809
+ "READ",
31342
31810
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31343
31811
  {},
31344
31812
  async () => {
@@ -31350,8 +31818,10 @@ function registerOutcomesTools(server) {
31350
31818
  }
31351
31819
  }
31352
31820
  );
31353
- server.tool(
31821
+ registerTool(
31822
+ server,
31354
31823
  "okx_get_event_markets",
31824
+ "READ",
31355
31825
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31356
31826
  {
31357
31827
  seriesId: external_exports.string().describe("\u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B")
@@ -31365,8 +31835,10 @@ function registerOutcomesTools(server) {
31365
31835
  }
31366
31836
  }
31367
31837
  );
31368
- server.tool(
31838
+ registerTool(
31839
+ server,
31369
31840
  "okx_get_event_events",
31841
+ "READ",
31370
31842
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31371
31843
  {
31372
31844
  seriesId: external_exports.string().describe("\u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B")
@@ -31380,8 +31852,10 @@ function registerOutcomesTools(server) {
31380
31852
  }
31381
31853
  }
31382
31854
  );
31383
- server.tool(
31855
+ registerTool(
31856
+ server,
31384
31857
  "okx_predictions_list_events",
31858
+ "READ",
31385
31859
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31386
31860
  {
31387
31861
  limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6570\u91CF"),
@@ -31403,8 +31877,10 @@ function registerOutcomesTools(server) {
31403
31877
  }
31404
31878
  }
31405
31879
  );
31406
- server.tool(
31880
+ registerTool(
31881
+ server,
31407
31882
  "okx_predictions_search_events",
31883
+ "READ",
31408
31884
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31409
31885
  {
31410
31886
  keyword: external_exports.string().describe("\u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5FC5\u586B")
@@ -31418,8 +31894,10 @@ function registerOutcomesTools(server) {
31418
31894
  }
31419
31895
  }
31420
31896
  );
31421
- server.tool(
31897
+ registerTool(
31898
+ server,
31422
31899
  "okx_predictions_get_event",
31900
+ "READ",
31423
31901
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31424
31902
  {
31425
31903
  eventId: external_exports.string().describe("\u4E8B\u4EF6ID\uFF0C\u5FC5\u586B")
@@ -31433,8 +31911,10 @@ function registerOutcomesTools(server) {
31433
31911
  }
31434
31912
  }
31435
31913
  );
31436
- server.tool(
31914
+ registerTool(
31915
+ server,
31437
31916
  "okx_predictions_get_event_markets",
31917
+ "READ",
31438
31918
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31439
31919
  {
31440
31920
  eventId: external_exports.string().describe("\u4E8B\u4EF6ID\uFF0C\u5FC5\u586B")
@@ -31448,8 +31928,10 @@ function registerOutcomesTools(server) {
31448
31928
  }
31449
31929
  }
31450
31930
  );
31451
- server.tool(
31931
+ registerTool(
31932
+ server,
31452
31933
  "okx_predictions_get_market",
31934
+ "READ",
31453
31935
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31454
31936
  {
31455
31937
  marketId: external_exports.string().describe("\u5E02\u573AID\uFF0C\u5FC5\u586B")
@@ -31463,8 +31945,10 @@ function registerOutcomesTools(server) {
31463
31945
  }
31464
31946
  }
31465
31947
  );
31466
- server.tool(
31948
+ registerTool(
31949
+ server,
31467
31950
  "okx_predictions_ticker",
31951
+ "READ",
31468
31952
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31469
31953
  {
31470
31954
  instId: external_exports.string().describe("YES/NO \u8D44\u4EA7\u7684 instId\uFF08yesAssetId\uFF09\uFF0C\u5FC5\u586B")
@@ -31478,8 +31962,10 @@ function registerOutcomesTools(server) {
31478
31962
  }
31479
31963
  }
31480
31964
  );
31481
- server.tool(
31965
+ registerTool(
31966
+ server,
31482
31967
  "okx_predictions_candles",
31968
+ "READ",
31483
31969
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31484
31970
  {
31485
31971
  instId: external_exports.string().describe("YES/NO \u8D44\u4EA7 instId"),
@@ -31495,8 +31981,10 @@ function registerOutcomesTools(server) {
31495
31981
  }
31496
31982
  }
31497
31983
  );
31498
- server.tool(
31984
+ registerTool(
31985
+ server,
31499
31986
  "okx_predictions_orderbook",
31987
+ "READ",
31500
31988
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31501
31989
  {
31502
31990
  instId: external_exports.string().describe("YES/NO \u8D44\u4EA7 instId"),
@@ -31511,8 +31999,10 @@ function registerOutcomesTools(server) {
31511
31999
  }
31512
32000
  }
31513
32001
  );
31514
- server.tool(
32002
+ registerTool(
32003
+ server,
31515
32004
  "okx_event_place_order",
32005
+ "WRITE",
31516
32006
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31517
32007
  {
31518
32008
  instId: external_exports.string().describe("\u5408\u7EA6ID"),
@@ -31537,8 +32027,10 @@ function registerOutcomesTools(server) {
31537
32027
  }
31538
32028
  }
31539
32029
  );
31540
- server.tool(
32030
+ registerTool(
32031
+ server,
31541
32032
  "okx_event_cancel_order",
32033
+ "WRITE",
31542
32034
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31543
32035
  { instId: external_exports.string().describe("\u5408\u7EA6ID"), ordId: external_exports.string().describe("\u8BA2\u5355ID") },
31544
32036
  async ({ instId, ordId }) => {
@@ -31552,8 +32044,10 @@ function registerOutcomesTools(server) {
31552
32044
  }
31553
32045
  }
31554
32046
  );
31555
- server.tool(
32047
+ registerTool(
32048
+ server,
31556
32049
  "okx_event_amend_order",
32050
+ "WRITE",
31557
32051
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31558
32052
  {
31559
32053
  instId: external_exports.string().describe("\u5408\u7EA6ID"),
@@ -31575,8 +32069,10 @@ function registerOutcomesTools(server) {
31575
32069
  }
31576
32070
  }
31577
32071
  );
31578
- server.tool(
32072
+ registerTool(
32073
+ server,
31579
32074
  "okx_event_fills",
32075
+ "READ",
31580
32076
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31581
32077
  { instId: external_exports.string().optional().describe("\u5408\u7EA6ID"), limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570") },
31582
32078
  async ({ instId, limit }) => {
@@ -31590,8 +32086,10 @@ function registerOutcomesTools(server) {
31590
32086
  }
31591
32087
  }
31592
32088
  );
31593
- server.tool(
32089
+ registerTool(
32090
+ server,
31594
32091
  "okx_event_instruments",
32092
+ "READ",
31595
32093
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31596
32094
  { seriesId: external_exports.string().optional().describe("\u4E8B\u4EF6\u7CFB\u5217ID") },
31597
32095
  async ({ seriesId }) => {
@@ -31605,8 +32103,10 @@ function registerOutcomesTools(server) {
31605
32103
  }
31606
32104
  }
31607
32105
  );
31608
- server.tool(
32106
+ registerTool(
32107
+ server,
31609
32108
  "okx_predictions_place_order",
32109
+ "WRITE",
31610
32110
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31611
32111
  {
31612
32112
  marketId: external_exports.string().describe("\u5E02\u573AID\uFF08\u5FC5\u586B\uFF09"),
@@ -31628,8 +32128,10 @@ function registerOutcomesTools(server) {
31628
32128
  }
31629
32129
  }
31630
32130
  );
31631
- server.tool(
32131
+ registerTool(
32132
+ server,
31632
32133
  "okx_predictions_cancel_order",
32134
+ "WRITE",
31633
32135
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31634
32136
  { orderId: external_exports.string().optional().describe("\u8BA2\u5355ID") },
31635
32137
  async ({ orderId }) => {
@@ -31645,8 +32147,10 @@ function registerOutcomesTools(server) {
31645
32147
  }
31646
32148
  }
31647
32149
  );
31648
- server.tool(
32150
+ registerTool(
32151
+ server,
31649
32152
  "okx_predictions_cancel_all",
32153
+ "WRITE",
31650
32154
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31651
32155
  { assetIds: external_exports.string().optional().describe("\u8D44\u4EA7ID\u5217\u8868\uFF0C\u9017\u53F7\u5206\u9694") },
31652
32156
  async ({ assetIds }) => {
@@ -31662,8 +32166,10 @@ function registerOutcomesTools(server) {
31662
32166
  }
31663
32167
  }
31664
32168
  );
31665
- server.tool(
32169
+ registerTool(
32170
+ server,
31666
32171
  "okx_predictions_heartbeat",
32172
+ "READ",
31667
32173
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31668
32174
  {},
31669
32175
  async () => {
@@ -31677,8 +32183,10 @@ function registerOutcomesTools(server) {
31677
32183
  }
31678
32184
  }
31679
32185
  );
31680
- server.tool(
32186
+ registerTool(
32187
+ server,
31681
32188
  "okx_predictions_get_order",
32189
+ "READ",
31682
32190
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31683
32191
  { orderId: external_exports.string().describe("\u8BA2\u5355ID\uFF08\u5FC5\u586B\uFF09") },
31684
32192
  async ({ orderId }) => {
@@ -31692,8 +32200,10 @@ function registerOutcomesTools(server) {
31692
32200
  }
31693
32201
  }
31694
32202
  );
31695
- server.tool(
32203
+ registerTool(
32204
+ server,
31696
32205
  "okx_predictions_order_list",
32206
+ "READ",
31697
32207
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31698
32208
  {
31699
32209
  marketId: external_exports.string().optional().describe("\u5E02\u573AID"),
@@ -31711,8 +32221,10 @@ function registerOutcomesTools(server) {
31711
32221
  }
31712
32222
  }
31713
32223
  );
31714
- server.tool(
32224
+ registerTool(
32225
+ server,
31715
32226
  "okx_predictions_positions",
32227
+ "READ",
31716
32228
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31717
32229
  {
31718
32230
  marketId: external_exports.string().optional().describe("\u5E02\u573AID"),
@@ -31729,8 +32241,10 @@ function registerOutcomesTools(server) {
31729
32241
  }
31730
32242
  }
31731
32243
  );
31732
- server.tool(
32244
+ registerTool(
32245
+ server,
31733
32246
  "okx_predictions_split",
32247
+ "WRITE",
31734
32248
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31735
32249
  { amount: external_exports.string().describe("\u62C6\u5206\u6570\u91CF\uFF08\u5FC5\u586B\uFF09") },
31736
32250
  async ({ amount }) => {
@@ -31744,8 +32258,10 @@ function registerOutcomesTools(server) {
31744
32258
  }
31745
32259
  }
31746
32260
  );
31747
- server.tool(
32261
+ registerTool(
32262
+ server,
31748
32263
  "okx_predictions_merge",
32264
+ "WRITE",
31749
32265
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31750
32266
  { amount: external_exports.string().describe("\u5408\u5E76\u6570\u91CF\uFF08\u5FC5\u586B\uFF09") },
31751
32267
  async ({ amount }) => {
@@ -31759,8 +32275,10 @@ function registerOutcomesTools(server) {
31759
32275
  }
31760
32276
  }
31761
32277
  );
31762
- server.tool(
32278
+ registerTool(
32279
+ server,
31763
32280
  "okx_predictions_redeem",
32281
+ "FUND_TRANSFER",
31764
32282
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31765
32283
  { assetId: external_exports.string().optional().describe("\u8D44\u4EA7ID") },
31766
32284
  async ({ assetId }) => {
@@ -31776,8 +32294,10 @@ function registerOutcomesTools(server) {
31776
32294
  }
31777
32295
  }
31778
32296
  );
31779
- server.tool(
32297
+ registerTool(
32298
+ server,
31780
32299
  "okx_predictions_balance",
32300
+ "READ",
31781
32301
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31782
32302
  {},
31783
32303
  async () => {
@@ -31791,8 +32311,10 @@ function registerOutcomesTools(server) {
31791
32311
  }
31792
32312
  }
31793
32313
  );
31794
- server.tool(
32314
+ registerTool(
32315
+ server,
31795
32316
  "okx_predictions_trades",
32317
+ "READ",
31796
32318
  "CAT:[\u9884\u6D4B] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31797
32319
  {
31798
32320
  marketId: external_exports.string().optional().describe("\u5E02\u573AID"),
@@ -31813,8 +32335,10 @@ function registerOutcomesTools(server) {
31813
32335
 
31814
32336
  // src/tools/bot.ts
31815
32337
  function registerBotTools(server, auth) {
31816
- server.tool(
32338
+ registerTool(
32339
+ server,
31817
32340
  "okx_get_grid_ai_param",
32341
+ "READ",
31818
32342
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31819
32343
  {
31820
32344
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001BTC-USDT-SWAP"),
@@ -31830,8 +32354,10 @@ function registerBotTools(server, auth) {
31830
32354
  }
31831
32355
  }
31832
32356
  );
31833
- server.tool(
32357
+ registerTool(
32358
+ server,
31834
32359
  "okx_get_grid_orders_pending",
32360
+ "READ",
31835
32361
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31836
32362
  {
31837
32363
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
@@ -31848,8 +32374,10 @@ function registerBotTools(server, auth) {
31848
32374
  }
31849
32375
  }
31850
32376
  );
31851
- server.tool(
32377
+ registerTool(
32378
+ server,
31852
32379
  "okx_get_grid_orders_history",
32380
+ "READ",
31853
32381
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31854
32382
  {
31855
32383
  algoOrdType: external_exports.enum(["grid", "contract_grid", "moon_grid"]).describe("\u7F51\u683C\u7C7B\u578B"),
@@ -31866,8 +32394,10 @@ function registerBotTools(server, auth) {
31866
32394
  }
31867
32395
  }
31868
32396
  );
31869
- server.tool(
32397
+ registerTool(
32398
+ server,
31870
32399
  "okx_get_grid_sub_orders",
32400
+ "READ",
31871
32401
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31872
32402
  {
31873
32403
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID"),
@@ -31884,8 +32414,10 @@ function registerBotTools(server, auth) {
31884
32414
  }
31885
32415
  }
31886
32416
  );
31887
- server.tool(
32417
+ registerTool(
32418
+ server,
31888
32419
  "okx_get_recurring_orders_pending",
32420
+ "READ",
31889
32421
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31890
32422
  {},
31891
32423
  async () => {
@@ -31898,8 +32430,10 @@ function registerBotTools(server, auth) {
31898
32430
  }
31899
32431
  }
31900
32432
  );
31901
- server.tool(
32433
+ registerTool(
32434
+ server,
31902
32435
  "okx_get_recurring_orders_history",
32436
+ "READ",
31903
32437
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31904
32438
  {},
31905
32439
  async () => {
@@ -31912,8 +32446,10 @@ function registerBotTools(server, auth) {
31912
32446
  }
31913
32447
  }
31914
32448
  );
31915
- server.tool(
32449
+ registerTool(
32450
+ server,
31916
32451
  "okx_create_recurring_plan",
32452
+ "WRITE",
31917
32453
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31918
32454
  {
31919
32455
  instId: external_exports.string().describe("\u5B9A\u6295\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
@@ -31931,8 +32467,10 @@ function registerBotTools(server, auth) {
31931
32467
  }
31932
32468
  }
31933
32469
  );
31934
- server.tool(
32470
+ registerTool(
32471
+ server,
31935
32472
  "okx_stop_recurring_plan",
32473
+ "WRITE",
31936
32474
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31937
32475
  {
31938
32476
  algoId: external_exports.string().describe("\u5B9A\u6295\u8BA1\u5212ID\u3002\u5FC5\u586B")
@@ -31947,8 +32485,10 @@ function registerBotTools(server, auth) {
31947
32485
  }
31948
32486
  }
31949
32487
  );
31950
- server.tool(
32488
+ registerTool(
32489
+ server,
31951
32490
  "okx_get_recurring_sub_orders",
32491
+ "READ",
31952
32492
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31953
32493
  {
31954
32494
  algoId: external_exports.string().describe("\u5B9A\u6295\u8BA1\u5212ID\u3002\u5FC5\u586B"),
@@ -31964,8 +32504,10 @@ function registerBotTools(server, auth) {
31964
32504
  }
31965
32505
  }
31966
32506
  );
31967
- server.tool(
32507
+ registerTool(
32508
+ server,
31968
32509
  "okx_create_grid_order",
32510
+ "WRITE",
31969
32511
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31970
32512
  {
31971
32513
  instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B"),
@@ -31987,8 +32529,10 @@ function registerBotTools(server, auth) {
31987
32529
  }
31988
32530
  }
31989
32531
  );
31990
- server.tool(
32532
+ registerTool(
32533
+ server,
31991
32534
  "okx_stop_grid_order",
32535
+ "WRITE",
31992
32536
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
31993
32537
  {
31994
32538
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B"),
@@ -32005,8 +32549,10 @@ function registerBotTools(server, auth) {
32005
32549
  }
32006
32550
  }
32007
32551
  );
32008
- server.tool(
32552
+ registerTool(
32553
+ server,
32009
32554
  "okx_close_grid_position",
32555
+ "WRITE",
32010
32556
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32011
32557
  {
32012
32558
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B"),
@@ -32022,8 +32568,10 @@ function registerBotTools(server, auth) {
32022
32568
  }
32023
32569
  }
32024
32570
  );
32025
- server.tool(
32571
+ registerTool(
32572
+ server,
32026
32573
  "okx_get_grid_positions",
32574
+ "READ",
32027
32575
  "CAT:[\u7B56\u7565-\u7F51\u683C] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32028
32576
  {
32029
32577
  algoId: external_exports.string().describe("\u7F51\u683C\u7B56\u7565ID\u3002\u5FC5\u586B")
@@ -32042,8 +32590,10 @@ function registerBotTools(server, auth) {
32042
32590
 
32043
32591
  // src/tools/spread.ts
32044
32592
  function registerSpreadTools(server, auth) {
32045
- server.tool(
32593
+ registerTool(
32594
+ server,
32046
32595
  "okx_get_spreads",
32596
+ "READ",
32047
32597
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32048
32598
  {
32049
32599
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USDT_BTC-USDT-SWAP"),
@@ -32060,8 +32610,10 @@ function registerSpreadTools(server, auth) {
32060
32610
  }
32061
32611
  }
32062
32612
  );
32063
- server.tool(
32613
+ registerTool(
32614
+ server,
32064
32615
  "okx_get_spread_ticker",
32616
+ "READ",
32065
32617
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32066
32618
  {
32067
32619
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\uFF0C\u5982 BTC-USD-SWAP_BTC-USD-260925")
@@ -32079,8 +32631,10 @@ function registerSpreadTools(server, auth) {
32079
32631
  }
32080
32632
  }
32081
32633
  );
32082
- server.tool(
32634
+ registerTool(
32635
+ server,
32083
32636
  "okx_get_spread_orderbook",
32637
+ "READ",
32084
32638
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32085
32639
  {
32086
32640
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
@@ -32102,8 +32656,10 @@ function registerSpreadTools(server, auth) {
32102
32656
  }
32103
32657
  }
32104
32658
  );
32105
- server.tool(
32659
+ registerTool(
32660
+ server,
32106
32661
  "okx_get_spread_trades",
32662
+ "READ",
32107
32663
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32108
32664
  {
32109
32665
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
@@ -32122,8 +32678,10 @@ function registerSpreadTools(server, auth) {
32122
32678
  }
32123
32679
  }
32124
32680
  );
32125
- server.tool(
32681
+ registerTool(
32682
+ server,
32126
32683
  "okx_get_spread_candles",
32684
+ "READ",
32127
32685
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32128
32686
  {
32129
32687
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
@@ -32149,8 +32707,10 @@ function registerSpreadTools(server, auth) {
32149
32707
  }
32150
32708
  }
32151
32709
  );
32152
- server.tool(
32710
+ registerTool(
32711
+ server,
32153
32712
  "okx_place_spread_order",
32713
+ "WRITE",
32154
32714
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32155
32715
  {
32156
32716
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
@@ -32171,8 +32731,10 @@ function registerSpreadTools(server, auth) {
32171
32731
  }
32172
32732
  }
32173
32733
  );
32174
- server.tool(
32734
+ registerTool(
32735
+ server,
32175
32736
  "okx_cancel_spread_order",
32737
+ "WRITE",
32176
32738
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32177
32739
  {
32178
32740
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
@@ -32188,8 +32750,10 @@ function registerSpreadTools(server, auth) {
32188
32750
  }
32189
32751
  }
32190
32752
  );
32191
- server.tool(
32753
+ registerTool(
32754
+ server,
32192
32755
  "okx_get_spread_orders",
32756
+ "READ",
32193
32757
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32194
32758
  {
32195
32759
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
@@ -32204,8 +32768,10 @@ function registerSpreadTools(server, auth) {
32204
32768
  }
32205
32769
  }
32206
32770
  );
32207
- server.tool(
32771
+ registerTool(
32772
+ server,
32208
32773
  "okx_amend_spread_order",
32774
+ "WRITE",
32209
32775
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32210
32776
  {
32211
32777
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
@@ -32226,8 +32792,10 @@ function registerSpreadTools(server, auth) {
32226
32792
  }
32227
32793
  }
32228
32794
  );
32229
- server.tool(
32795
+ registerTool(
32796
+ server,
32230
32797
  "okx_get_spread_orders_history",
32798
+ "READ",
32231
32799
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32232
32800
  {
32233
32801
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
@@ -32243,8 +32811,10 @@ function registerSpreadTools(server, auth) {
32243
32811
  }
32244
32812
  }
32245
32813
  );
32246
- server.tool(
32814
+ registerTool(
32815
+ server,
32247
32816
  "okx_get_spread_fills",
32817
+ "READ",
32248
32818
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32249
32819
  {
32250
32820
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID"),
@@ -32260,8 +32830,10 @@ function registerSpreadTools(server, auth) {
32260
32830
  }
32261
32831
  }
32262
32832
  );
32263
- server.tool(
32833
+ registerTool(
32834
+ server,
32264
32835
  "okx_get_spread_books",
32836
+ "READ",
32265
32837
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32266
32838
  {
32267
32839
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B")
@@ -32282,8 +32854,10 @@ function registerSpreadTools(server, auth) {
32282
32854
  }
32283
32855
  }
32284
32856
  );
32285
- server.tool(
32857
+ registerTool(
32858
+ server,
32286
32859
  "okx_get_spread_orders_pending",
32860
+ "READ",
32287
32861
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32288
32862
  {
32289
32863
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
@@ -32298,8 +32872,10 @@ function registerSpreadTools(server, auth) {
32298
32872
  }
32299
32873
  }
32300
32874
  );
32301
- server.tool(
32875
+ registerTool(
32876
+ server,
32302
32877
  "okx_get_spread_orders_history_archive",
32878
+ "READ",
32303
32879
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32304
32880
  {
32305
32881
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
@@ -32314,8 +32890,10 @@ function registerSpreadTools(server, auth) {
32314
32890
  }
32315
32891
  }
32316
32892
  );
32317
- server.tool(
32893
+ registerTool(
32894
+ server,
32318
32895
  "okx_get_spread_trades_public",
32896
+ "READ",
32319
32897
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32320
32898
  {
32321
32899
  sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B")
@@ -32333,8 +32911,10 @@ function registerSpreadTools(server, auth) {
32333
32911
  }
32334
32912
  }
32335
32913
  );
32336
- server.tool(
32914
+ registerTool(
32915
+ server,
32337
32916
  "okx_get_spread_trades_fills",
32917
+ "READ",
32338
32918
  "CAT:[\u7B56\u7565-\u4EF7\u5DEE] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32339
32919
  {
32340
32920
  sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
@@ -32357,8 +32937,10 @@ function registerSpreadTools(server, auth) {
32357
32937
 
32358
32938
  // src/tools/copy.ts
32359
32939
  function registerCopyTools(server, auth) {
32360
- server.tool(
32940
+ registerTool(
32941
+ server,
32361
32942
  "okx_get_lead_trader_positions",
32943
+ "READ",
32362
32944
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32363
32945
  {
32364
32946
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\uFF0C\u4ECEOKX App\u300C\u8DDF\u5355\u300D\u9875\u9762\u83B7\u53D6"),
@@ -32373,8 +32955,10 @@ function registerCopyTools(server, auth) {
32373
32955
  }
32374
32956
  }
32375
32957
  );
32376
- server.tool(
32958
+ registerTool(
32959
+ server,
32377
32960
  "okx_get_lead_trader_history",
32961
+ "READ",
32378
32962
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32379
32963
  {
32380
32964
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
@@ -32390,8 +32974,10 @@ function registerCopyTools(server, auth) {
32390
32974
  }
32391
32975
  }
32392
32976
  );
32393
- server.tool(
32977
+ registerTool(
32978
+ server,
32394
32979
  "okx_get_lead_trader_stats",
32980
+ "READ",
32395
32981
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32396
32982
  {
32397
32983
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
@@ -32407,8 +32993,10 @@ function registerCopyTools(server, auth) {
32407
32993
  }
32408
32994
  }
32409
32995
  );
32410
- server.tool(
32996
+ registerTool(
32997
+ server,
32411
32998
  "okx_get_my_lead_positions",
32999
+ "READ",
32412
33000
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32413
33001
  {
32414
33002
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
@@ -32423,8 +33011,10 @@ function registerCopyTools(server, auth) {
32423
33011
  }
32424
33012
  }
32425
33013
  );
32426
- server.tool(
33014
+ registerTool(
33015
+ server,
32427
33016
  "okx_get_my_lead_history",
33017
+ "READ",
32428
33018
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32429
33019
  {
32430
33020
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -32440,8 +33030,10 @@ function registerCopyTools(server, auth) {
32440
33030
  }
32441
33031
  }
32442
33032
  );
32443
- server.tool(
33033
+ registerTool(
33034
+ server,
32444
33035
  "okx_get_copy_instruments",
33036
+ "READ",
32445
33037
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32446
33038
  {
32447
33039
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
@@ -32456,8 +33048,10 @@ function registerCopyTools(server, auth) {
32456
33048
  }
32457
33049
  }
32458
33050
  );
32459
- server.tool(
33051
+ registerTool(
33052
+ server,
32460
33053
  "okx_get_profit_sharing_total",
33054
+ "READ",
32461
33055
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32462
33056
  {
32463
33057
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
@@ -32472,8 +33066,10 @@ function registerCopyTools(server, auth) {
32472
33066
  }
32473
33067
  }
32474
33068
  );
32475
- server.tool(
33069
+ registerTool(
33070
+ server,
32476
33071
  "okx_get_profit_sharing_details",
33072
+ "READ",
32477
33073
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32478
33074
  {
32479
33075
  instType: external_exports.enum(INST_TYPE_SWAP_FUT).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
@@ -32489,8 +33085,10 @@ function registerCopyTools(server, auth) {
32489
33085
  }
32490
33086
  }
32491
33087
  );
32492
- server.tool(
33088
+ registerTool(
33089
+ server,
32493
33090
  "okx_copy_trader",
33091
+ "WRITE",
32494
33092
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32495
33093
  {
32496
33094
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B"),
@@ -32510,8 +33108,10 @@ function registerCopyTools(server, auth) {
32510
33108
  }
32511
33109
  }
32512
33110
  );
32513
- server.tool(
33111
+ registerTool(
33112
+ server,
32514
33113
  "okx_stop_copy_trader",
33114
+ "WRITE",
32515
33115
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32516
33116
  {
32517
33117
  subPosId: external_exports.string().optional().describe("\u5B50\u6301\u4ED3ID")
@@ -32528,8 +33128,10 @@ function registerCopyTools(server, auth) {
32528
33128
  }
32529
33129
  }
32530
33130
  );
32531
- server.tool(
33131
+ registerTool(
33132
+ server,
32532
33133
  "okx_get_copy_settings",
33134
+ "READ",
32533
33135
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32534
33136
  {},
32535
33137
  async () => {
@@ -32542,8 +33144,10 @@ function registerCopyTools(server, auth) {
32542
33144
  }
32543
33145
  }
32544
33146
  );
32545
- server.tool(
33147
+ registerTool(
33148
+ server,
32546
33149
  "okx_set_copy_settings",
33150
+ "WRITE",
32547
33151
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32548
33152
  {
32549
33153
  uniqueCode: external_exports.string().optional().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801"),
@@ -32566,8 +33170,10 @@ function registerCopyTools(server, auth) {
32566
33170
  }
32567
33171
  }
32568
33172
  );
32569
- server.tool(
33173
+ registerTool(
33174
+ server,
32570
33175
  "okx_get_public_lead_traders",
33176
+ "READ",
32571
33177
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32572
33178
  {},
32573
33179
  async () => {
@@ -32579,8 +33185,10 @@ function registerCopyTools(server, auth) {
32579
33185
  }
32580
33186
  }
32581
33187
  );
32582
- server.tool(
33188
+ registerTool(
33189
+ server,
32583
33190
  "okx_get_public_copy_config",
33191
+ "READ",
32584
33192
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32585
33193
  {},
32586
33194
  async () => {
@@ -32592,8 +33200,10 @@ function registerCopyTools(server, auth) {
32592
33200
  }
32593
33201
  }
32594
33202
  );
32595
- server.tool(
33203
+ registerTool(
33204
+ server,
32596
33205
  "okx_get_public_lead_trader_pnl",
33206
+ "READ",
32597
33207
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32598
33208
  {
32599
33209
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B"),
@@ -32608,8 +33218,10 @@ function registerCopyTools(server, auth) {
32608
33218
  }
32609
33219
  }
32610
33220
  );
32611
- server.tool(
33221
+ registerTool(
33222
+ server,
32612
33223
  "okx_get_copy_traders",
33224
+ "READ",
32613
33225
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32614
33226
  {},
32615
33227
  async () => {
@@ -32622,8 +33234,10 @@ function registerCopyTools(server, auth) {
32622
33234
  }
32623
33235
  }
32624
33236
  );
32625
- server.tool(
33237
+ registerTool(
33238
+ server,
32626
33239
  "okx_first_copy_settings",
33240
+ "WRITE",
32627
33241
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32628
33242
  {
32629
33243
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B"),
@@ -32643,8 +33257,10 @@ function registerCopyTools(server, auth) {
32643
33257
  }
32644
33258
  }
32645
33259
  );
32646
- server.tool(
33260
+ registerTool(
33261
+ server,
32647
33262
  "okx_get_unrealized_profit_sharing",
33263
+ "READ",
32648
33264
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32649
33265
  {},
32650
33266
  async () => {
@@ -32657,8 +33273,10 @@ function registerCopyTools(server, auth) {
32657
33273
  }
32658
33274
  }
32659
33275
  );
32660
- server.tool(
33276
+ registerTool(
33277
+ server,
32661
33278
  "okx_get_total_unrealized_profit_sharing",
33279
+ "READ",
32662
33280
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32663
33281
  {},
32664
33282
  async () => {
@@ -32671,8 +33289,10 @@ function registerCopyTools(server, auth) {
32671
33289
  }
32672
33290
  }
32673
33291
  );
32674
- server.tool(
33292
+ registerTool(
33293
+ server,
32675
33294
  "okx_amend_profit_sharing_ratio",
33295
+ "WRITE",
32676
33296
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32677
33297
  {
32678
33298
  profitSharingRatio: external_exports.string().describe("\u5206\u6210\u6BD4\u4F8B\u3002\u5FC5\u586B")
@@ -32687,8 +33307,10 @@ function registerCopyTools(server, auth) {
32687
33307
  }
32688
33308
  }
32689
33309
  );
32690
- server.tool(
33310
+ registerTool(
33311
+ server,
32691
33312
  "okx_amend_copy_settings",
33313
+ "WRITE",
32692
33314
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32693
33315
  {
32694
33316
  subPosId: external_exports.string().describe("\u5B50\u6301\u4ED3ID\u3002\u5FC5\u586B"),
@@ -32708,8 +33330,10 @@ function registerCopyTools(server, auth) {
32708
33330
  }
32709
33331
  }
32710
33332
  );
32711
- server.tool(
33333
+ registerTool(
33334
+ server,
32712
33335
  "okx_get_public_preference_currency",
33336
+ "READ",
32713
33337
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32714
33338
  {
32715
33339
  uniqueCode: external_exports.string().describe("\u5E26\u5355\u5458\u552F\u4E00\u6807\u8BC6\u7801\u3002\u5FC5\u586B")
@@ -32723,8 +33347,10 @@ function registerCopyTools(server, auth) {
32723
33347
  }
32724
33348
  }
32725
33349
  );
32726
- server.tool(
33350
+ registerTool(
33351
+ server,
32727
33352
  "okx_stop_copy_trading",
33353
+ "WRITE",
32728
33354
  "CAT:[\u7B56\u7565-\u8DDF\u5355] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32729
33355
  {},
32730
33356
  async () => {
@@ -32741,8 +33367,10 @@ function registerCopyTools(server, auth) {
32741
33367
 
32742
33368
  // src/tools/signal.ts
32743
33369
  function registerSignalTools(server, auth) {
32744
- server.tool(
33370
+ registerTool(
33371
+ server,
32745
33372
  "okx_get_signal_bots_pending",
33373
+ "READ",
32746
33374
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32747
33375
  {
32748
33376
  algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
@@ -32758,8 +33386,10 @@ function registerSignalTools(server, auth) {
32758
33386
  }
32759
33387
  }
32760
33388
  );
32761
- server.tool(
33389
+ registerTool(
33390
+ server,
32762
33391
  "okx_get_signal_bots_history",
33392
+ "READ",
32763
33393
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32764
33394
  {
32765
33395
  algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID"),
@@ -32776,8 +33406,10 @@ function registerSignalTools(server, auth) {
32776
33406
  }
32777
33407
  }
32778
33408
  );
32779
- server.tool(
33409
+ registerTool(
33410
+ server,
32780
33411
  "okx_get_signal_positions",
33412
+ "READ",
32781
33413
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32782
33414
  {
32783
33415
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_pending \u83B7\u53D6\uFF09")
@@ -32792,8 +33424,10 @@ function registerSignalTools(server, auth) {
32792
33424
  }
32793
33425
  }
32794
33426
  );
32795
- server.tool(
33427
+ registerTool(
33428
+ server,
32796
33429
  "okx_get_signal_positions_history",
33430
+ "READ",
32797
33431
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32798
33432
  {
32799
33433
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_history \u83B7\u53D6\uFF09"),
@@ -32809,8 +33443,10 @@ function registerSignalTools(server, auth) {
32809
33443
  }
32810
33444
  }
32811
33445
  );
32812
- server.tool(
33446
+ registerTool(
33447
+ server,
32813
33448
  "okx_get_signal_sub_orders",
33449
+ "READ",
32814
33450
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32815
33451
  {
32816
33452
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
@@ -32826,8 +33462,10 @@ function registerSignalTools(server, auth) {
32826
33462
  }
32827
33463
  }
32828
33464
  );
32829
- server.tool(
33465
+ registerTool(
33466
+ server,
32830
33467
  "okx_get_signal_event_history",
33468
+ "READ",
32831
33469
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32832
33470
  {
32833
33471
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
@@ -32843,8 +33481,10 @@ function registerSignalTools(server, auth) {
32843
33481
  }
32844
33482
  }
32845
33483
  );
32846
- server.tool(
33484
+ registerTool(
33485
+ server,
32847
33486
  "okx_create_signal_bot",
33487
+ "WRITE",
32848
33488
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32849
33489
  {
32850
33490
  channel: external_exports.string().describe("\u4FE1\u53F7\u6E20\u9053\u3002\u5FC5\u586B"),
@@ -32860,8 +33500,10 @@ function registerSignalTools(server, auth) {
32860
33500
  }
32861
33501
  }
32862
33502
  );
32863
- server.tool(
33503
+ registerTool(
33504
+ server,
32864
33505
  "okx_stop_signal_bot",
33506
+ "WRITE",
32865
33507
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32866
33508
  {
32867
33509
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B")
@@ -32876,8 +33518,10 @@ function registerSignalTools(server, auth) {
32876
33518
  }
32877
33519
  }
32878
33520
  );
32879
- server.tool(
33521
+ registerTool(
33522
+ server,
32880
33523
  "okx_get_signal_orders",
33524
+ "READ",
32881
33525
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32882
33526
  {
32883
33527
  algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\u3002\u5FC5\u586B")
@@ -32892,8 +33536,10 @@ function registerSignalTools(server, auth) {
32892
33536
  }
32893
33537
  }
32894
33538
  );
32895
- server.tool(
33539
+ registerTool(
33540
+ server,
32896
33541
  "okx_get_signal_subscriptions",
33542
+ "READ",
32897
33543
  "CAT:[\u7B56\u7565-\u4FE1\u53F7] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
32898
33544
  {},
32899
33545
  async () => {
@@ -32910,8 +33556,10 @@ function registerSignalTools(server, auth) {
32910
33556
 
32911
33557
  // src/tools/rfq.ts
32912
33558
  function registerRfqTools(server, auth) {
32913
- server.tool(
33559
+ registerTool(
33560
+ server,
32914
33561
  "okx_create_rfq",
33562
+ "WRITE",
32915
33563
  `## \u529F\u80FD\uFF1A\u521B\u5EFA\u62A5\u4EF7\u8BF7\u6C42\uFF08RFQ\uFF0CRequest For Quote\uFF09\uFF0C\u7528\u4E8E\u5927\u5B97\u4EA4\u6613\u8BE2\u4EF7
32916
33564
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u5411\u505A\u5E02\u5546\u6216\u5BF9\u624B\u65B9\u53D1\u8D77\u5927\u5B97\u4EA4\u6613\u8BE2\u4EF7\u3001\u83B7\u53D6\u5B9A\u5236\u62A5\u4EF7
32917
33565
  ## \u5173\u952E\u8BCD\uFF1A\u8BE2\u4EF7, RFQ, \u62A5\u4EF7\u8BF7\u6C42, \u5927\u5B97\u4EA4\u6613\u8BE2\u4EF7, \u8BF7\u6C42\u62A5\u4EF7
@@ -32942,8 +33590,10 @@ function registerRfqTools(server, auth) {
32942
33590
  }
32943
33591
  }
32944
33592
  );
32945
- server.tool(
33593
+ registerTool(
33594
+ server,
32946
33595
  "okx_execute_quote",
33596
+ "READ",
32947
33597
  `## \u529F\u80FD\uFF1A\u6267\u884C\u62A5\u4EF7\uFF08\u63A5\u53D7\u5BF9\u624B\u65B9\u7684\u5927\u5B97\u4EA4\u6613\u62A5\u4EF7\uFF09
32948
33598
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u63A5\u53D7RFQ\u62A5\u4EF7\u3001\u786E\u8BA4\u5927\u5B97\u4EA4\u6613\u6210\u4EA4
32949
33599
  ## \u5173\u952E\u8BCD\uFF1A\u6267\u884C\u62A5\u4EF7, execute quote, \u63A5\u53D7\u62A5\u4EF7, \u5927\u5B97\u6210\u4EA4, \u786E\u8BA4\u4EA4\u6613
@@ -32972,8 +33622,10 @@ function registerRfqTools(server, auth) {
32972
33622
  }
32973
33623
  }
32974
33624
  );
32975
- server.tool(
33625
+ registerTool(
33626
+ server,
32976
33627
  "okx_get_rfqs",
33628
+ "READ",
32977
33629
  `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8BE2\u4EF7\u8BB0\u5F55\u5217\u8868
32978
33630
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5386\u53F2RFQ\u3001\u8FFD\u8E2A\u8BE2\u4EF7\u72B6\u6001\u3001\u786E\u8BA4\u8BE2\u4EF7\u662F\u5426\u5DF2\u62A5\u4EF7
32979
33631
  ## \u5173\u952E\u8BCD\uFF1A\u8BE2\u4EF7\u8BB0\u5F55, RFQ\u5217\u8868, \u8BE2\u4EF7\u5386\u53F2, RFQ\u8BB0\u5F55, \u62A5\u4EF7\u8BF7\u6C42\u8BB0\u5F55
@@ -32996,8 +33648,10 @@ function registerRfqTools(server, auth) {
32996
33648
  }
32997
33649
  }
32998
33650
  );
32999
- server.tool(
33651
+ registerTool(
33652
+ server,
33000
33653
  "okx_get_quotes",
33654
+ "READ",
33001
33655
  `## \u529F\u80FD\uFF1A\u67E5\u8BE2\u9488\u5BF9\u67D0RFQ\u7684\u62A5\u4EF7\u5217\u8868
33002
33656
  ## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5BF9\u624B\u65B9\u5BF9RFQ\u7684\u56DE\u590D\u62A5\u4EF7\u3001\u9009\u62E9\u6700\u4F18\u62A5\u4EF7\u6267\u884C
33003
33657
  ## \u5173\u952E\u8BCD\uFF1A\u62A5\u4EF7\u5217\u8868, quotes, RFQ\u62A5\u4EF7, \u67E5\u8BE2\u62A5\u4EF7, \u5BF9\u624B\u65B9\u62A5\u4EF7
@@ -33020,8 +33674,10 @@ function registerRfqTools(server, auth) {
33020
33674
  }
33021
33675
  }
33022
33676
  );
33023
- server.tool(
33677
+ registerTool(
33678
+ server,
33024
33679
  "okx_get_rfq_counterparties",
33680
+ "READ",
33025
33681
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33026
33682
  {},
33027
33683
  async () => {
@@ -33034,8 +33690,10 @@ function registerRfqTools(server, auth) {
33034
33690
  }
33035
33691
  }
33036
33692
  );
33037
- server.tool(
33693
+ registerTool(
33694
+ server,
33038
33695
  "okx_cancel_rfq",
33696
+ "WRITE",
33039
33697
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33040
33698
  {
33041
33699
  rfqId: external_exports.string().describe("RFQ ID\u3002\u5FC5\u586B")
@@ -33050,8 +33708,10 @@ function registerRfqTools(server, auth) {
33050
33708
  }
33051
33709
  }
33052
33710
  );
33053
- server.tool(
33711
+ registerTool(
33712
+ server,
33054
33713
  "okx_cancel_batch_rfqs",
33714
+ "WRITE",
33055
33715
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33056
33716
  {
33057
33717
  rfqIds: external_exports.string().describe(`RFQ ID\u6570\u7EC4JSON\u5B57\u7B26\u4E32\uFF0C\u5982 '["123","456"]'`)
@@ -33067,8 +33727,10 @@ function registerRfqTools(server, auth) {
33067
33727
  }
33068
33728
  }
33069
33729
  );
33070
- server.tool(
33730
+ registerTool(
33731
+ server,
33071
33732
  "okx_cancel_all_rfqs",
33733
+ "WRITE",
33072
33734
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33073
33735
  {},
33074
33736
  async () => {
@@ -33081,8 +33743,10 @@ function registerRfqTools(server, auth) {
33081
33743
  }
33082
33744
  }
33083
33745
  );
33084
- server.tool(
33746
+ registerTool(
33747
+ server,
33085
33748
  "okx_create_quote",
33749
+ "WRITE",
33086
33750
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33087
33751
  {
33088
33752
  rfqId: external_exports.string().describe("RFQ ID\u3002\u5FC5\u586B"),
@@ -33099,8 +33763,10 @@ function registerRfqTools(server, auth) {
33099
33763
  }
33100
33764
  }
33101
33765
  );
33102
- server.tool(
33766
+ registerTool(
33767
+ server,
33103
33768
  "okx_cancel_quote",
33769
+ "WRITE",
33104
33770
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33105
33771
  {
33106
33772
  rfqId: external_exports.string().describe("RFQ ID\u3002\u5FC5\u586B"),
@@ -33116,8 +33782,10 @@ function registerRfqTools(server, auth) {
33116
33782
  }
33117
33783
  }
33118
33784
  );
33119
- server.tool(
33785
+ registerTool(
33786
+ server,
33120
33787
  "okx_get_rfq_trades",
33788
+ "READ",
33121
33789
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33122
33790
  {},
33123
33791
  async () => {
@@ -33130,8 +33798,10 @@ function registerRfqTools(server, auth) {
33130
33798
  }
33131
33799
  }
33132
33800
  );
33133
- server.tool(
33801
+ registerTool(
33802
+ server,
33134
33803
  "okx_reset_rfq_mmp",
33804
+ "READ",
33135
33805
  "CAT:[\u7B56\u7565-RFQ] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33136
33806
  {},
33137
33807
  async () => {
@@ -33148,8 +33818,10 @@ function registerRfqTools(server, auth) {
33148
33818
 
33149
33819
  // src/tools/affiliate.ts
33150
33820
  function registerAffiliateTools(server, auth) {
33151
- server.tool(
33821
+ registerTool(
33822
+ server,
33152
33823
  "okx_get_affiliate_invitee_list",
33824
+ "READ",
33153
33825
  "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33154
33826
  {},
33155
33827
  async () => {
@@ -33162,8 +33834,10 @@ function registerAffiliateTools(server, auth) {
33162
33834
  }
33163
33835
  }
33164
33836
  );
33165
- server.tool(
33837
+ registerTool(
33838
+ server,
33166
33839
  "okx_get_affiliate_invitee_detail",
33840
+ "READ",
33167
33841
  "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33168
33842
  {
33169
33843
  uid: external_exports.string().optional().describe("\u7528\u6237ID")
@@ -33178,8 +33852,10 @@ function registerAffiliateTools(server, auth) {
33178
33852
  }
33179
33853
  }
33180
33854
  );
33181
- server.tool(
33855
+ registerTool(
33856
+ server,
33182
33857
  "okx_get_affiliate_link_list",
33858
+ "READ",
33183
33859
  "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33184
33860
  {},
33185
33861
  async () => {
@@ -33192,8 +33868,10 @@ function registerAffiliateTools(server, auth) {
33192
33868
  }
33193
33869
  }
33194
33870
  );
33195
- server.tool(
33871
+ registerTool(
33872
+ server,
33196
33873
  "okx_get_affiliate_performance",
33874
+ "READ",
33197
33875
  "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33198
33876
  {},
33199
33877
  async () => {
@@ -33206,8 +33884,10 @@ function registerAffiliateTools(server, auth) {
33206
33884
  }
33207
33885
  }
33208
33886
  );
33209
- server.tool(
33887
+ registerTool(
33888
+ server,
33210
33889
  "okx_get_co_inviter_list",
33890
+ "READ",
33211
33891
  "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33212
33892
  {},
33213
33893
  async () => {
@@ -33220,8 +33900,10 @@ function registerAffiliateTools(server, auth) {
33220
33900
  }
33221
33901
  }
33222
33902
  );
33223
- server.tool(
33903
+ registerTool(
33904
+ server,
33224
33905
  "okx_get_sub_affiliate_list",
33906
+ "READ",
33225
33907
  "CAT:[\u63A8\u5E7F] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33226
33908
  {},
33227
33909
  async () => {
@@ -33238,8 +33920,10 @@ function registerAffiliateTools(server, auth) {
33238
33920
 
33239
33921
  // src/tools/fiat.ts
33240
33922
  function registerFiatTools(server, auth) {
33241
- server.tool(
33923
+ registerTool(
33924
+ server,
33242
33925
  "okx_get_fiat_buy_sell_pair",
33926
+ "READ",
33243
33927
  "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33244
33928
  {},
33245
33929
  async () => {
@@ -33252,8 +33936,10 @@ function registerFiatTools(server, auth) {
33252
33936
  }
33253
33937
  }
33254
33938
  );
33255
- server.tool(
33939
+ registerTool(
33940
+ server,
33256
33941
  "okx_get_fiat_deposit",
33942
+ "READ",
33257
33943
  "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33258
33944
  {},
33259
33945
  async () => {
@@ -33266,8 +33952,10 @@ function registerFiatTools(server, auth) {
33266
33952
  }
33267
33953
  }
33268
33954
  );
33269
- server.tool(
33955
+ registerTool(
33956
+ server,
33270
33957
  "okx_get_fiat_deposit_orders",
33958
+ "READ",
33271
33959
  "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33272
33960
  {},
33273
33961
  async () => {
@@ -33280,8 +33968,10 @@ function registerFiatTools(server, auth) {
33280
33968
  }
33281
33969
  }
33282
33970
  );
33283
- server.tool(
33971
+ registerTool(
33972
+ server,
33284
33973
  "okx_get_fiat_deposit_methods",
33974
+ "READ",
33285
33975
  "CAT:[\u8D44\u91D1-\u6CD5\u5E01] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
33286
33976
  {},
33287
33977
  async () => {
@@ -33354,8 +34044,10 @@ function extractOrderbook(raw) {
33354
34044
  };
33355
34045
  }
33356
34046
  function registerAgentUtils(server, auth) {
33357
- server.tool(
34047
+ registerTool(
34048
+ server,
33358
34049
  "okx_account_overview",
34050
+ "READ",
33359
34051
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u4E00\u952E\u83B7\u53D6\u8D26\u6237\u5168\u666F\uFF1A\u4F59\u989D\u3001\u6301\u4ED3\u3001\u914D\u7F6E\u3001\u603B\u4F30\u503C\uFF0C\u66FF\u4EE3\u4E32\u884C\u8C03\u7528 4 \u4E2A\u5DE5\u5177\n## \u573A\u666F\uFF1A\u7528\u4E8EAgent\u9996\u6B21\u4E86\u89E3\u7528\u6237\u8D26\u6237\u5168\u8C8C\u3001\u56DE\u7B54"\u6211\u8D26\u6237\u73B0\u5728\u4EC0\u4E48\u60C5\u51B5"\u3001\u6BCF\u65E5\u8D44\u4EA7\u6982\u89C8\n## \u5173\u952E\u8BCD\uFF1A\u8D26\u6237\u5168\u666F, \u8D26\u6237\u6982\u89C8, account overview, \u8D44\u4EA7\u5FEB\u7167, \u6301\u4ED3\u6C47\u603B, \u4E00\u952E\u67E5\u8D26\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 ~3KB \u2014 \u7ED3\u6784\u5316\u6458\u8981\uFF0C\u975E\u539F\u59CBJSON\u5806\u780C\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u5168\u666F \u2192 okx_get_positions \u6DF1\u5165\u5355\u4ED3\u4F4D \u2192 okx_get_balance \u770B\u5404\u5E01\u79CD \u2192 okx_place_order \u4EA4\u6613',
33360
34052
  {},
33361
34053
  async () => {
@@ -33426,8 +34118,10 @@ function registerAgentUtils(server, auth) {
33426
34118
  }
33427
34119
  }
33428
34120
  );
33429
- server.tool(
34121
+ registerTool(
34122
+ server,
33430
34123
  "okx_quick_market",
34124
+ "READ",
33431
34125
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u5355\u6B21\u8C03\u7528\u8FD4\u56DE\u6307\u5B9A\u4EA7\u54C1\u7684\u884C\u60C5+5\u6863\u6DF1\u5EA6+\u8D44\u91D1\u8D39\u7387+\u4EA7\u54C1\u89C4\u683C\u7684\u7ED3\u6784\u5316\u6458\u8981\n## \u573A\u666F\uFF1A\u7528\u4E8EAgent\u56DE\u7B54"\u73B0\u5728BTC\u4EC0\u4E48\u60C5\u51B5"\u65F6\u4E00\u6B21\u62FF\u5230\u5168\u90E8\u4FE1\u606F\u3001\u5FEB\u901F\u5224\u65AD\u4EA4\u6613\u65F6\u673A\n## \u5173\u952E\u8BCD\uFF1A\u5E02\u573A\u901F\u89C8, quick market, \u884C\u60C5+\u6DF1\u5EA6, \u4E00\u952E\u770B\u76D8, \u7EFC\u5408\u884C\u60C5, \u5E02\u573A\u6982\u51B5\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-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\u5FAE\u5C0F ~2KB \u2014 \u7CBE\u7B805\u6863\u6DF1\u5EA6\uFF0C\u975E\u5168\u91CF\u8BA2\u5355\u7C3F\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u901F\u89C8 \u2192 okx_get_candles \u6DF1\u5165K\u7EBF\u5206\u6790 \u2192 okx_get_orderbook \u770B\u5168\u6DF1\u5EA6 \u2192 okx_place_order \u4E0B\u5355',
33432
34126
  {
33433
34127
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP")
@@ -33485,8 +34179,10 @@ function registerAgentUtils(server, auth) {
33485
34179
  }
33486
34180
  }
33487
34181
  );
33488
- server.tool(
34182
+ registerTool(
34183
+ server,
33489
34184
  "okx_preflight_check",
34185
+ "READ",
33490
34186
  "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u4E0B\u5355\u524D\u4E00\u6B21\u6027\u68C0\u67E5\uFF1A\u6700\u5927\u53EF\u5F00\u6570\u91CF\u3001\u9650\u4EF7\u8303\u56F4\u3001\u5408\u7EA6\u5F20\u6570\u6362\u7B97\u3001\u5F53\u524D\u4EF7\u683C\uFF0C\u907F\u514D\u4E0B\u5355\u540E\u62A5\u9519\n## \u573A\u666F\uFF1A\u7528\u4E8EAgent\u4E0B\u5355\u524D\u5FC5\u8C03\u3001\u9A8C\u8BC1\u7528\u6237\u8F93\u5165\u7684\u6570\u91CF\u548C\u4EF7\u683C\u662F\u5426\u5408\u6CD5\u3001\u907F\u514D\u56E0\u53C2\u6570\u9519\u8BEF\u88AB\u62D2\n## \u5173\u952E\u8BCD\uFF1A\u4E0B\u5355\u9884\u68C0, preflight, \u4E0B\u5355\u524D\u68C0\u67E5, \u6570\u91CF\u6362\u7B97, \u9650\u4EF7\u68C0\u67E5, \u53EF\u5F00\u68C0\u67E5\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - tdMode: \u4EA4\u6613\u6A21\u5F0F\u3002cash=\u73B0\u8D27, cross=\u5168\u4ED3, isolated=\u9010\u4ED3\u3002\u5FC5\u586B\n## - sz: \u7528\u6237\u60F3\u4E0B\u5355\u7684\u6570\u91CF\u3002\u5FC5\u586B\uFF08\u5E01\u6570\uFF0C\u4F1A\u81EA\u52A8\u6362\u7B97\u4E3A\u5F20\u6570\uFF09\n## - px: \u7528\u6237\u60F3\u4E0B\u5355\u7684\u4EF7\u683C\uFF08\u9009\u586B\uFF0C\u586B\u4E86\u4F1A\u68C0\u67E5\u662F\u5426\u5728\u9650\u4EF7\u8303\u56F4\u5185\uFF09\n## - side: \u4E70\u5356\u65B9\u5411\u3002buy=\u4E70\u5165, sell=\u5356\u51FA\u3002\u586B\u4E86\u4F1A\u67E5\u5BF9\u5E94\u65B9\u5411\u7684\u6700\u5927\u53EF\u5F00\n## - ordType: \u8BA2\u5355\u7C7B\u578B\u3002\u586B\u4E86\u4F1A\u68C0\u67E5\u662F\u5426\u5728\u9650\u4EF7\u8303\u56F4\u5185\uFF08\u9650\u4EF7\u5355\u624D\u9700\u8981\uFF09\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09- \u53EA\u67E5\u8BE2\u4E0D\u4EA7\u751F\u8BA2\u5355\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\u9884\u68C0\u901A\u8FC7 \u2192 okx_place_order \u4E0B\u5355 \u2192 okx_get_order \u786E\u8BA4\u6210\u4EA4",
33491
34187
  {
33492
34188
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
@@ -33579,8 +34275,10 @@ function registerAgentUtils(server, auth) {
33579
34275
  }
33580
34276
  }
33581
34277
  );
33582
- server.tool(
34278
+ registerTool(
34279
+ server,
33583
34280
  "okx_agent_feedback",
34281
+ "READ",
33584
34282
  "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u63D0\u4EA4\u4F7F\u7528\u53CD\u9988\u2014\u2014\u5F53\u4F60\u9047\u5230\u591A\u6B65\u64CD\u4F5C\u70E6\u7410\u3001\u53C2\u6570\u8BD5\u9519\u3001\u4E0D\u77E5\u9053\u8C03\u7528\u987A\u5E8F\u3001\u641C\u7D22\u4E0D\u5230\u5DE5\u5177\u3001\u6216\u9700\u8981\u4F7F\u7528\u624B\u5DE5\u8BA1\u7B97\u5F25\u8865\u4E0D\u8DB3\u65F6\uFF0C\u8C03\u7528\u6B64\u5DE5\u5177\u8BB0\u5F55\u4E0B\u6765\n## \u573A\u666F\uFF1A\u7528\u4E8EAgent\u6C47\u62A5MCP\u5DE5\u5177\u7684\u4F7F\u7528\u75DB\u70B9\uFF0C\u53CD\u9988\u5C06\u76F4\u63A5\u8FDB\u5165\u5F00\u53D1\u56E2\u961F\u7684\u5F85\u529E\u5217\u8868\uFF0C\u63A8\u52A8Skill\u7EC4\u5408\u548C\u5DE5\u5177\u4F18\u5316\n## \u5173\u952E\u8BCD\uFF1A\u53CD\u9988, feedback, \u7559\u8A00, \u5EFA\u8BAE, \u75DB\u70B9, \u6539\u5584\u5EFA\u8BAE\n## \u53C2\u6570\uFF1A\n## - title: \u4E00\u53E5\u8BDD\u6807\u9898\n## - what: \u4F60\u505A\u4E86\u4EC0\u4E48\u64CD\u4F5C\n## - tools: \u8C03\u7528\u4E86\u54EA\u4E9B\u5DE5\u5177\uFF08\u7528\u9017\u53F7\u5206\u9694\uFF09\n## - pain: \u75DB\u70B9\u662F\u4EC0\u4E48\n## - suggestion: \u4F60\u5EFA\u8BAE\u600E\u4E48\u6539\u5584\uFF08\u60F3\u8981\u4EC0\u4E48Skill\uFF09\n## \u9274\u6743\uFF1APUBLIC \u2014 \u65E0\u9700 API Key\uFF0C\u8C01\u90FD\u53EF\u4EE5\u53CD\u9988\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u5199\u65E5\u5FD7\uFF0CAgent \u53EF\u968F\u65F6\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u4EFB\u4F55\u5DE5\u5177\u7EC4\u5408\u9047\u5230\u963B\u788D\u65F6\u8C03\u7528 \u2192 \u5F00\u53D1\u8005\u5BA1\u67E5\u53CD\u9988 \u2192 \u521B\u5EFA Skill \u6216\u4F18\u5316\u5DE5\u5177",
33585
34283
  {
33586
34284
  title: external_exports.string().describe("\u4E00\u53E5\u8BDD\u6807\u9898"),
@@ -33609,8 +34307,10 @@ function registerAgentUtils(server, auth) {
33609
34307
  }
33610
34308
  }
33611
34309
  );
33612
- server.tool(
34310
+ registerTool(
34311
+ server,
33613
34312
  "agent_risk_overview",
34313
+ "READ",
33614
34314
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u4E00\u952E\u83B7\u53D6\u5168\u4ED3\u98CE\u9669\u4EEA\u8868\u76D8\uFF1A\u6301\u4ED3\u98CE\u9669\u6392\u5E8F\u3001\u603B\u4FDD\u8BC1\u91D1\u7387\u3001\u5F3A\u5E73\u9884\u8B66\u3001\u8D44\u91D1\u8D39\u7387\u5230\u671F\u63D0\u9192\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54"\u6211\u73B0\u5728\u98CE\u9669\u591A\u5927"\u3001\u5DE1\u68C0\u6240\u6709\u6301\u4ED3\u5065\u5EB7\u5EA6\u3001\u5F3A\u5E73\u524D\u9884\u8B66\u901A\u77E5\n## \u5173\u952E\u8BCD\uFF1A\u98CE\u9669, \u5F3A\u5E73, \u4FDD\u8BC1\u91D1\u7387, \u98CE\u9669\u6392\u5E8F, \u5065\u5EB7\u5EA6, risk, \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\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB \u2014 \u7ED3\u6784\u5316\u98CE\u9669\u6458\u8981\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u98CE\u9669\u5DE1\u68C0 \u2192 \u9AD8\u98CE\u9669\u4ED3\u4F4D agent_quick_trade \u5E73\u4ED3 \u2192 agent_pnl_report \u76C8\u4E8F\u590D\u76D8',
33615
34315
  {},
33616
34316
  async () => {
@@ -33695,8 +34395,10 @@ function registerAgentUtils(server, auth) {
33695
34395
  }
33696
34396
  }
33697
34397
  );
33698
- server.tool(
34398
+ registerTool(
34399
+ server,
33699
34400
  "agent_quick_trade",
34401
+ "WRITE",
33700
34402
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u4E00\u6B65\u5B8C\u6210\u4EA4\u6613\u5168\u6D41\u7A0B\u2014\u2014\u81EA\u52A8\u67E5\u4F59\u989D\u3001\u7B97\u6700\u5927\u53EF\u5F00\u3001\u68C0\u67E5\u9650\u4EF7\u3001\u4E0B\u5355\uFF0C\u8FD4\u56DE\u7ED3\u6784\u5316\u4EA4\u6613\u786E\u8BA4\n## \u573A\u666F\uFF1AAgent \u6536\u5230\u7528\u6237"\u4E70\u51650.1 BTC"\u65F6\u76F4\u63A5\u8C03\u7528\uFF0C\u65E0\u9700\u5206\u522B\u8C03\u4F59\u989D/\u53EF\u5F00/\u9650\u4EF7/\u4E0B\u5355\n## \u5173\u952E\u8BCD\uFF1A\u4E00\u952E\u4EA4\u6613, quick trade, \u4E0B\u5355\u5168\u6D41\u7A0B, \u81EA\u52A8\u68C0\u67E5, \u4E00\u6B65\u5230\u4F4D\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\n## - side: buy=\u4E70\u5165, sell=\u5356\u51FA\n## - sz: \u4E0B\u5355\u6570\u91CF\uFF08\u5E01\u6570\u6216\u5F20\u6570\uFF09\n## - tdMode: cash=\u73B0\u8D27, cross=\u5168\u4ED3, isolated=\u9010\u4ED3\n## - px: \u9650\u4EF7\uFF08\u9009\u586B\uFF0C\u4E0D\u586B\u5E02\u4EF7\u5355\uFF09\n## - ordType: \u8BA2\u5355\u7C7B\u578B\uFF0C\u9ED8\u8BA4limit\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u4EA4\u6613\u6743\u9650\uFF09\n## \u98CE\u9669\uFF1AWRITE \u2014 \u771F\u5B9E\u4E0B\u5355\uFF0CAgent \u9700\u7528\u6237\u786E\u8BA4\u540E\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB \u2014 \u542B\u9884\u68C0\u7ED3\u679C+\u8BA2\u5355\u786E\u8BA4+\u98CE\u63A7\u63D0\u9192\n## \u5173\u8054\uFF1Aagent_risk_overview \u770B\u98CE\u9669 \u2192 \u672C\u5DE5\u5177\u4E0B\u5355 \u2192 okx_get_order \u786E\u8BA4 \u2192 agent_pnl_report \u590D\u76D8',
33701
34403
  {
33702
34404
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
@@ -33799,8 +34501,10 @@ function registerAgentUtils(server, auth) {
33799
34501
  }
33800
34502
  }
33801
34503
  );
33802
- server.tool(
34504
+ registerTool(
34505
+ server,
33803
34506
  "agent_market_scan",
34507
+ "READ",
33804
34508
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u4E00\u952E\u626B\u63CF\u5E02\u573A\u5F02\u52A8\u2014\u2014\u6DA8\u5E45\u699C\u3001\u8DCC\u5E45\u699C\u3001\u6210\u4EA4\u91CF\u5F02\u52A8\u3001\u8D44\u91D1\u8D39\u7387\u5F02\u5E38\u54C1\u79CD\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54"\u4ECA\u5929\u6709\u4EC0\u4E48\u673A\u4F1A"\u3001\u53D1\u73B0\u66B4\u6DA8\u66B4\u8DCC\u3001\u627E\u8D39\u7387\u5957\u5229\u76EE\u6807\n## \u5173\u952E\u8BCD\uFF1A\u5E02\u573A\u626B\u63CF, \u5F02\u52A8, \u6DA8\u5E45\u699C, \u8DCC\u5E45\u699C, \u8D44\u91D1\u8D39\u7387, \u4EA4\u6613\u673A\u4F1A\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\uFF0C\u9ED8\u8BA4SWAP\n## - topN: \u8FD4\u56DE\u524DN\u6761\uFF0C\u9ED8\u8BA410\n## - sortBy: \u6392\u5E8F\u5B57\u6BB5\u3002change=\u6DA8\u8DCC\u5E45, vol=\u6210\u4EA4\u91CF, fundingRate=\u8D44\u91D1\u8D39\u7387\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 \u2014 \u4EC5\u8FD4\u56DEtopN\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u626B\u63CF \u2192 okx_quick_market \u6DF1\u5165\u5206\u6790 \u2192 agent_quick_trade \u4E0B\u5355',
33805
34509
  {
33806
34510
  instType: external_exports.enum(["SPOT", "SWAP", "FUTURES"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u9ED8\u8BA4SWAP"),
@@ -33883,8 +34587,10 @@ function registerAgentUtils(server, auth) {
33883
34587
  }
33884
34588
  }
33885
34589
  );
33886
- server.tool(
34590
+ registerTool(
34591
+ server,
33887
34592
  "agent_pnl_report",
34593
+ "READ",
33888
34594
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u4E00\u952E\u751F\u6210\u76C8\u4E8F\u62A5\u544A\u2014\u2014\u5F53\u524D\u6301\u4ED3\u6D6E\u52A8\u76C8\u4E8F + \u8FD1N\u65E5\u5DF2\u5B9E\u73B0\u76C8\u4E8F\u6C47\u603B\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54"\u4ECA\u5929\u6211\u8D5A\u4E86\u591A\u5C11"\u3001\u590D\u76D8\u4EA4\u6613\u7EE9\u6548\u3001\u751F\u6210\u6BCF\u65E5\u76C8\u4E8F\u62A5\u8868\n## \u5173\u952E\u8BCD\uFF1A\u76C8\u4E8F, PnL, \u76C8\u4E8F\u62A5\u544A, \u6D6E\u52A8\u76C8\u4E8F, \u5DF2\u5B9E\u73B0\u76C8\u4E8F, \u4EA4\u6613\u590D\u76D8\n## \u53C2\u6570\uFF1A\n## - days: \u7EDF\u8BA1\u5929\u6570\uFF0C\u9ED8\u8BA47\uFF08\u8FD17\u65E5\u5DF2\u5B9E\u73B0\u76C8\u4E8F\uFF09\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\u5FAE\u5C0F ~2KB\n## \u5173\u8054\uFF1Aagent_risk_overview \u98CE\u9669 \u2192 agent_quick_trade \u4EA4\u6613 \u2192 \u672C\u5DE5\u5177\u590D\u76D8 \u2192 \u8C03\u6574\u7B56\u7565',
33889
34595
  {
33890
34596
  days: external_exports.number().int().min(1).max(90).optional().describe("\u7EDF\u8BA1\u5929\u6570\uFF0C\u9ED8\u8BA47")
@@ -33952,8 +34658,10 @@ function registerAgentUtils(server, auth) {
33952
34658
  }
33953
34659
  }
33954
34660
  );
33955
- server.tool(
34661
+ registerTool(
34662
+ server,
33956
34663
  "agent_simulate_order",
34664
+ "READ",
33957
34665
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u6A21\u62DF\u4E0B\u5355\u2014\u2014\u4E0D\u4EA7\u751F\u771F\u5B9E\u8BA2\u5355\uFF0C\u8FD4\u56DE\u9884\u4F30\u6210\u4EA4\u4EF7\u3001\u6ED1\u70B9\u3001\u624B\u7EED\u8D39\u3001\u8D44\u91D1\u5360\u7528\n## \u573A\u666F\uFF1AAgent \u56DE\u7B54"\u5982\u679C\u6211\u73B0\u5728\u4E70\u51650.1 BTC\u4F1A\u600E\u6837"\u65F6\u4F7F\u7528\uFF0C\u8BA9\u7528\u6237\u5728\u4E0D\u5192\u98CE\u9669\u7684\u60C5\u51B5\u4E0B\u4E86\u89E3\u4EA4\u6613\u6210\u672C\n## \u5173\u952E\u8BCD\uFF1A\u6A21\u62DF\u4EA4\u6613, \u6C99\u76D2, simulate, \u9884\u4F30, \u6ED1\u70B9, \u624B\u7EED\u8D39, \u8D44\u91D1\u9884\u4F30\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\n## - side: buy=\u4E70\u5165, sell=\u5356\u51FA\n## - sz: \u4E0B\u5355\u6570\u91CF\n## - tdMode: \u4EA4\u6613\u6A21\u5F0F\n## - px: \u9650\u4EF7\uFF08\u9009\u586B\uFF0C\u7528\u4E8E\u8BA1\u7B97\u9650\u4EF7\u5355\u9884\u4F30\uFF09\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF0C\u4E0D\u4EA7\u751F\u8BA2\u5355\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u67E5\u8BE2+\u8BA1\u7B97\uFF0C\u4E0D\u4EA7\u751F\u771F\u5B9E\u8BA2\u5355\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u6A21\u62DF \u2192 \u7528\u6237\u786E\u8BA4 \u2192 agent_quick_trade \u771F\u5B9E\u4E0B\u5355',
33958
34666
  {
33959
34667
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP"),
@@ -34057,8 +34765,10 @@ function registerAgentUtils(server, auth) {
34057
34765
  }
34058
34766
  }
34059
34767
  );
34060
- server.tool(
34768
+ registerTool(
34769
+ server,
34061
34770
  "agent_get_preference",
34771
+ "READ",
34062
34772
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u8BFB\u53D6 Agent \u6301\u4E45\u5316\u504F\u597D\uFF0C\u8DE8\u4F1A\u8BDD\u4FDD\u7559\n## \u573A\u666F\uFF1AAgent \u5728\u65B0\u4F1A\u8BDD\u4E2D\u6062\u590D\u7528\u6237\u504F\u597D\uFF08\u5982"\u53EA\u505A\u73B0\u8D27""\u9ED8\u8BA4\u4EA4\u6613\u5BF9BTC-USDT""\u98CE\u9669\u504F\u597D\u4F4E"\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u504F\u597D, preference, \u8BB0\u5FC6, \u6301\u4E45\u5316, \u7528\u6237\u753B\u50CF\n## \u53C2\u6570\uFF1A\n## - key: \u504F\u597D\u952E\u540D\u3002\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\u504F\u597D\n## \u9274\u6743\uFF1APUBLIC \u2014 \u672C\u5730\u8BFB\u53D6\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1Aagent_set_preference \u8BBE\u7F6E\u504F\u597D \u2192 \u672C\u5DE5\u5177 \u2192 Agent \u6839\u636E\u504F\u597D\u8C03\u6574\u7B56\u7565',
34063
34773
  {
34064
34774
  key: external_exports.string().optional().describe("\u504F\u597D\u952E\u540D\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8")
@@ -34084,8 +34794,10 @@ function registerAgentUtils(server, auth) {
34084
34794
  }
34085
34795
  }
34086
34796
  );
34087
- server.tool(
34797
+ registerTool(
34798
+ server,
34088
34799
  "agent_set_preference",
34800
+ "READ",
34089
34801
  'CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u8BBE\u7F6E Agent \u6301\u4E45\u5316\u504F\u597D\uFF0C\u8DE8\u4F1A\u8BDD\u4FDD\u7559\n## \u573A\u666F\uFF1A\u7528\u6237\u8BF4"\u4EE5\u540E\u9ED8\u8BA4\u4EA4\u6613\u5BF9\u7528BTC-USDT"\u65F6\uFF0CAgent \u4FDD\u5B58\u504F\u597D\uFF0C\u4E0B\u6B21\u4F1A\u8BDD\u81EA\u52A8\u6062\u590D\n## \u5173\u952E\u8BCD\uFF1A\u504F\u597D, preference, \u8BBE\u7F6E, \u8BB0\u5FC6, \u6301\u4E45\u5316, \u7528\u6237\u753B\u50CF\n## \u53C2\u6570\uFF1A\n## - key: \u504F\u597D\u952E\u540D\n## - value: \u504F\u597D\u503C\n## \u9274\u6743\uFF1APUBLIC \u2014 \u672C\u5730\u5199\u5165\n## \u98CE\u9669\uFF1AREAD \u2014 \u672C\u5730\u6587\u4EF6\u5199\u5165\uFF0C\u65E0\u8D44\u91D1\u98CE\u9669\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BBE\u7F6E\u504F\u597D \u2192 agent_get_preference \u8BFB\u53D6 \u2192 Agent \u6309\u504F\u597D\u51B3\u7B56\n## \u5E38\u7528\u952E\u540D\u53C2\u8003:\n## - default_instId: \u9ED8\u8BA4\u4EA4\u6613\u5BF9\uFF0C\u5982 BTC-USDT-SWAP\n## - default_tdMode: \u9ED8\u8BA4\u4EA4\u6613\u6A21\u5F0F (cross/isolated/cash)\n## - risk_level: \u98CE\u9669\u504F\u597D (low/medium/high)\n## - trade_mode: \u4EA4\u6613\u6A21\u5F0F (spot_only/swap_permitted/margin_permitted)\n## - position_size_pct: \u5355\u7B14\u4ED3\u4F4D\u5360\u6BD4\uFF0C\u5982 0.1 (10%)',
34090
34802
  {
34091
34803
  key: external_exports.string().describe("\u504F\u597D\u952E\u540D\u3002\u5E38\u7528: default_instId, default_tdMode, risk_level, trade_mode, position_size_pct"),
@@ -34358,8 +35070,10 @@ function registerAgentUtils(server, auth) {
34358
35070
  "\u806A\u660E\u94B1\u5206\u6790\u7528 okx_smart_leaderboard \u627E\u9876\u5C16\u4EA4\u6613\u5458 \u2192 okx_smart_sentiment \u770B\u5E02\u573A\u60C5\u7EEA"
34359
35071
  ]
34360
35072
  };
34361
- server.tool(
35073
+ registerTool(
35074
+ server,
34362
35075
  "agent_catalog",
35076
+ "READ",
34363
35077
  "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u5168\u5C40\u5DE5\u5177\u5BFC\u822A\u2014\u2014Agent \u9996\u6B21\u8FDE\u63A5 hvip MCP \u540E\u7B2C\u4E00\u4E2A\u5E94\u8C03\u7528\u7684\u5DE5\u5177\u3002\u8FD4\u56DE\u6309\u7528\u6237\u610F\u56FE\u5206\u7EC4\u7684\u5DE5\u5177\u5730\u56FE\n## \u573A\u666F\uFF1AAgent \u9996\u6B21\u8FDE\u63A5\u3001\u4E0D\u786E\u5B9A\u8BE5\u7528\u4EC0\u4E48\u5DE5\u5177\u3001\u60F3\u4E86\u89E3 hvip \u80FD\u505A\u4EC0\u4E48\u3002\u770B\u5B8C\u76EE\u5F55\u540E Agent \u6309\u57DF\u76F4\u8FBE\u76EE\u6807\u5DE5\u5177\uFF0C\u65E0\u9700\u9605\u8BFB\u5168\u90E8 350+ \u5DE5\u5177\u63CF\u8FF0\n## \u5173\u952E\u8BCD\uFF1A\u5BFC\u822A, catalog, \u76EE\u5F55, \u5730\u56FE, \u5165\u53E3, \u9996\u6B21\u8FDE\u63A5, \u5DE5\u5177\u53D1\u73B0, \u7D22\u5F15, \u8DEF\u7531\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u7EAF\u7D22\u5F15\uFF0C\u4E0D\u67E5\u4EFB\u4F55 API\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~5KB \u2014 12 \u4E2A\u57DF\u7684\u7ED3\u6784\u5316\u7D22\u5F15\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5168\u5C40 \u2192 agent_catalog_detail { domain } \u770B\u57DF\u8BE6\u60C5 \u2192 \u76F4\u63A5\u8C03\u7528\u76EE\u6807\u5DE5\u5177",
34364
35078
  {},
34365
35079
  async () => {
@@ -34644,8 +35358,10 @@ function registerAgentUtils(server, auth) {
34644
35358
  ]
34645
35359
  }
34646
35360
  };
34647
- server.tool(
35361
+ registerTool(
35362
+ server,
34648
35363
  "agent_catalog_detail",
35364
+ "READ",
34649
35365
  "CAT:[\u7CFB\u7EDF] | ## \u529F\u80FD\uFF1A\u67E5\u770B\u67D0\u4E2A\u4E1A\u52A1\u57DF\u7684\u8BE6\u7EC6\u5DE5\u5177\u6E05\u5355\u2014\u2014\u542B\u6BCF\u4E2A\u5DE5\u5177\u7684\u53C2\u6570\u63D0\u793A\u3001\u9274\u6743\u8981\u6C42\u3001\u63A8\u8350\u8C03\u7528\u987A\u5E8F\n## \u573A\u666F\uFF1AAgent \u5728 agent_catalog \u786E\u5B9A\u57DF\u540E\uFF0C\u8C03\u7528\u6B64\u5DE5\u5177\u83B7\u53D6\u8BE5\u57DF\u6240\u6709\u5DE5\u5177\u7684\u7CBE\u51C6\u4FE1\u606F\u3001\u53C2\u6570\u63D0\u793A\u548C\u5178\u578B workflow\n## \u5173\u952E\u8BCD\uFF1A\u76EE\u5F55\u8BE6\u60C5, catalog detail, \u5DE5\u5177\u6E05\u5355, \u57DF\u8BE6\u60C5, workflow\n## \u53C2\u6570\uFF1A\n## - domain: \u57DF\u540D\u79F0\u3002\u53EF\u53D6\u503C: \u8D26\u6237\u8D44\u4EA7 | \u884C\u60C5\u770B\u76D8 | \u4E0B\u5355\u4EA4\u6613 | \u98CE\u9669\u98CE\u63A7 | \u5E02\u573A\u626B\u63CF | \u76C8\u4E8F\u590D\u76D8 | \u8D44\u91D1\u7BA1\u7406 | \u7B56\u7565\u4EA4\u6613 | \u9884\u6D4B\u5E02\u573A | WebSocket \u5B9E\u65F6 | \u6A21\u62DF\u4F30\u7B97 | \u7CFB\u7EDF\u5DE5\u5177\n## \u9274\u6743\uFF1APUBLIC \u2014 \u7EAF\u7D22\u5F15\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~2KB \u2014 \u5355\u57DF\u8BE6\u60C5\n## \u5173\u8054\uFF1Aagent_catalog \u9009\u57DF \u2192 \u672C\u5DE5\u5177\u83B7\u53D6\u8BE6\u60C5 \u2192 \u76F4\u63A5\u8C03\u7528\u76EE\u6807\u5DE5\u5177",
34650
35366
  {
34651
35367
  domain: external_exports.string().describe("\u57DF\u540D\u79F0\u3002\u53EF\u9009: \u8D26\u6237\u8D44\u4EA7, \u884C\u60C5\u770B\u76D8, \u6280\u672F\u6307\u6807, \u4E0B\u5355\u4EA4\u6613, \u98CE\u9669\u98CE\u63A7, \u5E02\u573A\u626B\u63CF, \u806A\u660E\u94B1, \u76C8\u4E8F\u590D\u76D8, \u8D44\u91D1\u7BA1\u7406, \u7B56\u7565\u4EA4\u6613, \u9884\u6D4B\u5E02\u573A, \u4EE3\u7801\u667A\u80FD, WebSocket \u5B9E\u65F6, \u6A21\u62DF\u4F30\u7B97, \u7CFB\u7EDF\u5DE5\u5177")
@@ -34976,8 +35692,10 @@ function adxSignal(adx, plusDI, minusDI) {
34976
35692
  return { signal: "neutral", message: `ADX \u4F4E\u6CE2\u52A8 (${adx.toFixed(1)} < 25)\uFF0C\u9707\u8361\u884C\u60C5\uFF0C\u8D8B\u52BF\u7B56\u7565\u9700\u8C28\u614E` };
34977
35693
  }
34978
35694
  function registerIndicatorTools(server) {
34979
- server.tool(
35695
+ registerTool(
35696
+ server,
34980
35697
  "okx_indicator",
35698
+ "READ",
34981
35699
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
34982
35700
  {
34983
35701
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3001ETH-USDT-SWAP"),
@@ -35184,8 +35902,10 @@ function registerIndicatorTools(server) {
35184
35902
  }
35185
35903
  }
35186
35904
  );
35187
- server.tool(
35905
+ registerTool(
35906
+ server,
35188
35907
  "okx_indicator_batch",
35908
+ "READ",
35189
35909
  "CAT:[\u884C\u60C5] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35190
35910
  {
35191
35911
  instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT"),
@@ -35364,8 +36084,10 @@ function registerIndicatorTools(server) {
35364
36084
 
35365
36085
  // src/tools/smartmoney.ts
35366
36086
  function registerSmartMoneyTools(server, auth) {
35367
- server.tool(
36087
+ registerTool(
36088
+ server,
35368
36089
  "okx_smart_leaderboard",
36090
+ "READ",
35369
36091
  "CAT:[Smart Money] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35370
36092
  {
35371
36093
  instType: external_exports.enum(["SPOT", "SWAP"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B\uFF0C\u9ED8\u8BA4SPOT"),
@@ -35412,8 +36134,10 @@ function registerSmartMoneyTools(server, auth) {
35412
36134
  }
35413
36135
  }
35414
36136
  );
35415
- server.tool(
36137
+ registerTool(
36138
+ server,
35416
36139
  "okx_smart_trader_detail",
36140
+ "READ",
35417
36141
  "CAT:[Smart Money] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35418
36142
  {
35419
36143
  uniqueCode: external_exports.string().describe("\u4EA4\u6613\u5458\u552F\u4E00\u7801\uFF08\u5982 A12345678\uFF09"),
@@ -35471,8 +36195,10 @@ function registerSmartMoneyTools(server, auth) {
35471
36195
  }
35472
36196
  }
35473
36197
  );
35474
- server.tool(
36198
+ registerTool(
36199
+ server,
35475
36200
  "okx_smart_sentiment",
36201
+ "READ",
35476
36202
  "CAT:[Smart Money] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35477
36203
  {
35478
36204
  instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3001ETH-USD\u3002\u9ED8\u8BA4 BTC-USD")
@@ -35703,8 +36429,10 @@ var xlayerWS = new XLayerWSManager();
35703
36429
 
35704
36430
  // src/tools/xlayer-ws.ts
35705
36431
  function registerXLayerWSTools(server) {
35706
- server.tool(
36432
+ registerTool(
36433
+ server,
35707
36434
  "xlayer_subscribe",
36435
+ "READ",
35708
36436
  "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35709
36437
  {
35710
36438
  type: external_exports.enum(["newHeads", "logs"]).describe("\u8BA2\u9605\u7C7B\u578B\u3002newHeads=\u65B0\u533A\u5757\u5934, logs=\u5408\u7EA6\u65E5\u5FD7"),
@@ -35733,8 +36461,10 @@ function registerXLayerWSTools(server) {
35733
36461
  }
35734
36462
  }
35735
36463
  );
35736
- server.tool(
36464
+ registerTool(
36465
+ server,
35737
36466
  "xlayer_get_events",
36467
+ "READ",
35738
36468
  "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35739
36469
  {
35740
36470
  subscriptionId: external_exports.string().describe("\u8BA2\u9605ID\uFF0C\u7531 xlayer_subscribe \u8FD4\u56DE")
@@ -35763,8 +36493,10 @@ function registerXLayerWSTools(server) {
35763
36493
  }
35764
36494
  }
35765
36495
  );
35766
- server.tool(
36496
+ registerTool(
36497
+ server,
35767
36498
  "xlayer_unsubscribe",
36499
+ "READ",
35768
36500
  "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35769
36501
  {
35770
36502
  subscriptionId: external_exports.string().describe("\u8981\u53D6\u6D88\u7684\u8BA2\u9605ID")
@@ -35778,8 +36510,10 @@ function registerXLayerWSTools(server) {
35778
36510
  }
35779
36511
  }
35780
36512
  );
35781
- server.tool(
36513
+ registerTool(
36514
+ server,
35782
36515
  "xlayer_call",
36516
+ "WRITE",
35783
36517
  "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35784
36518
  {
35785
36519
  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"),
@@ -35803,8 +36537,10 @@ function registerXLayerWSTools(server) {
35803
36537
  }
35804
36538
  }
35805
36539
  );
35806
- server.tool(
36540
+ registerTool(
36541
+ server,
35807
36542
  "xlayer_list_subscriptions",
36543
+ "READ",
35808
36544
  "CAT:[\u94FE\u4E0A] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
35809
36545
  {},
35810
36546
  async () => {
@@ -36113,8 +36849,10 @@ var ALL_CHANNELS = {
36113
36849
  ]
36114
36850
  };
36115
36851
  function registerWsTools(server, auth) {
36116
- server.tool(
36852
+ registerTool(
36853
+ server,
36117
36854
  "okx_ws_subscribe",
36855
+ "READ",
36118
36856
  "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36119
36857
  {
36120
36858
  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"),
@@ -36147,8 +36885,10 @@ function registerWsTools(server, auth) {
36147
36885
  }
36148
36886
  }
36149
36887
  );
36150
- server.tool(
36888
+ registerTool(
36889
+ server,
36151
36890
  "okx_ws_subscribe_private",
36891
+ "READ",
36152
36892
  "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36153
36893
  {
36154
36894
  instId: external_exports.string().optional().describe("\u4EA7\u54C1ID\u3002\u8D26\u6237\u7EA7\u9891\u9053\u53EF\u4E0D\u4F20\uFF08\u5982 account/positions/balances\uFF09"),
@@ -36186,8 +36926,10 @@ function registerWsTools(server, auth) {
36186
36926
  }
36187
36927
  }
36188
36928
  );
36189
- server.tool(
36929
+ registerTool(
36930
+ server,
36190
36931
  "okx_ws_events",
36932
+ "READ",
36191
36933
  "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36192
36934
  {
36193
36935
  subscriptionId: external_exports.string().optional().describe("\u8BA2\u9605ID"),
@@ -36214,8 +36956,10 @@ function registerWsTools(server, auth) {
36214
36956
  }
36215
36957
  }
36216
36958
  );
36217
- server.tool(
36959
+ registerTool(
36960
+ server,
36218
36961
  "okx_ws_status",
36962
+ "READ",
36219
36963
  "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36220
36964
  {},
36221
36965
  async () => {
@@ -36231,8 +36975,10 @@ function registerWsTools(server, auth) {
36231
36975
  }
36232
36976
  }
36233
36977
  );
36234
- server.tool(
36978
+ registerTool(
36979
+ server,
36235
36980
  "okx_ws_close",
36981
+ "READ",
36236
36982
  "CAT:[\u884C\u60C5-WS] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36237
36983
  {
36238
36984
  subscriptionId: external_exports.string().optional().describe("\u8BA2\u9605ID\uFF0C\u4E0D\u4F20\u5173\u95ED\u6240\u6709")
@@ -36653,8 +37399,10 @@ function startAgentHub(port, host = "0.0.0.0", version2 = "0.0.0") {
36653
37399
 
36654
37400
  // src/tools/agent-hub.ts
36655
37401
  function registerAgentHubTools(server) {
36656
- server.tool(
37402
+ registerTool(
37403
+ server,
36657
37404
  "agent_hub_status",
37405
+ "READ",
36658
37406
  "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36659
37407
  {},
36660
37408
  async () => {
@@ -36665,8 +37413,10 @@ function registerAgentHubTools(server) {
36665
37413
  }
36666
37414
  }
36667
37415
  );
36668
- server.tool(
37416
+ registerTool(
37417
+ server,
36669
37418
  "agent_hub_dispatch",
37419
+ "READ",
36670
37420
  "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36671
37421
  {
36672
37422
  taskId: external_exports.enum(["T-001", "T-002", "T-003", "T-004", "T-005", "T-006"]).describe("\u4EFB\u52A1\u7F16\u53F7"),
@@ -36716,8 +37466,10 @@ function registerAgentHubTools(server) {
36716
37466
  }
36717
37467
  }
36718
37468
  );
36719
- server.tool(
37469
+ registerTool(
37470
+ server,
36720
37471
  "agent_hub_review",
37472
+ "READ",
36721
37473
  "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36722
37474
  {
36723
37475
  taskId: external_exports.enum(["T-001", "T-002", "T-003", "T-004", "T-005", "T-006"]).describe("\u4EFB\u52A1\u7F16\u53F7"),
@@ -36748,8 +37500,10 @@ function registerAgentHubTools(server) {
36748
37500
  }
36749
37501
  }
36750
37502
  );
36751
- server.tool(
37503
+ registerTool(
37504
+ server,
36752
37505
  "agent_room_send",
37506
+ "READ",
36753
37507
  "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36754
37508
  {
36755
37509
  roomId: external_exports.string().describe("\u623F\u95F4ID\u3002#lobby / #review / #task-T-003"),
@@ -36769,8 +37523,10 @@ function registerAgentHubTools(server) {
36769
37523
  }
36770
37524
  }
36771
37525
  );
36772
- server.tool(
37526
+ registerTool(
37527
+ server,
36773
37528
  "agent_room_view",
37529
+ "READ",
36774
37530
  "CAT:[\u7CFB\u7EDF] | \u2192 \u8BF7\u5148\u8C03\u7528 agent_catalog",
36775
37531
  {
36776
37532
  roomId: external_exports.string().optional().describe("\u623F\u95F4ID\uFF0C\u4E0D\u586B\u5217\u51FA\u6240\u6709"),
@@ -36911,8 +37667,10 @@ function getImpact(db, nodeId, maxDepth = 2, limit = 50) {
36911
37667
  return { direct, indirect: [...indirectMap.values()].slice(0, limit) };
36912
37668
  }
36913
37669
  function registerCodeGraphTools(server) {
36914
- server.tool(
37670
+ registerTool(
37671
+ server,
36915
37672
  "codegraph_status",
37673
+ "READ",
36916
37674
  "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",
36917
37675
  {},
36918
37676
  async () => {
@@ -37014,8 +37772,10 @@ function registerCodeGraphTools(server) {
37014
37772
  }
37015
37773
  }
37016
37774
  );
37017
- server.tool(
37775
+ registerTool(
37776
+ server,
37018
37777
  "codegraph_query",
37778
+ "READ",
37019
37779
  "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",
37020
37780
  {
37021
37781
  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"),
@@ -37226,7 +37986,8 @@ function registerAllTools(server, auth, readOnly) {
37226
37986
  if (readOnly) {
37227
37987
  const orig = server.tool.bind(server);
37228
37988
  server.tool = function(name, ...args) {
37229
- const risk = classifyRisk(name);
37989
+ const desc = typeof args[0] === "string" ? args[0] : name;
37990
+ const risk = classifyRisk(desc);
37230
37991
  if (risk !== "READ") {
37231
37992
  skipped++;
37232
37993
  skipLog.push(`${name} (${risk})`);
@@ -37278,6 +38039,37 @@ async function startHttp(server, version2, auth, readOnly, skipped) {
37278
38039
  res.end();
37279
38040
  return;
37280
38041
  }
38042
+ if (req.method === "GET" && (req.url === "/" || req.url === "/index.html")) {
38043
+ try {
38044
+ const paths = [
38045
+ (0, import_node_path.join)(__dirname, "web", "index.html"),
38046
+ // published npm (dist/index.js → dist/web/)
38047
+ (0, import_node_path.join)(__dirname, "..", "src", "web", "index.html")
38048
+ // dev (dist/index.js → ../src/web/)
38049
+ ];
38050
+ let html = "";
38051
+ for (const p of paths) {
38052
+ if ((0, import_node_fs.existsSync)(p)) {
38053
+ html = (0, import_node_fs.readFileSync)(p, "utf-8");
38054
+ break;
38055
+ }
38056
+ }
38057
+ if (!html) throw new Error("file not found");
38058
+ res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
38059
+ res.end(html);
38060
+ } catch {
38061
+ res.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
38062
+ res.end("<html><body style='font-family:sans-serif;text-align:center;margin-top:60px'><h2>hvip Chat UI \u672A\u627E\u5230</h2><p>\u8BF7\u8BBF\u95EE <a href='/mcp'>/mcp</a> \u4F7F\u7528 API</p></body></html>");
38063
+ }
38064
+ return;
38065
+ }
38066
+ if (req.method === "GET" && req.url === "/config") {
38067
+ res.writeHead(200, { "Content-Type": "application/json" });
38068
+ res.end(JSON.stringify({
38069
+ claudeApiKey: process.env.CLAUDE_API_KEY || ""
38070
+ }));
38071
+ return;
38072
+ }
37281
38073
  if (req.method === "GET" && req.url === "/health") {
37282
38074
  res.writeHead(200, { "Content-Type": "application/json" });
37283
38075
  res.end(JSON.stringify({
@@ -37311,14 +38103,23 @@ async function startHttp(server, version2, auth, readOnly, skipped) {
37311
38103
  res.end(JSON.stringify({ error: "Not Found" }));
37312
38104
  });
37313
38105
  httpServer.listen(port, host, () => {
38106
+ const chatUrl = `http://${host}:${port}`;
37314
38107
  process.stderr.write([
37315
38108
  `\u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557`,
37316
38109
  `\u2551 hvip-mcp v${version2} HTTP \u6A21\u5F0F \u2551`,
37317
- `\u2551 POST http://${host}:${port}/mcp \u2551`,
37318
- `\u2551 GET http://${host}:${port}/health \u2551`,
38110
+ `\u2551 \u{1F916} Chat UI \u2192 ${chatUrl} \u2551`,
38111
+ `\u2551 \u{1F4E1} MCP API \u2192 ${chatUrl}/mcp \u2551`,
38112
+ `\u2551 \u2764\uFE0F health \u2192 ${chatUrl}/health \u2551`,
37319
38113
  `\u2551 \u6A21\u5F0F: ${readOnly ? "\u53EA\u8BFB" : "\u5B8C\u6574"} | \u5DE5\u5177: ${readOnly ? "READ only" : "\u5168\u90E8"} \u2551`,
37320
38114
  `\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D`
37321
38115
  ].join("\n") + "\n");
38116
+ const openUrl = `http://127.0.0.1:${port}`;
38117
+ const platform = process.platform;
38118
+ const cmd = platform === "win32" ? `start ${openUrl}` : platform === "darwin" ? `open ${openUrl}` : `xdg-open ${openUrl}`;
38119
+ import("node:child_process").then((cp) => {
38120
+ cp.exec(cmd, () => {
38121
+ });
38122
+ });
37322
38123
  });
37323
38124
  }
37324
38125
  async function startStdio(server, version2, auth, readOnly, skipped, skipLog) {
@@ -37351,7 +38152,7 @@ async function startStdio(server, version2, auth, readOnly, skipped, skipLog) {
37351
38152
  await server.connect(transport);
37352
38153
  }
37353
38154
  async function main() {
37354
- const VERSION = "0.2.52";
38155
+ const VERSION = "0.2.53";
37355
38156
  const auth = getAuth();
37356
38157
  const mode = resolveTransportMode();
37357
38158
  const exec = resolveExecutionMode();