hvip-mcp-server 0.2.17 → 0.2.18
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 +228 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -21195,7 +21195,13 @@ var publicApi = {
|
|
|
21195
21195
|
getTakerFlow: (ccy, instType, begin, end) => request("GET", "/api/v5/rubik/stat/taker-flow", { params: { ccy, instType, begin, end } }),
|
|
21196
21196
|
getTopTradersContractLSRatio: (ccy, begin, end) => request("GET", "/api/v5/rubik/stat/top-traders-contract-ls-ratio", { params: { ccy, begin, end } }),
|
|
21197
21197
|
getContractsTakerVolume: (ccy, begin, end) => request("GET", "/api/v5/rubik/stat/contracts-taker-volume", { params: { ccy, begin, end } }),
|
|
21198
|
-
getContractsLongShortRatio: (ccy, begin, end) => request("GET", "/api/v5/rubik/stat/long-short-ratio", { params: { ccy, begin, end } })
|
|
21198
|
+
getContractsLongShortRatio: (ccy, begin, end) => request("GET", "/api/v5/rubik/stat/long-short-ratio", { params: { ccy, begin, end } }),
|
|
21199
|
+
// ── 公共数据(第三批新增) ──────────────────────────────────────────────────
|
|
21200
|
+
getPlatform24Volume: () => request("GET", "/api/v5/market/platform-24-volume"),
|
|
21201
|
+
getCallAuctionDetails: (instId) => request("GET", "/api/v5/market/call-auction-details", { params: { instId } }),
|
|
21202
|
+
getOptionInstrumentFamilyTrades: (instFamily, limit) => request("GET", "/api/v5/market/option/instrument-family-trades", { params: { instFamily, limit } }),
|
|
21203
|
+
getOptionTrades: (instFamily, instId, limit) => request("GET", "/api/v5/public/option-trades", { params: { instFamily, instId, limit } }),
|
|
21204
|
+
getExchangeRate: () => request("GET", "/api/v5/market/exchange-rate")
|
|
21199
21205
|
};
|
|
21200
21206
|
var privateApi = {
|
|
21201
21207
|
getBalance: (auth, ccy) => request("GET", "/api/v5/account/balance", { params: { ccy }, auth }),
|
|
@@ -21275,7 +21281,14 @@ var privateApi = {
|
|
|
21275
21281
|
orderPrecheck: (auth, body) => request("POST", "/api/v5/trade/order-precheck", { body, auth }),
|
|
21276
21282
|
getAccountRateLimit: (auth) => request("GET", "/api/v5/trade/account-rate-limit", { auth }),
|
|
21277
21283
|
easyConvert: (auth, body) => request("POST", "/api/v5/trade/easy-convert", { body, auth }),
|
|
21278
|
-
getEasyConvertHistory: (auth, after, before, limit) => request("GET", "/api/v5/trade/easy-convert-history", { params: { after, before, limit }, auth })
|
|
21284
|
+
getEasyConvertHistory: (auth, after, before, limit) => request("GET", "/api/v5/trade/easy-convert-history", { params: { after, before, limit }, auth }),
|
|
21285
|
+
// ── 账户+资金(第四批新增) ──────────────────────────────────────────────────
|
|
21286
|
+
setPositionMode: (auth, body) => request("POST", "/api/v5/account/set-position-mode", { body, auth }),
|
|
21287
|
+
getAssetValuation: (auth, ccy) => request("GET", "/api/v5/asset/asset-valuation", { params: { ccy }, auth }),
|
|
21288
|
+
getConvertCurrencies: (auth) => request("GET", "/api/v5/asset/convert/currencies", { auth }),
|
|
21289
|
+
convertTrade: (auth, body) => request("POST", "/api/v5/asset/convert/trade", { body, auth }),
|
|
21290
|
+
getSubAccountFundingBalance: (auth, subAcct) => request("GET", "/api/v5/asset/subaccount/balances", { params: { subAcct }, auth }),
|
|
21291
|
+
setSubAccountTransferOut: (auth, body) => request("POST", "/api/v5/users/subaccount/set-transfer-out", { body, auth })
|
|
21279
21292
|
};
|
|
21280
21293
|
|
|
21281
21294
|
// src/adapters/hrails.ts
|
|
@@ -21973,6 +21986,112 @@ function registerPublicTools(server) {
|
|
|
21973
21986
|
}
|
|
21974
21987
|
}
|
|
21975
21988
|
);
|
|
21989
|
+
server.tool(
|
|
21990
|
+
"okx_get_platform_24_volume",
|
|
21991
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u5E73\u53F024\u5C0F\u65F6\u603B\u4EA4\u6613\u91CF\uFF08\u73B0\u8D27+\u5408\u7EA6+\u671F\u6743\u5408\u8BA1\uFF09\uFF0C\u4E0D\u542B\u7279\u5B9A\u5E01\u79CD\n## \u573A\u666F\uFF1A\u7528\u4E8E\u8BC4\u4F30\u4EA4\u6613\u6240\u6574\u4F53\u6D3B\u8DC3\u5EA6\u3001\u5224\u65AD\u5E02\u573A\u70ED\u5EA6\u9AD8\u4F4E\u3001\u76D1\u63A7\u5E73\u53F0\u4EA4\u6613\u91CF\u53D8\u5316\u8D8B\u52BF\n## \u5173\u952E\u8BCD\uFF1A\u5E73\u53F0\u4EA4\u6613\u91CF, 24\u5C0F\u65F6\u4EA4\u6613\u91CF, platform volume, \u603B\u6210\u4EA4\u91CF, \u5E02\u573A\u70ED\u5EA6, \u5168\u5E73\u53F0\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\u5FAE\u5C0F ~300B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u5168\u5E73\u53F0\u70ED\u5EA6 \u2192 okx_get_ticker \u770B\u5177\u4F53\u4EA7\u54C1 \u2192 okx_get_tickers \u626B\u63CF\u5E02\u573A",
|
|
21992
|
+
{},
|
|
21993
|
+
async () => {
|
|
21994
|
+
try {
|
|
21995
|
+
const data = await publicApi.getPlatform24Volume();
|
|
21996
|
+
const enriched = data.map((item) => ({
|
|
21997
|
+
...item,
|
|
21998
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
21999
|
+
}));
|
|
22000
|
+
return toResult(enriched);
|
|
22001
|
+
} catch (e) {
|
|
22002
|
+
return toError(e);
|
|
22003
|
+
}
|
|
22004
|
+
}
|
|
22005
|
+
);
|
|
22006
|
+
server.tool(
|
|
22007
|
+
"okx_get_call_auction_details",
|
|
22008
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6\u4EA7\u54C1\u96C6\u5408\u7ADE\u4EF7\u8BE6\u60C5\uFF0C\u542B\u5F53\u524D\u7ADE\u4EF7\u7684\u672A\u5339\u914D\u91CF\u548C\u53C2\u8003\u4EF7\u683C\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5F00\u76D8\u524D/\u76D8\u524D\u4EA4\u6613\u65F6\u6BB5\u67E5\u770B\u96C6\u5408\u7ADE\u4EF7\u4F9B\u9700\u3001\u5224\u65AD\u5F00\u76D8\u4EF7\u683C\u533A\u95F4\u3001\u53D1\u73B0\u5F02\u5E38\u7ADE\u4EF7\n## \u5173\u952E\u8BCD\uFF1A\u96C6\u5408\u7ADE\u4EF7, call auction, \u7ADE\u4EF7\u8BE6\u60C5, \u5F00\u76D8\u7ADE\u4EF7, \u76D8\u524D\u7ADE\u4EF7, \u672A\u5339\u914D\u91CF\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\u5355\u4EA7\u54C1 ~500B \u2014 \u5FAE\u5C0F\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u7ADE\u4EF7 \u2192 okx_get_ticker \u770B\u5F00\u76D8\u4EF7 \u2192 \u5F00\u76D8\u540E okx_get_candles \u8DDF\u8E2A\u8D70\u52BF",
|
|
22009
|
+
{
|
|
22010
|
+
instId: external_exports.string().describe("\u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B")
|
|
22011
|
+
},
|
|
22012
|
+
async ({ instId }) => {
|
|
22013
|
+
try {
|
|
22014
|
+
const data = await publicApi.getCallAuctionDetails(instId);
|
|
22015
|
+
const enriched = data.map((item) => ({
|
|
22016
|
+
...item,
|
|
22017
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0,
|
|
22018
|
+
auctionEndTimeIso: item.auctionEndTime ? new Date(parseInt(item.auctionEndTime)).toISOString() : void 0
|
|
22019
|
+
}));
|
|
22020
|
+
return toResult(enriched);
|
|
22021
|
+
} catch (e) {
|
|
22022
|
+
return toError(e);
|
|
22023
|
+
}
|
|
22024
|
+
}
|
|
22025
|
+
);
|
|
22026
|
+
server.tool(
|
|
22027
|
+
"okx_get_option_instrument_family_trades",
|
|
22028
|
+
`## \u529F\u80FD\uFF1A\u6309\u4EA7\u54C1\u65CF\u83B7\u53D6\u671F\u6743\u94FE\u6700\u65B0\u6210\u4EA4\uFF08\u6309\u671F\u6743\u7C7B\u578B\u5F52\u7EC4\uFF09
|
|
22029
|
+
## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u6D4F\u89C8\u67D0BTC/ETH\u671F\u6743\u94FE\u6574\u4F53\u6210\u4EA4\u6982\u51B5\u3001\u5BF9\u6BD4\u770B\u6DA8/\u770B\u8DCC\u6210\u4EA4\u5206\u5E03\u3001\u53D1\u73B0\u5927\u989D\u671F\u6743\u5F02\u52A8
|
|
22030
|
+
## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u65CF\u6210\u4EA4, option family trades, \u671F\u6743\u94FE\u6210\u4EA4, \u671F\u6743\u6210\u4EA4\u6982\u51B5, \u671F\u6743\u6210\u4EA4\u6C47\u603B
|
|
22031
|
+
## \u53C2\u6570\uFF1A
|
|
22032
|
+
## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B
|
|
22033
|
+
## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4\u4E0D\u586B\u5219\u8FD4\u56DE\u5168\u90E8
|
|
22034
|
+
## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key
|
|
22035
|
+
## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
|
|
22036
|
+
## \u8FD4\u56DE\u91CF\uFF1A\u4E2D\u7B49 ~5KB
|
|
22037
|
+
## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_instruments(instType=OPTION) \u83B7\u53D6\u671F\u6743\u4EA7\u54C1 \u2192 \u672C\u5DE5\u5177\u770B\u65CF\u6210\u4EA4 \u2192 okx_get_option_trades \u770B\u5355\u7B14`,
|
|
22038
|
+
{
|
|
22039
|
+
instFamily: external_exports.string().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u5FC5\u586B"),
|
|
22040
|
+
limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570")
|
|
22041
|
+
},
|
|
22042
|
+
async ({ instFamily, limit }) => {
|
|
22043
|
+
try {
|
|
22044
|
+
const data = await publicApi.getOptionInstrumentFamilyTrades(instFamily, limit);
|
|
22045
|
+
return toResult(data);
|
|
22046
|
+
} catch (e) {
|
|
22047
|
+
return toError(e);
|
|
22048
|
+
}
|
|
22049
|
+
}
|
|
22050
|
+
);
|
|
22051
|
+
server.tool(
|
|
22052
|
+
"okx_get_option_trades",
|
|
22053
|
+
`## \u529F\u80FD\uFF1A\u83B7\u53D6\u671F\u6743\u9010\u7B14\u6210\u4EA4\u8BB0\u5F55
|
|
22054
|
+
## \u573A\u666F\uFF1A\u7528\u4E8E\u5206\u6790\u5177\u4F53\u671F\u6743\u5408\u7EA6\u7684\u6210\u4EA4\u4EF7\u91CF\u5206\u5E03\u3001\u5224\u65AD\u4E3B\u52A8\u4E70\u5356\u65B9\u5411\u3001\u8DDF\u8E2A\u671F\u6743\u5927\u5355
|
|
22055
|
+
## \u5173\u952E\u8BCD\uFF1A\u671F\u6743\u6210\u4EA4, option trades, \u9010\u7B14\u671F\u6743\u6210\u4EA4, \u671F\u6743\u660E\u7EC6, \u671F\u6743\u5927\u5355, option fill
|
|
22056
|
+
## \u53C2\u6570\uFF1A
|
|
22057
|
+
## - instFamily: \u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u4E0EinstId\u4E8C\u9009\u4E00
|
|
22058
|
+
## - instId: \u671F\u6743\u4EA7\u54C1ID\uFF0C\u5982 BTC-USD-260612-64000-C\u3002\u4E0EinstFamily\u4E8C\u9009\u4E00
|
|
22059
|
+
## - limit: \u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100\uFF0C\u6700\u5927100
|
|
22060
|
+
## \u9274\u6743\uFF1APUBLIC \u2014 \u516C\u5F00\u63A5\u53E3\uFF0C\u4E0D\u9700\u8981 API Key
|
|
22061
|
+
## \u98CE\u9669\uFF1AREAD \u2014 \u53EA\u8BFB\u67E5\u8BE2\uFF0CAgent \u53EF\u81EA\u52A8\u8C03\u7528
|
|
22062
|
+
## \u8FD4\u56DE\u91CF\uFF1A100\u6761 ~5KB \u2014 \u4E2D\u7B49
|
|
22063
|
+
## \u5173\u8054\uFF1Aokx_get_option_instrument_family_trades \u770B\u65CF\u6982\u51B5 \u2192 \u672C\u5DE5\u5177\u770B\u9010\u7B14 \u2192 okx_get_opt_summary \u770B\u6CE2\u52A8\u7387`,
|
|
22064
|
+
{
|
|
22065
|
+
instFamily: external_exports.string().optional().describe("\u4EA7\u54C1\u65CF\uFF0C\u5982 BTC-USD\u3002\u4E0EinstId\u4E8C\u9009\u4E00"),
|
|
22066
|
+
instId: external_exports.string().optional().describe("\u671F\u6743\u4EA7\u54C1ID\uFF0C\u5982 BTC-USD-260612-64000-C\u3002\u4E0EinstFamily\u4E8C\u9009\u4E00"),
|
|
22067
|
+
limit: external_exports.number().int().min(1).max(100).optional().describe("\u8FD4\u56DE\u6761\u6570\uFF0C\u9ED8\u8BA4100")
|
|
22068
|
+
},
|
|
22069
|
+
async ({ instFamily, instId, limit }) => {
|
|
22070
|
+
try {
|
|
22071
|
+
const data = await publicApi.getOptionTrades(instFamily, instId, limit);
|
|
22072
|
+
const enriched = data.map((item) => ({
|
|
22073
|
+
...item,
|
|
22074
|
+
tsIso: item.ts ? new Date(parseInt(item.ts)).toISOString() : void 0
|
|
22075
|
+
}));
|
|
22076
|
+
return toResult(enriched);
|
|
22077
|
+
} catch (e) {
|
|
22078
|
+
return toError(e);
|
|
22079
|
+
}
|
|
22080
|
+
}
|
|
22081
|
+
);
|
|
22082
|
+
server.tool(
|
|
22083
|
+
"okx_get_exchange_rate",
|
|
22084
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u5E73\u53F0\u652F\u6301\u7684\u6CD5\u5B9A\u8D27\u5E01\u6C47\u7387\uFF08\u5982USD/CNY\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5C06\u7F8E\u5143\u8BA1\u4EF7\u76C8\u4E8F\u6362\u7B97\u4E3A\u672C\u5730\u6CD5\u5E01\u3001\u8BA1\u7B97\u6CD5\u5E01\u51FA\u5165\u91D1\u91D1\u989D\n## \u5173\u952E\u8BCD\uFF1A\u6C47\u7387, exchange rate, \u6CD5\u5E01\u6C47\u7387, USD/CNY, \u7F8E\u5143\u6C47\u7387, \u4EBA\u6C11\u5E01\u6C47\u7387\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\u5FAE\u5C0F ~100B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u67E5\u6C47\u7387 \u2192 \u8F85\u52A9\u8BA1\u7B97\u76C8\u4E8F \u2192 \u7528\u6237\u4E86\u89E3\u672C\u5730\u6CD5\u5E01\u4EF7\u503C",
|
|
22085
|
+
{},
|
|
22086
|
+
async () => {
|
|
22087
|
+
try {
|
|
22088
|
+
const data = await publicApi.getExchangeRate();
|
|
22089
|
+
return toResult(data);
|
|
22090
|
+
} catch (e) {
|
|
22091
|
+
return toError(e);
|
|
22092
|
+
}
|
|
22093
|
+
}
|
|
22094
|
+
);
|
|
21976
22095
|
server.tool(
|
|
21977
22096
|
"okx_search_instruments",
|
|
21978
22097
|
"## \u529F\u80FD\uFF1A\u6309\u5173\u952E\u8BCD\u641C\u7D22\u53EF\u4EA4\u6613\u4EA7\u54C1\uFF08\u73B0\u8D27/\u5408\u7EA6/\u671F\u6743\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u7528\u6237\u8F93\u5165\u4EA7\u54C1\u540D\u79F0\u6A21\u7CCA\u67E5\u627E instId\u3001\u53D1\u73B0\u65B0\u4EA7\u54C1\u3001\u786E\u8BA4\u67D0\u5E01\u79CD\u6709\u54EA\u4E9B\u53EF\u4EA4\u6613\u4EA7\u54C1\n## \u5173\u952E\u8BCD\uFF1A\u641C\u7D22, \u67E5\u627E\u4EA7\u54C1, search instruments, \u4EA7\u54C1\u641C\u7D22, \u6A21\u7CCA\u67E5\u8BE2, \u5E01\u79CD\u641C\u7D22, find instrument\n## \u53C2\u6570\uFF1A\n## - keyword: \u641C\u7D22\u5173\u952E\u8BCD\uFF0C\u5982 BTC\u3001ETH\u3001SOL\u3002\u5FC5\u586B\uFF0C\u6700\u5C112\u5B57\u7B26\n## - instType: \u4EA7\u54C1\u7C7B\u578B\u7B5B\u9009\u3002\u4E0D\u586B\u5219\u641C\u7D22\u5168\u90E8\u7C7B\u578B\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 \u2014 \u6700\u591A\u8FD4\u56DE top 20 \u5339\u914D\u7ED3\u679C\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u641C\u7D22\u4EA7\u54C1 \u2192 okx_get_ticker \u67E5\u884C\u60C5 \u2192 okx_place_order \u4E0B\u5355",
|
|
@@ -22224,6 +22343,80 @@ function registerAccountTools(server, auth) {
|
|
|
22224
22343
|
}
|
|
22225
22344
|
}
|
|
22226
22345
|
);
|
|
22346
|
+
server.tool(
|
|
22347
|
+
"okx_set_position_mode",
|
|
22348
|
+
"## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u6301\u4ED3\u6A21\u5F0F\uFF08\u5355\u5411\u6301\u4ED3/\u53CC\u5411\u6301\u4ED3\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5207\u6362\u6301\u4ED3\u6A21\u5F0F\uFF08\u5982\u4ECE\u5355\u5411\u5207\u5230\u53CC\u5411\u652F\u6301\u540C\u65F6\u505A\u591A\u7A7A\uFF09\u3001\u5F00\u5355\u524D\u786E\u8BA4\u6301\u4ED3\u6A21\u5F0F\u6B63\u786E\n## \u5173\u952E\u8BCD\uFF1A\u6301\u4ED3\u6A21\u5F0F, \u6301\u4ED3\u65B9\u5411, position mode, \u53CC\u5411\u6301\u4ED3, \u5355\u5411\u6301\u4ED3, \u9501\u4ED3\n## \u53C2\u6570\uFF1A\n## - posMode: \u6301\u4ED3\u6A21\u5F0F\u3002long_short_mode=\u53CC\u5411\u6301\u4ED3, net_mode=\u5355\u5411\u6301\u4ED3\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u8D26\u6237\u914D\u7F6E\uFF0C\u5F71\u54CD\u6240\u6709\u5408\u7EA6/\u6760\u6746\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B\n## \u5173\u8054\uFF1A\u5148\u8C03 okx_get_account_config \u770B\u5F53\u524D\u6A21\u5F0F \u2192 \u672C\u5DE5\u5177\u5207\u6362 \u2192 \u8C03 okx_set_leverage \u8BBE\u6760\u6746",
|
|
22349
|
+
{
|
|
22350
|
+
posMode: external_exports.enum(["long_short_mode", "net_mode"]).describe("\u6301\u4ED3\u6A21\u5F0F\u3002long_short_mode=\u53CC\u5411\u6301\u4ED3, net_mode=\u5355\u5411\u6301\u4ED3")
|
|
22351
|
+
},
|
|
22352
|
+
async ({ posMode }) => {
|
|
22353
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
22354
|
+
try {
|
|
22355
|
+
const data = await privateApi.setPositionMode(auth, { posMode });
|
|
22356
|
+
return toResult(data);
|
|
22357
|
+
} catch (e) {
|
|
22358
|
+
return toError(e);
|
|
22359
|
+
}
|
|
22360
|
+
}
|
|
22361
|
+
);
|
|
22362
|
+
server.tool(
|
|
22363
|
+
"okx_get_asset_valuation",
|
|
22364
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u8D26\u6237\u603B\u8D44\u4EA7\u4F30\u503C\uFF08\u542B\u4EA4\u6613\u8D26\u6237\u548C\u8D44\u91D1\u8D26\u6237\u603B\u6743\u76CA\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u603B\u8D44\u4EA7\u6982\u51B5\u3001\u6309\u5E01\u79CD\u7EDF\u8BA1\u6301\u4ED3\u4EF7\u503C\u3001\u6838\u5BF9\u8D26\u6237\u603B\u6743\u76CA\u53D8\u5316\n## \u5173\u952E\u8BCD\uFF1A\u8D44\u4EA7\u4F30\u503C, \u603B\u8D44\u4EA7, asset valuation, \u8D26\u6237\u603B\u6743\u76CA, \u8D44\u4EA7\u6982\u51B5\n## \u53C2\u6570\uFF1A\n## - ccy: \u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USD\u3001CNY\u3002\u4E0D\u586B\u9ED8\u8BA4\u6309\u6240\u6709\u5E01\u79CD\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 ~500B\n## \u5173\u8054\uFF1A\u672C\u5DE5\u5177\u770B\u603B\u8D44\u4EA7 \u2192 okx_get_balance \u770B\u4EA4\u6613\u8D26\u6237 \u2192 okx_get_funding_balance \u770B\u8D44\u91D1\u8D26\u6237",
|
|
22365
|
+
{
|
|
22366
|
+
ccy: external_exports.string().optional().describe("\u8BA1\u4EF7\u5E01\u79CD\uFF0C\u5982 USD\u3001CNY\u3002\u4E0D\u586B\u9ED8\u8BA4\u6309\u6240\u6709\u5E01\u79CD")
|
|
22367
|
+
},
|
|
22368
|
+
async ({ ccy }) => {
|
|
22369
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
22370
|
+
try {
|
|
22371
|
+
const data = await privateApi.getAssetValuation(auth, ccy);
|
|
22372
|
+
return toResult(data);
|
|
22373
|
+
} catch (e) {
|
|
22374
|
+
return toError(e);
|
|
22375
|
+
}
|
|
22376
|
+
}
|
|
22377
|
+
);
|
|
22378
|
+
server.tool(
|
|
22379
|
+
"okx_get_convert_currencies",
|
|
22380
|
+
"## \u529F\u80FD\uFF1A\u83B7\u53D6OKX\u652F\u6301\u7684\u4E00\u952E\u5151\u6362\u5E01\u79CD\u5217\u8868\n## \u573A\u666F\uFF1A\u7528\u4E8E\u5728\u95EA\u5151\u524D\u67E5\u770B\u652F\u6301\u54EA\u4E9B\u5151\u6362\u5BF9\u3001\u786E\u8BA4\u76EE\u6807\u5E01\u79CD\u662F\u5426\u53EF\u5151\u6362\n## \u5173\u952E\u8BCD\uFF1A\u5151\u6362\u5E01\u79CD, convert currencies, \u95EA\u5151\u5217\u8868, \u5151\u6362\u652F\u6301, \u53EF\u5151\u6362\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\u53EF\u5151\u6362\u5E01\u79CD \u2192 okx_convert_trade \u6267\u884C\u5151\u6362 \u2192 okx_get_easy_convert_history \u67E5\u8BB0\u5F55",
|
|
22381
|
+
{},
|
|
22382
|
+
async () => {
|
|
22383
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
22384
|
+
try {
|
|
22385
|
+
const data = await privateApi.getConvertCurrencies(auth);
|
|
22386
|
+
return toResult(data);
|
|
22387
|
+
} catch (e) {
|
|
22388
|
+
return toError(e);
|
|
22389
|
+
}
|
|
22390
|
+
}
|
|
22391
|
+
);
|
|
22392
|
+
server.tool(
|
|
22393
|
+
"okx_convert_trade",
|
|
22394
|
+
`## \u529F\u80FD\uFF1A\u6267\u884C\u8D44\u4EA7\u5151\u6362\uFF08\u5C06\u4E00\u79CD\u8D44\u4EA7\u76F4\u63A5\u6362\u6210\u53E6\u4E00\u79CD\uFF0C\u5982 USDT\u2192BTC\uFF09
|
|
22395
|
+
## \u573A\u666F\uFF1A\u7528\u4E8E\u5FEB\u901F\u6362\u5E01\u3001\u5C0F\u989D\u8D44\u4EA7\u5151\u6362\u3001\u65E0\u9700\u6302\u5355\u7684\u5373\u65F6\u5151\u6362
|
|
22396
|
+
## \u5173\u952E\u8BCD\uFF1A\u5151\u6362, convert trade, \u8D44\u4EA7\u5151\u6362, \u6362\u5E01, \u4E00\u952E\u5151\u6362, \u95EA\u5151
|
|
22397
|
+
## \u53C2\u6570\uFF1A
|
|
22398
|
+
## - fromCcy: \u5356\u51FA\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B
|
|
22399
|
+
## - toCcy: \u4E70\u5165\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B
|
|
22400
|
+
## - sz: \u5356\u51FA\u6570\u91CF\u3002\u5FC5\u586B
|
|
22401
|
+
## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981 API Key\uFF08\u4EA4\u6613\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\u5151\u6362\u65B9\u5411\u548C\u6570\u91CF
|
|
22402
|
+
## \u98CE\u9669\uFF1AFUND_TRANSFER \u2014 \u4EA7\u751F\u771F\u5B9E\u5151\u6362\u4EA4\u6613\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u5411\u7528\u6237\u786E\u8BA4
|
|
22403
|
+
## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~500B
|
|
22404
|
+
## \u5173\u8054\uFF1Aokx_get_convert_currencies \u67E5\u652F\u6301\u5E01\u79CD \u2192 \u672C\u5DE5\u5177\u5151\u6362 \u2192 okx_get_balance \u786E\u8BA4\u5230\u8D26`,
|
|
22405
|
+
{
|
|
22406
|
+
fromCcy: external_exports.string().describe("\u5356\u51FA\u5E01\u79CD\uFF0C\u5982 USDT\u3002\u5FC5\u586B"),
|
|
22407
|
+
toCcy: external_exports.string().describe("\u4E70\u5165\u5E01\u79CD\uFF0C\u5982 BTC\u3002\u5FC5\u586B"),
|
|
22408
|
+
sz: external_exports.string().describe("\u5356\u51FA\u6570\u91CF\u3002\u5FC5\u586B")
|
|
22409
|
+
},
|
|
22410
|
+
async ({ fromCcy, toCcy, sz }) => {
|
|
22411
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
22412
|
+
try {
|
|
22413
|
+
const data = await privateApi.convertTrade(auth, { fromCcy, toCcy, sz });
|
|
22414
|
+
return toResult(data);
|
|
22415
|
+
} catch (e) {
|
|
22416
|
+
return toError(e);
|
|
22417
|
+
}
|
|
22418
|
+
}
|
|
22419
|
+
);
|
|
22227
22420
|
server.tool(
|
|
22228
22421
|
"okx_get_margin_balance",
|
|
22229
22422
|
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u67D0\u4EA7\u54C1\u7684\u4FDD\u8BC1\u91D1\u4F59\u989D\u8BE6\u60C5\n## \u573A\u666F\uFF1A\u7528\u4E8E\u6760\u6746/\u5408\u7EA6\u4EA4\u6613\u524D\u67E5\u770B\u53EF\u7528\u4FDD\u8BC1\u91D1\u3001\u5360\u7528\u4FDD\u8BC1\u91D1\u3001\u4FDD\u8BC1\u91D1\u7387\n## \u5173\u952E\u8BCD\uFF1A\u4FDD\u8BC1\u91D1\u4F59\u989D, \u4FDD\u8BC1\u91D1\u7387, margin balance, \u53EF\u7528\u4FDD\u8BC1\u91D1, \u5360\u7528\u4FDD\u8BC1\u91D1\n## \u53C2\u6570\uFF1A\n## - instId: \u4EA7\u54C1ID\uFF0C\u5982 BTC-USDT\u3002\u5FC5\u586B\n## - mgnMode: \u4FDD\u8BC1\u91D1\u6A21\u5F0F\u3002cross=\u5168\u4ED3, isolated=\u9010\u4ED3\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 ~500B\n## \u5173\u8054\uFF1Aokx_get_balance \u67E5\u603B\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u67E5\u4FDD\u8BC1\u91D1 \u2192 okx_get_positions \u67E5\u6301\u4ED3",
|
|
@@ -23121,6 +23314,39 @@ function registerSubAccountTools(server, auth) {
|
|
|
23121
23314
|
}
|
|
23122
23315
|
}
|
|
23123
23316
|
);
|
|
23317
|
+
server.tool(
|
|
23318
|
+
"okx_subaccount_set_transfer_out",
|
|
23319
|
+
"## \u529F\u80FD\uFF1A\u8BBE\u7F6E\u5B50\u8D26\u6237\u7684\u8D44\u91D1\u8F6C\u51FA\u6743\u9650\n## \u573A\u666F\uFF1A\u7528\u4E8E\u63A7\u5236\u5B50\u8D26\u6237\u662F\u5426\u53EF\u4EE5\u5411\u5916\u90E8\u8F6C\u51FA\u8D44\u91D1\u3001\u7BA1\u7406\u591A\u7B56\u7565\u8D26\u6237\u7684\u8D44\u91D1\u6743\u9650\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u8F6C\u51FA, \u8F6C\u51FA\u6743\u9650, set transfer out, \u5B50\u8D26\u6237\u6743\u9650, \u98CE\u63A7, \u8D44\u91D1\u7BA1\u7406\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## - canTransferOut: \u662F\u5426\u5141\u8BB8\u8F6C\u51FA\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u{1F534} \u9700\u8981\u4E3B\u8D26\u6237 API Key\uFF08\u7BA1\u7406\uFF09- \u8C03\u7528\u524D\u987B\u5411\u7528\u6237\u786E\u8BA4\n## \u98CE\u9669\uFF1AADMIN \u2014 \u4FEE\u6539\u5B50\u8D26\u6237\u6743\u9650\uFF0C\u5F71\u54CD\u8D44\u91D1\u5B89\u5168\uFF0C\u8C03\u7528\u524D\u5FC5\u987B\u7531\u7528\u6237\u786E\u8BA4\n## \u8FD4\u56DE\u91CF\uFF1A\u5FAE\u5C0F ~200B\n## \u5173\u8054\uFF1Aokx_list_subaccounts \u83B7\u53D6\u5B50\u8D26\u6237\u5217\u8868 \u2192 \u672C\u5DE5\u5177\u7BA1\u7406\u6743\u9650 \u2192 okx_transfer_subaccount \u5212\u8F6C",
|
|
23320
|
+
{
|
|
23321
|
+
subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B"),
|
|
23322
|
+
canTransferOut: external_exports.boolean().describe("\u662F\u5426\u5141\u8BB8\u8F6C\u51FA\u3002true=\u5141\u8BB8, false=\u7981\u6B62")
|
|
23323
|
+
},
|
|
23324
|
+
async ({ subAcct, canTransferOut }) => {
|
|
23325
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23326
|
+
try {
|
|
23327
|
+
const data = await privateApi.setSubAccountTransferOut(auth, { subAcct, canTransOut: canTransferOut });
|
|
23328
|
+
return toResult(data);
|
|
23329
|
+
} catch (e) {
|
|
23330
|
+
return toError(e);
|
|
23331
|
+
}
|
|
23332
|
+
}
|
|
23333
|
+
);
|
|
23334
|
+
server.tool(
|
|
23335
|
+
"okx_get_subaccount_assets",
|
|
23336
|
+
"## \u529F\u80FD\uFF1A\u67E5\u8BE2\u5B50\u8D26\u6237\u7684\u8D44\u91D1\u8D26\u6237\u4F59\u989D\uFF08\u975E\u4EA4\u6613\u8D26\u6237\uFF09\n## \u573A\u666F\uFF1A\u7528\u4E8E\u67E5\u770B\u5B50\u8D26\u6237\u7684\u5145\u503C\u8D44\u91D1\u3001\u786E\u8BA4\u5B50\u8D26\u6237\u8D44\u91D1\u8D26\u6237\u8D44\u4EA7\n## \u5173\u952E\u8BCD\uFF1A\u5B50\u8D26\u6237\u8D44\u4EA7, subaccount assets, \u5B50\u8D26\u6237\u8D44\u91D1, \u5B50\u8D26\u6237\u4F59\u989D, \u5B50\u8D26\u53F7\u8D44\u91D1\n## \u53C2\u6570\uFF1A\n## - subAcct: \u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B\n## \u9274\u6743\uFF1A\u26A0\uFE0F \u9700\u8981\u4E3B\u8D26\u6237 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_subaccount_balance \u770B\u4EA4\u6613\u4F59\u989D \u2192 \u672C\u5DE5\u5177\u770B\u8D44\u91D1\u4F59\u989D \u2192 \u7EFC\u5408\u8BC4\u4F30\u5B50\u8D26\u6237\u8D44\u4EA7",
|
|
23337
|
+
{
|
|
23338
|
+
subAcct: external_exports.string().describe("\u5B50\u8D26\u6237\u540D\u79F0\u3002\u5FC5\u586B")
|
|
23339
|
+
},
|
|
23340
|
+
async ({ subAcct }) => {
|
|
23341
|
+
if (!auth) return toError(AUTH_REQUIRED);
|
|
23342
|
+
try {
|
|
23343
|
+
const data = await privateApi.getSubAccountFundingBalance(auth, subAcct);
|
|
23344
|
+
return toResult(data);
|
|
23345
|
+
} catch (e) {
|
|
23346
|
+
return toError(e);
|
|
23347
|
+
}
|
|
23348
|
+
}
|
|
23349
|
+
);
|
|
23124
23350
|
}
|
|
23125
23351
|
|
|
23126
23352
|
// src/tools/finance.ts
|