hvip-mcp-server 0.2.25 → 0.2.27
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 +721 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21355,7 +21355,54 @@ var privateApi = {
|
|
|
21355
21355
|
getSpreadFills: (auth, sprdId, limit) => request("GET", "/api/v5/sprd/fills", { params: { sprdId, limit }, auth }),
|
|
21356
21356
|
// ── 第三批交易收尾 ─────────────────────────────────────────────────────────
|
|
21357
21357
|
resetMmp: (auth, body) => request("POST", "/api/v5/account/mmp-reset", { body, auth }),
|
|
21358
|
-
|
|
21358
|
+
// ── NEW: sprd affiliate ──
|
|
21359
|
+
getOrderByClientId: (auth, instId, clOrdId) => request("GET", "/api/v5/trade/order", { params: { instId, clOrdId }, auth }),
|
|
21360
|
+
// ── 价差收尾(第一批新缺口) ──────────────────────────────────────────
|
|
21361
|
+
getSpreadOrdersHistoryArchive: (auth, sprdId) => request("GET", "/api/v5/sprd/orders-history-archive", { params: { sprdId }, auth }),
|
|
21362
|
+
getSpreadPublicTrades: (sprdId) => request("GET", "/api/v5/sprd/public-trades", { params: { sprdId } }),
|
|
21363
|
+
getSpreadTradeFills: (auth, sprdId) => request("GET", "/api/v5/sprd/trades", { params: { sprdId }, auth }),
|
|
21364
|
+
// ── 子账户+推广(第三批新缺口) ──────────────────────────────────────
|
|
21365
|
+
createSubAccount: (auth, body) => request("POST", "/api/v5/users/subaccount/create-subaccount", { body, auth }),
|
|
21366
|
+
getEntrustSubAccountList: (auth) => request("GET", "/api/v5/users/entrust-subaccount-list", { auth }),
|
|
21367
|
+
getAffiliateInviteeList: (auth) => request("GET", "/api/v5/affiliate/invitee/list", { auth }),
|
|
21368
|
+
getAffiliateInviteeDetail: (auth, uid) => request("GET", "/api/v5/affiliate/invitee/detail", { params: { uid }, auth }),
|
|
21369
|
+
getAffiliateLinkList: (auth) => request("GET", "/api/v5/affiliate/link/list", { auth }),
|
|
21370
|
+
getAffiliatePerformance: (auth) => request("GET", "/api/v5/affiliate/performance/summary", { auth }),
|
|
21371
|
+
getAffiliateCoInviterList: (auth) => request("GET", "/api/v5/affiliate/co-inviter/list", { auth }),
|
|
21372
|
+
getAffiliateSubAffiliateList: (auth) => request("GET", "/api/v5/affiliate/sub-affiliate/list", { auth }),
|
|
21373
|
+
// ── 新增批:market ────────────────────────────────────────────────────
|
|
21374
|
+
getBlockTicker: (instId) => request("GET", "/api/v5/market/block-ticker", { params: { instId } }),
|
|
21375
|
+
getHistoryIndexCandles: (instId, bar, after, before, limit) => request("GET", "/api/v5/market/history-index-candles", { params: { instId, bar, after, before, limit } }),
|
|
21376
|
+
getHistoryMarkPriceCandles: (instId, bar, after, before, limit) => request("GET", "/api/v5/market/history-mark-price-candles", { params: { instId, bar, after, before, limit } }),
|
|
21377
|
+
getMarkPriceCandles: (instId, bar, after, before, limit) => request("GET", "/api/v5/market/mark-price-candles", { params: { instId, bar, after, before, limit } }),
|
|
21378
|
+
getSpreadHistoryCandles: (sprdId, bar, after, before, limit) => request("GET", "/api/v5/sprd/history-candles", { params: { sprdId, bar, after, before, limit } }),
|
|
21379
|
+
// ── 新增批:trade ─────────────────────────────────────────────────────
|
|
21380
|
+
getOneClickRepayCurrencyList: (auth) => request("GET", "/api/v5/trade/one-click-repay-currency-list", { auth }),
|
|
21381
|
+
oneClickRepay: (auth, body) => request("POST", "/api/v5/trade/one-click-repay", { body, auth }),
|
|
21382
|
+
getOneClickRepayHistory: (auth) => request("GET", "/api/v5/trade/one-click-repay-history", { auth }),
|
|
21383
|
+
// ── 新增批:asset ─────────────────────────────────────────────────────
|
|
21384
|
+
getNonTradableAssets: (auth) => request("GET", "/api/v5/asset/non-tradable-assets", { auth }),
|
|
21385
|
+
getExchangeList: () => request("GET", "/api/v5/asset/exchange-list"),
|
|
21386
|
+
getDepositWithdrawStatus: (auth) => request("GET", "/api/v5/asset/deposit-withdraw-status", { auth }),
|
|
21387
|
+
getMonthlyStatement: (auth) => request("GET", "/api/v5/asset/monthly-statement", { auth }),
|
|
21388
|
+
getAssetBillsHistory: (auth, limit) => request("GET", "/api/v5/asset/bills-history", { params: { limit }, auth }),
|
|
21389
|
+
getConvertCurrencyPair: (auth) => request("GET", "/api/v5/asset/convert/currency-pair", { auth }),
|
|
21390
|
+
getConvertEstimateQuote: (auth, body) => request("POST", "/api/v5/asset/convert/estimate-quote", { body, auth }),
|
|
21391
|
+
// ── 新增批:public ────────────────────────────────────────────────────
|
|
21392
|
+
getPublicBlockTrades: (instId) => request("GET", "/api/v5/public/block-trades", { params: { instId } }),
|
|
21393
|
+
getDeliveryExerciseHistory: (instType, uly, instFamily) => request("GET", "/api/v5/public/delivery-exercise-history", { params: { instType, uly, instFamily } }),
|
|
21394
|
+
getFundingRateHistory: (instId, before, after, limit) => request("GET", "/api/v5/public/funding-rate-history", { params: { instId, before, after, limit } }),
|
|
21395
|
+
getInterestRateLoanQuota: () => request("GET", "/api/v5/public/interest-rate-loan-quota"),
|
|
21396
|
+
getPremiumHistory: (instId, period) => request("GET", "/api/v5/public/premium-history", { params: { instId, period } }),
|
|
21397
|
+
getSettlementHistory: (instType, instFamily, uly) => request("GET", "/api/v5/public/settlement-history", { params: { instType, instFamily, uly } }),
|
|
21398
|
+
getEventSeries: () => request("GET", "/api/v5/public/event-contract/series"),
|
|
21399
|
+
getEventMarkets: (seriesId) => request("GET", "/api/v5/public/event-contract/markets", { params: { seriesId } }),
|
|
21400
|
+
getEventEvents: (seriesId) => request("GET", "/api/v5/public/event-contract/events", { params: { seriesId } }),
|
|
21401
|
+
// ── 新增批:fiat ──────────────────────────────────────────────────────
|
|
21402
|
+
getFiatBuySellPair: (auth) => request("GET", "/api/v5/fiat/buy-sell/currency-pair", { auth }),
|
|
21403
|
+
getFiatDeposit: (auth) => request("GET", "/api/v5/fiat/deposit", { auth }),
|
|
21404
|
+
getFiatDepositOrderHistory: (auth) => request("GET", "/api/v5/fiat/deposit-order-history", { auth }),
|
|
21405
|
+
getFiatDepositPaymentMethods: (auth) => request("GET", "/api/v5/fiat/deposit-payment-methods", { auth })
|
|
21359
21406
|
};
|
|
21360
21407
|
|
|
21361
21408
|
// src/adapters/hrails.ts
|
|
@@ -21755,6 +21802,138 @@ function registerMarketTools(server) {
|
|
|
21755
21802
|
}
|
|
21756
21803
|
}
|
|
21757
21804
|
);
|
|
21805
|
+
server.tool(
|
|
21806
|
+
"okx_get_block_ticker",
|
|
21807
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u5355\u4E2A\u4EA7\u54C1\u5B9E\u65F6\u884C\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u8BE2\u5927\u5B97\u5E02\u573A\u7684\u6700\u65B0\u6210\u4EA4\u4EF7\u3001\u4E70\u5356\u62A5\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u5927\u5B97\u884C\u60C5, block ticker, \u5927\u5B97\u6700\u65B0\u4EF7, \u5927\u5B97\u4E70\u5356\u4EF7\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\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 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5927\u5B97\u884C\u60C5 \u2192 okx_get_block_tickers \u770B\u5168\u91CF\u5927\u5B97 \u2192 \u8BC4\u4F30\u5927\u5B97\u5E02\u573A",
|
|
21808
|
+
{
|
|
21809
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B")
|
|
21810
|
+
},
|
|
21811
|
+
async ({ instId }) => {
|
|
21812
|
+
try {
|
|
21813
|
+
const data = await publicApi.getBlockTicker(instId);
|
|
21814
|
+
const enriched = data.map((item) => ({
|
|
21815
|
+
...item,
|
|
21816
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
21817
|
+
}));
|
|
21818
|
+
return toResult(enriched);
|
|
21819
|
+
} catch (e) {
|
|
21820
|
+
return toError(e);
|
|
21821
|
+
}
|
|
21822
|
+
}
|
|
21823
|
+
);
|
|
21824
|
+
server.tool(
|
|
21825
|
+
"okx_get_history_index_candles",
|
|
21826
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6307\u6570\u5386\u53F2K\u7EBF\uFF083\u4E2A\u6708\u4EE5\u524D\u7684\u6570\u636E\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u957F\u5468\u671F\u6307\u6570\u8D70\u52BF\u5206\u6790\u3001\u7B56\u7565\u56DE\u6D4B\n## \u5173\u952E\u8BCD\uFF1A\u6307\u6570\u5386\u53F2K\u7EBF, index history candles, \u5386\u53F2\u6307\u6570, \u56DE\u6D4B\u6570\u636E\n## \u53C2\u6570\uFF1A\n## - instId: \u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\uFF1A100\u6761 ~5KB\n## \u5173\u8054\uFF1Aokx_get_index_candles \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u957F\u5468\u671F\u5206\u6790",
|
|
21827
|
+
{
|
|
21828
|
+
instId: external_exports.string().describe("\u6307\u6570\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B"),
|
|
21829
|
+
bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
|
|
21830
|
+
after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21831
|
+
before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21832
|
+
limit: external_exports.number().int().min(1).max(300).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
21833
|
+
},
|
|
21834
|
+
async ({ instId, bar, after, before, limit }) => {
|
|
21835
|
+
try {
|
|
21836
|
+
const data = await publicApi.getHistoryIndexCandles(instId, bar, after, before, limit);
|
|
21837
|
+
const enriched = data.map((row) => ({
|
|
21838
|
+
ts: row[0],
|
|
21839
|
+
tsIso: row[0] ? new Date(parseInt(row[0])).toISOString() : void 0,
|
|
21840
|
+
open: row[1],
|
|
21841
|
+
high: row[2],
|
|
21842
|
+
low: row[3],
|
|
21843
|
+
close: row[4],
|
|
21844
|
+
vol: row[5]
|
|
21845
|
+
}));
|
|
21846
|
+
return toResult(enriched);
|
|
21847
|
+
} catch (e) {
|
|
21848
|
+
return toError(e);
|
|
21849
|
+
}
|
|
21850
|
+
}
|
|
21851
|
+
);
|
|
21852
|
+
server.tool(
|
|
21853
|
+
"okx_get_history_mark_price_candles",
|
|
21854
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6807\u8BB0\u4EF7\u5386\u53F2K\u7EBF\uFF083\u4E2A\u6708\u4EE5\u524D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5386\u53F2\u6807\u8BB0\u4EF7\u8D70\u52BF\u56DE\u6D4B\u3001\u5206\u6790\u5F3A\u5E73\u4EF7\u683C\u53D8\u5316\n## \u5173\u952E\u8BCD\uFF1A\u6807\u8BB0\u4EF7\u5386\u53F2K\u7EBF, mark price history candles, \u6807\u8BB0\u4EF7\u56DE\u6D4B\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\uFF1A100\u6761 ~5KB\n## \u5173\u8054\uFF1Aokx_get_mark_price_candles \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u5BF9\u6BD4\u5206\u6790",
|
|
21855
|
+
{
|
|
21856
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
|
|
21857
|
+
bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
|
|
21858
|
+
after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21859
|
+
before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21860
|
+
limit: external_exports.number().int().min(1).max(300).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
21861
|
+
},
|
|
21862
|
+
async ({ instId, bar, after, before, limit }) => {
|
|
21863
|
+
try {
|
|
21864
|
+
const data = await publicApi.getHistoryMarkPriceCandles(instId, bar, after, before, limit);
|
|
21865
|
+
const enriched = data.map((row) => ({
|
|
21866
|
+
ts: row[0],
|
|
21867
|
+
tsIso: row[0] ? new Date(parseInt(row[0])).toISOString() : void 0,
|
|
21868
|
+
open: row[1],
|
|
21869
|
+
high: row[2],
|
|
21870
|
+
low: row[3],
|
|
21871
|
+
close: row[4],
|
|
21872
|
+
vol: row[5]
|
|
21873
|
+
}));
|
|
21874
|
+
return toResult(enriched);
|
|
21875
|
+
} catch (e) {
|
|
21876
|
+
return toError(e);
|
|
21877
|
+
}
|
|
21878
|
+
}
|
|
21879
|
+
);
|
|
21880
|
+
server.tool(
|
|
21881
|
+
"okx_get_mark_price_candles",
|
|
21882
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6807\u8BB0\u4EF7K\u7EBF\u6570\u636E\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BA1\u7B97\u5408\u7EA6\u8D44\u91D1\u8D39\u7387\u7528\u7684\u6807\u8BB0\u4EF7\u8D70\u52BF\u3001\u5224\u65AD\u5F3A\u5E73\u98CE\u9669\n## \u5173\u952E\u8BCD\uFF1A\u6807\u8BB0\u4EF7K\u7EBF, mark price candles, \u6807\u8BB0\u4EF7\u8D70\u52BF, \u5F3A\u5E73\u53C2\u8003\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\uFF1A100\u6761 ~5KB\n## \u5173\u8054\uFF1Aokx_get_index_candles \u770B\u6307\u6570K\u7EBF \u2192 \u672C\u5DE5\u5177\u770B\u6807\u8BB0\u4EF7 \u2192 \u5BF9\u6BD4\u57FA\u5DEE",
|
|
21883
|
+
{
|
|
21884
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
|
|
21885
|
+
bar: external_exports.enum(["1m", "3m", "5m", "15m", "30m", "1H", "4H", "1D", "1W"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
|
|
21886
|
+
after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21887
|
+
before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21888
|
+
limit: external_exports.number().int().min(1).max(300).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
21889
|
+
},
|
|
21890
|
+
async ({ instId, bar, after, before, limit }) => {
|
|
21891
|
+
try {
|
|
21892
|
+
const data = await publicApi.getMarkPriceCandles(instId, bar, after, before, limit);
|
|
21893
|
+
const enriched = data.map((row) => ({
|
|
21894
|
+
ts: row[0],
|
|
21895
|
+
tsIso: row[0] ? new Date(parseInt(row[0])).toISOString() : void 0,
|
|
21896
|
+
open: row[1],
|
|
21897
|
+
high: row[2],
|
|
21898
|
+
low: row[3],
|
|
21899
|
+
close: row[4],
|
|
21900
|
+
vol: row[5]
|
|
21901
|
+
}));
|
|
21902
|
+
return toResult(enriched);
|
|
21903
|
+
} catch (e) {
|
|
21904
|
+
return toError(e);
|
|
21905
|
+
}
|
|
21906
|
+
}
|
|
21907
|
+
);
|
|
21908
|
+
server.tool(
|
|
21909
|
+
"okx_get_sprd_history_candles",
|
|
21910
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u5386\u53F2K\u7EBF\uFF083\u4E2A\u6708\u4EE5\u524D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7814\u7A76\u4EF7\u5DEE\u5386\u53F2\u8D70\u52BF\u7684\u957F\u671F\u8D8B\u52BF\u3001\u8BA1\u7B97\u8DE8\u671F\u5957\u5229\u7684\u5B63\u8282\u6027\u6A21\u5F0F\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5386\u53F2K\u7EBF, sprd history candles, \u4EF7\u5DEE\u56DE\u6D4B, \u8DE8\u671F\u5386\u53F2\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\n## - bar: K\u7EBF\u5468\u671F\u3002\u9ED8\u8BA41H\n## - after: \u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - before: \u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\uFF1A100\u6761 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_candles \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5386\u53F2 \u2192 \u957F\u5468\u671F\u5957\u5229\u5206\u6790",
|
|
21911
|
+
{
|
|
21912
|
+
sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B"),
|
|
21913
|
+
bar: external_exports.enum(["1m", "5m", "15m", "30m", "1H", "4H", "1D"]).optional().describe("K\u7EBF\u5468\u671F\uFF0C\u9ED8\u8BA41H"),
|
|
21914
|
+
after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21915
|
+
before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
21916
|
+
limit: external_exports.number().int().min(1).max(300).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
21917
|
+
},
|
|
21918
|
+
async ({ sprdId, bar, after, before, limit }) => {
|
|
21919
|
+
try {
|
|
21920
|
+
const data = await publicApi.getSpreadHistoryCandles(sprdId, bar, after, before, limit);
|
|
21921
|
+
const enriched = data.map((row) => ({
|
|
21922
|
+
ts: row[0],
|
|
21923
|
+
tsIso: row[0] ? new Date(parseInt(row[0])).toISOString() : void 0,
|
|
21924
|
+
open: row[1],
|
|
21925
|
+
high: row[2],
|
|
21926
|
+
low: row[3],
|
|
21927
|
+
close: row[4],
|
|
21928
|
+
vol: row[5],
|
|
21929
|
+
volCcy: row[6]
|
|
21930
|
+
}));
|
|
21931
|
+
return toResult(enriched);
|
|
21932
|
+
} catch (e) {
|
|
21933
|
+
return toError(e);
|
|
21934
|
+
}
|
|
21935
|
+
}
|
|
21936
|
+
);
|
|
21758
21937
|
}
|
|
21759
21938
|
|
|
21760
21939
|
// src/tools/public.ts
|
|
@@ -22277,6 +22456,114 @@ function registerPublicTools(server, auth) {
|
|
|
22277
22456
|
}
|
|
22278
22457
|
}
|
|
22279
22458
|
);
|
|
22459
|
+
server.tool(
|
|
22460
|
+
"okx_get_funding_rate_history",
|
|
22461
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u8D44\u91D1\u8D39\u7387\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5386\u53F2\u8D44\u91D1\u8D39\u7387\u53D8\u5316\u8D8B\u52BF\u3001\u8BA1\u7B97\u5957\u5229\u6301\u4ED3\u6210\u672C\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u91D1\u8D39\u7387\u5386\u53F2, funding rate history, \u8D39\u7387\u8D70\u52BF, \u5386\u53F2\u8D44\u91D1\u8D39\u7387\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - before: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - after: \u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\uFF1Aokx_get_funding_rate \u770B\u5F53\u524D \u2192 \u672C\u5DE5\u5177\u770B\u5386\u53F2 \u2192 \u5224\u65AD\u5747\u503C\u56DE\u5F52\u65B9\u5411",
|
|
22462
|
+
{
|
|
22463
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
|
|
22464
|
+
before: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u540E\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
22465
|
+
after: external_exports.string().optional().describe("\u67E5\u8BE2\u6B64\u65F6\u95F4\u6233\u4E4B\u524D\u7684\u6570\u636E\uFF08\u6BEB\u79D2\uFF09"),
|
|
22466
|
+
limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
22467
|
+
},
|
|
22468
|
+
async ({ instId, before, after, limit }) => {
|
|
22469
|
+
try {
|
|
22470
|
+
const data = await publicApi.getFundingRateHistory(instId, before, after, limit);
|
|
22471
|
+
const enriched = data.map((item) => ({
|
|
22472
|
+
...item,
|
|
22473
|
+
tsIso: item.fundingTime ? new Date(parseInt(item.fundingTime)).toISOString() : void 0
|
|
22474
|
+
}));
|
|
22475
|
+
return toResult(enriched);
|
|
22476
|
+
} catch (e) {
|
|
22477
|
+
return toError(e);
|
|
22478
|
+
}
|
|
22479
|
+
}
|
|
22480
|
+
);
|
|
22481
|
+
server.tool(
|
|
22482
|
+
"okx_get_interest_rate_loan_quota",
|
|
22483
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u5404\u5E01\u79CD\u7684\u5229\u7387\u548C\u501F\u8D37\u914D\u989D\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5404\u5E01\u79CD\u7684\u501F\u8D37\u5229\u7387\u3001\u4E86\u89E3\u6700\u5927\u53EF\u501F\u9650\u989D\n## \u5173\u952E\u8BCD\uFF1A\u5229\u7387\u914D\u989D, interest rate quota, \u501F\u8D37\u5229\u7387, \u501F\u6B3E\u9650\u989D\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\u67E5\u5229\u7387\u914D\u989D \u2192 okx_get_interest_accrued \u770B\u5DF2\u8BA1\u5229\u606F \u2192 \u8BA1\u7B97\u501F\u8D37\u6210\u672C",
|
|
22484
|
+
{},
|
|
22485
|
+
async () => {
|
|
22486
|
+
try {
|
|
22487
|
+
const data = await publicApi.getInterestRateLoanQuota();
|
|
22488
|
+
return toResult(data);
|
|
22489
|
+
} catch (e) {
|
|
22490
|
+
return toError(e);
|
|
22491
|
+
}
|
|
22492
|
+
}
|
|
22493
|
+
);
|
|
22494
|
+
server.tool(
|
|
22495
|
+
"okx_get_premium_history",
|
|
22496
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u6EA2\u4EF7/\u6298\u4EF7\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5408\u7EA6\u4E0E\u73B0\u8D27\u4EF7\u683C\u504F\u5DEE\u3001\u5224\u65AD\u5E02\u573A\u60C5\u7EEA\n## \u5173\u952E\u8BCD\uFF1A\u6EA2\u4EF7\u5386\u53F2, premium history, \u5408\u7EA6\u6EA2\u4EF7, \u57FA\u5DEE\u5386\u53F2\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B\n## - period: \u65F6\u95F4\u7C92\u5EA6\u30021D=\u65E5\u7EBF\u3002\u53EF\u9009\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\u6EA2\u4EF7 \u2192 okx_get_ticker \u770B\u4EF7\u683C \u2192 \u5224\u65AD\u671F\u8D27\u60C5\u7EEA",
|
|
22497
|
+
{
|
|
22498
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT-SWAP\u3002\u5FC5\u586B"),
|
|
22499
|
+
period: external_exports.string().optional().describe("\u65F6\u95F4\u7C92\u5EA6\uFF0C\u5982 1D")
|
|
22500
|
+
},
|
|
22501
|
+
async ({ instId, period }) => {
|
|
22502
|
+
try {
|
|
22503
|
+
const data = await publicApi.getPremiumHistory(instId, period);
|
|
22504
|
+
const enriched = data.map((item) => ({
|
|
22505
|
+
...item,
|
|
22506
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
22507
|
+
}));
|
|
22508
|
+
return toResult(enriched);
|
|
22509
|
+
} catch (e) {
|
|
22510
|
+
return toError(e);
|
|
22511
|
+
}
|
|
22512
|
+
}
|
|
22513
|
+
);
|
|
22514
|
+
server.tool(
|
|
22515
|
+
"okx_get_delivery_exercise_history",
|
|
22516
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u4EA4\u5272\u548C\u671F\u6743\u884C\u6743\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5386\u53F2\u4EA4\u5272\u4EF7\u683C\u3001\u4E86\u89E3\u884C\u6743\u7ED3\u7B97\u60C5\u51B5\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u5272\u5386\u53F2, delivery history, \u884C\u6743\u5386\u53F2, \u5408\u7EA6\u4EA4\u5272, \u671F\u6743\u884C\u6743\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP=\u6C38\u7EED, FUTURES=\u4EA4\u5272, OPTION=\u671F\u6743\u3002\u5FC5\u586B\n## - uly: \u6807\u7684\u6307\u6570\u3002\u53EF\u9009\n## - instFamily: \u4EA7\u54C1\u65CF\u3002\u53EF\u9009\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\u4EA4\u5272\u5386\u53F2 \u2192 okx_get_opt_summary \u770B\u671F\u6743\u6458\u8981 \u2192 \u4E86\u89E3\u884C\u6743\u7ED3\u7B97",
|
|
22517
|
+
{
|
|
22518
|
+
instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B"),
|
|
22519
|
+
uly: external_exports.string().optional().describe("\u6807\u7684\u6307\u6570"),
|
|
22520
|
+
instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF")
|
|
22521
|
+
},
|
|
22522
|
+
async ({ instType, uly, instFamily }) => {
|
|
22523
|
+
try {
|
|
22524
|
+
const data = await publicApi.getDeliveryExerciseHistory(instType, uly, instFamily);
|
|
22525
|
+
return toResult(data);
|
|
22526
|
+
} catch (e) {
|
|
22527
|
+
return toError(e);
|
|
22528
|
+
}
|
|
22529
|
+
}
|
|
22530
|
+
);
|
|
22531
|
+
server.tool(
|
|
22532
|
+
"okx_get_settlement_history",
|
|
22533
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u5408\u7EA6\u7ED3\u7B97\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5408\u7EA6\u7684\u6BCF\u65E5\u7ED3\u7B97\u4EF7\u683C\u548C\u7ED3\u7B97\u65F6\u95F4\n## \u5173\u952E\u8BCD\uFF1A\u7ED3\u7B97\u5386\u53F2, settlement history, \u5408\u7EA6\u7ED3\u7B97, \u6BCF\u65E5\u7ED3\u7B97\n## \u53C2\u6570\uFF1A\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B\n## - instFamily: \u4EA7\u54C1\u65CF\u3002\u53EF\u9009\n## - uly: \u6807\u7684\u6307\u6570\u3002\u53EF\u9009\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\u7ED3\u7B97\u5386\u53F2 \u2192 \u4E86\u89E3\u7ED3\u7B97\u4EF7 \u2192 \u8BC4\u4F30\u6D6E\u52A8\u76C8\u4E8F",
|
|
22534
|
+
{
|
|
22535
|
+
instType: external_exports.enum(INST_TYPE_CONTRACTS).describe("\u4EA7\u54C1\u7C7B\u578B\u3002SWAP/FUTURES/OPTION\u3002\u5FC5\u586B"),
|
|
22536
|
+
instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF"),
|
|
22537
|
+
uly: external_exports.string().optional().describe("\u6807\u7684\u6307\u6570")
|
|
22538
|
+
},
|
|
22539
|
+
async ({ instType, instFamily, uly }) => {
|
|
22540
|
+
try {
|
|
22541
|
+
const data = await publicApi.getSettlementHistory(instType, instFamily, uly);
|
|
22542
|
+
return toResult(data);
|
|
22543
|
+
} catch (e) {
|
|
22544
|
+
return toError(e);
|
|
22545
|
+
}
|
|
22546
|
+
}
|
|
22547
|
+
);
|
|
22548
|
+
server.tool(
|
|
22549
|
+
"okx_get_public_block_trades",
|
|
22550
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u5927\u5B97\u4EA4\u6613\u516C\u5F00\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5927\u5B97\u5E02\u573A\u5386\u53F2\u6210\u4EA4\u3001\u5206\u6790\u5927\u5B97\u4EF7\u683C\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5927\u5B97\u6210\u4EA4, block trades, \u5927\u5B97\u516C\u5F00, \u5927\u5B97\u4EA4\u6613\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\u3002\u5FC5\u586B\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\u5927\u5B97\u6210\u4EA4 \u2192 \u5206\u6790\u5927\u5B97\u5E02\u573A \u2192 \u8BC4\u4F30\u673A\u6784\u52A8\u5411",
|
|
22551
|
+
{
|
|
22552
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\u3002\u5FC5\u586B")
|
|
22553
|
+
},
|
|
22554
|
+
async ({ instId }) => {
|
|
22555
|
+
try {
|
|
22556
|
+
const data = await publicApi.getPublicBlockTrades(instId);
|
|
22557
|
+
const enriched = data.map((item) => ({
|
|
22558
|
+
...item,
|
|
22559
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
22560
|
+
}));
|
|
22561
|
+
return toResult(enriched);
|
|
22562
|
+
} catch (e) {
|
|
22563
|
+
return toError(e);
|
|
22564
|
+
}
|
|
22565
|
+
}
|
|
22566
|
+
);
|
|
22280
22567
|
}
|
|
22281
22568
|
|
|
22282
22569
|
// src/tools/account.ts
|
|
@@ -23154,6 +23441,51 @@ function registerTradingTools(server, auth) {
|
|
|
23154
23441
|
}
|
|
23155
23442
|
}
|
|
23156
23443
|
);
|
|
23444
|
+
server.tool(
|
|
23445
|
+
"okx_get_one_click_repay_list",
|
|
23446
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E00\u952E\u8FD8\u6B3E\u652F\u6301\u7684\u5E01\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u54EA\u4E9B\u5E01\u79CD\u652F\u6301\u4E00\u952E\u8FD8\u6B3E\u3001\u4E86\u89E3\u53EF\u8FD8\u6B3E\u7684\u503A\u52A1\u7C7B\u578B\n## \u5173\u952E\u8BCD\uFF1A\u4E00\u952E\u8FD8\u6B3E, one click repay, \u8FD8\u6B3E\u5E01\u79CD, \u503A\u52A1\u507F\u8FD8\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 ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u652F\u6301\u5E01\u79CD \u2192 okx_one_click_repay \u6267\u884C\u8FD8\u6B3E",
|
|
23447
|
+
{},
|
|
23448
|
+
async () => {
|
|
23449
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23450
|
+
try {
|
|
23451
|
+
const data = await privateApi.getOneClickRepayCurrencyList(auth);
|
|
23452
|
+
return toResult(data);
|
|
23453
|
+
} catch (e) {
|
|
23454
|
+
return toError(e);
|
|
23455
|
+
}
|
|
23456
|
+
}
|
|
23457
|
+
);
|
|
23458
|
+
server.tool(
|
|
23459
|
+
"okx_one_click_repay",
|
|
23460
|
+
"## \u529F\u80FD\uFF1A\u6267\u884C\u4E00\u952E\u8FD8\u6B3E\uFF08\u4F7F\u7528\u8D26\u6237\u8D44\u91D1\u81EA\u52A8\u507F\u8FD8\u501F\u5E01\u503A\u52A1\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u507F\u8FD8\u6760\u6746\u501F\u8D37\u5229\u606F\u3001\u907F\u514D\u5229\u606F\u7D2F\u79EF\n## \u53C2\u6570\uFF1A\n## - ccy: \u8FD8\u6B3E\u4F7F\u7528\u7684\u5E01\u79CD\u3002\u5FC5\u586B\n## - repayCcy: \u8981\u507F\u8FD8\u7684\u503A\u52A1\u5E01\u79CD\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u5C06\u4F7F\u7528\u8D26\u6237\u8D44\u91D1\u8FD8\u6B3E\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u8FD8\u6B3E\u79FB\u52A8\u771F\u5B9E\u8D44\u91D1\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1Aokx_get_one_click_repay_list \u67E5\u652F\u6301\u5E01\u79CD \u2192 \u672C\u5DE5\u5177\u8FD8\u6B3E \u2192 okx_one_click_repay_history \u67E5\u8BB0\u5F55",
|
|
23461
|
+
{
|
|
23462
|
+
ccy: external_exports.string().describe("\u8FD8\u6B3E\u4F7F\u7528\u7684\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
23463
|
+
repayCcy: external_exports.string().describe("\u8981\u507F\u8FD8\u7684\u503A\u52A1\u5E01\u79CD\u3002\u5FC5\u586B")
|
|
23464
|
+
},
|
|
23465
|
+
async ({ ccy, repayCcy }) => {
|
|
23466
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23467
|
+
try {
|
|
23468
|
+
const data = await privateApi.oneClickRepay(auth, { ccy, repayCcy });
|
|
23469
|
+
return toResult(data);
|
|
23470
|
+
} catch (e) {
|
|
23471
|
+
return toError(e);
|
|
23472
|
+
}
|
|
23473
|
+
}
|
|
23474
|
+
);
|
|
23475
|
+
server.tool(
|
|
23476
|
+
"okx_get_one_click_repay_history",
|
|
23477
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4E00\u952E\u8FD8\u6B3E\u5386\u53F2\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EE5\u5F80\u7684\u8FD8\u6B3E\u64CD\u4F5C\u3001\u6838\u5BF9\u8FD8\u6B3E\u91D1\u989D\u548C\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u8FD8\u6B3E\u5386\u53F2, repay history, \u4E00\u952E\u8FD8\u6B3E\u8BB0\u5F55, \u503A\u52A1\u507F\u8FD8\u8BB0\u5F55\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_one_click_repay \u8FD8\u6B3E \u2192 \u672C\u5DE5\u5177\u67E5\u8BB0\u5F55 \u2192 \u786E\u8BA4\u8FD8\u6B3E\u5B8C\u6210",
|
|
23478
|
+
{},
|
|
23479
|
+
async () => {
|
|
23480
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23481
|
+
try {
|
|
23482
|
+
const data = await privateApi.getOneClickRepayHistory(auth);
|
|
23483
|
+
return toResult(data);
|
|
23484
|
+
} catch (e) {
|
|
23485
|
+
return toError(e);
|
|
23486
|
+
}
|
|
23487
|
+
}
|
|
23488
|
+
);
|
|
23157
23489
|
}
|
|
23158
23490
|
|
|
23159
23491
|
// src/tools/algo.ts
|
|
@@ -23435,6 +23767,95 @@ function registerFundingTools(server, auth) {
|
|
|
23435
23767
|
}
|
|
23436
23768
|
}
|
|
23437
23769
|
);
|
|
23770
|
+
server.tool(
|
|
23771
|
+
"okx_get_non_tradable_assets",
|
|
23772
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4E0D\u53EF\u4EA4\u6613\u8D44\u4EA7\uFF08\u5982\u6CD5\u5E01\u3001\u975E\u6D41\u901A\u4EE3\u5E01\uFF09\u7684\u6301\u4ED3\u4F59\u989D\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u8D26\u6237\u4E2D\u4E0D\u80FD\u76F4\u63A5\u4EA4\u6613\u4F46\u53EF\u80FD\u5177\u6709\u4EF7\u503C\u7684\u8D44\u4EA7\n## \u5173\u952E\u8BCD\uFF1A\u4E0D\u53EF\u4EA4\u6613\u8D44\u4EA7, non tradable, \u6CD5\u5E01\u8D44\u4EA7, \u975E\u6D41\u901A\u8D44\u4EA7\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u4E0D\u53EF\u4EA4\u6613\u8D44\u4EA7 \u2192 okx_get_balance \u770B\u53EF\u4EA4\u6613\u8D44\u4EA7 \u2192 \u5168\u9762\u638C\u63E1\u6301\u4ED3",
|
|
23773
|
+
{},
|
|
23774
|
+
async () => {
|
|
23775
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23776
|
+
try {
|
|
23777
|
+
const data = await privateApi.getNonTradableAssets(auth);
|
|
23778
|
+
return toResult(data);
|
|
23779
|
+
} catch (e) {
|
|
23780
|
+
return toError(e);
|
|
23781
|
+
}
|
|
23782
|
+
}
|
|
23783
|
+
);
|
|
23784
|
+
server.tool(
|
|
23785
|
+
"okx_get_exchange_list",
|
|
23786
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u652F\u6301\u7684\u4EA4\u6613\u6240/\u5E73\u53F0\u5217\u8868\uFF08\u63D0\u73B0\u5916\u90E8\u5730\u5740\u6821\u9A8C\u7528\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63D0\u73B0\u65F6\u9009\u62E9\u76EE\u6807\u4EA4\u6613\u6240\u3001\u786E\u8BA4\u63D0\u73B0\u901A\u9053\u662F\u5426\u53EF\u7528\n## \u5173\u952E\u8BCD\uFF1A\u4EA4\u6613\u6240\u5217\u8868, exchange list, \u63D0\u73B0\u5E73\u53F0, \u5916\u90E8\u4EA4\u6613\u6240\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 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u652F\u6301\u4EA4\u6613\u6240 \u2192 okx_withdrawal \u63D0\u73B0\u65F6\u9009\u62E9\u76EE\u6807",
|
|
23787
|
+
{},
|
|
23788
|
+
async () => {
|
|
23789
|
+
try {
|
|
23790
|
+
const data = await privateApi.getExchangeList();
|
|
23791
|
+
return toResult(data);
|
|
23792
|
+
} catch (e) {
|
|
23793
|
+
return toError(e);
|
|
23794
|
+
}
|
|
23795
|
+
}
|
|
23796
|
+
);
|
|
23797
|
+
server.tool(
|
|
23798
|
+
"okx_get_deposit_withdraw_status",
|
|
23799
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5145\u503C\u63D0\u73B0\u7684\u72B6\u6001\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5145\u503C\u6216\u63D0\u73B0\u662F\u5426\u5230\u8D26\u3001\u94FE\u4E0A\u786E\u8BA4\u8FDB\u5EA6\n## \u5173\u952E\u8BCD\uFF1A\u5145\u63D0\u72B6\u6001, deposit withdraw, \u5145\u503C\u72B6\u6001, \u63D0\u73B0\u72B6\u6001, \u5230\u8D26\u67E5\u8BE2\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_deposit_address \u83B7\u53D6\u5730\u5740 \u2192 \u5145\u503C\u540E \u2192 \u672C\u5DE5\u5177\u67E5\u72B6\u6001",
|
|
23800
|
+
{},
|
|
23801
|
+
async () => {
|
|
23802
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23803
|
+
try {
|
|
23804
|
+
const data = await privateApi.getDepositWithdrawStatus(auth);
|
|
23805
|
+
return toResult(data);
|
|
23806
|
+
} catch (e) {
|
|
23807
|
+
return toError(e);
|
|
23808
|
+
}
|
|
23809
|
+
}
|
|
23810
|
+
);
|
|
23811
|
+
server.tool(
|
|
23812
|
+
"okx_get_asset_bills_history",
|
|
23813
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u8D44\u91D1\u8D26\u6237\u7684\u5386\u53F2\u8D26\u5355\u6D41\u6C34\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5BA1\u8BA1\u8D44\u91D1\u8D26\u6237\u7684\u8D44\u91D1\u53D8\u52A8\u3001\u6838\u5BF9\u51FA\u5165\u91D1\u8BB0\u5F55\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u91D1\u8D26\u5355, asset bills, \u8D44\u91D1\u6D41\u6C34, \u8D44\u91D1\u8D26\u6237\u8D26\u5355\n## \u53C2\u6570\uFF1A\n## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\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\u4E2D\u7B49 ~10KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u8D44\u91D1\u6D41\u6C34 \u2192 okx_get_balance \u6838\u5BF9\u4F59\u989D \u2192 \u5BF9\u8D26",
|
|
23814
|
+
{
|
|
23815
|
+
limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
23816
|
+
},
|
|
23817
|
+
async ({ limit }) => {
|
|
23818
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23819
|
+
try {
|
|
23820
|
+
const data = await privateApi.getAssetBillsHistory(auth, limit);
|
|
23821
|
+
return toResult(data);
|
|
23822
|
+
} catch (e) {
|
|
23823
|
+
return toError(e);
|
|
23824
|
+
}
|
|
23825
|
+
}
|
|
23826
|
+
);
|
|
23827
|
+
server.tool(
|
|
23828
|
+
"okx_get_convert_currency_pair",
|
|
23829
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u5151\u652F\u6301\u7684\u5E01\u79CD\u5BF9\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u95EA\u5151\u4EA4\u6613\u7684\u5151\u6362\u6BD4\u4F8B\u548C\u652F\u6301\u7684\u5151\u6362\u5BF9\n## \u5173\u952E\u8BCD\uFF1A\u5151\u6362\u5E01\u79CD\u5BF9, convert pair, \u95EA\u5151\u5BF9, \u5151\u6362\u8BE6\u60C5\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5151\u6362\u5BF9 \u2192 okx_get_convert_estimate_quote \u83B7\u53D6\u9884\u4F30 \u2192 okx_convert_trade \u6267\u884C",
|
|
23830
|
+
{},
|
|
23831
|
+
async () => {
|
|
23832
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23833
|
+
try {
|
|
23834
|
+
const data = await privateApi.getConvertCurrencyPair(auth);
|
|
23835
|
+
return toResult(data);
|
|
23836
|
+
} catch (e) {
|
|
23837
|
+
return toError(e);
|
|
23838
|
+
}
|
|
23839
|
+
}
|
|
23840
|
+
);
|
|
23841
|
+
server.tool(
|
|
23842
|
+
"okx_get_convert_estimate_quote",
|
|
23843
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u95EA\u5151\u9884\u4F30\u62A5\u4EF7\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5151\u6362\u524D\u67E5\u770B\u9884\u4F30\u5151\u6362\u7387\u548C\u6570\u91CF\u3001\u6BD4\u8F83\u5404\u65B9\u6848\u4F18\u52A3\n## \u53C2\u6570\uFF1A\n## - fromCcy: \u5356\u51FA\u5E01\u79CD\u3002\u5FC5\u586B\n## - toCcy: \u4E70\u5165\u5E01\u79CD\u3002\u5FC5\u586B\n## - sz: \u5151\u6362\u6570\u91CF\u3002\u5FC5\u586B\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 ~1KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u83B7\u53D6\u9884\u4F30 \u2192 okx_get_convert_currency_pair \u770B\u8BE6\u60C5 \u2192 okx_convert_trade \u6267\u884C",
|
|
23844
|
+
{
|
|
23845
|
+
fromCcy: external_exports.string().describe("\u5356\u51FA\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
23846
|
+
toCcy: external_exports.string().describe("\u4E70\u5165\u5E01\u79CD\u3002\u5FC5\u586B"),
|
|
23847
|
+
sz: external_exports.string().describe("\u5151\u6362\u6570\u91CF\u3002\u5FC5\u586B")
|
|
23848
|
+
},
|
|
23849
|
+
async ({ fromCcy, toCcy, sz }) => {
|
|
23850
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23851
|
+
try {
|
|
23852
|
+
const data = await privateApi.getConvertEstimateQuote(auth, { fromCcy, toCcy, sz });
|
|
23853
|
+
return toResult(data);
|
|
23854
|
+
} catch (e) {
|
|
23855
|
+
return toError(e);
|
|
23856
|
+
}
|
|
23857
|
+
}
|
|
23858
|
+
);
|
|
23438
23859
|
}
|
|
23439
23860
|
|
|
23440
23861
|
// src/tools/stats.ts
|
|
@@ -24015,6 +24436,39 @@ function registerSubAccountTools(server, auth) {
|
|
|
24015
24436
|
}
|
|
24016
24437
|
}
|
|
24017
24438
|
);
|
|
24439
|
+
server.tool(
|
|
24440
|
+
"okx_create_subaccount",
|
|
24441
|
+
"## \u529F\u80FD\uFF1A\u521B\u5EFA\u65B0\u7684\u5B50\u8D26\u6237\n## \u573A\u666F\uFF1A\u7528\u4E8E\u521B\u5EFA\u5B50\u8D26\u6237\u7BA1\u7406\u591A\u4E2A\u4EA4\u6613\u7B56\u7565\u3001\u9694\u79BB\u8D44\u91D1\u548C\u98CE\u9669\n## \u5173\u952E\u8BCD\uFF1A\u521B\u5EFA\u5B50\u8D26\u6237, create subaccount, \u65B0\u589E\u5B50\u8D26\u53F7\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - label: \u5B50\u8D26\u6237\u5907\u6CE8\u3002\u53EF\u9009\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u5C06\u521B\u5EFA\u65B0\u5B50\u8D26\u6237\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u521B\u5EFA\u5B50\u8D26\u6237\u5F71\u54CD\u8D26\u6237\u7ED3\u6784\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u521B\u5EFA \u2192 okx_list_subaccounts \u67E5\u770B \u2192 okx_create_subaccount_api_key \u8BBE\u7F6EAPI",
|
|
24442
|
+
{
|
|
24443
|
+
subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
|
|
24444
|
+
label: external_exports.string().optional().describe("\u5B50\u8D26\u6237\u5907\u6CE8")
|
|
24445
|
+
},
|
|
24446
|
+
async ({ subAcct, label }) => {
|
|
24447
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24448
|
+
try {
|
|
24449
|
+
const body = { subAcct };
|
|
24450
|
+
if (label) body.label = label;
|
|
24451
|
+
const data = await privateApi.createSubAccount(auth, body);
|
|
24452
|
+
return toResult(data);
|
|
24453
|
+
} catch (e) {
|
|
24454
|
+
return toError(e);
|
|
24455
|
+
}
|
|
24456
|
+
}
|
|
24457
|
+
);
|
|
24458
|
+
server.tool(
|
|
24459
|
+
"okx_get_entrust_subaccount_list",
|
|
24460
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u59D4\u6258\u5B50\u8D26\u6237\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6258\u7BA1\u5B50\u8D26\u6237\u3001\u7BA1\u7406\u59D4\u6258\u4EA4\u6613\u6743\u9650\n## \u5173\u952E\u8BCD\uFF1A\u59D4\u6258\u5B50\u8D26\u6237, entrust subaccount, \u6258\u7BA1\u8D26\u6237, \u59D4\u6258\u7BA1\u7406\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u59D4\u6258\u5B50\u8D26\u6237 \u2192 \u7BA1\u7406\u5B50\u8D26\u6237\u6743\u9650",
|
|
24461
|
+
{},
|
|
24462
|
+
async () => {
|
|
24463
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
24464
|
+
try {
|
|
24465
|
+
const data = await privateApi.getEntrustSubAccountList(auth);
|
|
24466
|
+
return toResult(data);
|
|
24467
|
+
} catch (e) {
|
|
24468
|
+
return toError(e);
|
|
24469
|
+
}
|
|
24470
|
+
}
|
|
24471
|
+
);
|
|
24018
24472
|
}
|
|
24019
24473
|
|
|
24020
24474
|
// src/tools/finance.ts
|
|
@@ -24333,6 +24787,49 @@ function registerOutcomesTools(server) {
|
|
|
24333
24787
|
}
|
|
24334
24788
|
}
|
|
24335
24789
|
);
|
|
24790
|
+
server.tool(
|
|
24791
|
+
"okx_get_event_series",
|
|
24792
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u4E8B\u4EF6\u5408\u7EA6\u7CFB\u5217\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6D4F\u89C8\u53EF\u4EA4\u6613\u7684\u4E8B\u4EF6\u5408\u7EA6\u7CFB\u5217\uFF08\u5982SOL\u4EF7\u683C\u533A\u95F4\u9884\u6D4B\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5408\u7EA6, event series, \u9884\u6D4B\u5E02\u573A, \u4E8B\u4EF6\u7CFB\u5217, \u4E8B\u4EF6\u7C7B\u578B\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\u67E5\u770B\u4E8B\u4EF6\u7CFB\u5217 \u2192 okx_get_event_markets \u67E5\u770B\u5177\u4F53\u5E02\u573A \u2192 \u9009\u62E9\u4EA4\u6613",
|
|
24793
|
+
{},
|
|
24794
|
+
async () => {
|
|
24795
|
+
try {
|
|
24796
|
+
const data = await publicApi.getEventSeries();
|
|
24797
|
+
return toResult(data);
|
|
24798
|
+
} catch (e) {
|
|
24799
|
+
return toError(e);
|
|
24800
|
+
}
|
|
24801
|
+
}
|
|
24802
|
+
);
|
|
24803
|
+
server.tool(
|
|
24804
|
+
"okx_get_event_markets",
|
|
24805
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u6307\u5B9A\u7CFB\u5217\u4E0B\u7684\u6240\u6709\u5E02\u573A\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u67D0\u4E8B\u4EF6\u7CFB\u5217\u4E0B\u7684\u6240\u6709\u53EF\u4EA4\u6613\u5408\u7EA6\u54C1\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5E02\u573A, event markets, \u9884\u6D4B\u5E02\u573A, \u5408\u7EA6\u5E02\u573A\n## \u53C2\u6570\uFF1A\n## - seriesId: \u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B\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\uFF1Aokx_get_event_series \u67E5\u7CFB\u5217 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u5E02\u573A \u2192 \u8BC4\u4F30\u4EA4\u6613\u673A\u4F1A",
|
|
24806
|
+
{
|
|
24807
|
+
seriesId: external_exports.string().describe("\u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B")
|
|
24808
|
+
},
|
|
24809
|
+
async ({ seriesId }) => {
|
|
24810
|
+
try {
|
|
24811
|
+
const data = await publicApi.getEventMarkets(seriesId);
|
|
24812
|
+
return toResult(data);
|
|
24813
|
+
} catch (e) {
|
|
24814
|
+
return toError(e);
|
|
24815
|
+
}
|
|
24816
|
+
}
|
|
24817
|
+
);
|
|
24818
|
+
server.tool(
|
|
24819
|
+
"okx_get_event_events",
|
|
24820
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u9884\u6D4B\u5E02\u573A\u6307\u5B9A\u7CFB\u5217\u4E0B\u7684\u4E8B\u4EF6\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4E8B\u4EF6\u5408\u7EA6\u7684\u5230\u671F\u65E5\u3001\u72B6\u6001\u548C\u6709\u5173\u4FE1\u606F\n## \u5173\u952E\u8BCD\uFF1A\u4E8B\u4EF6\u5217\u8868, event events, \u9884\u6D4B\u4E8B\u4EF6, \u4E8B\u4EF6\u72B6\u6001\n## \u53C2\u6570\uFF1A\n## - seriesId: \u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B\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\uFF1Aokx_get_event_series \u67E5\u7CFB\u5217 \u2192 \u672C\u5DE5\u5177\u67E5\u770B\u4E8B\u4EF6 \u2192 \u9009\u62E9\u5230\u671F\u65E5",
|
|
24821
|
+
{
|
|
24822
|
+
seriesId: external_exports.string().describe("\u4E8B\u4EF6\u7CFB\u5217ID\u3002\u5FC5\u586B")
|
|
24823
|
+
},
|
|
24824
|
+
async ({ seriesId }) => {
|
|
24825
|
+
try {
|
|
24826
|
+
const data = await publicApi.getEventEvents(seriesId);
|
|
24827
|
+
return toResult(data);
|
|
24828
|
+
} catch (e) {
|
|
24829
|
+
return toError(e);
|
|
24830
|
+
}
|
|
24831
|
+
}
|
|
24832
|
+
);
|
|
24336
24833
|
}
|
|
24337
24834
|
|
|
24338
24835
|
// src/tools/bot.ts
|
|
@@ -24806,6 +25303,77 @@ function registerSpreadTools(server, auth) {
|
|
|
24806
25303
|
}
|
|
24807
25304
|
}
|
|
24808
25305
|
);
|
|
25306
|
+
server.tool(
|
|
25307
|
+
"okx_get_spread_orders_pending",
|
|
25308
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5F53\u524D\u6302\u5355\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u5408\u7EA6\u7684\u672A\u6210\u4EA4\u8BA2\u5355\u5217\u8868\u3001\u76D1\u63A7\u6302\u5355\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6302\u5355, spread pending, \u4EF7\u5DEE\u59D4\u6258, \u4EF7\u5DEE\u672A\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u53EF\u9009\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 ~2KB\n## \u5173\u8054\uFF1Aokx_place_spread_order \u4E0B\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u770B \u2192 okx_cancel_spread_order \u64A4\u9500",
|
|
25309
|
+
{
|
|
25310
|
+
sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
|
|
25311
|
+
},
|
|
25312
|
+
async ({ sprdId }) => {
|
|
25313
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25314
|
+
try {
|
|
25315
|
+
const data = await privateApi.getSpreadOrdersPending(auth, sprdId);
|
|
25316
|
+
return toResult(data);
|
|
25317
|
+
} catch (e) {
|
|
25318
|
+
return toError(e);
|
|
25319
|
+
}
|
|
25320
|
+
}
|
|
25321
|
+
);
|
|
25322
|
+
server.tool(
|
|
25323
|
+
"okx_get_spread_orders_history_archive",
|
|
25324
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u4EF7\u5DEE\u5408\u7EA6\u5F52\u6863\u5386\u53F2\u8BA2\u5355\uFF083\u4E2A\u6708\u524D\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u957F\u671F\u590D\u76D8\u4EF7\u5DEE\u4EA4\u6613\u3001\u5E74\u5EA6\u4EA4\u6613\u7EDF\u8BA1\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u5F52\u6863, spread archive, \u4EF7\u5DEE\u5386\u53F2\u5F52\u6863, \u4EF7\u5DEE\u5B58\u6863\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u53EF\u9009\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_orders_history \u67E5\u8FD1\u671F \u2192 \u672C\u5DE5\u5177\u67E5\u5F52\u6863 \u2192 \u5B8C\u6574\u590D\u76D8",
|
|
25325
|
+
{
|
|
25326
|
+
sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
|
|
25327
|
+
},
|
|
25328
|
+
async ({ sprdId }) => {
|
|
25329
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25330
|
+
try {
|
|
25331
|
+
const data = await privateApi.getSpreadOrdersHistoryArchive(auth, sprdId);
|
|
25332
|
+
return toResult(data);
|
|
25333
|
+
} catch (e) {
|
|
25334
|
+
return toError(e);
|
|
25335
|
+
}
|
|
25336
|
+
}
|
|
25337
|
+
);
|
|
25338
|
+
server.tool(
|
|
25339
|
+
"okx_get_spread_trades_public",
|
|
25340
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u516C\u5F00\u6210\u4EA4\u8BB0\u5F55\n## \u573A\u666F\uFF1A\u7528\u4E8E\u65E0\u9700\u9274\u6743\u67E5\u770B\u4EF7\u5DEE\u5E02\u573A\u7684\u6210\u4EA4\u60C5\u51B5\u3001\u5206\u6790\u4EF7\u683C\u8D70\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u516C\u5F00\u6210\u4EA4, spread public trades, \u516C\u5F00\u6210\u4EA4, \u4EF7\u5DEE\u6210\u4EA4\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B\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\n## \u5173\u8054\uFF1Aokx_get_spread_trades \u770B\u5E26\u8BE6\u60C5\u6210\u4EA4 \u2192 \u672C\u5DE5\u5177\u516C\u5F00\u67E5\u8BE2",
|
|
25341
|
+
{
|
|
25342
|
+
sprdId: external_exports.string().describe("\u4EF7\u5DEE\u5408\u7EA6ID\u3002\u5FC5\u586B")
|
|
25343
|
+
},
|
|
25344
|
+
async ({ sprdId }) => {
|
|
25345
|
+
try {
|
|
25346
|
+
const data = await publicApi.getSpreadPublicTrades(sprdId);
|
|
25347
|
+
const enriched = data.map((item) => ({
|
|
25348
|
+
...item,
|
|
25349
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
25350
|
+
}));
|
|
25351
|
+
return toResult(enriched);
|
|
25352
|
+
} catch (e) {
|
|
25353
|
+
return toError(e);
|
|
25354
|
+
}
|
|
25355
|
+
}
|
|
25356
|
+
);
|
|
25357
|
+
server.tool(
|
|
25358
|
+
"okx_get_spread_trades_fills",
|
|
25359
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EF7\u5DEE\u5408\u7EA6\u7684\u6210\u4EA4\u660E\u7EC6\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u4EF7\u5DEE\u8BA2\u5355\u7684\u9010\u7B14\u6210\u4EA4\u8BB0\u5F55\u3001\u6838\u5BF9\u6210\u4EA4\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u4EF7\u5DEE\u6210\u4EA4\u660E\u7EC6, spread fills, \u4EF7\u5DEE\u9010\u7B14, \u4EF7\u5DEE\u6210\u4EA4\u8BB0\u5F55\n## \u53C2\u6570\uFF1A\n## - sprdId: \u4EF7\u5DEE\u5408\u7EA6ID\u3002\u53EF\u9009\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1Aokx_get_spread_orders \u67E5\u8BA2\u5355 \u2192 \u672C\u5DE5\u5177\u67E5\u6210\u4EA4 \u2192 \u6838\u7B97\u6210\u672C",
|
|
25360
|
+
{
|
|
25361
|
+
sprdId: external_exports.string().optional().describe("\u4EF7\u5DEE\u5408\u7EA6ID")
|
|
25362
|
+
},
|
|
25363
|
+
async ({ sprdId }) => {
|
|
25364
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25365
|
+
try {
|
|
25366
|
+
const data = await privateApi.getSpreadTradeFills(auth, sprdId);
|
|
25367
|
+
const enriched = data.map((item) => ({
|
|
25368
|
+
...item,
|
|
25369
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
25370
|
+
}));
|
|
25371
|
+
return toResult(enriched);
|
|
25372
|
+
} catch (e) {
|
|
25373
|
+
return toError(e);
|
|
25374
|
+
}
|
|
25375
|
+
}
|
|
25376
|
+
);
|
|
24809
25377
|
}
|
|
24810
25378
|
|
|
24811
25379
|
// src/tools/copy.ts
|
|
@@ -25304,6 +25872,156 @@ function registerRfqTools(server, auth) {
|
|
|
25304
25872
|
);
|
|
25305
25873
|
}
|
|
25306
25874
|
|
|
25875
|
+
// src/tools/affiliate.ts
|
|
25876
|
+
function registerAffiliateTools(server, auth) {
|
|
25877
|
+
server.tool(
|
|
25878
|
+
"okx_get_affiliate_invitee_list",
|
|
25879
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u9080\u8BF7\u7684\u7528\u6237\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63A8\u5E7F\u5458\u67E5\u770B\u9080\u8BF7\u4E86\u54EA\u4E9B\u7528\u6237\u3001\u7EDF\u8BA1\u63A8\u5E7F\u6548\u679C\n## \u5173\u952E\u8BCD\uFF1A\u63A8\u5E7F\u5217\u8868, invitee list, \u9080\u8BF7\u5217\u8868, \u63A8\u5E7F\u5927\u4F7F\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u9080\u8BF7\u5217\u8868 \u2192 okx_get_affiliate_performance \u67E5\u770B\u63A8\u5E7F\u7EE9\u6548",
|
|
25880
|
+
{},
|
|
25881
|
+
async () => {
|
|
25882
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25883
|
+
try {
|
|
25884
|
+
const data = await privateApi.getAffiliateInviteeList(auth);
|
|
25885
|
+
return toResult(data);
|
|
25886
|
+
} catch (e) {
|
|
25887
|
+
return toError(e);
|
|
25888
|
+
}
|
|
25889
|
+
}
|
|
25890
|
+
);
|
|
25891
|
+
server.tool(
|
|
25892
|
+
"okx_get_affiliate_invitee_detail",
|
|
25893
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u9080\u8BF7\u7684\u67D0\u4E2A\u7528\u6237\u8BE6\u7EC6\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u7279\u5B9A\u88AB\u9080\u8BF7\u7528\u6237\u7684\u4EA4\u6613\u91CF\u548C\u8FD4\u4F63\u8BE6\u60C5\n## \u5173\u952E\u8BCD\uFF1A\u9080\u8BF7\u8BE6\u60C5, invitee detail, \u63A8\u5E7F\u660E\u7EC6, \u7528\u6237\u8BE6\u60C5\n## \u53C2\u6570\uFF1A\n## - uid: \u7528\u6237ID\u3002\u53EF\u9009\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 ~2KB\n## \u5173\u8054\uFF1Aokx_get_affiliate_invitee_list \u83B7\u53D6\u7528\u6237\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u67E5\u8BE6\u60C5",
|
|
25894
|
+
{
|
|
25895
|
+
uid: external_exports.string().optional().describe("\u7528\u6237ID")
|
|
25896
|
+
},
|
|
25897
|
+
async ({ uid }) => {
|
|
25898
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25899
|
+
try {
|
|
25900
|
+
const data = await privateApi.getAffiliateInviteeDetail(auth, uid);
|
|
25901
|
+
return toResult(data);
|
|
25902
|
+
} catch (e) {
|
|
25903
|
+
return toError(e);
|
|
25904
|
+
}
|
|
25905
|
+
}
|
|
25906
|
+
);
|
|
25907
|
+
server.tool(
|
|
25908
|
+
"okx_get_affiliate_link_list",
|
|
25909
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u94FE\u63A5\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5DF2\u521B\u5EFA\u7684\u63A8\u5E7F\u94FE\u63A5\u3001\u7BA1\u7406\u63A8\u5E7F\u6E20\u9053\n## \u5173\u952E\u8BCD\uFF1A\u63A8\u5E7F\u94FE\u63A5, affiliate link, \u9080\u8BF7\u94FE\u63A5, \u63A8\u5E7F\u6E20\u9053\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u94FE\u63A5 \u2192 \u5206\u4EAB\u7ED9\u7528\u6237 \u2192 \u8FFD\u8E2A\u63A8\u5E7F\u6548\u679C",
|
|
25910
|
+
{},
|
|
25911
|
+
async () => {
|
|
25912
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25913
|
+
try {
|
|
25914
|
+
const data = await privateApi.getAffiliateLinkList(auth);
|
|
25915
|
+
return toResult(data);
|
|
25916
|
+
} catch (e) {
|
|
25917
|
+
return toError(e);
|
|
25918
|
+
}
|
|
25919
|
+
}
|
|
25920
|
+
);
|
|
25921
|
+
server.tool(
|
|
25922
|
+
"okx_get_affiliate_performance",
|
|
25923
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u63A8\u5E7F\u7EE9\u6548\u6C47\u603B\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u63A8\u5E7F\u6536\u76CA\u3001\u4EA4\u6613\u91CF\u3001\u8FD4\u4F63\u6BD4\u4F8B\u7B49\u6838\u5FC3\u6570\u636E\n## \u5173\u952E\u8BCD\uFF1A\u63A8\u5E7F\u7EE9\u6548, affiliate performance, \u63A8\u5E7F\u6536\u76CA, \u8FD4\u4F63, \u4F63\u91D1\u7EDF\u8BA1\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 ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u603B\u7EE9\u6548 \u2192 okx_get_affiliate_invitee_list \u770B\u660E\u7EC6 \u2192 \u4F18\u5316\u63A8\u5E7F\u7B56\u7565",
|
|
25924
|
+
{},
|
|
25925
|
+
async () => {
|
|
25926
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25927
|
+
try {
|
|
25928
|
+
const data = await privateApi.getAffiliatePerformance(auth);
|
|
25929
|
+
return toResult(data);
|
|
25930
|
+
} catch (e) {
|
|
25931
|
+
return toError(e);
|
|
25932
|
+
}
|
|
25933
|
+
}
|
|
25934
|
+
);
|
|
25935
|
+
server.tool(
|
|
25936
|
+
"okx_get_co_inviter_list",
|
|
25937
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u8054\u5408\u9080\u8BF7\u4EBA\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5408\u4F5C\u63A8\u5E7F\u7684\u8054\u5408\u9080\u8BF7\u4EBA\n## \u5173\u952E\u8BCD\uFF1A\u8054\u5408\u9080\u8BF7, co-inviter, \u5408\u4F5C\u63A8\u5E7F, \u5408\u9080\u5217\u8868\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u8054\u5408\u9080\u8BF7\u4EBA \u2192 \u7BA1\u7406\u5408\u4F5C\u63A8\u5E7F\u5173\u7CFB",
|
|
25938
|
+
{},
|
|
25939
|
+
async () => {
|
|
25940
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25941
|
+
try {
|
|
25942
|
+
const data = await privateApi.getAffiliateCoInviterList(auth);
|
|
25943
|
+
return toResult(data);
|
|
25944
|
+
} catch (e) {
|
|
25945
|
+
return toError(e);
|
|
25946
|
+
}
|
|
25947
|
+
}
|
|
25948
|
+
);
|
|
25949
|
+
server.tool(
|
|
25950
|
+
"okx_get_sub_affiliate_list",
|
|
25951
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4E0B\u7EA7\u63A8\u5E7F\u5458\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u81EA\u5DF1\u7684\u4E0B\u7EA7\u63A8\u5E7F\u5458\u3001\u7BA1\u7406\u63A8\u5E7F\u56E2\u961F\n## \u5173\u952E\u8BCD\uFF1A\u4E0B\u7EA7\u63A8\u5E7F, sub affiliate, \u4E0B\u7EA7\u4EE3\u7406, \u63A8\u5E7F\u56E2\u961F\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u4E0B\u7EA7\u63A8\u5E7F\u5458 \u2192 \u7BA1\u7406\u63A8\u5E7F\u56E2\u961F \u2192 \u5E26\u52A8\u56E2\u961F\u4E1A\u7EE9",
|
|
25952
|
+
{},
|
|
25953
|
+
async () => {
|
|
25954
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25955
|
+
try {
|
|
25956
|
+
const data = await privateApi.getAffiliateSubAffiliateList(auth);
|
|
25957
|
+
return toResult(data);
|
|
25958
|
+
} catch (e) {
|
|
25959
|
+
return toError(e);
|
|
25960
|
+
}
|
|
25961
|
+
}
|
|
25962
|
+
);
|
|
25963
|
+
}
|
|
25964
|
+
|
|
25965
|
+
// src/tools/fiat.ts
|
|
25966
|
+
function registerFiatTools(server, auth) {
|
|
25967
|
+
server.tool(
|
|
25968
|
+
"okx_get_fiat_buy_sell_pair",
|
|
25969
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6CD5\u5E01\u4E70\u5356\u652F\u6301\u7684\u5E01\u79CD\u5BF9\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u652F\u6301\u7684\u6CD5\u5E01\u4EA4\u6613\u5BF9\u3001\u4E86\u89E3\u53EF\u76F4\u63A5\u7528\u6CD5\u5E01\u4E70\u5356\u7684\u5E01\u79CD\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u4EA4\u6613\u5BF9, fiat pair, \u6CD5\u5E01\u4E70\u5356, \u6CD5\u5E01\u5E01\u79CD\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u652F\u6301\u5BF9 \u2192 okx_get_fiat_deposit \u67E5\u770B\u5165\u91D1\u65B9\u5F0F",
|
|
25970
|
+
{},
|
|
25971
|
+
async () => {
|
|
25972
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25973
|
+
try {
|
|
25974
|
+
const data = await privateApi.getFiatBuySellPair(auth);
|
|
25975
|
+
return toResult(data);
|
|
25976
|
+
} catch (e) {
|
|
25977
|
+
return toError(e);
|
|
25978
|
+
}
|
|
25979
|
+
}
|
|
25980
|
+
);
|
|
25981
|
+
server.tool(
|
|
25982
|
+
"okx_get_fiat_deposit",
|
|
25983
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6CD5\u5E01\u5165\u91D1\u4FE1\u606F\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u6CD5\u5E01\u5145\u503C\u6E20\u9053\u3001\u5165\u91D1\u72B6\u6001\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u5165\u91D1, fiat deposit, \u6CD5\u5E01\u5145\u503C, \u6CD5\u5E01\u5165\u91D1\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 ~2KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u5165\u91D1 \u2192 okx_get_fiat_deposit_methods \u770B\u652F\u4ED8\u65B9\u5F0F",
|
|
25984
|
+
{},
|
|
25985
|
+
async () => {
|
|
25986
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
25987
|
+
try {
|
|
25988
|
+
const data = await privateApi.getFiatDeposit(auth);
|
|
25989
|
+
return toResult(data);
|
|
25990
|
+
} catch (e) {
|
|
25991
|
+
return toError(e);
|
|
25992
|
+
}
|
|
25993
|
+
}
|
|
25994
|
+
);
|
|
25995
|
+
server.tool(
|
|
25996
|
+
"okx_get_fiat_deposit_orders",
|
|
25997
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u6CD5\u5E01\u5165\u91D1\u8BA2\u5355\u5386\u53F2\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8FFD\u8E2A\u6CD5\u5E01\u5145\u503C\u8BB0\u5F55\u3001\u6838\u5BF9\u5165\u91D1\u72B6\u6001\u548C\u91D1\u989D\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u5165\u91D1\u8BA2\u5355, fiat deposit orders, \u5145\u503C\u8BB0\u5F55, \u5165\u91D1\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\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528\n## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u5165\u91D1\u5386\u53F2 \u2192 \u5230\u8D26\u786E\u8BA4 \u2192 \u4EA4\u6613\u51C6\u5907",
|
|
25998
|
+
{},
|
|
25999
|
+
async () => {
|
|
26000
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
26001
|
+
try {
|
|
26002
|
+
const data = await privateApi.getFiatDepositOrderHistory(auth);
|
|
26003
|
+
return toResult(data);
|
|
26004
|
+
} catch (e) {
|
|
26005
|
+
return toError(e);
|
|
26006
|
+
}
|
|
26007
|
+
}
|
|
26008
|
+
);
|
|
26009
|
+
server.tool(
|
|
26010
|
+
"okx_get_fiat_deposit_methods",
|
|
26011
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u6CD5\u5E01\u5165\u91D1\u652F\u6301\u7684\u652F\u4ED8\u65B9\u5F0F\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u53EF\u7528\u7684\u6CD5\u5E01\u5165\u91D1\u652F\u4ED8\u65B9\u5F0F\uFF08\u94F6\u884C\u8F6C\u8D26/\u7B2C\u4E09\u65B9\u652F\u4ED8\u7B49\uFF09\n## \u5173\u952E\u8BCD\uFF1A\u6CD5\u5E01\u652F\u4ED8\u65B9\u5F0F, fiat methods, \u5165\u91D1\u65B9\u5F0F, \u652F\u4ED8\u6E20\u9053\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\u4E2D\u7B49 ~5KB\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u770B\u652F\u4ED8\u65B9\u5F0F \u2192 \u9009\u62E9\u5408\u9002\u65B9\u5F0F\u5165\u91D1",
|
|
26012
|
+
{},
|
|
26013
|
+
async () => {
|
|
26014
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
26015
|
+
try {
|
|
26016
|
+
const data = await privateApi.getFiatDepositPaymentMethods(auth);
|
|
26017
|
+
return toResult(data);
|
|
26018
|
+
} catch (e) {
|
|
26019
|
+
return toError(e);
|
|
26020
|
+
}
|
|
26021
|
+
}
|
|
26022
|
+
);
|
|
26023
|
+
}
|
|
26024
|
+
|
|
25307
26025
|
// src/index.ts
|
|
25308
26026
|
async function main() {
|
|
25309
26027
|
const server = new McpServer({ name: "hvip", version: "0.2.1" });
|
|
@@ -25322,6 +26040,8 @@ async function main() {
|
|
|
25322
26040
|
registerFundingTools(server, auth);
|
|
25323
26041
|
registerSubAccountTools(server, auth);
|
|
25324
26042
|
registerFinanceTools(server, auth);
|
|
26043
|
+
registerAffiliateTools(server, auth);
|
|
26044
|
+
registerFiatTools(server, auth);
|
|
25325
26045
|
registerRfqTools(server, auth);
|
|
25326
26046
|
const transport = new StdioServerTransport();
|
|
25327
26047
|
await server.connect(transport);
|