hvip-mcp-server 0.2.31 → 0.2.32
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 +151 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21467,7 +21467,16 @@ 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
|
+
setTradingConfig: (auth, body) => request("POST", "/api/v5/account/set-trading-config", { body, auth }),
|
|
21479
|
+
movePositions: (auth, body) => request("POST", "/api/v5/account/move-positions", { body, auth })
|
|
21471
21480
|
};
|
|
21472
21481
|
|
|
21473
21482
|
// src/adapters/hrails.ts
|
|
@@ -23284,6 +23293,71 @@ function registerAccountTools(server, auth) {
|
|
|
23284
23293
|
}
|
|
23285
23294
|
}
|
|
23286
23295
|
);
|
|
23296
|
+
server.tool(
|
|
23297
|
+
"okx_get_account_bills_archive",
|
|
23298
|
+
"## \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",
|
|
23299
|
+
{},
|
|
23300
|
+
async () => {
|
|
23301
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23302
|
+
try {
|
|
23303
|
+
const data = await privateApi.getAccountBillsArchive(auth);
|
|
23304
|
+
return toResult(data);
|
|
23305
|
+
} catch (e) {
|
|
23306
|
+
return toError(e);
|
|
23307
|
+
}
|
|
23308
|
+
}
|
|
23309
|
+
);
|
|
23310
|
+
server.tool(
|
|
23311
|
+
"okx_set_auto_loan",
|
|
23312
|
+
"## \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",
|
|
23313
|
+
{
|
|
23314
|
+
ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
23315
|
+
side: external_exports.enum(["on", "off"]).describe("\u65B9\u5411\u3002on=\u5F00\u542F, off=\u5173\u95ED")
|
|
23316
|
+
},
|
|
23317
|
+
async ({ ccy, side }) => {
|
|
23318
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23319
|
+
try {
|
|
23320
|
+
const data = await privateApi.setAutoLoan(auth, { ccy, autoLoan: side === "on" });
|
|
23321
|
+
return toResult(data);
|
|
23322
|
+
} catch (e) {
|
|
23323
|
+
return toError(e);
|
|
23324
|
+
}
|
|
23325
|
+
}
|
|
23326
|
+
);
|
|
23327
|
+
server.tool(
|
|
23328
|
+
"okx_set_trading_config",
|
|
23329
|
+
"## \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",
|
|
23330
|
+
{
|
|
23331
|
+
jsonString: external_exports.string().describe("\u914D\u7F6E\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
|
|
23332
|
+
},
|
|
23333
|
+
async ({ jsonString }) => {
|
|
23334
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23335
|
+
try {
|
|
23336
|
+
const parsed = JSON.parse(jsonString);
|
|
23337
|
+
const data = await privateApi.setTradingConfig(auth, parsed);
|
|
23338
|
+
return toResult(data);
|
|
23339
|
+
} catch (e) {
|
|
23340
|
+
return toError(e);
|
|
23341
|
+
}
|
|
23342
|
+
}
|
|
23343
|
+
);
|
|
23344
|
+
server.tool(
|
|
23345
|
+
"okx_move_positions",
|
|
23346
|
+
"## \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",
|
|
23347
|
+
{
|
|
23348
|
+
body: external_exports.string().describe("\u8FC1\u79FB\u53C2\u6570JSON\u5B57\u7B26\u4E32\u3002\u5FC5\u586B")
|
|
23349
|
+
},
|
|
23350
|
+
async ({ body }) => {
|
|
23351
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23352
|
+
try {
|
|
23353
|
+
const parsed = JSON.parse(body);
|
|
23354
|
+
const data = await privateApi.movePositions(auth, parsed);
|
|
23355
|
+
return toResult(data);
|
|
23356
|
+
} catch (e) {
|
|
23357
|
+
return toError(e);
|
|
23358
|
+
}
|
|
23359
|
+
}
|
|
23360
|
+
);
|
|
23287
23361
|
}
|
|
23288
23362
|
|
|
23289
23363
|
// src/tools/trading.ts
|
|
@@ -25280,6 +25354,82 @@ function registerFinanceTools(server, auth) {
|
|
|
25280
25354
|
}
|
|
25281
25355
|
}
|
|
25282
25356
|
);
|
|
25357
|
+
server.tool(
|
|
25358
|
+
"okx_get_lending_rate_history",
|
|
25359
|
+
"## \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",
|
|
25360
|
+
{},
|
|
25361
|
+
async () => {
|
|
25362
|
+
try {
|
|
25363
|
+
const data = await privateApi.getLendingRateHistoryDetail();
|
|
25364
|
+
const enriched = data.map((item) => ({
|
|
25365
|
+
...item,
|
|
25366
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
25367
|
+
}));
|
|
25368
|
+
return toResult(enriched);
|
|
25369
|
+
} catch (e) {
|
|
25370
|
+
return toError(e);
|
|
25371
|
+
}
|
|
25372
|
+
}
|
|
25373
|
+
);
|
|
25374
|
+
server.tool(
|
|
25375
|
+
"okx_set_lending_rate",
|
|
25376
|
+
"## \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",
|
|
25377
|
+
{
|
|
25378
|
+
ccy: external_exports.string().describe("\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
25379
|
+
rate: external_exports.string().describe("\u51FA\u501F\u5229\u7387\u3002\u5FC5\u586B")
|
|
25380
|
+
},
|
|
25381
|
+
async ({ ccy, rate }) => {
|
|
25382
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25383
|
+
try {
|
|
25384
|
+
const data = await privateApi.setLendingRate(auth, { ccy, rate });
|
|
25385
|
+
return toResult(data);
|
|
25386
|
+
} catch (e) {
|
|
25387
|
+
return toError(e);
|
|
25388
|
+
}
|
|
25389
|
+
}
|
|
25390
|
+
);
|
|
25391
|
+
server.tool(
|
|
25392
|
+
"okx_get_stable_rewards_apy",
|
|
25393
|
+
"## \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",
|
|
25394
|
+
{},
|
|
25395
|
+
async () => {
|
|
25396
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25397
|
+
try {
|
|
25398
|
+
const data = await privateApi.getStableRewardsApyHistory(auth);
|
|
25399
|
+
return toResult(data);
|
|
25400
|
+
} catch (e) {
|
|
25401
|
+
return toError(e);
|
|
25402
|
+
}
|
|
25403
|
+
}
|
|
25404
|
+
);
|
|
25405
|
+
server.tool(
|
|
25406
|
+
"okx_get_stable_rewards_history",
|
|
25407
|
+
"## \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",
|
|
25408
|
+
{},
|
|
25409
|
+
async () => {
|
|
25410
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25411
|
+
try {
|
|
25412
|
+
const data = await privateApi.getStableRewardsHistory(auth);
|
|
25413
|
+
return toResult(data);
|
|
25414
|
+
} catch (e) {
|
|
25415
|
+
return toError(e);
|
|
25416
|
+
}
|
|
25417
|
+
}
|
|
25418
|
+
);
|
|
25419
|
+
server.tool(
|
|
25420
|
+
"okx_get_sfp_order_history",
|
|
25421
|
+
"## \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",
|
|
25422
|
+
{},
|
|
25423
|
+
async () => {
|
|
25424
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25425
|
+
try {
|
|
25426
|
+
const data = await privateApi.getSfpOrderHistory(auth);
|
|
25427
|
+
return toResult(data);
|
|
25428
|
+
} catch (e) {
|
|
25429
|
+
return toError(e);
|
|
25430
|
+
}
|
|
25431
|
+
}
|
|
25432
|
+
);
|
|
25283
25433
|
}
|
|
25284
25434
|
|
|
25285
25435
|
// src/tools/outcomes.ts
|