@continuumdao/ctm-mpc-defi 0.2.43 → 0.2.45
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 +276 -11
- package/dist/agent/catalog.cjs.map +1 -1
- package/dist/agent/catalog.d.ts +780 -9
- package/dist/agent/catalog.js +268 -12
- package/dist/agent/catalog.js.map +1 -1
- package/dist/agent/skills/aave-v4/SKILL.md +9 -1
- package/dist/agent/skills/euler-v2/SKILL.md +9 -0
- package/dist/agent/skills/hyperliquid/SKILL.md +32 -2
- package/dist/agent/skills/morpho/SKILL.md +8 -2
- package/dist/agent/skills/yield-compare/SKILL.md +4 -1
- package/dist/merklDistributor-CdqtZC9N.d.ts +65 -0
- package/dist/multisign-Dr0j9fHm.d.ts +489 -0
- package/dist/protocols/evm/aave-v4/index.cjs +207 -2
- package/dist/protocols/evm/aave-v4/index.cjs.map +1 -1
- package/dist/protocols/evm/aave-v4/index.d.ts +12 -467
- package/dist/protocols/evm/aave-v4/index.js +192 -3
- package/dist/protocols/evm/aave-v4/index.js.map +1 -1
- package/dist/protocols/evm/euler-v2/index.cjs +209 -1
- package/dist/protocols/evm/euler-v2/index.cjs.map +1 -1
- package/dist/protocols/evm/euler-v2/index.d.ts +9 -1
- package/dist/protocols/evm/euler-v2/index.js +208 -2
- package/dist/protocols/evm/euler-v2/index.js.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.cjs +320 -0
- package/dist/protocols/evm/hyperliquid/index.cjs.map +1 -1
- package/dist/protocols/evm/hyperliquid/index.d.ts +153 -1
- package/dist/protocols/evm/hyperliquid/index.js +303 -1
- package/dist/protocols/evm/hyperliquid/index.js.map +1 -1
- package/dist/protocols/evm/morpho/index.cjs +169 -1
- package/dist/protocols/evm/morpho/index.cjs.map +1 -1
- package/dist/protocols/evm/morpho/index.d.ts +9 -1
- package/dist/protocols/evm/morpho/index.js +155 -2
- package/dist/protocols/evm/morpho/index.js.map +1 -1
- package/package.json +1 -1
package/dist/agent/catalog.cjs
CHANGED
|
@@ -1288,6 +1288,25 @@ function preprocessHyperliquidUndelegateInput(raw) {
|
|
|
1288
1288
|
aliasField(o, "hypeHuman", "hypeHuman", "amount");
|
|
1289
1289
|
return o;
|
|
1290
1290
|
}
|
|
1291
|
+
function preprocessHyperliquidLendInput(raw) {
|
|
1292
|
+
const o = preprocessHyperliquidCoinInput(raw);
|
|
1293
|
+
if (!preprocessObject(o)) return raw;
|
|
1294
|
+
aliasField(o, "amountHuman", "amountHuman", "amount", "sz", "szHuman");
|
|
1295
|
+
const amount = String(o.amountHuman ?? "").trim().toLowerCase();
|
|
1296
|
+
if (amount === "max") {
|
|
1297
|
+
o.amountMax = true;
|
|
1298
|
+
o.amountHuman = void 0;
|
|
1299
|
+
}
|
|
1300
|
+
derivePurposeIfMissing(o, (x) => {
|
|
1301
|
+
const coin = String(x.coin ?? "").trim();
|
|
1302
|
+
const op = String(x.operation ?? "").trim();
|
|
1303
|
+
const amt = x.amountMax === true || x.amountMax === "true" ? "max" : String(x.amountHuman ?? "").trim();
|
|
1304
|
+
if (coin && op && amt) return `HL ${op} ${amt} ${coin}`;
|
|
1305
|
+
if (coin && op) return `HL ${op} ${coin}`;
|
|
1306
|
+
return void 0;
|
|
1307
|
+
});
|
|
1308
|
+
return o;
|
|
1309
|
+
}
|
|
1291
1310
|
function preprocessUniswapLpCreateInput(raw) {
|
|
1292
1311
|
const o = preprocessObject(raw);
|
|
1293
1312
|
if (!o) return raw;
|
|
@@ -2489,6 +2508,45 @@ var mcpMorphoFetchMidnightOffersOutputSchema = zod.z.object({
|
|
|
2489
2508
|
})
|
|
2490
2509
|
)
|
|
2491
2510
|
});
|
|
2511
|
+
var mcpMerklRewardsFetchInputSchema = zod.z.object({
|
|
2512
|
+
chainId: agentEvmChainIdSchema,
|
|
2513
|
+
user: zod.z.string().min(1).optional().describe("Wallet address. Omit when keyGenId is set \u2014 server fills from the KeyGen Ethereum address."),
|
|
2514
|
+
keyGenId: zod.z.string().min(1).optional().describe("Preferred. Server resolves user from get_preferred_key_gen / conversation KeyGen.")
|
|
2515
|
+
}).refine((d) => Boolean(d.user?.trim() || d.keyGenId?.trim()), {
|
|
2516
|
+
message: "Pass keyGenId (preferred) or user.",
|
|
2517
|
+
path: ["user"]
|
|
2518
|
+
});
|
|
2519
|
+
var mcpMerklRewardsFetchOutputSchema = zod.z.object({
|
|
2520
|
+
chainId: zod.z.number().int(),
|
|
2521
|
+
user: zod.z.string(),
|
|
2522
|
+
distributor: zod.z.string(),
|
|
2523
|
+
claimable: zod.z.array(
|
|
2524
|
+
zod.z.object({
|
|
2525
|
+
symbol: zod.z.string(),
|
|
2526
|
+
token: zod.z.string(),
|
|
2527
|
+
amountHuman: zod.z.string(),
|
|
2528
|
+
amountWei: zod.z.string(),
|
|
2529
|
+
decimals: zod.z.number().int(),
|
|
2530
|
+
root: zod.z.string()
|
|
2531
|
+
})
|
|
2532
|
+
),
|
|
2533
|
+
claimableCount: zod.z.number().int(),
|
|
2534
|
+
firstRootClaimableCount: zod.z.number().int(),
|
|
2535
|
+
additionalRoots: zod.z.number().int(),
|
|
2536
|
+
skippedReulCount: zod.z.number().int(),
|
|
2537
|
+
notes: zod.z.string()
|
|
2538
|
+
});
|
|
2539
|
+
function preprocessMerklClaimInput(kind) {
|
|
2540
|
+
return (raw) => {
|
|
2541
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) return raw;
|
|
2542
|
+
const o = { ...raw };
|
|
2543
|
+
const purposeText = String(o.purposeText ?? o.purpose ?? "").trim();
|
|
2544
|
+
if (!purposeText) {
|
|
2545
|
+
o.purposeText = `${kind}: claim wallet-wide Merkl rewards`;
|
|
2546
|
+
}
|
|
2547
|
+
return o;
|
|
2548
|
+
};
|
|
2549
|
+
}
|
|
2492
2550
|
var mcpServerCommonInputSchema = zod.z.object({
|
|
2493
2551
|
keyGenId: zod.z.string().min(1).describe("KeyGen id from fetch_key_gen_result / node preferred KeyGen"),
|
|
2494
2552
|
chainId: zod.z.number().int().positive().describe("EVM chain id; RPC and gas config resolved from chain registry"),
|
|
@@ -2856,11 +2914,42 @@ var mcpMorphoBlueCollateralWithdrawInputSchema = mcpMultisignInput({
|
|
|
2856
2914
|
amountHuman: zod.z.string().min(1),
|
|
2857
2915
|
collateralDecimals: agentCoercedOptionalIntSchema(zod.z.number().int().min(0).max(36))
|
|
2858
2916
|
});
|
|
2859
|
-
var mcpMorphoMerklClaimInputSchema =
|
|
2860
|
-
|
|
2861
|
-
|
|
2862
|
-
|
|
2863
|
-
|
|
2917
|
+
var mcpMorphoMerklClaimInputSchema = withMultisignKeySourceRefine(
|
|
2918
|
+
zod.z.preprocess(
|
|
2919
|
+
preprocessMerklClaimInput("Morpho"),
|
|
2920
|
+
evmMultisignCommonInputSchema.extend({
|
|
2921
|
+
claimData: zod.z.string().min(1).optional().describe(
|
|
2922
|
+
"Optional. Hex calldata for Merkl Distributor.claim. Omit \u2014 server fetches wallet-wide Merkl proofs for keyGenId + chainId."
|
|
2923
|
+
),
|
|
2924
|
+
distributor: evmAddressSchema.optional(),
|
|
2925
|
+
valueWei: zod.z.string().optional()
|
|
2926
|
+
})
|
|
2927
|
+
)
|
|
2928
|
+
);
|
|
2929
|
+
var mcpEulerV2MerklClaimInputSchema = withMultisignKeySourceRefine(
|
|
2930
|
+
zod.z.preprocess(
|
|
2931
|
+
preprocessMerklClaimInput("Euler v2"),
|
|
2932
|
+
evmMultisignCommonInputSchema.extend({
|
|
2933
|
+
claimData: zod.z.string().min(1).optional().describe(
|
|
2934
|
+
"Optional. Hex calldata for Merkl Distributor.claim. Omit \u2014 server fetches wallet-wide Merkl proofs for keyGenId + chainId."
|
|
2935
|
+
),
|
|
2936
|
+
distributor: evmAddressSchema.optional(),
|
|
2937
|
+
valueWei: zod.z.string().optional()
|
|
2938
|
+
})
|
|
2939
|
+
)
|
|
2940
|
+
);
|
|
2941
|
+
var mcpAaveV4MerklClaimInputSchema = withMultisignKeySourceRefine(
|
|
2942
|
+
zod.z.preprocess(
|
|
2943
|
+
preprocessMerklClaimInput("Aave v4"),
|
|
2944
|
+
evmMultisignCommonInputSchema.extend({
|
|
2945
|
+
claimData: zod.z.string().min(1).optional().describe(
|
|
2946
|
+
"Optional. Hex calldata for Merkl Distributor.claim. Omit \u2014 server fetches wallet-wide Merkl proofs for keyGenId + chainId."
|
|
2947
|
+
),
|
|
2948
|
+
distributor: evmAddressSchema.optional(),
|
|
2949
|
+
valueWei: zod.z.string().optional()
|
|
2950
|
+
})
|
|
2951
|
+
)
|
|
2952
|
+
);
|
|
2864
2953
|
var mcpMorphoMidnightLendInputSchema = withMultisignKeySourceRefine(
|
|
2865
2954
|
zod.z.preprocess(
|
|
2866
2955
|
preprocessMorphoMidnightLendInput,
|
|
@@ -4434,6 +4523,57 @@ var mcpHyperliquidUpdateLeverageInputSchema = mcpHyperliquidMultisignInput(
|
|
|
4434
4523
|
},
|
|
4435
4524
|
preprocessHyperliquidCoinInput
|
|
4436
4525
|
);
|
|
4526
|
+
var hyperliquidLendMarketRowSchema = zod.z.object({
|
|
4527
|
+
tokenIndex: zod.z.number(),
|
|
4528
|
+
coin: zod.z.string().describe("Spot token name \u2014 pass as coin to build_lend_multisign (USDT aliases to USDT0, BTC to UBTC)"),
|
|
4529
|
+
role: zod.z.enum(["collateral", "quote"]),
|
|
4530
|
+
szDecimals: zod.z.number().nullable(),
|
|
4531
|
+
supplyYearlyRate: zod.z.string().describe("Current supply APR as a yearly decimal (0.05 = 5% APR)"),
|
|
4532
|
+
borrowYearlyRate: zod.z.string().describe("Current borrow APR as a yearly decimal (0.05 = 5% APR)"),
|
|
4533
|
+
supplyAprPercent: zod.z.number().nullable(),
|
|
4534
|
+
borrowAprPercent: zod.z.number().nullable(),
|
|
4535
|
+
utilization: zod.z.string(),
|
|
4536
|
+
oraclePx: zod.z.string(),
|
|
4537
|
+
ltv: zod.z.string(),
|
|
4538
|
+
totalSupplied: zod.z.string(),
|
|
4539
|
+
totalBorrowed: zod.z.string(),
|
|
4540
|
+
balance: zod.z.string()
|
|
4541
|
+
});
|
|
4542
|
+
var mcpHyperliquidFetchLendMarketsInputSchema = hyperliquidFetchChainInputSchema;
|
|
4543
|
+
var mcpHyperliquidFetchLendMarketsOutputSchema = zod.z.object({
|
|
4544
|
+
markets: zod.z.array(hyperliquidLendMarketRowSchema),
|
|
4545
|
+
notes: zod.z.string()
|
|
4546
|
+
});
|
|
4547
|
+
var mcpHyperliquidFetchLendPositionsInputSchema = hyperliquidFetchChainInputSchema.extend({
|
|
4548
|
+
executorAddress: evmAddressSchema
|
|
4549
|
+
});
|
|
4550
|
+
var mcpHyperliquidFetchLendPositionsOutputSchema = zod.z.object({
|
|
4551
|
+
positions: zod.z.array(
|
|
4552
|
+
zod.z.object({
|
|
4553
|
+
tokenIndex: zod.z.number(),
|
|
4554
|
+
coin: zod.z.string(),
|
|
4555
|
+
role: zod.z.enum(["collateral", "quote"]).nullable(),
|
|
4556
|
+
suppliedBasis: zod.z.string(),
|
|
4557
|
+
suppliedValue: zod.z.string().describe("Copy as amountHuman for withdraw when not using amountMax"),
|
|
4558
|
+
borrowedBasis: zod.z.string(),
|
|
4559
|
+
borrowedValue: zod.z.string().describe("Copy as amountHuman for repay when not using amountMax")
|
|
4560
|
+
})
|
|
4561
|
+
),
|
|
4562
|
+
health: zod.z.string(),
|
|
4563
|
+
healthFactor: zod.z.string().nullable(),
|
|
4564
|
+
userAbstraction: zod.z.string(),
|
|
4565
|
+
manualBorrowEnabled: zod.z.boolean(),
|
|
4566
|
+
notes: zod.z.string()
|
|
4567
|
+
});
|
|
4568
|
+
var mcpHyperliquidLendInputSchema = mcpHyperliquidMultisignInput(
|
|
4569
|
+
{
|
|
4570
|
+
coin: zod.z.string().min(1).describe("Spot token from fetch_lend_markets (USDC, USDT/USDT0, HYPE, BTC/UBTC)"),
|
|
4571
|
+
operation: zod.z.enum(["supply", "withdraw", "borrow", "repay"]),
|
|
4572
|
+
amountHuman: zod.z.string().min(1).optional().describe("Human amount. Omit or set amountMax for full withdraw/repay."),
|
|
4573
|
+
amountMax: agentBooleanSchema().optional().describe("true = wire amount null (max withdraw/repay).")
|
|
4574
|
+
},
|
|
4575
|
+
preprocessHyperliquidLendInput
|
|
4576
|
+
);
|
|
4437
4577
|
var arcusFetchChainInputSchema = zod.z.object({
|
|
4438
4578
|
chainId: zod.z.coerce.number().int().positive().default(4663).describe("Robinhood Chain (4663).")
|
|
4439
4579
|
});
|
|
@@ -5039,6 +5179,16 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5039
5179
|
handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4SpokeRepay" },
|
|
5040
5180
|
inputZod: mcpAaveV4RepayInputSchema
|
|
5041
5181
|
}),
|
|
5182
|
+
defineProtocolMcpTool({
|
|
5183
|
+
name: "ctm_aave_v4_build_merkl_claim_multisign",
|
|
5184
|
+
actionId: "aave-v4.merkl-claim",
|
|
5185
|
+
protocolId: "aave-v4",
|
|
5186
|
+
chainCategory: "evm",
|
|
5187
|
+
description: "Build wallet-wide Merkl Distributor.claim. Pass keyGenId + chainId; server fetches proofs. Optional claimData override.",
|
|
5188
|
+
prerequisites: ["keyGenId", "chainId"],
|
|
5189
|
+
handler: { importPath: "protocols/evm/aave-v4", exportName: "buildEvmMultisignBodyAaveV4MerklDistributorClaim" },
|
|
5190
|
+
inputZod: mcpAaveV4MerklClaimInputSchema
|
|
5191
|
+
}),
|
|
5042
5192
|
defineProtocolMcpTool({
|
|
5043
5193
|
name: "ctm_euler_v2_build_isolated_lend_multisign",
|
|
5044
5194
|
actionId: "euler-v2.isolated-lend",
|
|
@@ -5099,6 +5249,16 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5099
5249
|
handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2BorrowCollateralWithdrawBatch" },
|
|
5100
5250
|
inputZod: mcpEulerV2CollateralWithdrawInputSchema
|
|
5101
5251
|
}),
|
|
5252
|
+
defineProtocolMcpTool({
|
|
5253
|
+
name: "ctm_euler_v2_build_merkl_claim_multisign",
|
|
5254
|
+
actionId: "euler-v2.merkl-claim",
|
|
5255
|
+
protocolId: "euler-v2",
|
|
5256
|
+
chainCategory: "evm",
|
|
5257
|
+
description: "Build wallet-wide Merkl Distributor.claim. Pass keyGenId + chainId; server fetches proofs. Optional claimData override. rEUL is omitted (Euler unlock stays in the node app).",
|
|
5258
|
+
prerequisites: ["keyGenId", "chainId"],
|
|
5259
|
+
handler: { importPath: "protocols/evm/euler-v2", exportName: "buildEvmMultisignBodyEulerV2MerklDistributorClaim" },
|
|
5260
|
+
inputZod: mcpEulerV2MerklClaimInputSchema
|
|
5261
|
+
}),
|
|
5102
5262
|
defineProtocolMcpTool({
|
|
5103
5263
|
name: "ctm_morpho_build_vault_deposit_multisign",
|
|
5104
5264
|
actionId: "morpho.vault-deposit",
|
|
@@ -5194,8 +5354,8 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5194
5354
|
actionId: "morpho.merkl-claim",
|
|
5195
5355
|
protocolId: "morpho",
|
|
5196
5356
|
chainCategory: "evm",
|
|
5197
|
-
description: "Build
|
|
5198
|
-
prerequisites: ["keyGenId", "chainId"
|
|
5357
|
+
description: "Build wallet-wide Merkl Distributor.claim. Pass keyGenId + chainId; server fetches proofs. Optional claimData override.",
|
|
5358
|
+
prerequisites: ["keyGenId", "chainId"],
|
|
5199
5359
|
handler: { importPath: "protocols/evm/morpho", exportName: "buildEvmMultisignBodyMorphoMerklDistributorClaim" },
|
|
5200
5360
|
inputZod: mcpMorphoMerklClaimInputSchema
|
|
5201
5361
|
}),
|
|
@@ -5476,6 +5636,24 @@ var MCP_PROTOCOL_TOOL_DEFINITIONS = [
|
|
|
5476
5636
|
handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildHyperliquidUpdateLeverageMultisign" },
|
|
5477
5637
|
inputZod: mcpHyperliquidUpdateLeverageInputSchema
|
|
5478
5638
|
}),
|
|
5639
|
+
defineProtocolMcpTool({
|
|
5640
|
+
name: "ctm_hyperliquid_build_lend_multisign",
|
|
5641
|
+
actionId: "hyperliquid.lend",
|
|
5642
|
+
protocolId: "hyperliquid",
|
|
5643
|
+
chainCategory: "evm",
|
|
5644
|
+
description: "Supply, withdraw, borrow, or repay on Hyperliquid Core lend via L1 /exchange EIP-712 \u2014 not CoreWriter. No useCustomGas. trigger_sign_result without txParams; broadcast_sign_result POSTs to /exchange. Manual borrow is disabled on portfolio-margin accounts. HYPE/UBTC supply is collateral (no yield); USDC/USDT0 supply earns APR but does not increase borrow capacity.",
|
|
5645
|
+
prerequisites: [
|
|
5646
|
+
"keyGenId",
|
|
5647
|
+
"chainId 999 or 998",
|
|
5648
|
+
"coin from ctm_hyperliquid_fetch_lend_markets",
|
|
5649
|
+
"operation supply|withdraw|borrow|repay",
|
|
5650
|
+
"amountHuman or amountMax",
|
|
5651
|
+
"ctm_hyperliquid_fetch_lend_positions for health and manualBorrowEnabled before borrow"
|
|
5652
|
+
],
|
|
5653
|
+
followUp: ["sign_request_agree", "trigger_sign_result", "broadcast_sign_result"],
|
|
5654
|
+
handler: { importPath: "protocols/evm/hyperliquid", exportName: "buildHyperliquidBorrowLendMultisign" },
|
|
5655
|
+
inputZod: mcpHyperliquidLendInputSchema
|
|
5656
|
+
}),
|
|
5479
5657
|
defineProtocolMcpTool({
|
|
5480
5658
|
name: "ctm_arcus_build_create_api_key_multisign",
|
|
5481
5659
|
actionId: "arcus.createApiKey",
|
|
@@ -6804,6 +6982,30 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
6804
6982
|
inputZod: mcpHyperliquidFetchDelegationsInputSchema,
|
|
6805
6983
|
outputZod: mcpHyperliquidFetchDelegationsOutputSchema
|
|
6806
6984
|
}),
|
|
6985
|
+
defineMcpTool({
|
|
6986
|
+
name: "ctm_hyperliquid_fetch_lend_markets",
|
|
6987
|
+
actionId: "hyperliquid.fetch-lend-markets",
|
|
6988
|
+
protocolId: "hyperliquid",
|
|
6989
|
+
chainCategory: "evm",
|
|
6990
|
+
description: "Hyperliquid Core lend reserves with current supply APR and borrow APR (yearly rates, not APY), utilization, LTV, and totals. Collateral (HYPE, UBTC) earns no supply interest. Quote (USDC, USDT0, USDH) earns utilization APR. chainId 999 mainnet or 998 testnet.",
|
|
6991
|
+
prerequisites: ["chainId 999 or 998"],
|
|
6992
|
+
followUp: ["ctm_hyperliquid_fetch_lend_positions", "ctm_hyperliquid_build_lend_multisign"],
|
|
6993
|
+
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchLendMarketsSummary" },
|
|
6994
|
+
inputZod: mcpHyperliquidFetchLendMarketsInputSchema,
|
|
6995
|
+
outputZod: mcpHyperliquidFetchLendMarketsOutputSchema
|
|
6996
|
+
}),
|
|
6997
|
+
defineMcpTool({
|
|
6998
|
+
name: "ctm_hyperliquid_fetch_lend_positions",
|
|
6999
|
+
actionId: "hyperliquid.fetch-lend-positions",
|
|
7000
|
+
protocolId: "hyperliquid",
|
|
7001
|
+
chainCategory: "evm",
|
|
7002
|
+
description: "User Hyperliquid Core lend positions (supplied/borrowed), health, and whether manual borrow is enabled. Portfolio-margin accounts disable the manual borrow action.",
|
|
7003
|
+
prerequisites: ["chainId 999 or 998", "executorAddress"],
|
|
7004
|
+
followUp: ["ctm_hyperliquid_build_lend_multisign"],
|
|
7005
|
+
handler: { importPath: "protocols/evm/hyperliquid", exportName: "hyperliquidFetchLendPositionsSummary" },
|
|
7006
|
+
inputZod: mcpHyperliquidFetchLendPositionsInputSchema,
|
|
7007
|
+
outputZod: mcpHyperliquidFetchLendPositionsOutputSchema
|
|
7008
|
+
}),
|
|
6807
7009
|
defineMcpTool({
|
|
6808
7010
|
name: "ctm_arcus_fetch_markets",
|
|
6809
7011
|
actionId: "arcus.fetch-markets",
|
|
@@ -7009,6 +7211,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7009
7211
|
inputZod: mcpMorphoFetchPositionsInputSchema,
|
|
7010
7212
|
outputZod: mcpMorphoFetchPositionsOutputSchema
|
|
7011
7213
|
}),
|
|
7214
|
+
defineMcpTool({
|
|
7215
|
+
name: "ctm_morpho_fetch_merkl_rewards",
|
|
7216
|
+
actionId: "morpho.fetch-merkl-rewards",
|
|
7217
|
+
protocolId: "morpho",
|
|
7218
|
+
chainCategory: "evm",
|
|
7219
|
+
description: "Wallet-wide Merkl claimables for this address on a chain (not Morpho-only). Pass keyGenId or user. Other venues\u2019 campaigns can appear. rEUL is omitted. Follow with ctm_morpho_build_merkl_claim_multisign (keyGenId + chainId).",
|
|
7220
|
+
prerequisites: ["keyGenId or user", "chainId"],
|
|
7221
|
+
followUp: ["ctm_morpho_build_merkl_claim_multisign"],
|
|
7222
|
+
handler: { importPath: "protocols/evm/morpho", exportName: "morphoFetchMerklRewardsSummary" },
|
|
7223
|
+
inputZod: mcpMerklRewardsFetchInputSchema,
|
|
7224
|
+
outputZod: mcpMerklRewardsFetchOutputSchema
|
|
7225
|
+
}),
|
|
7012
7226
|
defineMcpTool({
|
|
7013
7227
|
name: "ctm_morpho_fetch_midnight_books",
|
|
7014
7228
|
actionId: "morpho.fetch-midnight-books",
|
|
@@ -7090,6 +7304,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7090
7304
|
inputZod: mcpEulerV2FetchEarnVaultsInputSchema,
|
|
7091
7305
|
outputZod: mcpEulerV2FetchEarnVaultsOutputSchema
|
|
7092
7306
|
}),
|
|
7307
|
+
defineMcpTool({
|
|
7308
|
+
name: "ctm_euler_v2_fetch_merkl_rewards",
|
|
7309
|
+
actionId: "euler-v2.fetch-merkl-rewards",
|
|
7310
|
+
protocolId: "euler-v2",
|
|
7311
|
+
chainCategory: "evm",
|
|
7312
|
+
description: "Wallet-wide Merkl claimables for this address on a chain (not Euler-only). Pass keyGenId or user. Other venues\u2019 campaigns can appear. rEUL is omitted (skippedReulCount; unlock in the node app). Follow with ctm_euler_v2_build_merkl_claim_multisign.",
|
|
7313
|
+
prerequisites: ["keyGenId or user", "chainId"],
|
|
7314
|
+
followUp: ["ctm_euler_v2_build_merkl_claim_multisign"],
|
|
7315
|
+
handler: { importPath: "protocols/evm/euler-v2", exportName: "eulerV2FetchMerklRewardsSummary" },
|
|
7316
|
+
inputZod: mcpMerklRewardsFetchInputSchema,
|
|
7317
|
+
outputZod: mcpMerklRewardsFetchOutputSchema
|
|
7318
|
+
}),
|
|
7093
7319
|
defineMcpTool({
|
|
7094
7320
|
name: "ctm_cctp_fetch_supported_routes",
|
|
7095
7321
|
actionId: "circle-cctp.fetch-routes",
|
|
@@ -7699,6 +7925,18 @@ var CORE_MCP_TOOL_DEFINITIONS = [
|
|
|
7699
7925
|
inputZod: mcpAaveV4FetchMarketInputSchema,
|
|
7700
7926
|
outputZod: mcpAaveV4FetchMarketOutputSchema
|
|
7701
7927
|
}),
|
|
7928
|
+
defineMcpTool({
|
|
7929
|
+
name: "ctm_aave_v4_fetch_merkl_rewards",
|
|
7930
|
+
actionId: "aave-v4.fetch-merkl-rewards",
|
|
7931
|
+
protocolId: "aave-v4",
|
|
7932
|
+
chainCategory: "evm",
|
|
7933
|
+
description: "Wallet-wide Merkl claimables for this address on a chain (not Aave-only). Pass keyGenId or user. Other venues\u2019 campaigns can appear. rEUL is omitted. Follow with ctm_aave_v4_build_merkl_claim_multisign (keyGenId + chainId).",
|
|
7934
|
+
prerequisites: ["keyGenId or user", "chainId"],
|
|
7935
|
+
followUp: ["ctm_aave_v4_build_merkl_claim_multisign"],
|
|
7936
|
+
handler: { importPath: "protocols/evm/aave-v4", exportName: "aaveV4FetchMerklRewardsSummary" },
|
|
7937
|
+
inputZod: mcpMerklRewardsFetchInputSchema,
|
|
7938
|
+
outputZod: mcpMerklRewardsFetchOutputSchema
|
|
7939
|
+
}),
|
|
7702
7940
|
defineMcpTool({
|
|
7703
7941
|
name: "ctm_lido_fetch_steth_apr",
|
|
7704
7942
|
actionId: "lido.fetch-steth-apr",
|
|
@@ -8407,7 +8645,9 @@ var aaveV4ProtocolModule = {
|
|
|
8407
8645
|
{ id: "aave-v4.deposit", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "Supply to Aave v4 Spoke", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8408
8646
|
{ id: "aave-v4.withdraw", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw from Spoke", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8409
8647
|
{ id: "aave-v4.borrow", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "Borrow from Spoke", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8410
|
-
{ id: "aave-v4.repay", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "Repay Spoke debt", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
8648
|
+
{ id: "aave-v4.repay", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "Repay Spoke debt", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8649
|
+
{ id: "aave-v4.fetch-merkl-rewards", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "List wallet-wide Merkl claimables on a chain", commonParams: [], params: {} },
|
|
8650
|
+
{ id: "aave-v4.merkl-claim", protocolId: AAVE_V4_PROTOCOL_ID, chainCategory: "evm", description: "Claim wallet-wide Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
8411
8651
|
]
|
|
8412
8652
|
};
|
|
8413
8653
|
registerProtocolModule(aaveV4ProtocolModule);
|
|
@@ -8621,7 +8861,9 @@ var eulerV2ProtocolModule = {
|
|
|
8621
8861
|
{ id: "euler-v2.vault-withdraw", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw from Euler vault", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8622
8862
|
{ id: "euler-v2.borrow-repay", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Repay Euler borrow", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8623
8863
|
{ id: "euler-v2.collateral-deposit", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Deposit borrow collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8624
|
-
{ id: "euler-v2.collateral-withdraw", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw borrow collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
8864
|
+
{ id: "euler-v2.collateral-withdraw", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw borrow collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
8865
|
+
{ id: "euler-v2.fetch-merkl-rewards", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "List wallet-wide Merkl claimables on a chain", commonParams: [], params: {} },
|
|
8866
|
+
{ id: "euler-v2.merkl-claim", protocolId: EULER_V2_PROTOCOL_ID, chainCategory: "evm", description: "Claim wallet-wide Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} }
|
|
8625
8867
|
]
|
|
8626
8868
|
};
|
|
8627
8869
|
registerProtocolModule(eulerV2ProtocolModule);
|
|
@@ -9021,6 +9263,19 @@ var hyperliquidProtocolModule = {
|
|
|
9021
9263
|
marketKind: { type: "string", required: false, description: "perp (default) or spot" }
|
|
9022
9264
|
}
|
|
9023
9265
|
},
|
|
9266
|
+
{
|
|
9267
|
+
id: "hyperliquid.lend",
|
|
9268
|
+
protocolId: HYPERLIQUID_PROTOCOL_ID,
|
|
9269
|
+
chainCategory: "evm",
|
|
9270
|
+
description: "Hyperliquid Core borrow/lend via L1 /exchange EIP-712 (supply, withdraw, borrow, repay). Not CoreWriter.",
|
|
9271
|
+
commonParams: ["keyGen", "purposeText"],
|
|
9272
|
+
params: {
|
|
9273
|
+
coin: { type: "string", required: true, description: "Spot token e.g. USDC, USDT, HYPE, BTC/UBTC" },
|
|
9274
|
+
operation: { type: "string", required: true, description: "supply | withdraw | borrow | repay" },
|
|
9275
|
+
amountHuman: { type: "string", required: false, description: "Amount; omit or max for full withdraw/repay" },
|
|
9276
|
+
amountMax: { type: "boolean", required: false, description: "true = full amount (amount null on wire)" }
|
|
9277
|
+
}
|
|
9278
|
+
},
|
|
9024
9279
|
{
|
|
9025
9280
|
id: "hyperliquid.undelegate",
|
|
9026
9281
|
protocolId: HYPERLIQUID_PROTOCOL_ID,
|
|
@@ -9376,7 +9631,8 @@ var morphoProtocolModule = {
|
|
|
9376
9631
|
{ id: "morpho.blue-borrow", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Borrow from Morpho Blue market", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
9377
9632
|
{ id: "morpho.blue-repay", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Repay Morpho Blue borrow", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
9378
9633
|
{ id: "morpho.blue-collateral-withdraw", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Withdraw Morpho Blue collateral", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
9379
|
-
{ id: "morpho.merkl-
|
|
9634
|
+
{ id: "morpho.fetch-merkl-rewards", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "List wallet-wide Merkl claimables on a chain", commonParams: [], params: {} },
|
|
9635
|
+
{ id: "morpho.merkl-claim", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Claim wallet-wide Merkl rewards", commonParams: ["keyGen", "purposeText", "useCustomGas"], params: {} },
|
|
9380
9636
|
{ id: "morpho.fetch-blue-markets", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "Search Morpho Blue variable-rate markets", commonParams: [], params: {} },
|
|
9381
9637
|
{ id: "morpho.fetch-stock-markets", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "List Coinbase B20 stock-backed Morpho Blue and Midnight markets on Base", commonParams: [], params: {} },
|
|
9382
9638
|
{ id: "morpho.fetch-positions", protocolId: MORPHO_PROTOCOL_ID, chainCategory: "evm", description: "List Morpho vault and Blue positions for a user", commonParams: [], params: {} },
|
|
@@ -11244,7 +11500,7 @@ var PROTOCOL_SUPPORT_ADVISORS = {
|
|
|
11244
11500
|
}));
|
|
11245
11501
|
return {
|
|
11246
11502
|
tokens,
|
|
11247
|
-
notes: chainId === ROBINHOOD_CHAIN_ID ? 'Morpho vault assets on Robinhood Chain. Robinhood Earn USDG yield uses Steakhouse USDG (steakUSDG) \u2014 query "robinhood earn" or robinhoodEarn: true on deposit multisign; not Arcus collateral.' : isMorphoArcChainId(chainId) ? "Morpho vault and Blue market assets on Arc (USDC-native gas). Mainnet is 5042; testnet is 5042002. Midnight remains Ethereum/Base only." : chainId === 8453 ?
|
|
11503
|
+
notes: chainId === ROBINHOOD_CHAIN_ID ? 'Morpho vault assets on Robinhood Chain. Robinhood Earn USDG yield uses Steakhouse USDG (steakUSDG) \u2014 query "robinhood earn" or robinhoodEarn: true on deposit multisign; not Arcus collateral.' : isMorphoArcChainId(chainId) ? "Morpho vault and Blue market assets on Arc (USDC-native gas). Mainnet is 5042; testnet is 5042002. Midnight remains Ethereum/Base only." : chainId === 8453 ? "Morpho vault, Lend (Blue USDC supply / Midnight lend), Blue borrow, and Midnight borrow on Base. Coinbase B20 stocks (AAPLc, NVDAc, \u2026) are collateral for stock-backed USDC loans \u2014 activate defi:morpho:lend then ctm_morpho_fetch_stock_markets. Tickers OK." : "Morpho vault assets, Blue market loan/collateral tokens, and Midnight book loan/collateral tokens from api.morpho.org."
|
|
11248
11504
|
};
|
|
11249
11505
|
},
|
|
11250
11506
|
async isTokenSupported(chainId, address) {
|
|
@@ -11605,6 +11861,7 @@ exports.mcpAaveV4FetchMarketInputSchema = mcpAaveV4FetchMarketInputSchema;
|
|
|
11605
11861
|
exports.mcpAaveV4FetchMarketOutputSchema = mcpAaveV4FetchMarketOutputSchema;
|
|
11606
11862
|
exports.mcpAaveV4FetchMarketsInputSchema = mcpAaveV4FetchMarketsInputSchema;
|
|
11607
11863
|
exports.mcpAaveV4FetchMarketsOutputSchema = mcpAaveV4FetchMarketsOutputSchema;
|
|
11864
|
+
exports.mcpAaveV4MerklClaimInputSchema = mcpAaveV4MerklClaimInputSchema;
|
|
11608
11865
|
exports.mcpAaveV4RepayInputSchema = mcpAaveV4RepayInputSchema;
|
|
11609
11866
|
exports.mcpAaveV4WithdrawInputSchema = mcpAaveV4WithdrawInputSchema;
|
|
11610
11867
|
exports.mcpAerodromeBuildAddLiquidityMultisignInputSchema = mcpAerodromeBuildAddLiquidityMultisignInputSchema;
|
|
@@ -11790,6 +12047,7 @@ exports.mcpEulerV2FetchLendVaultsInputSchema = mcpEulerV2FetchLendVaultsInputSch
|
|
|
11790
12047
|
exports.mcpEulerV2FetchLendVaultsOutputSchema = mcpEulerV2FetchLendVaultsOutputSchema;
|
|
11791
12048
|
exports.mcpEulerV2IsolatedBorrowInputSchema = mcpEulerV2IsolatedBorrowInputSchema;
|
|
11792
12049
|
exports.mcpEulerV2IsolatedLendInputSchema = mcpEulerV2IsolatedLendInputSchema;
|
|
12050
|
+
exports.mcpEulerV2MerklClaimInputSchema = mcpEulerV2MerklClaimInputSchema;
|
|
11793
12051
|
exports.mcpEulerV2VaultWithdrawInputSchema = mcpEulerV2VaultWithdrawInputSchema;
|
|
11794
12052
|
exports.mcpGmxCancelInputSchema = mcpGmxCancelInputSchema;
|
|
11795
12053
|
exports.mcpGmxDecreaseInputSchema = mcpGmxDecreaseInputSchema;
|
|
@@ -11822,6 +12080,10 @@ exports.mcpHyperliquidCloseInputSchema = mcpHyperliquidCloseInputSchema;
|
|
|
11822
12080
|
exports.mcpHyperliquidDelegateInputSchema = mcpHyperliquidDelegateInputSchema;
|
|
11823
12081
|
exports.mcpHyperliquidFetchDelegationsInputSchema = mcpHyperliquidFetchDelegationsInputSchema;
|
|
11824
12082
|
exports.mcpHyperliquidFetchDelegationsOutputSchema = mcpHyperliquidFetchDelegationsOutputSchema;
|
|
12083
|
+
exports.mcpHyperliquidFetchLendMarketsInputSchema = mcpHyperliquidFetchLendMarketsInputSchema;
|
|
12084
|
+
exports.mcpHyperliquidFetchLendMarketsOutputSchema = mcpHyperliquidFetchLendMarketsOutputSchema;
|
|
12085
|
+
exports.mcpHyperliquidFetchLendPositionsInputSchema = mcpHyperliquidFetchLendPositionsInputSchema;
|
|
12086
|
+
exports.mcpHyperliquidFetchLendPositionsOutputSchema = mcpHyperliquidFetchLendPositionsOutputSchema;
|
|
11825
12087
|
exports.mcpHyperliquidFetchMarketSnapshotInputSchema = mcpHyperliquidFetchMarketSnapshotInputSchema;
|
|
11826
12088
|
exports.mcpHyperliquidFetchMarketSnapshotOutputSchema = mcpHyperliquidFetchMarketSnapshotOutputSchema;
|
|
11827
12089
|
exports.mcpHyperliquidFetchMarketsInputSchema = mcpHyperliquidFetchMarketsInputSchema;
|
|
@@ -11846,6 +12108,7 @@ exports.mcpHyperliquidFetchVaultApysInputSchema = mcpHyperliquidFetchVaultApysIn
|
|
|
11846
12108
|
exports.mcpHyperliquidFetchVaultApysOutputSchema = mcpHyperliquidFetchVaultApysOutputSchema;
|
|
11847
12109
|
exports.mcpHyperliquidFetchVaultsInputSchema = mcpHyperliquidFetchVaultsInputSchema;
|
|
11848
12110
|
exports.mcpHyperliquidFetchVaultsOutputSchema = mcpHyperliquidFetchVaultsOutputSchema;
|
|
12111
|
+
exports.mcpHyperliquidLendInputSchema = mcpHyperliquidLendInputSchema;
|
|
11849
12112
|
exports.mcpHyperliquidLimitOrderInputSchema = mcpHyperliquidLimitOrderInputSchema;
|
|
11850
12113
|
exports.mcpHyperliquidSearchMarketsInputSchema = mcpHyperliquidSearchMarketsInputSchema;
|
|
11851
12114
|
exports.mcpHyperliquidSearchMarketsOutputSchema = mcpHyperliquidSearchMarketsOutputSchema;
|
|
@@ -11869,6 +12132,8 @@ exports.mcpMapleFetchMarketOutputSchema = mcpMapleFetchMarketOutputSchema;
|
|
|
11869
12132
|
exports.mcpMapleFetchMarketsInputSchema = mcpMapleFetchMarketsInputSchema;
|
|
11870
12133
|
exports.mcpMapleFetchMarketsOutputSchema = mcpMapleFetchMarketsOutputSchema;
|
|
11871
12134
|
exports.mcpMapleRequestRedeemInputSchema = mcpMapleRequestRedeemInputSchema;
|
|
12135
|
+
exports.mcpMerklRewardsFetchInputSchema = mcpMerklRewardsFetchInputSchema;
|
|
12136
|
+
exports.mcpMerklRewardsFetchOutputSchema = mcpMerklRewardsFetchOutputSchema;
|
|
11872
12137
|
exports.mcpMorphoBlueBorrowInputSchema = mcpMorphoBlueBorrowInputSchema;
|
|
11873
12138
|
exports.mcpMorphoBlueCollateralDepositInputSchema = mcpMorphoBlueCollateralDepositInputSchema;
|
|
11874
12139
|
exports.mcpMorphoBlueCollateralWithdrawInputSchema = mcpMorphoBlueCollateralWithdrawInputSchema;
|