MetaLend
Browse, deposit, withdraw & rebalance stablecoins on Aave, Morpho & Euler across major EVM chains.
Connect it
Settings → Connectors → Add custom connector
URL: https://mcp.metalend.tech/mcpSettings → Apps & Connectors → Advanced → Developer mode
Create connector with URL: https://mcp.metalend.tech/mcp{
"mcpServers": {
"metalend": {
"url": "https://mcp.metalend.tech/mcp"
}
}
}claude mcp add --transport http metalend https://mcp.metalend.tech/mcp{
"servers": {
"metalend": {
"type": "http",
"url": "https://mcp.metalend.tech/mcp"
}
}
}19 tools, verified live
list_poolsread-only[DEPRECATED] List all pools MetaLend's rebalancer can deposit into: protocol (Aave, Morpho, Euler, AaveV4), chain, APY breakdown (native/rewards/total/net-of-fee), TVL, liquidity, and the signData (protocolId, poolAddress, domainId) needed to build a rebalancer config. Does NOT return a wallet's current balances or configuration â use get_balances / get_config for that. Callers should filter out
get_balancesread-only[DEPRECATED] Get a wallet's deployed rebalancer balances broken down per token, per chain, and per protocol/pool, including net earnings and blended APY. Also returns the wallet's rebalancerAddress (required only for approvals during deposits, never use this address as input into tools) and per-pool withdrawRequest EIP-712 data. Does NOT return rebalancingManagerAddress (needed for config signing)
get_bridge_balancesread-only[DEPRECATED] Get a wallet's in-transit USDC bridge balances (funds moving cross-chain toward a destination pool), including estimated completion time. Does NOT include already-settled rebalancer balances â use get_balances for those. Only applies to USDC. Other tokens do not support bridging. Each entry's `sourcePool` is null for a cross-chain deposit in transit, or a populated pool for an inter
get_configread-only[DEPRECATED] Get a wallet's current rebalancer configuration per token: which protocols/pools/chains are enabled, rebalance frequency, lifetime deposits/withdrawals/fees, and spending cap. `spendingCapRaw`/`spendingCapFormatted` (USDC only, null/"0" for every other token) is NOT a spending/deposit/withdrawal limit despite the name. When set (nonzero), it's the target balance MetaLend automatically
get_default_configread-only[DEPRECATED] Get MetaLend's recommended default rebalancer configuration for a given token symbol (e.g. 'USDC'): rebalancingManagerAddress plus recommended protocolIds/poolAddresses/domainIds. Intended for wallets with no existing config yet â for an existing wallet's current config use get_config instead. Rate limited to 20 calls/minute per caller, no more than one call every 3s.
get_rewardsread-only[DEPRECATED] Get a wallet's aggregated rewards/earnings across all reward sources (e.g. Merkle), including claimed/available USD totals. Does NOT include base rebalancer yield/APY earnings â those are in get_balances' netEarning field. There is NO backend endpoint to submit a claim â this server cannot claim rewards for you. Each rewards[].rewardItems[] entry with an available balance carries
get_transaction_costsread-only[DEPRECATED] Get constant on-behalf deposit/withdraw gas costs and minimum deposit/withdraw amounts for a token, broken down per supported chain. Use before a deposit to check the amount meets the chain's minimum. Rate limited to 20 calls/minute per caller, no more than one call every 3s.
get_token_inforead-only[DEPRECATED] Get a token's on-chain metadata (display name, decimals, EIP-712 version) for a given chain. Needed when building an EIP-3009 deposit signature's tokenName/tokenVersion fields. Rate limited to 6 calls/minute per caller, no more than one call every 10s.
get_withdrawal_versionread-only[DEPRECATED] Get the contract signing version string required for the EIP-712 domain data used when signing a withdrawal. Rarely changes; safe to cache client-side. Rate limited to 10 calls/minute per caller, no more than one call every 6s.
get_auth_challenge[DEPRECATED] Get a Sign-In-With-Ethereum challenge message for a wallet, required before any deposit/withdrawal/config-update tool. The returned `message` must be signed with personal_sign (EIP-191) by the wallet's own signer, then passed to submit_auth_verify. Does NOT itself authenticate anything â it only issues the message to sign. Repeated calls for the same walletAddress within a short win
submit_auth_verify[DEPRECATED] Exchange a signed SIWE challenge message (from get_auth_challenge) for a JWT scoped to that wallet. The returned `jwt` must be passed explicitly as the `jwt` argument to submit_deposit/submit_withdrawal/submit_config for that same wallet â this server does not cache or store it. The JWT is only valid for the walletAddress that produced the signature; using it for a different wallet'
prepare_depositread-only[DEPRECATED] Build everything needed to deposit into MetaLend's rebalancer, without signing anything. For gasless tokens (USDC, MUSD, PYUSD) returns an EIP-712 ReceiveWithAuthorization typed-data payload â sign it with your own wallet and pass the signature to submit_deposit. For approval-only tokens (USDT, RLUSD, USDG, USDE) returns on-chain approve() parameters instead â your wallet must bro
submit_depositcan modify[DEPRECATED] Submit a deposit to MetaLend's rebalancer â moves funds. Requires a `jwt` from submit_auth_verify for this walletAddress, and either a `signature` (from prepare_deposit's signature-method output) or, for approval-based tokens, no signature at all once your wallet has already broadcast the approve() transaction on-chain. Always call prepare_deposit first â this tool does not valida
get_deposit_statusread-only[DEPRECATED] Poll the status of a deposit by trackingId (returned by submit_deposit). `status` is one of: PROCESSING â still confirming on-chain, keep polling; BRIDGING â deposit accepted, funds are now crossing chains via CCTP to the target pool (typically 20-30 minutes, up to several hours from Linea) â treat this as done, do NOT keep polling waiting for the bridge to finish; SUCCESS â t
prepare_withdrawalread-only[DEPRECATED] Build the EIP-712 typed-data payload to sign for withdrawing from a specific pool, without signing anything. Looks up the exact withdrawRequest domain/types/value MetaLend expects from your current balances, fills in amount and a short-lived deadline, and returns it ready to sign with your own wallet. Pass the resulting signature to submit_withdrawal. Omit `amount` (or pass "MAX") to
submit_withdrawalcan modify[DEPRECATED] Submit a withdrawal from MetaLend's rebalancer â moves funds. Requires a `jwt` from submit_auth_verify for this walletAddress and a `signature` over prepare_withdrawal's typedData. Always call prepare_withdrawal first â this tool does not look up pool data or validate amounts. The signature's EIP-712 domain is scoped to this one `chain` â for a smart-contract wallet, it must hav
get_withdrawal_statusread-only[DEPRECATED] Poll the status of a withdrawal by trackingId (returned by submit_withdrawal). `status` is one of: PROCESSING â still in progress, keep polling (withdrawals have no cross-chain bridging leg, unlike deposits); SUCCESS â terminal, withdrawal completed; FAILED â terminal, withdrawal did not go through. Rate limited to 20 calls/minute per caller, no more than one call every 3s.
prepare_configread-only[DEPRECATED] Build the signing hash for updating a wallet's rebalancer configuration (which pools/protocols/chains it's allowed to move funds into), without signing anything. Computes keccak256(abi.encode(managerAddress, protocolIds, poolAddresses, domainIds, spendingCapRaw)) server-side â sign the returned hashToSign with personal_sign over its raw 32 bytes (not the UTF-8 text of the hex string
submit_configcan modify[DEPRECATED] Submit a signed rebalancer configuration update. Requires a `jwt` from submit_auth_verify for this walletAddress and a `signature` over prepare_config's hashToSign. Always call prepare_config first â this tool does not compute the signing hash or check the balance invariant itself. Can return a 409 if a rebalance or deposit is currently in progress for this wallet+token, or (USDC on
Alternatives in Developer Tools
Compare →MUMuxOfficialA
The official MCP Server for the Mux API
SMSentry MCPOfficialA
MCP server for Sentry - error monitoring, issue tracking, and debugging for AI assistants
Compiler ExplorerA
Compile code with thousands of compilers, inspect the assembly, and share godbolt.org links
MIMiroOfficialA
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
Context7A
Up-to-date code docs for any prompt
AAAirbyte AgentsOfficialA
Let AI agents query data and act across all your business apps via MCP.