hvip-mcp-server 0.1.7 → 0.1.8

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 +116 -2
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -21237,7 +21237,14 @@ var privateApi = {
21237
21237
  getSavingsBalance: (auth, ccy) => request("GET", "/api/v5/finance/savings/balance", { params: { ccy }, auth }),
21238
21238
  getSavingsLendingHistory: (auth, ccy) => request("GET", "/api/v5/finance/savings/lending-history", { params: { ccy }, auth }),
21239
21239
  getStakingOffers: (auth, productId) => request("GET", "/api/v5/finance/staking-defi/offers", { params: { productId }, auth }),
21240
- getEarnOffers: (ccy, productId) => request("GET", "/api/v5/finance/staking-defi/eth/balance", { params: { ccy, productId } })
21240
+ getEarnOffers: (ccy, productId) => request("GET", "/api/v5/finance/staking-defi/eth/balance", { params: { ccy, productId } }),
21241
+ // ── 信号交易(私有) ──────────────────────────────────────────────────────────
21242
+ getSignalBotsPending: (auth, algoId, instType) => request("GET", "/api/v5/tradingBot/signal/orders-algo-pending", { params: { algoOrdType: "contract", algoId, instType }, auth }),
21243
+ getSignalBotsHistory: (auth, algoId, instType, limit) => request("GET", "/api/v5/tradingBot/signal/orders-algo-history", { params: { algoOrdType: "contract", algoId, instType, limit }, auth }),
21244
+ getSignalPositions: (auth, algoId) => request("GET", "/api/v5/tradingBot/signal/positions", { params: { algoId }, auth }),
21245
+ getSignalPositionsHistory: (auth, algoId, limit) => request("GET", "/api/v5/tradingBot/signal/positions-history", { params: { algoOrdType: "contract", algoId, limit }, auth }),
21246
+ getSignalSubOrders: (auth, algoId, limit) => request("GET", "/api/v5/tradingBot/signal/sub-orders", { params: { algoOrdType: "contract", algoId, limit }, auth }),
21247
+ getSignalEventHistory: (auth, algoId, limit) => request("GET", "/api/v5/tradingBot/signal/event-histories", { params: { algoId, limit }, auth })
21241
21248
  };
21242
21249
 
21243
21250
  // src/adapters/hrails.ts
@@ -22764,9 +22771,115 @@ function registerCopyTools(server, auth) {
22764
22771
  );
22765
22772
  }
22766
22773
 
22774
+ // src/tools/signal.ts
22775
+ function registerSignalTools(server, auth) {
22776
+ server.tool(
22777
+ "okx_get_signal_bots_pending",
22778
+ "\u67E5\u8BE2\u5F53\u524D\u8FD0\u884C\u4E2D\u7684\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\u5217\u8868\uFF0C\u542B\u54C1\u79CD\u3001\u65B9\u5411\u3001\u4ED3\u4F4D\u548C\u4FE1\u53F7\u6765\u6E90\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22779
+ {
22780
+ algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8"),
22781
+ instType: external_exports.enum(["SPOT", "SWAP", "FUTURES", "MARGIN"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B")
22782
+ },
22783
+ async ({ algoId, instType }) => {
22784
+ if (!auth) return toError(AUTH_REQUIRED);
22785
+ try {
22786
+ const data = await privateApi.getSignalBotsPending(auth, algoId, instType);
22787
+ return toResult(data);
22788
+ } catch (e) {
22789
+ return toError(e);
22790
+ }
22791
+ }
22792
+ );
22793
+ server.tool(
22794
+ "okx_get_signal_bots_history",
22795
+ "\u67E5\u8BE2\u5DF2\u505C\u6B62\u7684\u4FE1\u53F7\u4EA4\u6613\u673A\u5668\u4EBA\u5386\u53F2\u8BB0\u5F55\uFF0C\u542B\u6BCF\u4E2A\u673A\u5668\u4EBA\u7684\u7D2F\u8BA1\u76C8\u4E8F\u548C\u8FD0\u884C\u65F6\u957F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22796
+ {
22797
+ algoId: external_exports.string().optional().describe("\u6307\u5B9A\u673A\u5668\u4EBAID"),
22798
+ instType: external_exports.enum(["SPOT", "SWAP", "FUTURES", "MARGIN"]).optional().describe("\u4EA7\u54C1\u7C7B\u578B"),
22799
+ limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
22800
+ },
22801
+ async ({ algoId, instType, limit }) => {
22802
+ if (!auth) return toError(AUTH_REQUIRED);
22803
+ try {
22804
+ const data = await privateApi.getSignalBotsHistory(auth, algoId, instType, limit);
22805
+ return toResult(data);
22806
+ } catch (e) {
22807
+ return toError(e);
22808
+ }
22809
+ }
22810
+ );
22811
+ server.tool(
22812
+ "okx_get_signal_positions",
22813
+ "\u67E5\u8BE2\u6307\u5B9A\u4FE1\u53F7\u673A\u5668\u4EBA\u7684\u5F53\u524D\u6301\u4ED3\uFF0C\u542B\u672A\u5B9E\u73B0\u76C8\u4E8F\u548C\u5F00\u4ED3\u5747\u4EF7\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22814
+ {
22815
+ algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_pending \u83B7\u53D6\uFF09")
22816
+ },
22817
+ async ({ algoId }) => {
22818
+ if (!auth) return toError(AUTH_REQUIRED);
22819
+ try {
22820
+ const data = await privateApi.getSignalPositions(auth, algoId);
22821
+ return toResult(data);
22822
+ } catch (e) {
22823
+ return toError(e);
22824
+ }
22825
+ }
22826
+ );
22827
+ server.tool(
22828
+ "okx_get_signal_positions_history",
22829
+ "\u67E5\u8BE2\u6307\u5B9A\u4FE1\u53F7\u673A\u5668\u4EBA\u7684\u5386\u53F2\u6301\u4ED3\u8BB0\u5F55\uFF0C\u542B\u6BCF\u7B14\u7684\u5B9E\u73B0\u76C8\u4E8F\u548C\u6301\u4ED3\u65F6\u957F\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22830
+ {
22831
+ algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID\uFF08\u4ECE okx_get_signal_bots_history \u83B7\u53D6\uFF09"),
22832
+ limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
22833
+ },
22834
+ async ({ algoId, limit }) => {
22835
+ if (!auth) return toError(AUTH_REQUIRED);
22836
+ try {
22837
+ const data = await privateApi.getSignalPositionsHistory(auth, algoId, limit);
22838
+ return toResult(data);
22839
+ } catch (e) {
22840
+ return toError(e);
22841
+ }
22842
+ }
22843
+ );
22844
+ server.tool(
22845
+ "okx_get_signal_sub_orders",
22846
+ "\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u89E6\u53D1\u7684\u5B50\u8BA2\u5355\u5217\u8868\uFF0C\u53EF\u8FFD\u8E2A\u6BCF\u4E2A\u4FE1\u53F7\u5BF9\u5E94\u7684\u5B9E\u9645\u4E0B\u5355\u60C5\u51B5\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22847
+ {
22848
+ algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
22849
+ limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
22850
+ },
22851
+ async ({ algoId, limit }) => {
22852
+ if (!auth) return toError(AUTH_REQUIRED);
22853
+ try {
22854
+ const data = await privateApi.getSignalSubOrders(auth, algoId, limit);
22855
+ return toResult(data);
22856
+ } catch (e) {
22857
+ return toError(e);
22858
+ }
22859
+ }
22860
+ );
22861
+ server.tool(
22862
+ "okx_get_signal_event_history",
22863
+ "\u67E5\u8BE2\u4FE1\u53F7\u673A\u5668\u4EBA\u6536\u5230\u7684\u4FE1\u53F7\u4E8B\u4EF6\u5386\u53F2\uFF0C\u542B\u6BCF\u6761\u4FE1\u53F7\u7684\u5185\u5BB9\u3001\u89E6\u53D1\u65F6\u95F4\u548C\u6267\u884C\u7ED3\u679C\u3002\u26A0\uFE0F \u9700\u8981API Key\u9274\u6743\u3002",
22864
+ {
22865
+ algoId: external_exports.string().describe("\u4FE1\u53F7\u673A\u5668\u4EBAID"),
22866
+ limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA420")
22867
+ },
22868
+ async ({ algoId, limit }) => {
22869
+ if (!auth) return toError(AUTH_REQUIRED);
22870
+ try {
22871
+ const data = await privateApi.getSignalEventHistory(auth, algoId, limit);
22872
+ return toResult(data);
22873
+ } catch (e) {
22874
+ return toError(e);
22875
+ }
22876
+ }
22877
+ );
22878
+ }
22879
+
22767
22880
  // src/index.ts
22768
22881
  async function main() {
22769
- const server = new McpServer({ name: "hvip", version: "0.1.7" });
22882
+ const server = new McpServer({ name: "hvip", version: "0.1.8" });
22770
22883
  const auth = getAuth();
22771
22884
  registerMarketTools(server);
22772
22885
  registerPublicTools(server);
@@ -22778,6 +22891,7 @@ async function main() {
22778
22891
  registerAlgoTools(server, auth);
22779
22892
  registerBotTools(server, auth);
22780
22893
  registerCopyTools(server, auth);
22894
+ registerSignalTools(server, auth);
22781
22895
  registerFundingTools(server, auth);
22782
22896
  registerSubAccountTools(server, auth);
22783
22897
  registerFinanceTools(server, auth);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hvip-mcp-server",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "OKX ecosystem MCP server — full API coverage for AI agents",
5
5
  "homepage": "https://hvip.one",
6
6
  "license": "MIT",