hvip-mcp-server 0.2.31 → 0.2.33
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.
- package/dist/index.js +167 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21467,7 +21467,18 @@ var privateApi = {
|
|
|
21467
21467
|
getStableRewardsProductInfo: (auth) => request("GET", "/api/v5/finance/stable-rewards/product-info", { auth }),
|
|
21468
21468
|
getStableRewardsQuote: (auth, body) => request("POST", "/api/v5/finance/stable-rewards/quote", { body, auth }),
|
|
21469
21469
|
getEasyConvertCurrencyList: (auth) => request("GET", "/api/v5/trade/easy-convert-currency-list", { auth }),
|
|
21470
|
-
|
|
21470
|
+
// ── v0.2.31 最后批 ────────────────────────────────────────────────────
|
|
21471
|
+
getLendingRateHistoryDetail: () => request("GET", "/api/v5/finance/savings/lending-rate-history"),
|
|
21472
|
+
setLendingRate: (auth, body) => request("POST", "/api/v5/finance/savings/set-lending-rate", { body, auth }),
|
|
21473
|
+
getStableRewardsApyHistory: (auth) => request("GET", "/api/v5/finance/stable-rewards/apy-history", { auth }),
|
|
21474
|
+
getStableRewardsHistory: (auth) => request("GET", "/api/v5/finance/stable-rewards/subscribe-redeem-history", { auth }),
|
|
21475
|
+
getSfpOrderHistory: (auth) => request("GET", "/api/v5/finance/sfp/dcd/order-history", { auth }),
|
|
21476
|
+
getAccountBillsArchive: (auth) => request("GET", "/api/v5/account/bills-archive", { auth }),
|
|
21477
|
+
setAutoLoan: (auth, body) => request("POST", "/api/v5/account/set-auto-loan", { body, auth }),
|
|
21478
|
+
// ── 最终收尾 ──────────────────────────────────────────────
|
|
21479
|
+
getAssetBalances: (auth, ccy) => request("GET", "/api/v5/asset/balances", { params: { ccy }, auth }),
|
|
21480
|
+
setTradingConfig: (auth, body) => request("POST", "/api/v5/account/set-trading-config", { body, auth }),
|
|
21481
|
+
movePositions: (auth, body) => request("POST", "/api/v5/account/move-positions", { body, auth })
|
|
21471
21482
|
};
|
|
21472
21483
|
|
|
21473
21484
|
// src/adapters/hrails.ts
|
|
@@ -23284,6 +23295,71 @@ function registerAccountTools(server, auth) {
|
|
|
23284
23295
|
}
|
|
23285
23296
|
}
|
|
23286
23297
|
);
|
|
23298
|
+
server.tool(
|
|
23299
|
+
"okx_get_account_bills_archive",
|
|
23300
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5F52\u6863\u8D26\u5355\u6D41\u6C34\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B3\u4E2A\u6708\u524D\u7684\u5386\u53F2\u8D26\u5355\n## \u5173\u952E\u8BCD\uFF1A\u5F52\u6863\u8D26\u5355, bills archive, \u5386\u53F2\u8D26\u5355\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~10KB",
|
|
23301
|
+
{},
|
|
23302
|
+
async () => {
|
|
23303
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23304
|
+
try {
|
|
23305
|
+
const data = await privateApi.getAccountBillsArchive(auth);
|
|
23306
|
+
return toResult(data);
|
|
23307
|
+
} catch (e) {
|
|
23308
|
+
return toError(e);
|
|
23309
|
+
}
|
|
23310
|
+
}
|
|
23311
|
+
);
|
|
23312
|
+
server.tool(
|
|
23313
|
+
"okx_set_auto_loan",
|
|
23314
|
+
"## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u81EA\u52A8\u501F\u8D37\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u542F\u6216\u5173\u95ED\u6760\u6746\u4EA4\u6613\u7684\u81EA\u52A8\u501F\u5E01\u529F\u80FD\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - side: \u65B9\u5411\u3002on=\u5F00\u542F, off=\u5173\u95ED\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u81EA\u52A8\u501F\u8D37\u8BBE\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F71\u54CD\u6760\u6746\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B",
|
|
23315
|
+
{
|
|
23316
|
+
ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
23317
|
+
side: external_exports.enum(["on", "off"]).describe("\u65B9\u5411\u3002on=\u5F00\u542F, off=\u5173\u95ED")
|
|
23318
|
+
},
|
|
23319
|
+
async ({ ccy, side }) => {
|
|
23320
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23321
|
+
try {
|
|
23322
|
+
const data = await privateApi.setAutoLoan(auth, { ccy, autoLoan: side === "on" });
|
|
23323
|
+
return toResult(data);
|
|
23324
|
+
} catch (e) {
|
|
23325
|
+
return toError(e);
|
|
23326
|
+
}
|
|
23327
|
+
}
|
|
23328
|
+
);
|
|
23329
|
+
server.tool(
|
|
23330
|
+
"okx_set_trading_config",
|
|
23331
|
+
"## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u4EA4\u6613\u914D\u7F6E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u8D26\u6237\u7684\u4EA4\u6613\u53C2\u6570\u8BBE\u7F6E\n## \u53C2\u6570\uFF1A\n## - jsonString: \u914D\u7F6E\u53C2\u6570JSON\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u4EA4\u6613\u914D\u7F6E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F71\u54CD\u4EA4\u6613\u884C\u4E3A\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B",
|
|
23332
|
+
{
|
|
23333
|
+
jsonString: external_exports.string().describe("\u914D\u7F6E\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
|
|
23334
|
+
},
|
|
23335
|
+
async ({ jsonString }) => {
|
|
23336
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23337
|
+
try {
|
|
23338
|
+
const parsed = JSON.parse(jsonString);
|
|
23339
|
+
const data = await privateApi.setTradingConfig(auth, parsed);
|
|
23340
|
+
return toResult(data);
|
|
23341
|
+
} catch (e) {
|
|
23342
|
+
return toError(e);
|
|
23343
|
+
}
|
|
23344
|
+
}
|
|
23345
|
+
);
|
|
23346
|
+
server.tool(
|
|
23347
|
+
"okx_move_positions",
|
|
23348
|
+
"## \u529F\u80FD\uFF1A\u8FC1\u79FB\u6301\u4ED3\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u6301\u4ED3\u5728\u4E0D\u540C\u8D26\u6237\u95F4\u8FC1\u79FB\n## \u53C2\u6570\uFF1A\n## - body: \u8FC1\u79FB\u53C2\u6570JSON\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u8FC1\u79FB\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u5F71\u54CD\u6301\u4ED3\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~2KB",
|
|
23349
|
+
{
|
|
23350
|
+
body: external_exports.string().describe("\u8FC1\u79FB\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
|
|
23351
|
+
},
|
|
23352
|
+
async ({ body }) => {
|
|
23353
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23354
|
+
try {
|
|
23355
|
+
const parsed = JSON.parse(body);
|
|
23356
|
+
const data = await privateApi.movePositions(auth, parsed);
|
|
23357
|
+
return toResult(data);
|
|
23358
|
+
} catch (e) {
|
|
23359
|
+
return toError(e);
|
|
23360
|
+
}
|
|
23361
|
+
}
|
|
23362
|
+
);
|
|
23287
23363
|
}
|
|
23288
23364
|
|
|
23289
23365
|
// src/tools/trading.ts
|
|
@@ -24199,6 +24275,20 @@ function registerFundingTools(server, auth) {
|
|
|
24199
24275
|
}
|
|
24200
24276
|
}
|
|
24201
24277
|
);
|
|
24278
|
+
server.tool(
|
|
24279
|
+
"okx_get_asset_balances",
|
|
24280
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u8D26\u6237\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D44\u91D1\u8D26\u6237\u5404\u5E01\u79CD\u53EF\u7528\u548C\u51BB\u7ED3\u4F59\u989D\n## \u53C2\u6570\uFF1A\n## - ccy: \u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
|
|
24281
|
+
{ ccy: external_exports.string().optional().describe("\u6307\u5B9A\u5E01\u79CD\uFF0C\u4E0D\u586B\u8FD4\u56DE\u5168\u90E8") },
|
|
24282
|
+
async ({ ccy }) => {
|
|
24283
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24284
|
+
try {
|
|
24285
|
+
const data = await privateApi.getAssetBalances(auth, ccy);
|
|
24286
|
+
return toResult(data);
|
|
24287
|
+
} catch (e) {
|
|
24288
|
+
return toError(e);
|
|
24289
|
+
}
|
|
24290
|
+
}
|
|
24291
|
+
);
|
|
24202
24292
|
}
|
|
24203
24293
|
|
|
24204
24294
|
// src/tools/stats.ts
|
|
@@ -25280,6 +25370,82 @@ function registerFinanceTools(server, auth) {
|
|
|
25280
25370
|
}
|
|
25281
25371
|
}
|
|
25282
25372
|
);
|
|
25373
|
+
server.tool(
|
|
25374
|
+
"okx_get_lending_rate_history",
|
|
25375
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6D3B\u671F\u501F\u5E01\u5229\u7387\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u501F\u5E01\u5229\u7387\u8D70\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5229\u7387\u5386\u53F2, lending rate history, \u501F\u5E01\u5229\u7387\u8D70\u52BF\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5229\u7387\u5386\u53F2 \u2192 okx_get_savings_balance \u770B\u4F59\u989D",
|
|
25376
|
+
{},
|
|
25377
|
+
async () => {
|
|
25378
|
+
try {
|
|
25379
|
+
const data = await privateApi.getLendingRateHistoryDetail();
|
|
25380
|
+
const enriched = data.map((item) => ({
|
|
25381
|
+
...item,
|
|
25382
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
25383
|
+
}));
|
|
25384
|
+
return toResult(enriched);
|
|
25385
|
+
} catch (e) {
|
|
25386
|
+
return toError(e);
|
|
25387
|
+
}
|
|
25388
|
+
}
|
|
25389
|
+
);
|
|
25390
|
+
server.tool(
|
|
25391
|
+
"okx_set_lending_rate",
|
|
25392
|
+
"## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u6D3B\u671F\u8D5A\u5E01\u51FA\u501F\u5229\u7387\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8C03\u6574\u6D3B\u671F\u8D5A\u5E01\u7684\u671F\u671B\u51FA\u501F\u5229\u7387\n## \u53C2\u6570\uFF1A\n## - ccy: \u5E01\u79CD\u3002\u5FC5\u586B\n## - rate: \u51FA\u501F\u5229\u7387\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4FEE\u6539\u5229\u7387\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AWRITE \u2014 \u4FEE\u6539\u5229\u7387\u5F71\u54CD\u6536\u76CA\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u8BBE\u5229\u7387 \u2192 okx_get_savings_balance \u786E\u8BA4\u751F\u6548",
|
|
25393
|
+
{
|
|
25394
|
+
ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
25395
|
+
rate: external_exports.string().describe("\u51FA\u501F\u5229\u7387\u3002\u5FC5\u586B")
|
|
25396
|
+
},
|
|
25397
|
+
async ({ ccy, rate }) => {
|
|
25398
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25399
|
+
try {
|
|
25400
|
+
const data = await privateApi.setLendingRate(auth, { ccy, rate });
|
|
25401
|
+
return toResult(data);
|
|
25402
|
+
} catch (e) {
|
|
25403
|
+
return toError(e);
|
|
25404
|
+
}
|
|
25405
|
+
}
|
|
25406
|
+
);
|
|
25407
|
+
server.tool(
|
|
25408
|
+
"okx_get_stable_rewards_apy",
|
|
25409
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7A33\u5B9A\u5E01\u5956\u52B1APY\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7A33\u5B9A\u5E01\u7406\u8D22\u7684\u5E74\u5316\u6536\u76CA\u7387\u5386\u53F2\n## \u5173\u952E\u8BCD\uFF1A\u7A33\u5B9A\u5E01APY, stable apy, \u5E74\u5316\u5386\u53F2\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
|
|
25410
|
+
{},
|
|
25411
|
+
async () => {
|
|
25412
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25413
|
+
try {
|
|
25414
|
+
const data = await privateApi.getStableRewardsApyHistory(auth);
|
|
25415
|
+
return toResult(data);
|
|
25416
|
+
} catch (e) {
|
|
25417
|
+
return toError(e);
|
|
25418
|
+
}
|
|
25419
|
+
}
|
|
25420
|
+
);
|
|
25421
|
+
server.tool(
|
|
25422
|
+
"okx_get_stable_rewards_history",
|
|
25423
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u7A33\u5B9A\u5E01\u5956\u52B1\u7533\u8D2D\u8D4E\u56DE\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7A33\u5B9A\u5E01\u7406\u8D22\u7684\u64CD\u4F5C\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u7A33\u5B9A\u5E01\u8BB0\u5F55, stable history, \u7533\u8D2D\u8D4E\u56DE\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
|
|
25424
|
+
{},
|
|
25425
|
+
async () => {
|
|
25426
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25427
|
+
try {
|
|
25428
|
+
const data = await privateApi.getStableRewardsHistory(auth);
|
|
25429
|
+
return toResult(data);
|
|
25430
|
+
} catch (e) {
|
|
25431
|
+
return toError(e);
|
|
25432
|
+
}
|
|
25433
|
+
}
|
|
25434
|
+
);
|
|
25435
|
+
server.tool(
|
|
25436
|
+
"okx_get_sfp_order_history",
|
|
25437
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u9CA8\u9C7C\u9CCD\u4EA7\u54C1\u8BA2\u5355\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u9CA8\u9C7C\u9CCD\u4EA7\u54C1\u7684\u7533\u8D2D\u8D4E\u56DE\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u9CA8\u9C7C\u9CCD\u5386\u53F2, sfp history, \u7ED3\u6784\u4EA7\u54C1\u8BA2\u5355\n## \u53C2\u6570\uFF1A\u65E0\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981 API Key\uFF08\u53EA\u8BFB\uFF09\n## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB",
|
|
25438
|
+
{},
|
|
25439
|
+
async () => {
|
|
25440
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25441
|
+
try {
|
|
25442
|
+
const data = await privateApi.getSfpOrderHistory(auth);
|
|
25443
|
+
return toResult(data);
|
|
25444
|
+
} catch (e) {
|
|
25445
|
+
return toError(e);
|
|
25446
|
+
}
|
|
25447
|
+
}
|
|
25448
|
+
);
|
|
25283
25449
|
}
|
|
25284
25450
|
|
|
25285
25451
|
// src/tools/outcomes.ts
|