hvip-mcp-server 0.2.53 → 0.2.55

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 +212 -140
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -34833,33 +34833,17 @@ function registerAgentUtils(server, auth) {
34833
34833
  const CATALOG = {
34834
34834
  _instruction: [
34835
34835
  "\u4F60\u662F hvip MCP Server \u7684 AI Agent\u3002\u6536\u5230\u672C\u76EE\u5F55\u540E\uFF0C\u4F60\u5DF2\u7ECF\u638C\u63E1\u5168\u90E8\u5FC5\u8981\u4FE1\u606F\uFF0C\u65E0\u9700\u518D\u626B\u63CF tools/list\u3002",
34836
- "\u5DE5\u4F5C\u6D41: 1) \u770B _setup \u4E86\u89E3\u8FDE\u63A5\u72B6\u6001 -> 2) _onboarding \u51B3\u5B9A\u7B2C\u4E00\u6B65 -> 3) \u5339\u914D\u7528\u6237\u610F\u56FE\u5230\u57DF -> 4) \u7528 go_to_params \u76F4\u63A5\u8C03\u76EE\u6807\u5DE5\u5177\u3002",
34837
- "\u4E0D\u786E\u5B9A\u57DF\u65F6\u8C03\u7528 agent_catalog_detail { domain } \u67E5\u770B\u8BE5\u57DF\u7684\u8BE6\u7EC6\u5DE5\u5177\u6E05\u5355\u3002",
34836
+ "\u5DE5\u4F5C\u6D41: 1) \u770B _setup \u4E86\u89E3\u8FDE\u63A5\u72B6\u6001\u548C API Key \u914D\u7F6E \u2192 2) \u65E0Key\u65F6\u4F18\u5148\u770B publicDomains\uFF08\u7ACB\u5373\u53EF\u7528\uFF09\uFF0C\u6709Key\u65F6\u5168\u90E8\u53EF\u7528 \u2192 3) \u5339\u914D\u7528\u6237\u610F\u56FE\u5230\u57DF \u2192 4) \u7528 go_to_params \u76F4\u63A5\u8C03\u76EE\u6807\u5DE5\u5177\u3002",
34837
+ "\u26A0\uFE0F authDomains \u4E2D\u7684\u6240\u6709\u5DE5\u5177\u9700\u8981 API Key\u2014\u2014\u6CA1\u6709 Key \u65F6\u544A\u8BC9\u7528\u6237\u5982\u4F55\u914D\u7F6E\uFF0C\u4E0D\u8981\u5C1D\u8BD5\u8C03\u7528\u3002",
34838
34838
  "\u6240\u6709 WRITE/FUND_TRANSFER/ADMIN \u5DE5\u5177\u9700\u7528\u6237\u786E\u8BA4\u540E\u8C03\u7528\uFF0C\u4E0D\u53EF\u81EA\u52A8\u53D1\u8D77\u3002"
34839
34839
  ].join(" "),
34840
34840
  domains: [
34841
- {
34842
- domain: "\u8D26\u6237\u8D44\u4EA7",
34843
- what: "\u67E5\u770B\u8D26\u6237\u4F59\u989D\u3001\u6301\u4ED3\u3001\u914D\u7F6E\u3001\u624B\u7EED\u8D39\u3001\u4F30\u503C",
34844
- when: ["\u6211\u7684\u8D26\u6237", "\u6301\u4ED3", "\u4F59\u989D", "\u4FDD\u8BC1\u91D1", "\u6760\u6746\u500D\u6570", "\u8D44\u4EA7\u4F30\u503C", "\u624B\u7EED\u8D39\u7387", "\u8D26\u6237\u914D\u7F6E"],
34845
- go_to: "okx_account_overview",
34846
- also: [
34847
- "okx_get_balance \u2014 \u5404\u5E01\u79CD\u4F59\u989D\u660E\u7EC6",
34848
- "okx_get_positions \u2014 \u6301\u4ED3\u8BE6\u60C5\uFF08\u542B\u5E73\u4ED3\u4E0A\u4E0B\u6587 _actionContext\uFF09",
34849
- "okx_get_account_config \u2014 \u8D26\u6237\u6A21\u5F0F/\u6301\u4ED3\u6A21\u5F0F",
34850
- "okx_get_asset_valuation \u2014 \u603B\u8D44\u4EA7\u4F30\u503C",
34851
- "okx_get_fee_rates \u2014 \u624B\u7EED\u8D39\u7387",
34852
- "okx_get_leverage_info \u2014 \u5F53\u524D\u6760\u6746\u500D\u6570",
34853
- "okx_get_max_size \u2014 \u6700\u5927\u53EF\u5F00\u6570\u91CF",
34854
- "okx_set_leverage \u2014 \u8C03\u6574\u6760\u6746\uFF08WRITE\uFF0C\u9700\u786E\u8BA4\uFF09"
34855
- ],
34856
- risk: "READ"
34857
- },
34858
34841
  {
34859
34842
  domain: "\u884C\u60C5\u770B\u76D8",
34860
34843
  what: "\u67E5\u770B\u4EA7\u54C1\u4EF7\u683C\u3001K\u7EBF\u3001\u6DF1\u5EA6\u3001\u6210\u4EA4\u8BB0\u5F55",
34861
34844
  when: ["BTC\u4EF7\u683C", "ETH\u884C\u60C5", "K\u7EBF", "\u6DA8\u8DCC", "\u6DF1\u5EA6", "\u76D8\u53E3", "\u6210\u4EA4\u8BB0\u5F55", "\u8D70\u52BF"],
34862
34845
  go_to: "okx_quick_market",
34846
+ go_to_params: "instId (\u5982 BTC-USDT\u3001ETH-USDT-SWAP)",
34863
34847
  also: [
34864
34848
  "okx_get_ticker \u2014 \u5355\u4E2A\u4EA7\u54C1\u5B9E\u65F6\u884C\u60C5",
34865
34849
  "okx_get_tickers \u2014 \u67D0\u7C7B\u578B\u5168\u90E8\u4EA7\u54C1\u884C\u60C5",
@@ -34870,13 +34854,122 @@ function registerAgentUtils(server, auth) {
34870
34854
  "okx_get_index_candles \u2014 \u6307\u6570K\u7EBF",
34871
34855
  "okx_get_mark_price_candles \u2014 \u6807\u8BB0\u4EF7K\u7EBF"
34872
34856
  ],
34873
- risk: "READ"
34857
+ risk: "READ",
34858
+ authRequired: false
34859
+ },
34860
+ {
34861
+ domain: "\u5E02\u573A\u626B\u63CF",
34862
+ what: "\u53D1\u73B0\u5E02\u573A\u673A\u4F1A\u3001\u6DA8\u5E45\u699C\u3001\u8DCC\u5E45\u699C\u3001\u8D44\u91D1\u8D39\u7387\u5F02\u5E38",
34863
+ when: ["\u4ECA\u5929\u6709\u4EC0\u4E48\u673A\u4F1A", "\u6DA8\u5E45\u699C", "\u8DCC\u5E45\u699C", "\u4EC0\u4E48\u5728\u6DA8", "\u4EC0\u4E48\u5728\u8DCC", "\u5F02\u52A8", "\u626B\u63CF"],
34864
+ go_to: "agent_market_scan",
34865
+ go_to_params: "instType? (\u9ED8\u8BA4SWAP), topN? (\u9ED8\u8BA410), sortBy? (change|vol|fundingRate)",
34866
+ also: [
34867
+ "okx_quick_market \u2014 \u6DF1\u5165\u770B\u67D0\u4E2A\u54C1\u79CD",
34868
+ "okx_get_funding_rate \u2014 \u6C38\u7EED\u5408\u7EA6\u8D44\u91D1\u8D39\u7387",
34869
+ "okx_get_tickers \u2014 \u5168\u5E02\u573A\u884C\u60C5"
34870
+ ],
34871
+ risk: "READ",
34872
+ authRequired: false
34873
+ },
34874
+ {
34875
+ domain: "\u6280\u672F\u6307\u6807",
34876
+ what: "\u6280\u672F\u5206\u6790\uFF1ARSI\u3001MACD\u3001\u5E03\u6797\u5E26\u3001KDJ\u3001ADX\u3001Supertrend \u7B49 17 \u79CD\u6307\u6807 + \u4FE1\u53F7\u89E3\u8BFB",
34877
+ when: ["RSI", "MACD", "\u5E03\u6797\u5E26", "KDJ", "ADX", "\u8D85\u4E70", "\u8D85\u5356", "\u91D1\u53C9", "\u6B7B\u53C9", "\u6280\u672F\u6307\u6807", "\u6307\u6807\u5206\u6790"],
34878
+ go_to: "okx_indicator",
34879
+ go_to_params: "instId, indicator (rsi|macd|bb|atr|stoch \u7B4917\u79CD), period?, bar? (\u9ED8\u8BA41H)",
34880
+ also: [
34881
+ "okx_indicator \u2014 \u5355\u6307\u6807\u8BA1\u7B97+\u4FE1\u53F7\u89E3\u8BFB",
34882
+ "okx_indicator_batch \u2014 \u591A\u6307\u6807\u6279\u91CF+\u7EFC\u5408\u4FE1\u53F7\uFF082\u4E2A\u5DE5\u5177\u4E92\u5907\uFF09",
34883
+ "okx_get_candles \u2014 \u539F\u59CBK\u7EBF\u6570\u636E"
34884
+ ],
34885
+ risk: "READ",
34886
+ authRequired: false
34887
+ },
34888
+ {
34889
+ domain: "\u6A21\u62DF\u4F30\u7B97",
34890
+ what: "\u4E0D\u4EA7\u751F\u771F\u5B9E\u8BA2\u5355\uFF0C\u9884\u4F30\u6210\u4EA4\u4EF7\u3001\u6ED1\u70B9\u3001\u624B\u7EED\u8D39\u3001\u4FDD\u8BC1\u91D1",
34891
+ when: ["\u5982\u679C\u4E70\u5165", "\u5982\u679C\u5356\u51FA", "\u6A21\u62DF", "\u9884\u4F30", "\u6C99\u76D2", "\u8BD5\u7B97", "\u4F1A\u600E\u6837"],
34892
+ go_to: "agent_simulate_order",
34893
+ go_to_params: "instId, side (buy|sell), sz, tdMode (cash|cross|isolated), px?",
34894
+ also: [
34895
+ "okx_preflight_check \u2014 \u4E0B\u5355\u524D\u53C2\u6570\u6821\u9A8C",
34896
+ "okx_position_builder \u2014 \u7EC4\u5408\u4FDD\u8BC1\u91D1\u8BD5\u7B97",
34897
+ "agent_quick_trade \u2014 \u786E\u8BA4\u540E\u771F\u5B9E\u4E0B\u5355\uFF08WRITE\uFF0C\u9700Key\uFF09"
34898
+ ],
34899
+ risk: "READ",
34900
+ authRequired: false
34901
+ },
34902
+ {
34903
+ domain: "WebSocket \u5B9E\u65F6",
34904
+ what: "\u5B9E\u65F6\u884C\u60C5\u63A8\u9001\u3001\u7206\u4ED3\u6D41\u3001\u4EF7\u5DEE/\u5927\u5B97\u6570\u636E\uFF08\u516C\u5F00\u9891\u9053 33 \u4E2A\uFF09",
34905
+ when: ["\u5B9E\u65F6", "\u8BA2\u9605", "\u63A8\u9001", "websocket", "ws", "\u76D1\u542C", "\u7206\u4ED3", "\u5B9E\u65F6\u884C\u60C5"],
34906
+ go_to: "okx_ws_subscribe",
34907
+ go_to_params: "instId (\u4EA7\u54C1ID), channel (33\u4E2A\u516C\u5F00\u9891\u9053)",
34908
+ also: [
34909
+ "okx_ws_subscribe_private \u2014 \u79C1\u6709\u9891\u9053\uFF08\u8D26\u6237/\u6301\u4ED3/\u8BA2\u5355\uFF0C\u9700Key\uFF09",
34910
+ "okx_ws_events \u2014 \u62C9\u53D6\u7F13\u51B2\u4E8B\u4EF6",
34911
+ "okx_ws_status \u2014 \u67E5\u770B\u8BA2\u9605\u72B6\u6001",
34912
+ "okx_ws_close \u2014 \u5173\u95ED\u8BA2\u9605"
34913
+ ],
34914
+ risk: "READ",
34915
+ authRequired: false
34916
+ },
34917
+ {
34918
+ domain: "\u4EE3\u7801\u667A\u80FD",
34919
+ what: "\u67E5\u8BE2 hvip-mcp \u81EA\u8EAB\u4EE3\u7801\u7ED3\u6784\uFF1A\u51FD\u6570\u8C03\u7528\u94FE\u3001\u6A21\u5757\u4F9D\u8D56\u3001\u7B26\u53F7\u641C\u7D22",
34920
+ when: ["\u4EE3\u7801\u7ED3\u6784", "\u8C03\u7528\u94FE", "\u8C01\u8C03\u7528\u4E86", "\u8C01\u88AB\u8C03\u7528", "\u4F9D\u8D56\u5173\u7CFB", "\u4E0A\u4E0B\u6E38", "\u4EE3\u7801\u641C\u7D22"],
34921
+ go_to: "codegraph_status",
34922
+ go_to_params: "\u65E0\u9700\u53C2\u6570",
34923
+ also: [
34924
+ "codegraph_query \u2014 \u8C03\u7528\u94FE\u8FFD\u8E2A (callers|callees|search|file|impact)"
34925
+ ],
34926
+ risk: "READ",
34927
+ authRequired: false
34928
+ },
34929
+ {
34930
+ domain: "\u7CFB\u7EDF\u5DE5\u5177",
34931
+ what: "\u504F\u597D\u8BBE\u7F6E\u3001\u53CD\u9988\u7559\u8A00\u3001Agent\u96C6\u7FA4\u7BA1\u7406\u3001X Layer \u94FE\u4E0A\u4EA4\u4E92",
34932
+ when: ["\u504F\u597D", "\u8BBE\u7F6E\u9ED8\u8BA4", "\u8BB0\u4F4F", "\u53CD\u9988", "\u5EFA\u8BAE", "Agent Hub", "\u96C6\u7FA4"],
34933
+ go_to: "agent_get_preference",
34934
+ go_to_params: "key? (\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8)",
34935
+ also: [
34936
+ "agent_set_preference \u2014 \u4FDD\u5B58\u504F\u597D",
34937
+ "okx_agent_feedback \u2014 \u63D0\u4EA4\u4F7F\u7528\u53CD\u9988",
34938
+ "agent_hub_status \u2014 Agent \u96C6\u7FA4\u72B6\u6001",
34939
+ "agent_hub_dispatch \u2014 \u6D3E\u53D1\u4EFB\u52A1",
34940
+ "agent_room_send \u2014 \u623F\u95F4\u6D88\u606F",
34941
+ "xlayer_subscribe \u2014 X Layer \u94FE\u4E0A\u4E8B\u4EF6",
34942
+ "xlayer_call \u2014 X Layer \u5408\u7EA6\u8C03\u7528\uFF08WRITE\uFF09"
34943
+ ],
34944
+ risk: "READ",
34945
+ authRequired: false
34946
+ },
34947
+ // ═══════════════════ 以下需要 API Key ═══════════════════
34948
+ {
34949
+ domain: "\u8D26\u6237\u8D44\u4EA7",
34950
+ what: "\u67E5\u770B\u8D26\u6237\u4F59\u989D\u3001\u6301\u4ED3\u3001\u914D\u7F6E\u3001\u624B\u7EED\u8D39\u3001\u4F30\u503C",
34951
+ when: ["\u6211\u7684\u8D26\u6237", "\u6301\u4ED3", "\u4F59\u989D", "\u4FDD\u8BC1\u91D1", "\u6760\u6746\u500D\u6570", "\u8D44\u4EA7\u4F30\u503C", "\u624B\u7EED\u8D39\u7387", "\u8D26\u6237\u914D\u7F6E"],
34952
+ go_to: "okx_account_overview",
34953
+ go_to_params: "\u65E0\u9700\u53C2\u6570",
34954
+ also: [
34955
+ "okx_get_balance \u2014 \u5404\u5E01\u79CD\u4F59\u989D\u660E\u7EC6",
34956
+ "okx_get_positions \u2014 \u6301\u4ED3\u8BE6\u60C5\uFF08\u542B\u5E73\u4ED3\u4E0A\u4E0B\u6587 _actionContext\uFF09",
34957
+ "okx_get_account_config \u2014 \u8D26\u6237\u6A21\u5F0F/\u6301\u4ED3\u6A21\u5F0F",
34958
+ "okx_get_asset_valuation \u2014 \u603B\u8D44\u4EA7\u4F30\u503C",
34959
+ "okx_get_fee_rates \u2014 \u624B\u7EED\u8D39\u7387",
34960
+ "okx_get_leverage_info \u2014 \u5F53\u524D\u6760\u6746\u500D\u6570",
34961
+ "okx_get_max_size \u2014 \u6700\u5927\u53EF\u5F00\u6570\u91CF",
34962
+ "okx_set_leverage \u2014 \u8C03\u6574\u6760\u6746\uFF08WRITE\uFF0C\u9700\u786E\u8BA4\uFF09"
34963
+ ],
34964
+ risk: "READ",
34965
+ authRequired: true
34874
34966
  },
34875
34967
  {
34876
34968
  domain: "\u4E0B\u5355\u4EA4\u6613",
34877
34969
  what: "\u4E0B\u5355\u3001\u64A4\u5355\u3001\u6539\u5355\u3001\u5E73\u4ED3",
34878
34970
  when: ["\u4E70\u5165", "\u5356\u51FA", "\u4E0B\u5355", "\u5F00\u4ED3", "\u5E73\u4ED3", "\u64A4\u5355", "\u6539\u5355", "\u6302\u5355"],
34879
34971
  go_to: "agent_quick_trade",
34972
+ go_to_params: "instId, side (buy|sell), sz, tdMode (cash|cross|isolated), px?, ordType? (market|limit)",
34880
34973
  also: [
34881
34974
  "okx_preflight_check \u2014 \u4E0B\u5355\u524D\u9884\u68C0\uFF08\u6570\u91CF/\u9650\u4EF7/\u5408\u7EA6\u6362\u7B97\uFF09",
34882
34975
  "agent_simulate_order \u2014 \u6A21\u62DF\u4E0B\u5355\uFF08\u4E0D\u4EA7\u751F\u771F\u5B9E\u8BA2\u5355\uFF09",
@@ -34891,13 +34984,15 @@ function registerAgentUtils(server, auth) {
34891
34984
  "okx_batch_cancel_orders \u2014 \u6279\u91CF\u64A4\u5355\uFF08WRITE\uFF09",
34892
34985
  "okx_amend_batch_orders \u2014 \u6279\u91CF\u6539\u5355\uFF08WRITE\uFF09"
34893
34986
  ],
34894
- risk: "WRITE"
34987
+ risk: "WRITE",
34988
+ authRequired: true
34895
34989
  },
34896
34990
  {
34897
34991
  domain: "\u98CE\u9669\u98CE\u63A7",
34898
34992
  what: "\u6301\u4ED3\u98CE\u9669\u8BC4\u4F30\u3001\u5F3A\u5E73\u9884\u8B66\u3001\u4FDD\u8BC1\u91D1\u7387",
34899
34993
  when: ["\u98CE\u9669", "\u7206\u4ED3", "\u5F3A\u5E73", "\u4FDD\u8BC1\u91D1\u7387", "\u5065\u5EB7\u5EA6", "\u98CE\u63A7", "\u4F1A\u4E0D\u4F1A\u7206"],
34900
34994
  go_to: "agent_risk_overview",
34995
+ go_to_params: "\u65E0\u9700\u53C2\u6570",
34901
34996
  also: [
34902
34997
  "okx_get_account_position_risk \u2014 \u8D26\u6237\u6301\u4ED3\u98CE\u9669\u8BE6\u60C5",
34903
34998
  "okx_get_risk_state \u2014 \u8D26\u6237\u98CE\u63A7\u72B6\u6001",
@@ -34905,38 +35000,30 @@ function registerAgentUtils(server, auth) {
34905
35000
  "okx_get_margin_balance \u2014 \u4FDD\u8BC1\u91D1\u4F59\u989D",
34906
35001
  "agent_quick_trade \u2014 \u98CE\u63A7\u544A\u8B66\u540E\u5E73\u4ED3\uFF08WRITE\uFF09"
34907
35002
  ],
34908
- risk: "READ"
34909
- },
34910
- {
34911
- domain: "\u5E02\u573A\u626B\u63CF",
34912
- what: "\u53D1\u73B0\u5E02\u573A\u673A\u4F1A\u3001\u6DA8\u5E45\u699C\u3001\u8DCC\u5E45\u699C\u3001\u8D44\u91D1\u8D39\u7387\u5F02\u5E38",
34913
- when: ["\u4ECA\u5929\u6709\u4EC0\u4E48\u673A\u4F1A", "\u6DA8\u5E45\u699C", "\u8DCC\u5E45\u699C", "\u4EC0\u4E48\u5728\u6DA8", "\u4EC0\u4E48\u5728\u8DCC", "\u5F02\u52A8", "\u626B\u63CF"],
34914
- go_to: "agent_market_scan",
34915
- also: [
34916
- "okx_quick_market \u2014 \u6DF1\u5165\u770B\u67D0\u4E2A\u54C1\u79CD",
34917
- "okx_get_funding_rate \u2014 \u6C38\u7EED\u5408\u7EA6\u8D44\u91D1\u8D39\u7387",
34918
- "okx_get_tickers \u2014 \u5168\u5E02\u573A\u884C\u60C5"
34919
- ],
34920
- risk: "READ"
35003
+ risk: "READ",
35004
+ authRequired: true
34921
35005
  },
34922
35006
  {
34923
35007
  domain: "\u76C8\u4E8F\u590D\u76D8",
34924
35008
  what: "\u8BA1\u7B97\u5DF2\u5B9E\u73B0/\u672A\u5B9E\u73B0\u76C8\u4E8F\u3001\u4EA4\u6613\u7EE9\u6548",
34925
35009
  when: ["\u8D5A\u4E86\u591A\u5C11", "\u4E8F\u4E86\u591A\u5C11", "\u76C8\u4E8F", "\u7EE9\u6548", "\u590D\u76D8", "PnL", "\u6536\u76CA"],
34926
35010
  go_to: "agent_pnl_report",
35011
+ go_to_params: "days? (\u9ED8\u8BA47)",
34927
35012
  also: [
34928
35013
  "okx_get_positions \u2014 \u5F53\u524D\u6D6E\u52A8\u76C8\u4E8F",
34929
35014
  "okx_get_orders_history \u2014 \u5386\u53F2\u8BA2\u5355\u76C8\u4E8F",
34930
35015
  "okx_get_positions_history \u2014 \u5386\u53F2\u5E73\u4ED3\u76C8\u4E8F",
34931
35016
  "okx_get_fills \u2014 \u6210\u4EA4\u660E\u7EC6"
34932
35017
  ],
34933
- risk: "READ"
35018
+ risk: "READ",
35019
+ authRequired: true
34934
35020
  },
34935
35021
  {
34936
35022
  domain: "\u8D44\u91D1\u7BA1\u7406",
34937
35023
  what: "\u5212\u8F6C\u3001\u63D0\u73B0\u3001\u5145\u503C\u3001\u5151\u6362",
34938
35024
  when: ["\u5212\u8F6C", "\u63D0\u73B0", "\u5145\u503C", "\u8F6C\u8D26", "\u5151\u6362", "\u95EA\u5151", "\u51FA\u5165\u91D1", "deposit", "withdraw"],
34939
35025
  go_to: "okx_get_balance",
35026
+ go_to_params: "ccy? (\u5982 BTC\uFF0C\u4E0D\u586B\u5168\u90E8)",
34940
35027
  also: [
34941
35028
  "okx_transfer \u2014 \u8D44\u91D1\u5212\u8F6C\uFF08WRITE\uFF0C\u9700\u786E\u8BA4\uFF09",
34942
35029
  "okx_withdrawal \u2014 \u63D0\u73B0\uFF08WRITE\uFF0C\u9700\u786E\u8BA4\uFF09",
@@ -34948,13 +35035,15 @@ function registerAgentUtils(server, auth) {
34948
35035
  "okx_get_currencies \u2014 \u94FE\u4E0A\u5E01\u79CD\u4FE1\u606F",
34949
35036
  "okx_get_funding_balance \u2014 \u8D44\u91D1\u8D26\u6237\u4F59\u989D"
34950
35037
  ],
34951
- risk: "FUND_TRANSFER"
35038
+ risk: "FUND_TRANSFER",
35039
+ authRequired: true
34952
35040
  },
34953
35041
  {
34954
35042
  domain: "\u7B56\u7565\u4EA4\u6613",
34955
35043
  what: "\u7F51\u683C\u3001\u8DDF\u5355\u3001\u4FE1\u53F7\u3001\u7B56\u7565\u59D4\u6258\u3001\u4EF7\u5DEE\u3001RFQ",
34956
35044
  when: ["\u7F51\u683C", "\u8DDF\u5355", "\u4FE1\u53F7", "\u7B56\u7565", "\u5B9A\u6295", "\u4EF7\u5DEE", "\u5927\u5B97", "RFQ"],
34957
35045
  go_to: "okx_get_grid_ai_param",
35046
+ go_to_params: "instType (SPOT|SWAP|FUTURES), algoOrdType (grid|contract_grid|recurring_buy|twap|iceberg)",
34958
35047
  also: [
34959
35048
  "okx_create_grid_order \u2014 \u521B\u5EFA\u7F51\u683C\uFF08WRITE\uFF0C\u9700\u786E\u8BA4\uFF09",
34960
35049
  "okx_stop_grid_order \u2014 \u505C\u6B62\u7F51\u683C",
@@ -34967,39 +35056,15 @@ function registerAgentUtils(server, auth) {
34967
35056
  "okx_get_algo_orders \u2014 \u7B56\u7565\u59D4\u6258\u5217\u8868",
34968
35057
  "okx_create_rfq \u2014 \u521B\u5EFA\u5927\u5B97\u8BE2\u4EF7\uFF08WRITE\uFF09"
34969
35058
  ],
34970
- risk: "WRITE"
34971
- },
34972
- {
34973
- domain: "\u9884\u6D4B\u5E02\u573A",
34974
- what: "\u4E8B\u4EF6\u5408\u7EA6\u3001\u9884\u6D4B\u5E02\u573A\u4EA4\u6613",
34975
- when: ["\u9884\u6D4B\u5E02\u573A", "\u4E8B\u4EF6\u5408\u7EA6", "outcomes", "predictions", "\u5BF9\u8D4C"],
34976
- go_to: "okx_event_instruments",
34977
- also: [
34978
- "okx_event_place_order \u2014 \u4E8B\u4EF6\u5408\u7EA6\u4E0B\u5355\uFF08WRITE\uFF09",
34979
- "okx_event_fills \u2014 \u4E8B\u4EF6\u5408\u7EA6\u6210\u4EA4",
34980
- "okx_predictions_positions \u2014 \u9884\u6D4B\u5E02\u573A\u6301\u4ED3",
34981
- "okx_predictions_order_list \u2014 \u9884\u6D4B\u5E02\u573A\u8BA2\u5355",
34982
- "okx_predictions_redeem \u2014 \u9884\u6D4B\u5E02\u573A\u8D4E\u56DE\uFF08WRITE\uFF09"
34983
- ],
34984
- risk: "READ"
34985
- },
34986
- {
34987
- domain: "\u6280\u672F\u6307\u6807",
34988
- what: "\u6280\u672F\u5206\u6790\u6307\u6807\u8BA1\u7B97\uFF1ARSI\u3001MACD\u3001\u5E03\u6797\u5E26\u3001ADX\u3001Supertrend \u7B49 17 \u79CD\u6307\u6807",
34989
- when: ["RSI", "MACD", "\u5E03\u6797\u5E26", "KDJ", "ADX", "\u8D85\u4E70", "\u8D85\u5356", "\u91D1\u53C9", "\u6B7B\u53C9", "\u6280\u672F\u6307\u6807", "\u6307\u6807\u5206\u6790"],
34990
- go_to: "okx_indicator",
34991
- also: [
34992
- "okx_indicator \u2014 \u5355\u6307\u6807\u8BA1\u7B97+\u4FE1\u53F7\u89E3\u8BFB",
34993
- "okx_indicator_batch \u2014 \u591A\u6307\u6807\u6279\u91CF+\u7EFC\u5408\u4FE1\u53F7",
34994
- "okx_get_candles \u2014 \u539F\u59CBK\u7EBF\u6570\u636E"
34995
- ],
34996
- risk: "READ"
35059
+ risk: "WRITE",
35060
+ authRequired: true
34997
35061
  },
34998
35062
  {
34999
35063
  domain: "\u806A\u660E\u94B1",
35000
35064
  what: "\u4EA4\u6613\u5458\u6392\u884C\u699C\u3001\u806A\u660E\u94B1\u6D41\u5411\u3001\u5E02\u573A\u60C5\u7EEA\u5206\u6790",
35001
35065
  when: ["\u4EA4\u6613\u5458", "\u6392\u884C\u699C", "\u806A\u660E\u94B1", "\u8DDF\u8C01\u8D5A\u94B1", "\u60C5\u7EEA", "\u591A\u7A7A\u6BD4", "\u6050\u614C", "smart money"],
35002
35066
  go_to: "okx_smart_leaderboard",
35067
+ go_to_params: "instType? (SPOT|SWAP), sortBy? (pnl|winRate|sharpe), topN?",
35003
35068
  also: [
35004
35069
  "okx_smart_leaderboard \u2014 \u4EA4\u6613\u5458\u6392\u884C\u699C",
35005
35070
  "okx_smart_trader_detail \u2014 \u5355\u4EA4\u6613\u5458\u6DF1\u5EA6\u5206\u6790",
@@ -35007,58 +35072,26 @@ function registerAgentUtils(server, auth) {
35007
35072
  "okx_get_lead_trader_positions \u2014 \u4EA4\u6613\u5458\u5F53\u524D\u6301\u4ED3",
35008
35073
  "okx_get_lead_trader_stats \u2014 \u4EA4\u6613\u5458\u5386\u53F2\u7EDF\u8BA1"
35009
35074
  ],
35010
- risk: "READ"
35075
+ risk: "READ",
35076
+ authRequired: true
35011
35077
  },
35012
35078
  {
35013
- domain: "WebSocket \u5B9E\u65F6",
35014
- what: "\u5B9E\u65F6\u884C\u60C5\u3001\u8D26\u6237\u3001\u8BA2\u5355\u3001\u7206\u4ED3\u3001\u4EF7\u5DEE\u3001\u5927\u5B97\u63A8\u9001\uFF0855 \u9891\u9053\uFF09",
35015
- when: ["\u5B9E\u65F6", "\u8BA2\u9605", "\u63A8\u9001", "websocket", "ws", "\u76D1\u542C", "\u7206\u4ED3", "\u5B9E\u65F6\u8BA2\u5355"],
35016
- go_to: "okx_ws_subscribe",
35017
- also: [
35018
- "okx_ws_subscribe_private \u2014 \u79C1\u6709\u9891\u9053\uFF08\u8D26\u6237/\u6301\u4ED3/\u8BA2\u5355\uFF0C\u9700Key\uFF09",
35019
- "okx_ws_events \u2014 \u62C9\u53D6\u7F13\u51B2\u4E8B\u4EF6",
35020
- "okx_ws_status \u2014 \u67E5\u770B\u8BA2\u9605\u72B6\u6001",
35021
- "okx_ws_close \u2014 \u5173\u95ED\u8BA2\u9605"
35022
- ],
35023
- risk: "READ"
35024
- },
35025
- {
35026
- domain: "\u6A21\u62DF\u4F30\u7B97",
35027
- what: "\u4E0D\u4EA7\u751F\u771F\u5B9E\u8BA2\u5355\uFF0C\u9884\u4F30\u6210\u4EA4\u4EF7\u3001\u6ED1\u70B9\u3001\u624B\u7EED\u8D39",
35028
- when: ["\u5982\u679C\u4E70\u5165", "\u5982\u679C\u5356\u51FA", "\u6A21\u62DF", "\u9884\u4F30", "\u6C99\u76D2", "\u8BD5\u7B97", "\u4F1A\u600E\u6837"],
35029
- go_to: "agent_simulate_order",
35030
- also: [
35031
- "agent_quick_trade \u2014 \u786E\u8BA4\u540E\u771F\u5B9E\u4E0B\u5355\uFF08WRITE\uFF09",
35032
- "okx_preflight_check \u2014 \u4E0B\u5355\u524D\u53C2\u6570\u6821\u9A8C",
35033
- "okx_position_builder \u2014 \u7EC4\u5408\u4FDD\u8BC1\u91D1\u8BD5\u7B97"
35034
- ],
35035
- risk: "READ"
35036
- },
35037
- {
35038
- domain: "\u4EE3\u7801\u667A\u80FD",
35039
- what: "\u67E5\u8BE2 hvip-mcp \u81EA\u8EAB\u4EE3\u7801\u7ED3\u6784\uFF1A\u51FD\u6570\u8C03\u7528\u94FE\u3001\u6A21\u5757\u4F9D\u8D56\u3001\u7B26\u53F7\u641C\u7D22",
35040
- when: ["\u4EE3\u7801\u7ED3\u6784", "\u8C03\u7528\u94FE", "\u8C01\u8C03\u7528\u4E86", "\u8C01\u88AB\u8C03\u7528", "\u4F9D\u8D56\u5173\u7CFB", "\u4E0A\u4E0B\u6E38", "\u4EE3\u7801\u641C\u7D22"],
35041
- go_to: "codegraph_status",
35042
- also: [
35043
- "codegraph_query \u2014 \u8C03\u7528\u94FE\u8FFD\u8E2A (callers/callees/explore/files)"
35044
- ],
35045
- risk: "READ"
35046
- },
35047
- {
35048
- domain: "\u7CFB\u7EDF\u5DE5\u5177",
35049
- what: "\u504F\u597D\u8BBE\u7F6E\u3001\u53CD\u9988\u7559\u8A00\u3001Agent\u96C6\u7FA4\u7BA1\u7406",
35050
- when: ["\u504F\u597D", "\u8BBE\u7F6E\u9ED8\u8BA4", "\u8BB0\u4F4F", "\u53CD\u9988", "\u5EFA\u8BAE", "Agent Hub", "\u96C6\u7FA4"],
35051
- go_to: "agent_get_preference",
35079
+ domain: "\u9884\u6D4B\u5E02\u573A",
35080
+ what: "\u4E8B\u4EF6\u5408\u7EA6\u3001\u9884\u6D4B\u5E02\u573A\u4EA4\u6613\uFF08\u516C\u5F00\u67E5\u8BE2 + \u9700Key\u4EA4\u6613\uFF09",
35081
+ when: ["\u9884\u6D4B\u5E02\u573A", "\u4E8B\u4EF6\u5408\u7EA6", "outcomes", "predictions", "\u5BF9\u8D4C"],
35082
+ go_to: "okx_event_instruments",
35083
+ go_to_params: "eventType? (\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8)",
35052
35084
  also: [
35053
- "agent_set_preference \u2014 \u4FDD\u5B58\u504F\u597D",
35054
- "okx_agent_feedback \u2014 \u63D0\u4EA4\u4F7F\u7528\u53CD\u9988",
35055
- "agent_hub_status \u2014 Agent \u96C6\u7FA4\u72B6\u6001",
35056
- "agent_hub_dispatch \u2014 \u6D3E\u53D1\u4EFB\u52A1",
35057
- "agent_room_send \u2014 \u623F\u95F4\u6D88\u606F",
35058
- "xlayer_subscribe \u2014 X Layer \u94FE\u4E0A\u4E8B\u4EF6",
35059
- "xlayer_call \u2014 X Layer \u5408\u7EA6\u8C03\u7528\uFF08WRITE\uFF09"
35085
+ "okx_predictions_ticker \u2014 \u9884\u6D4B\u5E02\u573A\u884C\u60C5\uFF08\u516C\u5F00\uFF09",
35086
+ "okx_predictions_orderbook \u2014 \u9884\u6D4B\u5E02\u573A\u6DF1\u5EA6\uFF08\u516C\u5F00\uFF09",
35087
+ "okx_event_place_order \u2014 \u4E8B\u4EF6\u5408\u7EA6\u4E0B\u5355\uFF08WRITE\uFF0C\u9700Key\uFF09",
35088
+ "okx_event_fills \u2014 \u4E8B\u4EF6\u5408\u7EA6\u6210\u4EA4\uFF08\u9700Key\uFF09",
35089
+ "okx_predictions_positions \u2014 \u9884\u6D4B\u5E02\u573A\u6301\u4ED3\uFF08\u9700Key\uFF09",
35090
+ "okx_predictions_order_list \u2014 \u9884\u6D4B\u5E02\u573A\u8BA2\u5355\uFF08\u9700Key\uFF09",
35091
+ "okx_predictions_redeem \u2014 \u9884\u6D4B\u5E02\u573A\u8D4E\u56DE\uFF08WRITE\uFF0C\u9700Key\uFF09"
35060
35092
  ],
35061
- risk: "READ"
35093
+ risk: "READ",
35094
+ authRequired: true
35062
35095
  }
35063
35096
  ],
35064
35097
  _tips: [
@@ -35067,7 +35100,7 @@ function registerAgentUtils(server, auth) {
35067
35100
  "\u5148\u6A21\u62DF\u540E\u4EA4\u6613: agent_simulate_order \u9884\u4F30 -> \u786E\u8BA4 -> agent_quick_trade \u4E0B\u5355",
35068
35101
  "WRITE \u5DE5\u5177\u4F1A\u4FEE\u6539\u8D26\u6237\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4\uFF0C\u4E0D\u53EF\u81EA\u52A8\u53D1\u8D77",
35069
35102
  "\u6280\u672F\u6307\u6807\u7528 okx_indicator \u5355\u4E2A\u8BA1\u7B97\u6216 okx_indicator_batch \u6279\u91CF\uFF0C\u652F\u6301 RSI/MACD/\u5E03\u6797\u5E26\u7B49 17 \u79CD",
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"
35103
+ "\u65E0 Key \u60F3\u770B\u76D8: okx_quick_market \u770B\u884C\u60C5 + okx_indicator \u770B\u6307\u6807 + agent_market_scan \u626B\u5E02\u573A"
35071
35104
  ]
35072
35105
  };
35073
35106
  registerTool(
@@ -35093,38 +35126,15 @@ function registerAgentUtils(server, auth) {
35093
35126
  setup.whatYouCanDoNow = "\u5F53\u524D\u65E0 API Key\uFF0C\u4F46\u4EE5\u4E0B\u57DF\u7684\u5DE5\u5177\u53EF\u7ACB\u5373\u4F7F\u7528: \u884C\u60C5\u770B\u76D8 / \u6280\u672F\u6307\u6807 / \u5E02\u573A\u626B\u63CF / \u806A\u660E\u94B1 / \u9884\u6D4B\u5E02\u573A\uFF08\u516C\u5F00\u67E5\u8BE2\uFF09/ WebSocket \u5B9E\u65F6 / \u7CFB\u7EDF\u5DE5\u5177";
35094
35127
  }
35095
35128
  const onboarding = hasAuth ? "API Key \u5DF2\u914D\u7F6E\u3002\u5EFA\u8BAE\u7B2C\u4E00\u6B65: agent_get_preference \u6062\u590D\u504F\u597D -> okx_account_overview \u4E86\u89E3\u8D26\u6237\u5168\u666F -> \u6839\u636E\u7528\u6237\u610F\u56FE\u5339\u914D\u57DF go_to \u5DE5\u5177" : "\u6B22\u8FCE\uFF01hvip MCP \u5DF2\u8FDE\u63A5\u4F46\u5C1A\u672A\u914D\u7F6E API Key\u3002\u544A\u8BC9\u7528\u6237\uFF1A\u60F3\u770B\u884C\u60C5\u548C\u6307\u6807\u73B0\u5728\u5C31\u80FD\u770B\uFF0C\u60F3\u770B\u8D26\u6237\u548C\u4EA4\u6613\u8BF7\u5148\u914D Key\u3002\u914D\u597D\u540E\u91CD\u8FDE MCP \u5373\u53EF\u3002";
35096
- const paramsHints = {
35097
- "okx_account_overview": "\u65E0\u9700\u53C2\u6570",
35098
- "okx_quick_market": "instId (\u5982 BTC-USDT\u3001ETH-USDT-SWAP)",
35099
- "okx_preflight_check": "instId, tdMode (cash|cross|isolated), sz, px?, side?, ordType?",
35100
- "agent_quick_trade": "instId, side (buy|sell), sz, tdMode (cash|cross|isolated), px?, ordType?",
35101
- "agent_risk_overview": "\u65E0\u9700\u53C2\u6570",
35102
- "agent_market_scan": "instType? (\u9ED8\u8BA4SWAP), topN?, sortBy? (change|vol|fundingRate)",
35103
- "agent_pnl_report": "days? (\u9ED8\u8BA47)",
35104
- "okx_get_balance": "ccy? (\u5982 BTC\uFF0C\u4E0D\u586B\u5168\u90E8)",
35105
- "agent_simulate_order": "instId, side, sz, tdMode, px?",
35106
- "okx_indicator": "instId, indicator (rsi|macd|bb|atr|stoch \u7B4917\u79CD), period?, bar? (\u9ED8\u8BA41H)",
35107
- "okx_indicator_batch": "instId, indicators (\u9017\u53F7\u5206\u9694\u5982 rsi,macd,bb), bar?",
35108
- "okx_smart_leaderboard": "instType?, sortBy?, topN?",
35109
- "okx_smart_trader_detail": "uniqueCode (\u4EA4\u6613\u5458\u7801), instType?",
35110
- "okx_smart_sentiment": "instFamily? (\u9ED8\u8BA4BTC-USD)",
35111
- "agent_get_preference": "key? (\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8)",
35112
- "agent_set_preference": "key, value",
35113
- "okx_event_instruments": "eventType? (\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8)",
35114
- "okx_ws_subscribe": "instId (\u4EA7\u54C1ID), channel (33\u4E2A\u516C\u5F00\u9891\u9053)",
35115
- "okx_ws_subscribe_private": "instId? (\u4EA7\u54C1ID), channel (22\u4E2A\u79C1\u6709\u9891\u9053\uFF0C\u9700Key)",
35116
- "okx_get_grid_ai_param": "instType, algoOrdType"
35117
- };
35118
- const enrichedDomains = CATALOG.domains.map((d) => ({
35119
- ...d,
35120
- go_to_params: paramsHints[d.go_to] || "\u89C1 agent_catalog_detail"
35121
- }));
35129
+ const publicDomains = CATALOG.domains.filter((d) => !d.authRequired);
35130
+ const authDomains = CATALOG.domains.filter((d) => d.authRequired);
35122
35131
  return toResult({
35123
35132
  tsIso: (/* @__PURE__ */ new Date()).toISOString(),
35124
35133
  _setup: setup,
35125
35134
  _onboarding: onboarding,
35126
35135
  _instruction: CATALOG._instruction,
35127
- domains: enrichedDomains,
35136
+ publicDomains,
35137
+ authDomains: hasAuth ? authDomains : authDomains.map((d) => ({ ...d, _disabled: "\u9700\u8981 API Key \u624D\u80FD\u4F7F\u7528\u6B64\u57DF" })),
35128
35138
  _tips: CATALOG._tips
35129
35139
  });
35130
35140
  } catch (e) {
@@ -35369,6 +35379,7 @@ function registerAgentUtils(server, auth) {
35369
35379
  async ({ domain }) => {
35370
35380
  try {
35371
35381
  const detail = DOMAIN_DETAILS[domain];
35382
+ const hasAuth = auth !== null;
35372
35383
  if (!detail) {
35373
35384
  return toResult({
35374
35385
  found: false,
@@ -35378,9 +35389,14 @@ function registerAgentUtils(server, auth) {
35378
35389
  tsIso: (/* @__PURE__ */ new Date()).toISOString()
35379
35390
  });
35380
35391
  }
35392
+ const needsKey = detail.authRequired && !hasAuth;
35381
35393
  return toResult({
35382
35394
  found: true,
35383
35395
  domain,
35396
+ authRequired: detail.authRequired,
35397
+ keyAvailable: hasAuth,
35398
+ usable: !detail.authRequired || hasAuth,
35399
+ _authWarning: needsKey ? "\u26A0\uFE0F \u6B64\u57DF\u9700\u8981 API Key\uFF0C\u5F53\u524D\u672A\u914D\u7F6E\u3002\u544A\u8BC9\u7528\u6237\u53BB OKX \u5B98\u7F51\u521B\u5EFA Key \u540E\u91CD\u8FDE\u3002" : null,
35384
35400
  ...detail,
35385
35401
  tsIso: (/* @__PURE__ */ new Date()).toISOString()
35386
35402
  });
@@ -37980,6 +37996,50 @@ function resolveTransportMode() {
37980
37996
  if (arg === "start:stdio" || arg === "" || arg.startsWith("-")) return "stdio";
37981
37997
  return "stdio";
37982
37998
  }
37999
+ function printHelpAndExit(version2) {
38000
+ process.stdout.write([
38001
+ ``,
38002
+ ` hvip-mcp v${version2} \u2014 OKX MCP \u670D\u52A1\u5668\uFF08\u975E OKX \u5B98\u65B9\u4EA7\u54C1\uFF09`,
38003
+ ``,
38004
+ ` \u{1F517} \u4ED3\u5E93: https://github.com/okx-wallet-H/hvip-mcp`,
38005
+ ``,
38006
+ ` \u26A0\uFE0F \u8FD9\u4E0D\u662F\u547D\u4EE4\u884C\u5DE5\u5177\uFF0C\u800C\u662F MCP (Model Context Protocol) \u670D\u52A1\u5668\u3002`,
38007
+ ` \u4F60\u4E0D\u80FD\u76F4\u63A5\u5728\u7EC8\u7AEF\u91CC\u8FD0\u884C\u5B83\u2014\u2014\u9700\u8981\u914D\u7F6E\u5230 MCP \u5BA2\u6237\u7AEF\uFF08Claude Desktop\u3001VS Code\u3001Cline \u7B49\uFF09\u4E2D\u3002`,
38008
+ ``,
38009
+ ` \u2500\u2500 \u5FEB\u901F\u5F00\u59CB \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`,
38010
+ ``,
38011
+ ` Claude Desktop\uFF08\u63A8\u8350\uFF09:`,
38012
+ ` 1. \u6253\u5F00 Claude Desktop \u2192 \u8BBE\u7F6E \u2192 Developer \u2192 Edit Config`,
38013
+ ` 2. \u5728 mcpServers \u4E2D\u6DFB\u52A0:`,
38014
+ ``,
38015
+ ` {`,
38016
+ ` "hvip": {`,
38017
+ ` "command": "npx",`,
38018
+ ` "args": ["-y", "hvip-mcp-server"]`,
38019
+ ` }`,
38020
+ ` }`,
38021
+ ``,
38022
+ ` VS Code / Cline:`,
38023
+ ` \u5728 MCP \u914D\u7F6E\u4E2D\u6DFB\u52A0\u540C\u6837\u7684 JSON\u3002`,
38024
+ ``,
38025
+ ` \u2500\u2500 \u53EF\u7528\u53C2\u6570 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`,
38026
+ ``,
38027
+ ` npx hvip-mcp-server \u542F\u52A8 MCP stdio \u670D\u52A1\u5668`,
38028
+ ` npx hvip-mcp-server start:http \u542F\u52A8 HTTP \u6A21\u5F0F (localhost:3000)`,
38029
+ ` npx hvip-mcp-server --help \u663E\u793A\u6B64\u5E2E\u52A9`,
38030
+ ` npx hvip-mcp-server --version \u663E\u793A\u7248\u672C\u53F7`,
38031
+ ``,
38032
+ ` \u2500\u2500 \u73AF\u5883\u53D8\u91CF \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500`,
38033
+ ``,
38034
+ ` OKX_API_KEY API Key\uFF08\u83B7\u53D6\uFF1AOKX \u5B98\u7F51 \u2192 \u4E2A\u4EBA\u4E2D\u5FC3 \u2192 API\uFF09`,
38035
+ ` OKX_SECRET_KEY Secret Key`,
38036
+ ` OKX_PASSPHRASE Passphrase`,
38037
+ ` PORT=3000 HTTP \u6A21\u5F0F\u7AEF\u53E3\uFF08\u9ED8\u8BA4 3000\uFF09`,
38038
+ ` HOST=127.0.0.1 HTTP \u6A21\u5F0F\u7ED1\u5B9A\u5730\u5740`,
38039
+ ``
38040
+ ].join("\n") + "\n");
38041
+ process.exit(0);
38042
+ }
37983
38043
  function registerAllTools(server, auth, readOnly) {
37984
38044
  let skipped = 0;
37985
38045
  const skipLog = [];
@@ -38152,7 +38212,14 @@ async function startStdio(server, version2, auth, readOnly, skipped, skipLog) {
38152
38212
  await server.connect(transport);
38153
38213
  }
38154
38214
  async function main() {
38155
- const VERSION = "0.2.53";
38215
+ const VERSION = "0.2.55";
38216
+ const argv = process.argv.slice(2);
38217
+ if (argv.includes("--help") || argv.includes("-h")) printHelpAndExit(VERSION);
38218
+ if (argv.includes("--version") || argv.includes("-v")) {
38219
+ process.stdout.write(`hvip-mcp v${VERSION}
38220
+ `);
38221
+ process.exit(0);
38222
+ }
38156
38223
  const auth = getAuth();
38157
38224
  const mode = resolveTransportMode();
38158
38225
  const exec = resolveExecutionMode();
@@ -38166,6 +38233,11 @@ async function main() {
38166
38233
  if (mode === "http") {
38167
38234
  await startHttp(server, VERSION, auth, readOnly, skipped);
38168
38235
  } else {
38236
+ if (process.stdin.isTTY && process.env.NODE_ENV !== "production") {
38237
+ process.stderr.write("\n[hint] \u68C0\u6D4B\u5230\u4F60\u5728\u7EC8\u7AEF\u76F4\u63A5\u8FD0\u884C hvip-mcp\u3002\n");
38238
+ process.stderr.write("[hint] hvip-mcp \u662F MCP \u670D\u52A1\u5668\uFF0C\u9700\u8981\u5728 MCP \u5BA2\u6237\u7AEF\uFF08\u5982 Claude Desktop\uFF09\u4E2D\u914D\u7F6E\u3002\n");
38239
+ process.stderr.write("[hint] \u8FD0\u884C npx hvip-mcp-server --help \u67E5\u770B\u914D\u7F6E\u65B9\u6CD5\u3002\n\n");
38240
+ }
38169
38241
  await startStdio(server, VERSION, auth, readOnly, skipped, skipLog);
38170
38242
  }
38171
38243
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hvip-mcp-server",
3
- "version": "0.2.53",
3
+ "version": "0.2.55",
4
4
  "description": "hvip MCP Server — 365 工具覆盖 97.7% OKX REST API,含交易/行情/资金/策略/预测市场/技术指标/Smart Money(非 OKX 官方产品)",
5
5
  "homepage": "https://github.com/okx-wallet-H/hvip-mcp",
6
6
  "repository": {