@continuumdao/ctm-mpc-defi 0.2.9 → 0.2.11
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/agent/catalog.cjs +522 -19
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +639 -14
- package/dist/agent/catalog.js +510 -20
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/hyperliquid/SKILL.md +34 -6
- package/dist/agent/skills/morpho/SKILL.md +63 -0
- package/dist/core/index.cjs +9 -0
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +3 -1
- package/dist/core/index.js +8 -1
- package/dist/core/index.js.map +1 -1
- package/dist/index.cjs +9 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.cjs +407 -34
- package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.d.ts +168 -15
- package/dist/protocols/evm/hyperliquid/index.js +390 -35
- package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
- package/dist/protocols/evm/maple/index.cjs.map +1 -1
- package/dist/protocols/evm/maple/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +1971 -0
- package/dist/protocols/evm/morpho/index.cjs.map +1 -0
- package/dist/protocols/evm/morpho/index.d.ts +522 -0
- package/dist/protocols/evm/morpho/index.js +1918 -0
- package/dist/protocols/evm/morpho/index.js.map +1 -0
- package/dist/protocols/evm/sky/index.cjs.map +1 -1
- package/dist/protocols/evm/sky/index.js.map +1 -1
- package/package.json +6 -1
package/dist/agent/catalog.js
CHANGED
|
@@ -520,6 +520,9 @@ var chainDetailSchema = z.object({
|
|
|
520
520
|
"Optional gas config: { legacy?, gasLimit?, gasMultiplier?, gasPrice?, baseFee?, priorityFee?, baseFeeMultiplier? }."
|
|
521
521
|
);
|
|
522
522
|
var evmMultisignCommonInputSchema = z.object({
|
|
523
|
+
keyGenId: z.string().min(1).optional().describe(
|
|
524
|
+
"KeyGen request id from get_preferred_key_gen / conversation context. MCP server resolves keyGen, executorAddress, rpcUrl, and chainDetail \u2014 do not pass those fields when keyGenId is set."
|
|
525
|
+
),
|
|
523
526
|
keyGen: keyGenSchema,
|
|
524
527
|
purposeText: z.string().min(1).describe(
|
|
525
528
|
"Human-readable purpose for the sign request. Stored in bodyForSign.purpose (may be appended with an automatic batch suffix)."
|
|
@@ -924,6 +927,74 @@ var mcpEulerV2CollateralWithdrawInputSchema = mcpMultisignInput({
|
|
|
924
927
|
collateralAsset: evmAddressSchema,
|
|
925
928
|
amountHuman: z.string().min(1)
|
|
926
929
|
});
|
|
930
|
+
var mcpMorphoVaultDepositInputSchema = mcpMultisignInput({
|
|
931
|
+
vault: evmAddressSchema,
|
|
932
|
+
underlying: evmAddressSchema.describe("Underlying asset; use wrapped native with isNativeIn for ETH."),
|
|
933
|
+
amountHuman: z.string().min(1),
|
|
934
|
+
isNativeIn: z.boolean().optional()
|
|
935
|
+
});
|
|
936
|
+
var mcpMorphoVaultWithdrawInputSchema = mcpMultisignInput({
|
|
937
|
+
vault: evmAddressSchema,
|
|
938
|
+
amountHuman: z.string().min(1)
|
|
939
|
+
});
|
|
940
|
+
var mcpMorphoBlueCollateralDepositInputSchema = mcpMultisignInput({
|
|
941
|
+
marketId: z.string().min(1).describe("Morpho Blue marketId from API."),
|
|
942
|
+
collateralToken: evmAddressSchema,
|
|
943
|
+
amountHuman: z.string().min(1),
|
|
944
|
+
isNativeIn: z.boolean().optional()
|
|
945
|
+
});
|
|
946
|
+
var mcpMorphoBlueBorrowInputSchema = mcpMultisignInput({
|
|
947
|
+
marketId: z.string().min(1),
|
|
948
|
+
loanToken: evmAddressSchema,
|
|
949
|
+
amountHuman: z.string().min(1)
|
|
950
|
+
});
|
|
951
|
+
var mcpMorphoBlueRepayInputSchema = mcpMultisignInput({
|
|
952
|
+
marketId: z.string().min(1),
|
|
953
|
+
loanToken: evmAddressSchema,
|
|
954
|
+
amountHuman: z.string().min(1)
|
|
955
|
+
});
|
|
956
|
+
var mcpMorphoBlueCollateralWithdrawInputSchema = mcpMultisignInput({
|
|
957
|
+
marketId: z.string().min(1),
|
|
958
|
+
amountHuman: z.string().min(1),
|
|
959
|
+
collateralDecimals: z.number().int().min(0).max(36).optional()
|
|
960
|
+
});
|
|
961
|
+
var mcpMorphoMerklClaimInputSchema = mcpMultisignInput({
|
|
962
|
+
claimData: z.string().min(1).describe("Hex calldata for Merkl Distributor.claim from Merkl API."),
|
|
963
|
+
distributor: evmAddressSchema.optional(),
|
|
964
|
+
valueWei: z.string().optional()
|
|
965
|
+
});
|
|
966
|
+
var morphoExposureRowSchema = z.object({
|
|
967
|
+
label: z.string(),
|
|
968
|
+
allocatedUsdLabel: z.string(),
|
|
969
|
+
allocationPercentLabel: z.string()
|
|
970
|
+
});
|
|
971
|
+
var mcpMorphoFetchEarnVaultsInputSchema = z.object({
|
|
972
|
+
chainId: z.number().int().positive(),
|
|
973
|
+
underlying: z.string().trim().min(1).optional().describe("Deposit asset symbol (e.g. USDC) or ERC-20 address. Omit to search all listed vaults on the chain."),
|
|
974
|
+
query: z.string().trim().min(1).optional().describe("Case-insensitive filter on vault name, symbol, address, or underlying symbol (e.g. Steakhouse, bbqUSDC)."),
|
|
975
|
+
limit: z.number().int().min(1).max(200).optional().describe("Max rows (default 50).")
|
|
976
|
+
});
|
|
977
|
+
var mcpMorphoFetchEarnVaultsOutputSchema = z.object({
|
|
978
|
+
vaults: z.array(
|
|
979
|
+
z.object({
|
|
980
|
+
vaultAddress: z.string(),
|
|
981
|
+
vaultName: z.string(),
|
|
982
|
+
vaultSymbol: z.string(),
|
|
983
|
+
underlyingAddress: z.string(),
|
|
984
|
+
underlyingSymbol: z.string(),
|
|
985
|
+
apy: z.string(),
|
|
986
|
+
netApy: z.string(),
|
|
987
|
+
netApy7d: z.string(),
|
|
988
|
+
netApy30d: z.string(),
|
|
989
|
+
netApy90d: z.string(),
|
|
990
|
+
performanceFee: z.string(),
|
|
991
|
+
managementFee: z.string().nullable(),
|
|
992
|
+
totalDepositsUsd: z.string(),
|
|
993
|
+
liquidityUsd: z.string(),
|
|
994
|
+
exposure: z.array(morphoExposureRowSchema)
|
|
995
|
+
})
|
|
996
|
+
)
|
|
997
|
+
});
|
|
927
998
|
function mcpGmxMultisignInput(fields) {
|
|
928
999
|
return evmMultisignCommonInputSchema.extend(fields);
|
|
929
1000
|
}
|
|
@@ -1128,7 +1199,8 @@ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
|
|
|
1128
1199
|
asset: z.number(),
|
|
1129
1200
|
szDecimals: z.number(),
|
|
1130
1201
|
maxLeverage: z.number(),
|
|
1131
|
-
onlyIsolated: z.boolean().optional()
|
|
1202
|
+
onlyIsolated: z.boolean().optional(),
|
|
1203
|
+
dex: z.string().optional()
|
|
1132
1204
|
})
|
|
1133
1205
|
),
|
|
1134
1206
|
dexes: z.array(
|
|
@@ -1138,6 +1210,30 @@ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
|
|
|
1138
1210
|
})
|
|
1139
1211
|
)
|
|
1140
1212
|
});
|
|
1213
|
+
var mcpHyperliquidSearchMarketsInputSchema = z.object({
|
|
1214
|
+
chainId: z.number().int().positive(),
|
|
1215
|
+
query: z.string().min(1),
|
|
1216
|
+
dex: z.string().optional(),
|
|
1217
|
+
limit: z.number().int().positive().max(50).optional()
|
|
1218
|
+
});
|
|
1219
|
+
var mcpHyperliquidSearchMarketsOutputSchema = z.object({
|
|
1220
|
+
matches: z.array(
|
|
1221
|
+
z.object({
|
|
1222
|
+
coin: z.string(),
|
|
1223
|
+
symbol: z.string(),
|
|
1224
|
+
dex: z.string().optional(),
|
|
1225
|
+
asset: z.number(),
|
|
1226
|
+
szDecimals: z.number(),
|
|
1227
|
+
maxLeverage: z.number(),
|
|
1228
|
+
onlyIsolated: z.boolean().optional(),
|
|
1229
|
+
displayName: z.string().optional(),
|
|
1230
|
+
category: z.string().optional(),
|
|
1231
|
+
keywords: z.array(z.string()).optional(),
|
|
1232
|
+
matchScore: z.number(),
|
|
1233
|
+
matchReason: z.string()
|
|
1234
|
+
})
|
|
1235
|
+
)
|
|
1236
|
+
});
|
|
1141
1237
|
var mcpHyperliquidFetchOpenContextInputSchema = z.object({
|
|
1142
1238
|
chainId: z.number().int().positive(),
|
|
1143
1239
|
executorAddress: evmAddressSchema,
|
|
@@ -1180,25 +1276,70 @@ var mcpHyperliquidFetchMarketSnapshotInputSchema = z.object({
|
|
|
1180
1276
|
chainId: z.number().int().positive(),
|
|
1181
1277
|
coin: z.string().min(1),
|
|
1182
1278
|
interval: hyperliquidOhlcvIntervalSchema.optional(),
|
|
1183
|
-
dex: z.string().optional()
|
|
1279
|
+
dex: z.string().optional(),
|
|
1280
|
+
/** Recent OHLCV bars to return (default 48, max 200). Live price is always current. */
|
|
1281
|
+
candleLimit: z.number().int().positive().max(200).optional()
|
|
1282
|
+
});
|
|
1283
|
+
var hyperliquidOhlcvCandleSchema = z.object({
|
|
1284
|
+
timestampMs: z.number(),
|
|
1285
|
+
open: z.string(),
|
|
1286
|
+
high: z.string(),
|
|
1287
|
+
low: z.string(),
|
|
1288
|
+
close: z.string(),
|
|
1289
|
+
volume: z.string()
|
|
1290
|
+
});
|
|
1291
|
+
var hyperliquidLivePriceSchema = z.object({
|
|
1292
|
+
markPx: z.string().nullable(),
|
|
1293
|
+
midPx: z.string().nullable(),
|
|
1294
|
+
oraclePx: z.string().nullable(),
|
|
1295
|
+
prevDayPx: z.string().nullable(),
|
|
1296
|
+
midUsd: z.string(),
|
|
1297
|
+
source: z.enum(["midPx", "markPx", "allMids"])
|
|
1184
1298
|
});
|
|
1185
1299
|
var mcpHyperliquidFetchMarketSnapshotOutputSchema = z.object({
|
|
1186
1300
|
snapshot: z.object({
|
|
1187
1301
|
coin: z.string(),
|
|
1188
|
-
|
|
1302
|
+
dex: z.string().nullable(),
|
|
1303
|
+
livePrice: hyperliquidLivePriceSchema,
|
|
1304
|
+
midUsd: z.string(),
|
|
1189
1305
|
fetchedAtMs: z.number(),
|
|
1190
1306
|
interval: hyperliquidOhlcvIntervalSchema,
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1307
|
+
latestCandle: hyperliquidOhlcvCandleSchema.nullable(),
|
|
1308
|
+
candles: z.array(hyperliquidOhlcvCandleSchema),
|
|
1309
|
+
candleCount: z.number()
|
|
1310
|
+
}),
|
|
1311
|
+
resolvedCoin: z.string(),
|
|
1312
|
+
dex: z.string().nullable()
|
|
1313
|
+
});
|
|
1314
|
+
var mcpHyperliquidFetchOhlcvInputSchema = z.object({
|
|
1315
|
+
chainId: z.number().int().positive(),
|
|
1316
|
+
coin: z.string().min(1),
|
|
1317
|
+
interval: hyperliquidOhlcvIntervalSchema.optional(),
|
|
1318
|
+
dex: z.string().optional(),
|
|
1319
|
+
/** Calendar-day lookback ending now (e.g. 7 = last week). Preferred for agent requests. */
|
|
1320
|
+
lookbackDays: z.number().positive().max(90).optional(),
|
|
1321
|
+
/** Hour lookback ending now. Alternative to lookbackDays. */
|
|
1322
|
+
lookbackHours: z.number().positive().max(90 * 24).optional(),
|
|
1323
|
+
/** Explicit range start (ms since epoch). Use with endTimeMs. */
|
|
1324
|
+
startTimeMs: z.number().int().positive().optional(),
|
|
1325
|
+
/** Explicit range end (ms since epoch). Defaults to now. */
|
|
1326
|
+
endTimeMs: z.number().int().positive().optional()
|
|
1327
|
+
});
|
|
1328
|
+
var mcpHyperliquidFetchOhlcvOutputSchema = z.object({
|
|
1329
|
+
ohlcv: z.object({
|
|
1330
|
+
coin: z.string(),
|
|
1331
|
+
dex: z.string().nullable(),
|
|
1332
|
+
interval: hyperliquidOhlcvIntervalSchema,
|
|
1333
|
+
startTimeMs: z.number(),
|
|
1334
|
+
endTimeMs: z.number(),
|
|
1335
|
+
expectedBars: z.number(),
|
|
1336
|
+
candleCount: z.number(),
|
|
1337
|
+
latestCandle: hyperliquidOhlcvCandleSchema.nullable(),
|
|
1338
|
+
candles: z.array(hyperliquidOhlcvCandleSchema),
|
|
1339
|
+
fetchedAtMs: z.number()
|
|
1340
|
+
}),
|
|
1341
|
+
resolvedCoin: z.string(),
|
|
1342
|
+
dex: z.string().nullable()
|
|
1202
1343
|
});
|
|
1203
1344
|
var mcpHyperliquidFetchUsdClassBalancesInputSchema = z.object({
|
|
1204
1345
|
chainId: z.number().int().positive(),
|
|
@@ -1609,6 +1750,87 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
1609
1750
|
handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch" },
|
|
1610
1751
|
inputZod: mcpEulerV2CollateralWithdrawInputSchema
|
|
1611
1752
|
}),
|
|
1753
|
+
defineProtocolMcpTool({
|
|
1754
|
+
name: "ctm_morpho_build_vault_deposit_multisign",
|
|
1755
|
+
actionId: "morpho.vault-deposit",
|
|
1756
|
+
protocolId: "morpho",
|
|
1757
|
+
chainCategory: "evm",
|
|
1758
|
+
description: "Build Morpho vault deposit batch (wrap/approve + deposit). Works with listed V1 and V2 vaults.",
|
|
1759
|
+
prerequisites: [
|
|
1760
|
+
"keyGenId",
|
|
1761
|
+
"chainId",
|
|
1762
|
+
"vaultAddress from ctm_morpho_fetch_earn_vaults",
|
|
1763
|
+
"underlying",
|
|
1764
|
+
"amountHuman"
|
|
1765
|
+
],
|
|
1766
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultDepositBatch" },
|
|
1767
|
+
inputZod: mcpMorphoVaultDepositInputSchema
|
|
1768
|
+
}),
|
|
1769
|
+
defineProtocolMcpTool({
|
|
1770
|
+
name: "ctm_morpho_build_vault_withdraw_multisign",
|
|
1771
|
+
actionId: "morpho.vault-withdraw",
|
|
1772
|
+
protocolId: "morpho",
|
|
1773
|
+
chainCategory: "evm",
|
|
1774
|
+
description: "Build Morpho vault withdraw batch. Works with listed V1 and V2 vaults.",
|
|
1775
|
+
prerequisites: [
|
|
1776
|
+
"keyGenId",
|
|
1777
|
+
"chainId",
|
|
1778
|
+
"vaultAddress from ctm_morpho_fetch_earn_vaults or user positions",
|
|
1779
|
+
"amountHuman"
|
|
1780
|
+
],
|
|
1781
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultWithdraw" },
|
|
1782
|
+
inputZod: mcpMorphoVaultWithdrawInputSchema
|
|
1783
|
+
}),
|
|
1784
|
+
defineProtocolMcpTool({
|
|
1785
|
+
name: "ctm_morpho_build_blue_collateral_deposit_multisign",
|
|
1786
|
+
actionId: "morpho.blue-collateral-deposit",
|
|
1787
|
+
protocolId: "morpho",
|
|
1788
|
+
chainCategory: "evm",
|
|
1789
|
+
description: "Build Morpho Blue supplyCollateral batch.",
|
|
1790
|
+
prerequisites: ["keyGenId", "chainId", "marketId", "collateralToken", "amountHuman"],
|
|
1791
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch" },
|
|
1792
|
+
inputZod: mcpMorphoBlueCollateralDepositInputSchema
|
|
1793
|
+
}),
|
|
1794
|
+
defineProtocolMcpTool({
|
|
1795
|
+
name: "ctm_morpho_build_blue_borrow_multisign",
|
|
1796
|
+
actionId: "morpho.blue-borrow",
|
|
1797
|
+
protocolId: "morpho",
|
|
1798
|
+
chainCategory: "evm",
|
|
1799
|
+
description: "Build Morpho Blue borrow batch.",
|
|
1800
|
+
prerequisites: ["keyGenId", "chainId", "marketId", "loanToken", "amountHuman"],
|
|
1801
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueBorrowBatch" },
|
|
1802
|
+
inputZod: mcpMorphoBlueBorrowInputSchema
|
|
1803
|
+
}),
|
|
1804
|
+
defineProtocolMcpTool({
|
|
1805
|
+
name: "ctm_morpho_build_blue_repay_multisign",
|
|
1806
|
+
actionId: "morpho.blue-repay",
|
|
1807
|
+
protocolId: "morpho",
|
|
1808
|
+
chainCategory: "evm",
|
|
1809
|
+
description: "Build Morpho Blue repay batch.",
|
|
1810
|
+
prerequisites: ["keyGenId", "chainId", "marketId", "loanToken", "amountHuman"],
|
|
1811
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueRepayBatch" },
|
|
1812
|
+
inputZod: mcpMorphoBlueRepayInputSchema
|
|
1813
|
+
}),
|
|
1814
|
+
defineProtocolMcpTool({
|
|
1815
|
+
name: "ctm_morpho_build_blue_collateral_withdraw_multisign",
|
|
1816
|
+
actionId: "morpho.blue-collateral-withdraw",
|
|
1817
|
+
protocolId: "morpho",
|
|
1818
|
+
chainCategory: "evm",
|
|
1819
|
+
description: "Build Morpho Blue withdrawCollateral batch.",
|
|
1820
|
+
prerequisites: ["keyGenId", "chainId", "marketId", "amountHuman"],
|
|
1821
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch" },
|
|
1822
|
+
inputZod: mcpMorphoBlueCollateralWithdrawInputSchema
|
|
1823
|
+
}),
|
|
1824
|
+
defineProtocolMcpTool({
|
|
1825
|
+
name: "ctm_morpho_build_merkl_claim_multisign",
|
|
1826
|
+
actionId: "morpho.merkl-claim",
|
|
1827
|
+
protocolId: "morpho",
|
|
1828
|
+
chainCategory: "evm",
|
|
1829
|
+
description: "Build Morpho Merkl Distributor.claim transaction.",
|
|
1830
|
+
prerequisites: ["keyGenId", "chainId", "claim calldata from Merkl API"],
|
|
1831
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoMerklDistributorClaim" },
|
|
1832
|
+
inputZod: mcpMorphoMerklClaimInputSchema
|
|
1833
|
+
}),
|
|
1612
1834
|
defineProtocolMcpTool({
|
|
1613
1835
|
name: "ctm_gmx_build_increase_multisign",
|
|
1614
1836
|
actionId: "gmx.increase",
|
|
@@ -2132,19 +2354,31 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
2132
2354
|
actionId: "hyperliquid.fetch-markets",
|
|
2133
2355
|
protocolId: "hyperliquid",
|
|
2134
2356
|
chainCategory: "evm",
|
|
2135
|
-
description: "List Hyperliquid perp markets (coin, maxLeverage, szDecimals
|
|
2357
|
+
description: "List Hyperliquid perp markets (native + all HIP-3 dexes when dex omitted). Each market has coin name, maxLeverage, szDecimals, and optional dex (e.g. xyz for xyz:AAPL). chainId 999 mainnet or 998 testnet.",
|
|
2136
2358
|
prerequisites: ["chainId 999 or 998"],
|
|
2137
2359
|
followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
|
|
2138
2360
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketsSummary" },
|
|
2139
2361
|
inputZod: mcpHyperliquidFetchMarketsInputSchema,
|
|
2140
2362
|
outputZod: mcpHyperliquidFetchMarketsOutputSchema
|
|
2141
2363
|
}),
|
|
2364
|
+
defineMcpTool({
|
|
2365
|
+
name: "ctm_hyperliquid_search_markets",
|
|
2366
|
+
actionId: "hyperliquid.search-markets",
|
|
2367
|
+
protocolId: "hyperliquid",
|
|
2368
|
+
chainCategory: "evm",
|
|
2369
|
+
description: "Search Hyperliquid perp markets across all dexes by ticker (AAPL, BTC), display name, or keyword (Apple, tesla). Case-insensitive. Returns canonical coin names (e.g. xyz:AAPL).",
|
|
2370
|
+
prerequisites: ["chainId 999 or 998", "query"],
|
|
2371
|
+
followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
|
|
2372
|
+
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidSearchMarketsSummary" },
|
|
2373
|
+
inputZod: mcpHyperliquidSearchMarketsInputSchema,
|
|
2374
|
+
outputZod: mcpHyperliquidSearchMarketsOutputSchema
|
|
2375
|
+
}),
|
|
2142
2376
|
defineMcpTool({
|
|
2143
2377
|
name: "ctm_hyperliquid_fetch_open_context",
|
|
2144
2378
|
actionId: "hyperliquid.fetch-open-context",
|
|
2145
2379
|
protocolId: "hyperliquid",
|
|
2146
2380
|
chainCategory: "evm",
|
|
2147
|
-
description: "Per-market trading context: account value, withdrawable, margin used, leverage setting, mark price, available buy/sell size.",
|
|
2381
|
+
description: "Per-market trading context: account value, withdrawable, margin used, leverage setting, mark price, available buy/sell size. Resolves ticker/name (AAPL, Apple) across dexes.",
|
|
2148
2382
|
prerequisites: ["chainId", "executorAddress", "coin from fetch_markets"],
|
|
2149
2383
|
followUp: ["ctm_hyperliquid_build_limit_order_multisign"],
|
|
2150
2384
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOpenContextSummary" },
|
|
@@ -2180,13 +2414,25 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
2180
2414
|
actionId: "hyperliquid.fetch-market-snapshot",
|
|
2181
2415
|
protocolId: "hyperliquid",
|
|
2182
2416
|
chainCategory: "evm",
|
|
2183
|
-
description: "
|
|
2417
|
+
description: "Live mark/mid price plus recent OHLCV candles for a Hyperliquid perp. Uses metaAndAssetCtxs for live prices (not stale candle close). Default interval 15m, 48 bars. Throws if live price unavailable.",
|
|
2184
2418
|
prerequisites: ["chainId", "coin"],
|
|
2185
2419
|
followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
|
|
2186
2420
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketSnapshotSummary" },
|
|
2187
2421
|
inputZod: mcpHyperliquidFetchMarketSnapshotInputSchema,
|
|
2188
2422
|
outputZod: mcpHyperliquidFetchMarketSnapshotOutputSchema
|
|
2189
2423
|
}),
|
|
2424
|
+
defineMcpTool({
|
|
2425
|
+
name: "ctm_hyperliquid_fetch_ohlcv",
|
|
2426
|
+
actionId: "hyperliquid.fetch-ohlcv",
|
|
2427
|
+
protocolId: "hyperliquid",
|
|
2428
|
+
chainCategory: "evm",
|
|
2429
|
+
description: "OHLCV candle history for a Hyperliquid perp over an explicit lookback or time range. Requests only the needed window from Hyperliquid (e.g. lookbackDays: 7, interval: 15m \u2192 ~672 bars). Max 2000 bars \u2014 use coarser interval for longer history. Resolves ticker/name across dexes.",
|
|
2430
|
+
prerequisites: ["chainId 999 or 998", "coin", "lookbackDays or lookbackHours or startTimeMs"],
|
|
2431
|
+
followUp: ["ctm_hyperliquid_fetch_market_snapshot", "ctm_hyperliquid_build_limit_order_multisign"],
|
|
2432
|
+
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOhlcvSummary" },
|
|
2433
|
+
inputZod: mcpHyperliquidFetchOhlcvInputSchema,
|
|
2434
|
+
outputZod: mcpHyperliquidFetchOhlcvOutputSchema
|
|
2435
|
+
}),
|
|
2190
2436
|
defineMcpTool({
|
|
2191
2437
|
name: "ctm_hyperliquid_fetch_usd_class_balances",
|
|
2192
2438
|
actionId: "hyperliquid.fetch-usd-balances",
|
|
@@ -2246,6 +2492,21 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
2246
2492
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchDelegationsForExecutor" },
|
|
2247
2493
|
inputZod: mcpHyperliquidFetchDelegationsInputSchema,
|
|
2248
2494
|
outputZod: mcpHyperliquidFetchDelegationsOutputSchema
|
|
2495
|
+
}),
|
|
2496
|
+
defineMcpTool({
|
|
2497
|
+
name: "ctm_morpho_fetch_earn_vaults",
|
|
2498
|
+
actionId: "morpho.fetch-earn-vaults",
|
|
2499
|
+
protocolId: "morpho",
|
|
2500
|
+
chainCategory: "evm",
|
|
2501
|
+
description: "Morpho-listed earn vaults (V1 + V2 unified). Filter by deposit asset symbol/address and/or case-insensitive vault name search. Returns vaultAddress for deposit/withdraw multisign tools.",
|
|
2502
|
+
prerequisites: ["chainId"],
|
|
2503
|
+
followUp: [
|
|
2504
|
+
"ctm_morpho_build_vault_deposit_multisign",
|
|
2505
|
+
"ctm_morpho_build_vault_withdraw_multisign"
|
|
2506
|
+
],
|
|
2507
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "morphoFetchEarnVaultsSummary" },
|
|
2508
|
+
inputZod: mcpMorphoFetchEarnVaultsInputSchema,
|
|
2509
|
+
outputZod: mcpMorphoFetchEarnVaultsOutputSchema
|
|
2249
2510
|
})
|
|
2250
2511
|
];
|
|
2251
2512
|
var MCP_TOOL_DEFINITIONS = [
|
|
@@ -2472,7 +2733,30 @@ registerProtocolModule(ethenaProtocolModule);
|
|
|
2472
2733
|
function isMapleSyrupSupportedChain(chainId) {
|
|
2473
2734
|
return chainId === 1 || chainId === 11155111;
|
|
2474
2735
|
}
|
|
2736
|
+
|
|
2737
|
+
// src/core/defiProxy.ts
|
|
2738
|
+
var aaveGraphqlProxyUrl;
|
|
2739
|
+
var morphoGraphqlProxyUrl;
|
|
2740
|
+
function getAaveGraphqlProxyUrl() {
|
|
2741
|
+
return aaveGraphqlProxyUrl;
|
|
2742
|
+
}
|
|
2743
|
+
function getMorphoGraphqlProxyUrl() {
|
|
2744
|
+
return morphoGraphqlProxyUrl;
|
|
2745
|
+
}
|
|
2475
2746
|
async function postJsonViaOptionalProxy(args) {
|
|
2747
|
+
const proxy = args.proxyUrl?.trim();
|
|
2748
|
+
if (proxy) {
|
|
2749
|
+
const r2 = await fetch(proxy, {
|
|
2750
|
+
method: "POST",
|
|
2751
|
+
headers: { "content-type": "application/json" },
|
|
2752
|
+
body: JSON.stringify(args.proxyEnvelope ?? args.body)
|
|
2753
|
+
});
|
|
2754
|
+
if (!r2.ok) {
|
|
2755
|
+
const t = await r2.text().catch(() => "");
|
|
2756
|
+
throw new Error(t ? `Proxy HTTP ${r2.status}: ${t.slice(0, 200)}` : `Proxy HTTP ${r2.status}`);
|
|
2757
|
+
}
|
|
2758
|
+
return await r2.json();
|
|
2759
|
+
}
|
|
2476
2760
|
const r = await fetch(args.directUrl, {
|
|
2477
2761
|
method: "POST",
|
|
2478
2762
|
headers: { "content-type": "application/json" },
|
|
@@ -2535,7 +2819,10 @@ async function aaveV4Gql(query, variables) {
|
|
|
2535
2819
|
const body = { query, variables: variables ?? {} };
|
|
2536
2820
|
const j = await postJsonViaOptionalProxy({
|
|
2537
2821
|
directUrl: AAVE_V4_GRAPHQL_URL,
|
|
2538
|
-
body
|
|
2822
|
+
body,
|
|
2823
|
+
proxyUrl: getAaveGraphqlProxyUrl(),
|
|
2824
|
+
proxyEnvelope: body
|
|
2825
|
+
});
|
|
2539
2826
|
if (j.errors?.length) {
|
|
2540
2827
|
const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
|
|
2541
2828
|
throw new Error(msg);
|
|
@@ -3008,6 +3295,175 @@ var hyperliquidProtocolModule = {
|
|
|
3008
3295
|
]
|
|
3009
3296
|
};
|
|
3010
3297
|
registerProtocolModule(hyperliquidProtocolModule);
|
|
3298
|
+
var MORPHO_GRAPHQL_URL = "https://api.morpho.org/graphql";
|
|
3299
|
+
async function morphoGql(query, variables) {
|
|
3300
|
+
const body = { query, variables: variables ?? {} };
|
|
3301
|
+
const j = await postJsonViaOptionalProxy({
|
|
3302
|
+
directUrl: MORPHO_GRAPHQL_URL,
|
|
3303
|
+
body,
|
|
3304
|
+
proxyUrl: getMorphoGraphqlProxyUrl(),
|
|
3305
|
+
proxyEnvelope: body
|
|
3306
|
+
});
|
|
3307
|
+
if (j.errors?.length) {
|
|
3308
|
+
const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
|
|
3309
|
+
throw new Error(msg);
|
|
3310
|
+
}
|
|
3311
|
+
if (j.data == null) throw new Error("Morpho API: empty response");
|
|
3312
|
+
return j.data;
|
|
3313
|
+
}
|
|
3314
|
+
async function fetchMorphoChains() {
|
|
3315
|
+
const d = await morphoGql(`
|
|
3316
|
+
query { chains { id network } }
|
|
3317
|
+
`);
|
|
3318
|
+
return d.chains ?? [];
|
|
3319
|
+
}
|
|
3320
|
+
async function loadMorphoSupportedChainIds() {
|
|
3321
|
+
const rows = await fetchMorphoChains();
|
|
3322
|
+
const s = /* @__PURE__ */ new Set();
|
|
3323
|
+
for (const c of rows) {
|
|
3324
|
+
if (typeof c.id === "number" && Number.isFinite(c.id)) s.add(c.id);
|
|
3325
|
+
}
|
|
3326
|
+
return s;
|
|
3327
|
+
}
|
|
3328
|
+
var VAULT_PAGE_SIZE = 100;
|
|
3329
|
+
async function fetchMorphoVaultsForChain(chainId, first = 100) {
|
|
3330
|
+
const d = await morphoGql(
|
|
3331
|
+
`
|
|
3332
|
+
query MorphoVaults($chainId: Int!, $first: Int!) {
|
|
3333
|
+
vaults(first: $first, where: { chainId_in: [$chainId], listed: true }, orderBy: TotalAssetsUsd, orderDirection: Desc) {
|
|
3334
|
+
items {
|
|
3335
|
+
address symbol name listed
|
|
3336
|
+
asset { address symbol decimals price { usd } }
|
|
3337
|
+
chain { id }
|
|
3338
|
+
state { apy netApy fee totalAssetsUsd allRewards { supplyApr asset { address symbol } } }
|
|
3339
|
+
}
|
|
3340
|
+
}
|
|
3341
|
+
}
|
|
3342
|
+
`,
|
|
3343
|
+
{ chainId, first }
|
|
3344
|
+
);
|
|
3345
|
+
return d.vaults?.items ?? [];
|
|
3346
|
+
}
|
|
3347
|
+
async function fetchMorphoVaultV2sForChain(chainId, first = 100, skip = 0) {
|
|
3348
|
+
const d = await morphoGql(
|
|
3349
|
+
`
|
|
3350
|
+
query MorphoVaultV2s($chainId: Int!, $first: Int!, $skip: Int!) {
|
|
3351
|
+
vaultV2s(
|
|
3352
|
+
first: $first
|
|
3353
|
+
skip: $skip
|
|
3354
|
+
where: { chainId_in: [$chainId], listed: true }
|
|
3355
|
+
orderBy: TotalAssetsUsd
|
|
3356
|
+
orderDirection: Desc
|
|
3357
|
+
) {
|
|
3358
|
+
items {
|
|
3359
|
+
address symbol name listed
|
|
3360
|
+
asset { address symbol decimals price { usd } }
|
|
3361
|
+
chain { id }
|
|
3362
|
+
apy netApy performanceFee managementFee totalAssetsUsd
|
|
3363
|
+
rewards { supplyApr asset { address symbol } }
|
|
3364
|
+
}
|
|
3365
|
+
}
|
|
3366
|
+
}
|
|
3367
|
+
`,
|
|
3368
|
+
{ chainId, first, skip }
|
|
3369
|
+
);
|
|
3370
|
+
return d.vaultV2s?.items ?? [];
|
|
3371
|
+
}
|
|
3372
|
+
async function fetchAllMorphoVaultV2AssetAddresses(chainId) {
|
|
3373
|
+
const out = /* @__PURE__ */ new Set();
|
|
3374
|
+
let skip = 0;
|
|
3375
|
+
for (let page = 0; page < 20; page++) {
|
|
3376
|
+
const batch = await fetchMorphoVaultV2sForChain(chainId, VAULT_PAGE_SIZE, skip);
|
|
3377
|
+
if (!batch.length) break;
|
|
3378
|
+
for (const v of batch) {
|
|
3379
|
+
const a = (v.asset?.address ?? "").trim();
|
|
3380
|
+
if (isAddress(a)) out.add(getAddress(a).toLowerCase());
|
|
3381
|
+
}
|
|
3382
|
+
if (batch.length < VAULT_PAGE_SIZE) break;
|
|
3383
|
+
skip += VAULT_PAGE_SIZE;
|
|
3384
|
+
}
|
|
3385
|
+
return out;
|
|
3386
|
+
}
|
|
3387
|
+
var chainAssetCache = /* @__PURE__ */ new Map();
|
|
3388
|
+
async function ensureMorphoChainAssetCache(chainId) {
|
|
3389
|
+
const hit = chainAssetCache.get(chainId);
|
|
3390
|
+
if (hit) return hit;
|
|
3391
|
+
const modes = /* @__PURE__ */ new Map();
|
|
3392
|
+
const [v1Vaults, v2Assets] = await Promise.all([
|
|
3393
|
+
fetchMorphoVaultsForChain(chainId, 300),
|
|
3394
|
+
fetchAllMorphoVaultV2AssetAddresses(chainId)
|
|
3395
|
+
]);
|
|
3396
|
+
for (const v of v1Vaults) {
|
|
3397
|
+
const a = (v.asset?.address ?? "").trim();
|
|
3398
|
+
if (!isAddress(a)) continue;
|
|
3399
|
+
const k = getAddress(a).toLowerCase();
|
|
3400
|
+
const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
|
|
3401
|
+
prev.earn = true;
|
|
3402
|
+
modes.set(k, prev);
|
|
3403
|
+
}
|
|
3404
|
+
for (const k of v2Assets) {
|
|
3405
|
+
const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
|
|
3406
|
+
prev.earn = true;
|
|
3407
|
+
modes.set(k, prev);
|
|
3408
|
+
}
|
|
3409
|
+
const marketsD = await morphoGql(
|
|
3410
|
+
`
|
|
3411
|
+
query MorphoMarketsAssets($chainId: Int!) {
|
|
3412
|
+
markets(first: 500, where: { chainId_in: [$chainId] }) {
|
|
3413
|
+
items {
|
|
3414
|
+
loanAsset { address }
|
|
3415
|
+
collateralAsset { address }
|
|
3416
|
+
}
|
|
3417
|
+
}
|
|
3418
|
+
}
|
|
3419
|
+
`,
|
|
3420
|
+
{ chainId }
|
|
3421
|
+
);
|
|
3422
|
+
for (const m of marketsD.markets?.items ?? []) {
|
|
3423
|
+
const loanAddr = (m.loanAsset?.address ?? "").trim();
|
|
3424
|
+
const colAddr = (m.collateralAsset?.address ?? "").trim();
|
|
3425
|
+
if (isAddress(loanAddr)) {
|
|
3426
|
+
const k = getAddress(loanAddr).toLowerCase();
|
|
3427
|
+
const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
|
|
3428
|
+
prev.borrow = true;
|
|
3429
|
+
modes.set(k, prev);
|
|
3430
|
+
}
|
|
3431
|
+
if (isAddress(colAddr)) {
|
|
3432
|
+
const k = getAddress(colAddr).toLowerCase();
|
|
3433
|
+
const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
|
|
3434
|
+
prev.collateral = true;
|
|
3435
|
+
modes.set(k, prev);
|
|
3436
|
+
}
|
|
3437
|
+
}
|
|
3438
|
+
const cache = { modesByUnderlying: modes, nativeWrapped: null };
|
|
3439
|
+
chainAssetCache.set(chainId, cache);
|
|
3440
|
+
return cache;
|
|
3441
|
+
}
|
|
3442
|
+
|
|
3443
|
+
// src/protocols/evm/morpho/index.ts
|
|
3444
|
+
var MORPHO_PROTOCOL_ID = "morpho";
|
|
3445
|
+
var morphoProtocolModule = {
|
|
3446
|
+
id: MORPHO_PROTOCOL_ID,
|
|
3447
|
+
chainCategory: "evm",
|
|
3448
|
+
isChainSupported(ctx) {
|
|
3449
|
+
return ctx.chainCategory === "evm";
|
|
3450
|
+
},
|
|
3451
|
+
isTokenSupported(token) {
|
|
3452
|
+
return token.category === "evm" && (token.kind === "native" || token.kind === "erc20");
|
|
3453
|
+
},
|
|
3454
|
+
actions: [
|
|
3455
|
+
{ id: "morpho.fetch-earn-vaults", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Search Morpho-listed earn vaults by asset or name", commonParams: [], params: {} },
|
|
3456
|
+
{ id: "morpho.vault-deposit", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Deposit into Morpho-listed earn vault (V1 or V2)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3457
|
+
{ id: "morpho.vault-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw from Morpho earn vault (V1 or V2)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3458
|
+
{ id: "morpho.blue-collateral-deposit", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Supply collateral to Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3459
|
+
{ id: "morpho.blue-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Borrow from Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3460
|
+
{ id: "morpho.blue-repay", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Repay Morpho Blue borrow", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3461
|
+
{ id: "morpho.blue-collateral-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw Morpho Blue collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3462
|
+
{ id: "morpho.merkl-claim", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Claim Morpho Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
3463
|
+
{ id: "morpho.midnight-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Morpho Midnight fixed-rate borrow (coming soon)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
3464
|
+
]
|
|
3465
|
+
};
|
|
3466
|
+
registerProtocolModule(morphoProtocolModule);
|
|
3011
3467
|
var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
|
|
3012
3468
|
var SKILL_PROTOCOL_IDS = [
|
|
3013
3469
|
"aave-v4",
|
|
@@ -3019,7 +3475,8 @@ var SKILL_PROTOCOL_IDS = [
|
|
|
3019
3475
|
"maple-syrup",
|
|
3020
3476
|
"sky",
|
|
3021
3477
|
"gmx",
|
|
3022
|
-
"hyperliquid"
|
|
3478
|
+
"hyperliquid",
|
|
3479
|
+
"morpho"
|
|
3023
3480
|
];
|
|
3024
3481
|
function getToolsForProtocol(protocolId) {
|
|
3025
3482
|
return MCP_TOOL_DEFINITIONS.filter((t) => t.protocolId === protocolId);
|
|
@@ -3233,6 +3690,37 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
3233
3690
|
return { tokens: [] };
|
|
3234
3691
|
}
|
|
3235
3692
|
}),
|
|
3693
|
+
morpho: advisor("morpho", "api_underlyings", {
|
|
3694
|
+
async supportedChainIds() {
|
|
3695
|
+
const set = await loadMorphoSupportedChainIds();
|
|
3696
|
+
return [...set].sort((a, b) => a - b);
|
|
3697
|
+
},
|
|
3698
|
+
async supportedTokens(chainId) {
|
|
3699
|
+
const cache = await ensureMorphoChainAssetCache(chainId);
|
|
3700
|
+
const tokens = [...cache.modesByUnderlying.entries()].map(([address, modes]) => ({
|
|
3701
|
+
address,
|
|
3702
|
+
roles: [
|
|
3703
|
+
...modes.earn ? ["vault_underlying"] : [],
|
|
3704
|
+
...modes.borrow ? ["loan"] : [],
|
|
3705
|
+
...modes.collateral ? ["collateral"] : []
|
|
3706
|
+
]
|
|
3707
|
+
}));
|
|
3708
|
+
return {
|
|
3709
|
+
tokens,
|
|
3710
|
+
notes: "Morpho vault assets and Blue market loan/collateral tokens from api.morpho.org."
|
|
3711
|
+
};
|
|
3712
|
+
},
|
|
3713
|
+
async isTokenSupported(chainId, address) {
|
|
3714
|
+
const cache = await ensureMorphoChainAssetCache(chainId);
|
|
3715
|
+
let normalized;
|
|
3716
|
+
try {
|
|
3717
|
+
normalized = getAddress(address).toLowerCase();
|
|
3718
|
+
} catch {
|
|
3719
|
+
return false;
|
|
3720
|
+
}
|
|
3721
|
+
return cache.modesByUnderlying.has(normalized);
|
|
3722
|
+
}
|
|
3723
|
+
}),
|
|
3236
3724
|
"euler-v2": advisor("euler-v2", "subgraph_vaults", {
|
|
3237
3725
|
async supportedChainIds() {
|
|
3238
3726
|
return [...EULER_V2_SUBGRAPH_CHAIN_IDS];
|
|
@@ -3314,6 +3802,7 @@ registerProtocolModule(aaveV4ProtocolModule);
|
|
|
3314
3802
|
registerProtocolModule(eulerV2ProtocolModule);
|
|
3315
3803
|
registerProtocolModule(gmxProtocolModule);
|
|
3316
3804
|
registerProtocolModule(hyperliquidProtocolModule);
|
|
3805
|
+
registerProtocolModule(morphoProtocolModule);
|
|
3317
3806
|
function getAgentCatalog() {
|
|
3318
3807
|
return {
|
|
3319
3808
|
protocols: getProtocolModules(),
|
|
@@ -3332,11 +3821,12 @@ function getAgentCatalog() {
|
|
|
3332
3821
|
eulerV2: eulerV2ProtocolModule,
|
|
3333
3822
|
gmx: gmxProtocolModule,
|
|
3334
3823
|
hyperliquid: hyperliquidProtocolModule,
|
|
3824
|
+
morpho: morphoProtocolModule,
|
|
3335
3825
|
/** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
|
|
3336
3826
|
mcp: getAgentCatalogForMcp()
|
|
3337
3827
|
};
|
|
3338
3828
|
}
|
|
3339
3829
|
|
|
3340
|
-
export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
|
|
3830
|
+
export { EVM_COMMON_PARAM_DOCS, MANAGEMENT_SIG_DOC, MCP_NON_SUBMIT_TOOL_NAMES, MCP_TOOL_DEFINITIONS, MCP_TOOL_INPUT_SCHEMAS, MCP_TOOL_OUTPUT_SCHEMAS, MULTISIGN_OUTPUT_DOC, MULTISIGN_SUBMIT_OUTPUT_DOC, PROTOCOL_SUPPORT_ADVISORS, chainDetailSchema, evmAddressSchema, evmMultisignCommonInputSchema, getActionsByChainCategory, getAgentCatalog, getAgentCatalogForMcp, getMcpToolByName, getMcpToolDefinitions, getMcpToolInputSchema, getMcpToolOutputSchema, getProtocolDiscoverySummary, getProtocolModules, getProtocolSkill, getProtocolSupportAdvisor, getToolsForProtocol, jsonObjectSchema, keyGenSchema, listProtocolSupportAdvisorIds, listProtocolsWithSkills, mcpAaveV4BorrowInputSchema, mcpAaveV4DepositInputSchema, mcpAaveV4RepayInputSchema, mcpAaveV4WithdrawInputSchema, mcpCurveDaoBuildSwapMultisignInputSchema, mcpCurveDaoQuoteInputSchema, mcpCurveDaoQuoteOutputSchema, mcpEthenaClaimInputSchema, mcpEthenaCooldownInputSchema, mcpEthenaRedeemInputSchema, mcpEthenaStakeInputSchema, mcpEulerV2BorrowRepayInputSchema, mcpEulerV2CollateralDepositInputSchema, mcpEulerV2CollateralWithdrawInputSchema, mcpEulerV2IsolatedBorrowInputSchema, mcpEulerV2IsolatedLendInputSchema, mcpEulerV2VaultWithdrawInputSchema, mcpGmxCancelInputSchema, mcpGmxDecreaseInputSchema, mcpGmxFetchGmApyInputSchema, mcpGmxFetchGmApyOutputSchema, mcpGmxFetchGmMarketsInputSchema, mcpGmxFetchGmMarketsOutputSchema, mcpGmxFetchMarketPricesInputSchema, mcpGmxFetchMarketPricesOutputSchema, mcpGmxFetchMarketsInputSchema, mcpGmxFetchMarketsOutputSchema, mcpGmxFetchOhlcvInputSchema, mcpGmxFetchOhlcvOutputSchema, mcpGmxFetchPositionsInputSchema, mcpGmxFetchPositionsOutputSchema, mcpGmxFetchStakingPowerInputSchema, mcpGmxFetchStakingPowerOutputSchema, mcpGmxGmDepositInputSchema, mcpGmxGmWithdrawInputSchema, mcpGmxIncreaseInputSchema, mcpServerSubmitOutputSchema as mcpGmxMultisignOutputSchema, mcpGmxStakeGmxInputSchema, mcpGmxUnstakeGmxInputSchema, mcpHyperliquidCancelInputSchema, mcpHyperliquidCloseInputSchema, mcpHyperliquidDelegateInputSchema, mcpHyperliquidFetchDelegationsInputSchema, mcpHyperliquidFetchDelegationsOutputSchema, mcpHyperliquidFetchMarketSnapshotInputSchema, mcpHyperliquidFetchMarketSnapshotOutputSchema, mcpHyperliquidFetchMarketsInputSchema, mcpHyperliquidFetchMarketsOutputSchema, mcpHyperliquidFetchOhlcvInputSchema, mcpHyperliquidFetchOhlcvOutputSchema, mcpHyperliquidFetchOpenContextInputSchema, mcpHyperliquidFetchOpenContextOutputSchema, mcpHyperliquidFetchOpenOrdersInputSchema, mcpHyperliquidFetchOpenOrdersOutputSchema, mcpHyperliquidFetchPositionsInputSchema, mcpHyperliquidFetchPositionsOutputSchema, mcpHyperliquidFetchStakingSummaryInputSchema, mcpHyperliquidFetchStakingSummaryOutputSchema, mcpHyperliquidFetchUsdClassBalancesInputSchema, mcpHyperliquidFetchUsdClassBalancesOutputSchema, mcpHyperliquidFetchUserVaultEquitiesInputSchema, mcpHyperliquidFetchUserVaultEquitiesOutputSchema, mcpHyperliquidFetchVaultsInputSchema, mcpHyperliquidFetchVaultsOutputSchema, mcpHyperliquidLimitOrderInputSchema, mcpHyperliquidSearchMarketsInputSchema, mcpHyperliquidSearchMarketsOutputSchema, mcpHyperliquidStakeInputSchema, mcpHyperliquidUndelegateInputSchema, mcpHyperliquidUnstakeInputSchema, mcpHyperliquidUsdTransferInputSchema, mcpHyperliquidVaultDepositInputSchema, mcpHyperliquidVaultWithdrawInputSchema, mcpLidoClaimWithdrawalInputSchema, mcpLidoRequestWithdrawalsInputSchema, mcpLidoSubmitInputSchema, mcpLidoUnwrapWstEthInputSchema, mcpLidoWrapStEthInputSchema, mcpMapleDepositInputSchema, mcpMapleRequestRedeemInputSchema, mcpMorphoBlueBorrowInputSchema, mcpMorphoBlueCollateralDepositInputSchema, mcpMorphoBlueCollateralWithdrawInputSchema, mcpMorphoBlueRepayInputSchema, mcpMorphoFetchEarnVaultsInputSchema, mcpMorphoFetchEarnVaultsOutputSchema, mcpMorphoMerklClaimInputSchema, mcpMorphoVaultDepositInputSchema, mcpMorphoVaultWithdrawInputSchema, mcpMultisignInput, multisignOutputSchema as mcpMultisignOutputSchema, mcpServerSubmitOutputSchema as mcpMultisignSubmitOutputSchema, mcpServerCommonInputSchema, mcpServerMultisignInput, mcpServerSubmitOutputSchema, mcpSkyLockstakeCloseInputSchema, mcpSkyLockstakeDrawInputSchema, mcpSkyLockstakeGetRewardInputSchema, mcpSkyLockstakeStakeInputSchema, mcpSkyLockstakeWipeInputSchema, mcpSkySusdsDepositInputSchema, mcpSkySusdsRedeemInputSchema, mcpUniswapV4BuildCollectFeesMultisignInputSchema, mcpUniswapV4BuildDecreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildIncreaseLiquidityMultisignInputSchema, mcpUniswapV4BuildMintLiquidityMultisignInputSchema, mcpUniswapV4BuildSwapMultisignInputSchema, mcpUniswapV4CreateSwapInputSchema, mcpUniswapV4CreateSwapOutputSchema, mcpUniswapV4LpClaimInputSchema, mcpUniswapV4LpClaimOutputSchema, mcpUniswapV4LpCreatePositionInputSchema, mcpUniswapV4LpCreatePositionOutputSchema, mcpUniswapV4LpDecreaseInputSchema, mcpUniswapV4LpDecreaseOutputSchema, mcpUniswapV4LpIncreaseInputSchema, mcpUniswapV4LpIncreaseOutputSchema, mcpUniswapV4LpListPoolsInputSchema, mcpUniswapV4LpListPoolsOutputSchema, mcpUniswapV4LpListPositionsInputSchema, mcpUniswapV4LpListPositionsOutputSchema, mcpUniswapV4QuoteInputSchema, mcpUniswapV4QuoteOutputSchema, mcpUniswapV4RegisterPositionFromMintTxInputSchema, mcpUniswapV4RegisterPositionFromMintTxOutputSchema, mcpUniswapV4RegisterPositionNftInputSchema, mcpUniswapV4RegisterPositionNftOutputSchema, multisignOutputSchema, parseMcpToolInput, parseMcpToolOutput, parseMultisignBuilderOutput, uniswapQuoteTradeTypeSchema, zodSchemaToMcpJsonSchema };
|
|
3341
3831
|
//# sourceMappingURL=catalog.js.map
|
|
3342
3832
|
//# sourceMappingURL=catalog.js.map
|