@continuumdao/ctm-mpc-defi 0.2.9 → 0.2.10

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.
Files changed (36) hide show
  1. package/dist/agent/catalog.cjs +519 -19
  2. package/dist/agent/catalog.cjs.map +1 -1
  3. package/dist/agent/catalog.d.ts +618 -14
  4. package/dist/agent/catalog.js +507 -20
  5. package/dist/agent/catalog.js.map +1 -1
  6. package/dist/agent/skills/hyperliquid/SKILL.md +34 -6
  7. package/dist/agent/skills/morpho/SKILL.md +48 -0
  8. package/dist/core/index.cjs +9 -0
  9. package/dist/core/index.cjs.map +1 -1
  10. package/dist/core/index.d.ts +3 -1
  11. package/dist/core/index.js +8 -1
  12. package/dist/core/index.js.map +1 -1
  13. package/dist/index.cjs +9 -0
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.ts +1 -1
  16. package/dist/index.js +8 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
  19. package/dist/protocols/evm/aave-v4/index.js.map +1 -1
  20. package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
  21. package/dist/protocols/evm/euler-v2/index.js.map +1 -1
  22. package/dist/protocols/evm/hyperliquid/index.cjs +407 -34
  23. package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
  24. package/dist/protocols/evm/hyperliquid/index.d.ts +168 -15
  25. package/dist/protocols/evm/hyperliquid/index.js +390 -35
  26. package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
  27. package/dist/protocols/evm/maple/index.cjs.map +1 -1
  28. package/dist/protocols/evm/maple/index.js.map +1 -1
  29. package/dist/protocols/evm/morpho/index.cjs +1971 -0
  30. package/dist/protocols/evm/morpho/index.cjs.map +1 -0
  31. package/dist/protocols/evm/morpho/index.d.ts +522 -0
  32. package/dist/protocols/evm/morpho/index.js +1918 -0
  33. package/dist/protocols/evm/morpho/index.js.map +1 -0
  34. package/dist/protocols/evm/sky/index.cjs.map +1 -1
  35. package/dist/protocols/evm/sky/index.js.map +1 -1
  36. package/package.json +6 -1
@@ -924,6 +924,74 @@ var mcpEulerV2CollateralWithdrawInputSchema = mcpMultisignInput({
924
924
  collateralAsset: evmAddressSchema,
925
925
  amountHuman: z.string().min(1)
926
926
  });
927
+ var mcpMorphoVaultDepositInputSchema = mcpMultisignInput({
928
+ vault: evmAddressSchema,
929
+ underlying: evmAddressSchema.describe("Underlying asset; use wrapped native with isNativeIn for ETH."),
930
+ amountHuman: z.string().min(1),
931
+ isNativeIn: z.boolean().optional()
932
+ });
933
+ var mcpMorphoVaultWithdrawInputSchema = mcpMultisignInput({
934
+ vault: evmAddressSchema,
935
+ amountHuman: z.string().min(1)
936
+ });
937
+ var mcpMorphoBlueCollateralDepositInputSchema = mcpMultisignInput({
938
+ marketId: z.string().min(1).describe("Morpho Blue marketId from API."),
939
+ collateralToken: evmAddressSchema,
940
+ amountHuman: z.string().min(1),
941
+ isNativeIn: z.boolean().optional()
942
+ });
943
+ var mcpMorphoBlueBorrowInputSchema = mcpMultisignInput({
944
+ marketId: z.string().min(1),
945
+ loanToken: evmAddressSchema,
946
+ amountHuman: z.string().min(1)
947
+ });
948
+ var mcpMorphoBlueRepayInputSchema = mcpMultisignInput({
949
+ marketId: z.string().min(1),
950
+ loanToken: evmAddressSchema,
951
+ amountHuman: z.string().min(1)
952
+ });
953
+ var mcpMorphoBlueCollateralWithdrawInputSchema = mcpMultisignInput({
954
+ marketId: z.string().min(1),
955
+ amountHuman: z.string().min(1),
956
+ collateralDecimals: z.number().int().min(0).max(36).optional()
957
+ });
958
+ var mcpMorphoMerklClaimInputSchema = mcpMultisignInput({
959
+ claimData: z.string().min(1).describe("Hex calldata for Merkl Distributor.claim from Merkl API."),
960
+ distributor: evmAddressSchema.optional(),
961
+ valueWei: z.string().optional()
962
+ });
963
+ var morphoExposureRowSchema = z.object({
964
+ label: z.string(),
965
+ allocatedUsdLabel: z.string(),
966
+ allocationPercentLabel: z.string()
967
+ });
968
+ var mcpMorphoFetchEarnVaultsInputSchema = z.object({
969
+ chainId: z.number().int().positive(),
970
+ 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."),
971
+ query: z.string().trim().min(1).optional().describe("Case-insensitive filter on vault name, symbol, address, or underlying symbol (e.g. Steakhouse, bbqUSDC)."),
972
+ limit: z.number().int().min(1).max(200).optional().describe("Max rows (default 50).")
973
+ });
974
+ var mcpMorphoFetchEarnVaultsOutputSchema = z.object({
975
+ vaults: z.array(
976
+ z.object({
977
+ vaultAddress: z.string(),
978
+ vaultName: z.string(),
979
+ vaultSymbol: z.string(),
980
+ underlyingAddress: z.string(),
981
+ underlyingSymbol: z.string(),
982
+ apy: z.string(),
983
+ netApy: z.string(),
984
+ netApy7d: z.string(),
985
+ netApy30d: z.string(),
986
+ netApy90d: z.string(),
987
+ performanceFee: z.string(),
988
+ managementFee: z.string().nullable(),
989
+ totalDepositsUsd: z.string(),
990
+ liquidityUsd: z.string(),
991
+ exposure: z.array(morphoExposureRowSchema)
992
+ })
993
+ )
994
+ });
927
995
  function mcpGmxMultisignInput(fields) {
928
996
  return evmMultisignCommonInputSchema.extend(fields);
929
997
  }
@@ -1128,7 +1196,8 @@ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
1128
1196
  asset: z.number(),
1129
1197
  szDecimals: z.number(),
1130
1198
  maxLeverage: z.number(),
1131
- onlyIsolated: z.boolean().optional()
1199
+ onlyIsolated: z.boolean().optional(),
1200
+ dex: z.string().optional()
1132
1201
  })
1133
1202
  ),
1134
1203
  dexes: z.array(
@@ -1138,6 +1207,30 @@ var mcpHyperliquidFetchMarketsOutputSchema = z.object({
1138
1207
  })
1139
1208
  )
1140
1209
  });
1210
+ var mcpHyperliquidSearchMarketsInputSchema = z.object({
1211
+ chainId: z.number().int().positive(),
1212
+ query: z.string().min(1),
1213
+ dex: z.string().optional(),
1214
+ limit: z.number().int().positive().max(50).optional()
1215
+ });
1216
+ var mcpHyperliquidSearchMarketsOutputSchema = z.object({
1217
+ matches: z.array(
1218
+ z.object({
1219
+ coin: z.string(),
1220
+ symbol: z.string(),
1221
+ dex: z.string().optional(),
1222
+ asset: z.number(),
1223
+ szDecimals: z.number(),
1224
+ maxLeverage: z.number(),
1225
+ onlyIsolated: z.boolean().optional(),
1226
+ displayName: z.string().optional(),
1227
+ category: z.string().optional(),
1228
+ keywords: z.array(z.string()).optional(),
1229
+ matchScore: z.number(),
1230
+ matchReason: z.string()
1231
+ })
1232
+ )
1233
+ });
1141
1234
  var mcpHyperliquidFetchOpenContextInputSchema = z.object({
1142
1235
  chainId: z.number().int().positive(),
1143
1236
  executorAddress: evmAddressSchema,
@@ -1180,25 +1273,70 @@ var mcpHyperliquidFetchMarketSnapshotInputSchema = z.object({
1180
1273
  chainId: z.number().int().positive(),
1181
1274
  coin: z.string().min(1),
1182
1275
  interval: hyperliquidOhlcvIntervalSchema.optional(),
1183
- dex: z.string().optional()
1276
+ dex: z.string().optional(),
1277
+ /** Recent OHLCV bars to return (default 48, max 200). Live price is always current. */
1278
+ candleLimit: z.number().int().positive().max(200).optional()
1279
+ });
1280
+ var hyperliquidOhlcvCandleSchema = z.object({
1281
+ timestampMs: z.number(),
1282
+ open: z.string(),
1283
+ high: z.string(),
1284
+ low: z.string(),
1285
+ close: z.string(),
1286
+ volume: z.string()
1287
+ });
1288
+ var hyperliquidLivePriceSchema = z.object({
1289
+ markPx: z.string().nullable(),
1290
+ midPx: z.string().nullable(),
1291
+ oraclePx: z.string().nullable(),
1292
+ prevDayPx: z.string().nullable(),
1293
+ midUsd: z.string(),
1294
+ source: z.enum(["midPx", "markPx", "allMids"])
1184
1295
  });
1185
1296
  var mcpHyperliquidFetchMarketSnapshotOutputSchema = z.object({
1186
1297
  snapshot: z.object({
1187
1298
  coin: z.string(),
1188
- midUsd: z.string().nullable(),
1299
+ dex: z.string().nullable(),
1300
+ livePrice: hyperliquidLivePriceSchema,
1301
+ midUsd: z.string(),
1189
1302
  fetchedAtMs: z.number(),
1190
1303
  interval: hyperliquidOhlcvIntervalSchema,
1191
- candles: z.array(
1192
- z.object({
1193
- timestampMs: z.number(),
1194
- open: z.string(),
1195
- high: z.string(),
1196
- low: z.string(),
1197
- close: z.string(),
1198
- volume: z.string()
1199
- })
1200
- )
1201
- })
1304
+ latestCandle: hyperliquidOhlcvCandleSchema.nullable(),
1305
+ candles: z.array(hyperliquidOhlcvCandleSchema),
1306
+ candleCount: z.number()
1307
+ }),
1308
+ resolvedCoin: z.string(),
1309
+ dex: z.string().nullable()
1310
+ });
1311
+ var mcpHyperliquidFetchOhlcvInputSchema = z.object({
1312
+ chainId: z.number().int().positive(),
1313
+ coin: z.string().min(1),
1314
+ interval: hyperliquidOhlcvIntervalSchema.optional(),
1315
+ dex: z.string().optional(),
1316
+ /** Calendar-day lookback ending now (e.g. 7 = last week). Preferred for agent requests. */
1317
+ lookbackDays: z.number().positive().max(90).optional(),
1318
+ /** Hour lookback ending now. Alternative to lookbackDays. */
1319
+ lookbackHours: z.number().positive().max(90 * 24).optional(),
1320
+ /** Explicit range start (ms since epoch). Use with endTimeMs. */
1321
+ startTimeMs: z.number().int().positive().optional(),
1322
+ /** Explicit range end (ms since epoch). Defaults to now. */
1323
+ endTimeMs: z.number().int().positive().optional()
1324
+ });
1325
+ var mcpHyperliquidFetchOhlcvOutputSchema = z.object({
1326
+ ohlcv: z.object({
1327
+ coin: z.string(),
1328
+ dex: z.string().nullable(),
1329
+ interval: hyperliquidOhlcvIntervalSchema,
1330
+ startTimeMs: z.number(),
1331
+ endTimeMs: z.number(),
1332
+ expectedBars: z.number(),
1333
+ candleCount: z.number(),
1334
+ latestCandle: hyperliquidOhlcvCandleSchema.nullable(),
1335
+ candles: z.array(hyperliquidOhlcvCandleSchema),
1336
+ fetchedAtMs: z.number()
1337
+ }),
1338
+ resolvedCoin: z.string(),
1339
+ dex: z.string().nullable()
1202
1340
  });
1203
1341
  var mcpHyperliquidFetchUsdClassBalancesInputSchema = z.object({
1204
1342
  chainId: z.number().int().positive(),
@@ -1609,6 +1747,87 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
1609
1747
  handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch" },
1610
1748
  inputZod: mcpEulerV2CollateralWithdrawInputSchema
1611
1749
  }),
1750
+ defineProtocolMcpTool({
1751
+ name: "ctm_morpho_build_vault_deposit_multisign",
1752
+ actionId: "morpho.vault-deposit",
1753
+ protocolId: "morpho",
1754
+ chainCategory: "evm",
1755
+ description: "Build Morpho vault deposit batch (wrap/approve + deposit). Works with listed V1 and V2 vaults.",
1756
+ prerequisites: [
1757
+ "keyGenId",
1758
+ "chainId",
1759
+ "vaultAddress from ctm_morpho_fetch_earn_vaults",
1760
+ "underlying",
1761
+ "amountHuman"
1762
+ ],
1763
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultDepositBatch" },
1764
+ inputZod: mcpMorphoVaultDepositInputSchema
1765
+ }),
1766
+ defineProtocolMcpTool({
1767
+ name: "ctm_morpho_build_vault_withdraw_multisign",
1768
+ actionId: "morpho.vault-withdraw",
1769
+ protocolId: "morpho",
1770
+ chainCategory: "evm",
1771
+ description: "Build Morpho vault withdraw batch. Works with listed V1 and V2 vaults.",
1772
+ prerequisites: [
1773
+ "keyGenId",
1774
+ "chainId",
1775
+ "vaultAddress from ctm_morpho_fetch_earn_vaults or user positions",
1776
+ "amountHuman"
1777
+ ],
1778
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoVaultWithdraw" },
1779
+ inputZod: mcpMorphoVaultWithdrawInputSchema
1780
+ }),
1781
+ defineProtocolMcpTool({
1782
+ name: "ctm_morpho_build_blue_collateral_deposit_multisign",
1783
+ actionId: "morpho.blue-collateral-deposit",
1784
+ protocolId: "morpho",
1785
+ chainCategory: "evm",
1786
+ description: "Build Morpho Blue supplyCollateral batch.",
1787
+ prerequisites: ["keyGenId", "chainId", "marketId", "collateralToken", "amountHuman"],
1788
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueSupplyCollateralBatch" },
1789
+ inputZod: mcpMorphoBlueCollateralDepositInputSchema
1790
+ }),
1791
+ defineProtocolMcpTool({
1792
+ name: "ctm_morpho_build_blue_borrow_multisign",
1793
+ actionId: "morpho.blue-borrow",
1794
+ protocolId: "morpho",
1795
+ chainCategory: "evm",
1796
+ description: "Build Morpho Blue borrow batch.",
1797
+ prerequisites: ["keyGenId", "chainId", "marketId", "loanToken", "amountHuman"],
1798
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueBorrowBatch" },
1799
+ inputZod: mcpMorphoBlueBorrowInputSchema
1800
+ }),
1801
+ defineProtocolMcpTool({
1802
+ name: "ctm_morpho_build_blue_repay_multisign",
1803
+ actionId: "morpho.blue-repay",
1804
+ protocolId: "morpho",
1805
+ chainCategory: "evm",
1806
+ description: "Build Morpho Blue repay batch.",
1807
+ prerequisites: ["keyGenId", "chainId", "marketId", "loanToken", "amountHuman"],
1808
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueRepayBatch" },
1809
+ inputZod: mcpMorphoBlueRepayInputSchema
1810
+ }),
1811
+ defineProtocolMcpTool({
1812
+ name: "ctm_morpho_build_blue_collateral_withdraw_multisign",
1813
+ actionId: "morpho.blue-collateral-withdraw",
1814
+ protocolId: "morpho",
1815
+ chainCategory: "evm",
1816
+ description: "Build Morpho Blue withdrawCollateral batch.",
1817
+ prerequisites: ["keyGenId", "chainId", "marketId", "amountHuman"],
1818
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoBlueWithdrawCollateralBatch" },
1819
+ inputZod: mcpMorphoBlueCollateralWithdrawInputSchema
1820
+ }),
1821
+ defineProtocolMcpTool({
1822
+ name: "ctm_morpho_build_merkl_claim_multisign",
1823
+ actionId: "morpho.merkl-claim",
1824
+ protocolId: "morpho",
1825
+ chainCategory: "evm",
1826
+ description: "Build Morpho Merkl Distributor.claim transaction.",
1827
+ prerequisites: ["keyGenId", "chainId", "claim calldata from Merkl API"],
1828
+ handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoMerklDistributorClaim" },
1829
+ inputZod: mcpMorphoMerklClaimInputSchema
1830
+ }),
1612
1831
  defineProtocolMcpTool({
1613
1832
  name: "ctm_gmx_build_increase_multisign",
1614
1833
  actionId: "gmx.increase",
@@ -2132,19 +2351,31 @@ var CORE_MCP_TOOL_DEFINITIONS = [
2132
2351
  actionId: "hyperliquid.fetch-markets",
2133
2352
  protocolId: "hyperliquid",
2134
2353
  chainCategory: "evm",
2135
- description: "List Hyperliquid perp markets (coin, maxLeverage, szDecimals) and HIP-3 dex names. chainId 999 mainnet or 998 testnet.",
2354
+ 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
2355
  prerequisites: ["chainId 999 or 998"],
2137
2356
  followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2138
2357
  handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketsSummary" },
2139
2358
  inputZod: mcpHyperliquidFetchMarketsInputSchema,
2140
2359
  outputZod: mcpHyperliquidFetchMarketsOutputSchema
2141
2360
  }),
2361
+ defineMcpTool({
2362
+ name: "ctm_hyperliquid_search_markets",
2363
+ actionId: "hyperliquid.search-markets",
2364
+ protocolId: "hyperliquid",
2365
+ chainCategory: "evm",
2366
+ 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).",
2367
+ prerequisites: ["chainId 999 or 998", "query"],
2368
+ followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2369
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidSearchMarketsSummary" },
2370
+ inputZod: mcpHyperliquidSearchMarketsInputSchema,
2371
+ outputZod: mcpHyperliquidSearchMarketsOutputSchema
2372
+ }),
2142
2373
  defineMcpTool({
2143
2374
  name: "ctm_hyperliquid_fetch_open_context",
2144
2375
  actionId: "hyperliquid.fetch-open-context",
2145
2376
  protocolId: "hyperliquid",
2146
2377
  chainCategory: "evm",
2147
- description: "Per-market trading context: account value, withdrawable, margin used, leverage setting, mark price, available buy/sell size.",
2378
+ 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
2379
  prerequisites: ["chainId", "executorAddress", "coin from fetch_markets"],
2149
2380
  followUp: ["ctm_hyperliquid_build_limit_order_multisign"],
2150
2381
  handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOpenContextSummary" },
@@ -2180,13 +2411,25 @@ var CORE_MCP_TOOL_DEFINITIONS = [
2180
2411
  actionId: "hyperliquid.fetch-market-snapshot",
2181
2412
  protocolId: "hyperliquid",
2182
2413
  chainCategory: "evm",
2183
- description: "Mid price and OHLCV candles for a Hyperliquid perp coin. Default interval 15m.",
2414
+ 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
2415
  prerequisites: ["chainId", "coin"],
2185
2416
  followUp: ["ctm_hyperliquid_fetch_open_context", "ctm_hyperliquid_build_limit_order_multisign"],
2186
2417
  handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchMarketSnapshotSummary" },
2187
2418
  inputZod: mcpHyperliquidFetchMarketSnapshotInputSchema,
2188
2419
  outputZod: mcpHyperliquidFetchMarketSnapshotOutputSchema
2189
2420
  }),
2421
+ defineMcpTool({
2422
+ name: "ctm_hyperliquid_fetch_ohlcv",
2423
+ actionId: "hyperliquid.fetch-ohlcv",
2424
+ protocolId: "hyperliquid",
2425
+ chainCategory: "evm",
2426
+ 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.",
2427
+ prerequisites: ["chainId 999 or 998", "coin", "lookbackDays or lookbackHours or startTimeMs"],
2428
+ followUp: ["ctm_hyperliquid_fetch_market_snapshot", "ctm_hyperliquid_build_limit_order_multisign"],
2429
+ handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchOhlcvSummary" },
2430
+ inputZod: mcpHyperliquidFetchOhlcvInputSchema,
2431
+ outputZod: mcpHyperliquidFetchOhlcvOutputSchema
2432
+ }),
2190
2433
  defineMcpTool({
2191
2434
  name: "ctm_hyperliquid_fetch_usd_class_balances",
2192
2435
  actionId: "hyperliquid.fetch-usd-balances",
@@ -2246,6 +2489,21 @@ var CORE_MCP_TOOL_DEFINITIONS = [
2246
2489
  handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchDelegationsForExecutor" },
2247
2490
  inputZod: mcpHyperliquidFetchDelegationsInputSchema,
2248
2491
  outputZod: mcpHyperliquidFetchDelegationsOutputSchema
2492
+ }),
2493
+ defineMcpTool({
2494
+ name: "ctm_morpho_fetch_earn_vaults",
2495
+ actionId: "morpho.fetch-earn-vaults",
2496
+ protocolId: "morpho",
2497
+ chainCategory: "evm",
2498
+ 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.",
2499
+ prerequisites: ["chainId"],
2500
+ followUp: [
2501
+ "ctm_morpho_build_vault_deposit_multisign",
2502
+ "ctm_morpho_build_vault_withdraw_multisign"
2503
+ ],
2504
+ handler: { importPath: "protocols/evm/morpho", exportName: "morphoFetchEarnVaultsSummary" },
2505
+ inputZod: mcpMorphoFetchEarnVaultsInputSchema,
2506
+ outputZod: mcpMorphoFetchEarnVaultsOutputSchema
2249
2507
  })
2250
2508
  ];
2251
2509
  var MCP_TOOL_DEFINITIONS = [
@@ -2472,7 +2730,30 @@ registerProtocolModule(ethenaProtocolModule);
2472
2730
  function isMapleSyrupSupportedChain(chainId) {
2473
2731
  return chainId === 1 || chainId === 11155111;
2474
2732
  }
2733
+
2734
+ // src/core/defiProxy.ts
2735
+ var aaveGraphqlProxyUrl;
2736
+ var morphoGraphqlProxyUrl;
2737
+ function getAaveGraphqlProxyUrl() {
2738
+ return aaveGraphqlProxyUrl;
2739
+ }
2740
+ function getMorphoGraphqlProxyUrl() {
2741
+ return morphoGraphqlProxyUrl;
2742
+ }
2475
2743
  async function postJsonViaOptionalProxy(args) {
2744
+ const proxy = args.proxyUrl?.trim();
2745
+ if (proxy) {
2746
+ const r2 = await fetch(proxy, {
2747
+ method: "POST",
2748
+ headers: { "content-type": "application/json" },
2749
+ body: JSON.stringify(args.proxyEnvelope ?? args.body)
2750
+ });
2751
+ if (!r2.ok) {
2752
+ const t = await r2.text().catch(() => "");
2753
+ throw new Error(t ? `Proxy HTTP ${r2.status}: ${t.slice(0, 200)}` : `Proxy HTTP ${r2.status}`);
2754
+ }
2755
+ return await r2.json();
2756
+ }
2476
2757
  const r = await fetch(args.directUrl, {
2477
2758
  method: "POST",
2478
2759
  headers: { "content-type": "application/json" },
@@ -2535,7 +2816,10 @@ async function aaveV4Gql(query, variables) {
2535
2816
  const body = { query, variables: variables ?? {} };
2536
2817
  const j = await postJsonViaOptionalProxy({
2537
2818
  directUrl: AAVE_V4_GRAPHQL_URL,
2538
- body});
2819
+ body,
2820
+ proxyUrl: getAaveGraphqlProxyUrl(),
2821
+ proxyEnvelope: body
2822
+ });
2539
2823
  if (j.errors?.length) {
2540
2824
  const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
2541
2825
  throw new Error(msg);
@@ -3008,6 +3292,175 @@ var hyperliquidProtocolModule = {
3008
3292
  ]
3009
3293
  };
3010
3294
  registerProtocolModule(hyperliquidProtocolModule);
3295
+ var MORPHO_GRAPHQL_URL = "https://api.morpho.org/graphql";
3296
+ async function morphoGql(query, variables) {
3297
+ const body = { query, variables: variables ?? {} };
3298
+ const j = await postJsonViaOptionalProxy({
3299
+ directUrl: MORPHO_GRAPHQL_URL,
3300
+ body,
3301
+ proxyUrl: getMorphoGraphqlProxyUrl(),
3302
+ proxyEnvelope: body
3303
+ });
3304
+ if (j.errors?.length) {
3305
+ const msg = j.errors.map((e) => e.message ?? "Unknown").join("; ");
3306
+ throw new Error(msg);
3307
+ }
3308
+ if (j.data == null) throw new Error("Morpho API: empty response");
3309
+ return j.data;
3310
+ }
3311
+ async function fetchMorphoChains() {
3312
+ const d = await morphoGql(`
3313
+ query { chains { id network } }
3314
+ `);
3315
+ return d.chains ?? [];
3316
+ }
3317
+ async function loadMorphoSupportedChainIds() {
3318
+ const rows = await fetchMorphoChains();
3319
+ const s = /* @__PURE__ */ new Set();
3320
+ for (const c of rows) {
3321
+ if (typeof c.id === "number" && Number.isFinite(c.id)) s.add(c.id);
3322
+ }
3323
+ return s;
3324
+ }
3325
+ var VAULT_PAGE_SIZE = 100;
3326
+ async function fetchMorphoVaultsForChain(chainId, first = 100) {
3327
+ const d = await morphoGql(
3328
+ `
3329
+ query MorphoVaults($chainId: Int!, $first: Int!) {
3330
+ vaults(first: $first, where: { chainId_in: [$chainId], listed: true }, orderBy: TotalAssetsUsd, orderDirection: Desc) {
3331
+ items {
3332
+ address symbol name listed
3333
+ asset { address symbol decimals price { usd } }
3334
+ chain { id }
3335
+ state { apy netApy fee totalAssetsUsd allRewards { supplyApr asset { address symbol } } }
3336
+ }
3337
+ }
3338
+ }
3339
+ `,
3340
+ { chainId, first }
3341
+ );
3342
+ return d.vaults?.items ?? [];
3343
+ }
3344
+ async function fetchMorphoVaultV2sForChain(chainId, first = 100, skip = 0) {
3345
+ const d = await morphoGql(
3346
+ `
3347
+ query MorphoVaultV2s($chainId: Int!, $first: Int!, $skip: Int!) {
3348
+ vaultV2s(
3349
+ first: $first
3350
+ skip: $skip
3351
+ where: { chainId_in: [$chainId], listed: true }
3352
+ orderBy: TotalAssetsUsd
3353
+ orderDirection: Desc
3354
+ ) {
3355
+ items {
3356
+ address symbol name listed
3357
+ asset { address symbol decimals price { usd } }
3358
+ chain { id }
3359
+ apy netApy performanceFee managementFee totalAssetsUsd
3360
+ rewards { supplyApr asset { address symbol } }
3361
+ }
3362
+ }
3363
+ }
3364
+ `,
3365
+ { chainId, first, skip }
3366
+ );
3367
+ return d.vaultV2s?.items ?? [];
3368
+ }
3369
+ async function fetchAllMorphoVaultV2AssetAddresses(chainId) {
3370
+ const out = /* @__PURE__ */ new Set();
3371
+ let skip = 0;
3372
+ for (let page = 0; page < 20; page++) {
3373
+ const batch = await fetchMorphoVaultV2sForChain(chainId, VAULT_PAGE_SIZE, skip);
3374
+ if (!batch.length) break;
3375
+ for (const v of batch) {
3376
+ const a = (v.asset?.address ?? "").trim();
3377
+ if (isAddress(a)) out.add(getAddress(a).toLowerCase());
3378
+ }
3379
+ if (batch.length < VAULT_PAGE_SIZE) break;
3380
+ skip += VAULT_PAGE_SIZE;
3381
+ }
3382
+ return out;
3383
+ }
3384
+ var chainAssetCache = /* @__PURE__ */ new Map();
3385
+ async function ensureMorphoChainAssetCache(chainId) {
3386
+ const hit = chainAssetCache.get(chainId);
3387
+ if (hit) return hit;
3388
+ const modes = /* @__PURE__ */ new Map();
3389
+ const [v1Vaults, v2Assets] = await Promise.all([
3390
+ fetchMorphoVaultsForChain(chainId, 300),
3391
+ fetchAllMorphoVaultV2AssetAddresses(chainId)
3392
+ ]);
3393
+ for (const v of v1Vaults) {
3394
+ const a = (v.asset?.address ?? "").trim();
3395
+ if (!isAddress(a)) continue;
3396
+ const k = getAddress(a).toLowerCase();
3397
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3398
+ prev.earn = true;
3399
+ modes.set(k, prev);
3400
+ }
3401
+ for (const k of v2Assets) {
3402
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3403
+ prev.earn = true;
3404
+ modes.set(k, prev);
3405
+ }
3406
+ const marketsD = await morphoGql(
3407
+ `
3408
+ query MorphoMarketsAssets($chainId: Int!) {
3409
+ markets(first: 500, where: { chainId_in: [$chainId] }) {
3410
+ items {
3411
+ loanAsset { address }
3412
+ collateralAsset { address }
3413
+ }
3414
+ }
3415
+ }
3416
+ `,
3417
+ { chainId }
3418
+ );
3419
+ for (const m of marketsD.markets?.items ?? []) {
3420
+ const loanAddr = (m.loanAsset?.address ?? "").trim();
3421
+ const colAddr = (m.collateralAsset?.address ?? "").trim();
3422
+ if (isAddress(loanAddr)) {
3423
+ const k = getAddress(loanAddr).toLowerCase();
3424
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3425
+ prev.borrow = true;
3426
+ modes.set(k, prev);
3427
+ }
3428
+ if (isAddress(colAddr)) {
3429
+ const k = getAddress(colAddr).toLowerCase();
3430
+ const prev = modes.get(k) ?? { earn: false, borrow: false, collateral: false };
3431
+ prev.collateral = true;
3432
+ modes.set(k, prev);
3433
+ }
3434
+ }
3435
+ const cache = { modesByUnderlying: modes, nativeWrapped: null };
3436
+ chainAssetCache.set(chainId, cache);
3437
+ return cache;
3438
+ }
3439
+
3440
+ // src/protocols/evm/morpho/index.ts
3441
+ var MORPHO_PROTOCOL_ID = "morpho";
3442
+ var morphoProtocolModule = {
3443
+ id: MORPHO_PROTOCOL_ID,
3444
+ chainCategory: "evm",
3445
+ isChainSupported(ctx) {
3446
+ return ctx.chainCategory === "evm";
3447
+ },
3448
+ isTokenSupported(token) {
3449
+ return token.category === "evm" && (token.kind === "native" || token.kind === "erc20");
3450
+ },
3451
+ actions: [
3452
+ { id: "morpho.fetch-earn-vaults", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Search Morpho-listed earn vaults by asset or name", commonParams: [], params: {} },
3453
+ { 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: {} },
3454
+ { id: "morpho.vault-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw from Morpho earn vault (V1 or V2)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3455
+ { id: "morpho.blue-collateral-deposit", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Supply collateral to Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3456
+ { id: "morpho.blue-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Borrow from Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3457
+ { id: "morpho.blue-repay", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Repay Morpho Blue borrow", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3458
+ { id: "morpho.blue-collateral-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw Morpho Blue collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3459
+ { id: "morpho.merkl-claim", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Claim Morpho Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
3460
+ { id: "morpho.midnight-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Morpho Midnight fixed-rate borrow (coming soon)", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
3461
+ ]
3462
+ };
3463
+ registerProtocolModule(morphoProtocolModule);
3011
3464
  var skillsDir = join(dirname(fileURLToPath(import.meta.url)), "skills");
3012
3465
  var SKILL_PROTOCOL_IDS = [
3013
3466
  "aave-v4",
@@ -3019,7 +3472,8 @@ var SKILL_PROTOCOL_IDS = [
3019
3472
  "maple-syrup",
3020
3473
  "sky",
3021
3474
  "gmx",
3022
- "hyperliquid"
3475
+ "hyperliquid",
3476
+ "morpho"
3023
3477
  ];
3024
3478
  function getToolsForProtocol(protocolId) {
3025
3479
  return MCP_TOOL_DEFINITIONS.filter((t) => t.protocolId === protocolId);
@@ -3233,6 +3687,37 @@ var PROTOCOL_SUPPORT_ADVISORS = {
3233
3687
  return { tokens: [] };
3234
3688
  }
3235
3689
  }),
3690
+ morpho: advisor("morpho", "api_underlyings", {
3691
+ async supportedChainIds() {
3692
+ const set = await loadMorphoSupportedChainIds();
3693
+ return [...set].sort((a, b) => a - b);
3694
+ },
3695
+ async supportedTokens(chainId) {
3696
+ const cache = await ensureMorphoChainAssetCache(chainId);
3697
+ const tokens = [...cache.modesByUnderlying.entries()].map(([address, modes]) => ({
3698
+ address,
3699
+ roles: [
3700
+ ...modes.earn ? ["vault_underlying"] : [],
3701
+ ...modes.borrow ? ["loan"] : [],
3702
+ ...modes.collateral ? ["collateral"] : []
3703
+ ]
3704
+ }));
3705
+ return {
3706
+ tokens,
3707
+ notes: "Morpho vault assets and Blue market loan/collateral tokens from api.morpho.org."
3708
+ };
3709
+ },
3710
+ async isTokenSupported(chainId, address) {
3711
+ const cache = await ensureMorphoChainAssetCache(chainId);
3712
+ let normalized;
3713
+ try {
3714
+ normalized = getAddress(address).toLowerCase();
3715
+ } catch {
3716
+ return false;
3717
+ }
3718
+ return cache.modesByUnderlying.has(normalized);
3719
+ }
3720
+ }),
3236
3721
  "euler-v2": advisor("euler-v2", "subgraph_vaults", {
3237
3722
  async supportedChainIds() {
3238
3723
  return [...EULER_V2_SUBGRAPH_CHAIN_IDS];
@@ -3314,6 +3799,7 @@ registerProtocolModule(aaveV4ProtocolModule);
3314
3799
  registerProtocolModule(eulerV2ProtocolModule);
3315
3800
  registerProtocolModule(gmxProtocolModule);
3316
3801
  registerProtocolModule(hyperliquidProtocolModule);
3802
+ registerProtocolModule(morphoProtocolModule);
3317
3803
  function getAgentCatalog() {
3318
3804
  return {
3319
3805
  protocols: getProtocolModules(),
@@ -3332,11 +3818,12 @@ function getAgentCatalog() {
3332
3818
  eulerV2: eulerV2ProtocolModule,
3333
3819
  gmx: gmxProtocolModule,
3334
3820
  hyperliquid: hyperliquidProtocolModule,
3821
+ morpho: morphoProtocolModule,
3335
3822
  /** Prefer getAgentCatalogForMcp() or getMcpToolDefinitions() for MCP servers. */
3336
3823
  mcp: getAgentCatalogForMcp()
3337
3824
  };
3338
3825
  }
3339
3826
 
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 };
3827
+ 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
3828
  //# sourceMappingURL=catalog.js.map
3342
3829
  //# sourceMappingURL=catalog.js.map