From morpho-cli
Interact with the Morpho lending protocol using the CLI. Use this skill when the user asks to: query vault APYs, TVL, or allocation strategies ("What's the best USDC vault on Base?"); query market rates, utilization, or LLTV ("Show me ETH/USDC markets on Ethereum"); check user positions, balances, or health ("What are my Morpho positions?"); deposit into or withdraw from a vault ("Deposit 1000 USDC into Steakhouse vault"); supply collateral, borrow, or repay on a market ("Borrow 5000 USDC against my WETH"); prepare or simulate any Morpho transaction.
How this skill is triggered — by the user, by Claude, or both
Slash command
/morpho-cli:morpho-cliThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **Experimental (pre-v1.0)** — Command syntax, response schemas, and available operations may change. Always verify critical outputs independently.
Experimental (pre-v1.0) — Command syntax, response schemas, and available operations may change. Always verify critical outputs independently.
Query Morpho protocol data and build unsigned transactions. All commands output JSON to stdout. No private keys needed.
morpho <command> [options]
Supported chains: base, ethereum. Every command requires --chain.
# Read — query protocol state
morpho query-vaults --chain base [--asset-symbol USDC] [--asset-address 0x...] [--sort apy_desc|apy_asc|tvl_desc|tvl_asc] [--limit 5] [--skip 0] [--fields address,name,symbol,apyPct,tvl,tvlUsd,feePct]
morpho get-vault --chain base --address 0x...
morpho query-markets --chain base --loan-asset 0x... --collateral-asset 0x... [--sort-by supplyApy|borrowApy|netSupplyApy|netBorrowApy|supplyAssetsUsd|borrowAssetsUsd|totalLiquidityUsd] [--sort-direction asc|desc] [--limit 10] [--skip 0] [--fields supplyApy,borrowApy,totalSupply,totalBorrow,totalCollateral,totalLiquidity,supplyAssetsUsd,borrowAssetsUsd,collateralAssetsUsd,liquidityAssetsUsd]
morpho get-market --chain base --id 0x...
morpho get-positions --chain base --user-address 0x... [--vault-address 0x...] [--market-id 0x...]
morpho get-position --chain base --user-address 0x... [--vault-address 0x...]
# Write — prepare unsigned transactions (simulation runs by default; add --no-simulate to skip)
morpho prepare-deposit --chain base --vault-address 0x... --user-address 0x... --amount 1000
morpho prepare-withdraw --chain base --vault-address 0x... --user-address 0x... --amount max
morpho prepare-supply --chain base --market-id 0x... --user-address 0x... --amount 5000
morpho prepare-borrow --chain base --market-id 0x... --user-address 0x... --borrow-amount 1
morpho prepare-repay --chain base --market-id 0x... --user-address 0x... --amount max
morpho prepare-supply-collateral --chain base --market-id 0x... --user-address 0x... --amount 5000
morpho prepare-withdraw-collateral --chain base --market-id 0x... --user-address 0x... --amount max
# Simulate — standalone re-simulation or arbitrary transaction simulation
morpho simulate-transactions --chain base --from 0x... --transactions '<JSON>' --analysis-context '<JSON>'
# Utility
morpho health-check
morpho get-supported-chains
Every write operation follows two steps. Simulation runs automatically inside prepare-*.
prepare-* command. The CLI handles token decimals, allowances, approvals, and simulation automatically. Returns {operation, simulation} where operation has transactions/summary/warnings/preview and simulation has execution results, gas, and post-state analysis. Use --no-simulate to skip simulation.simulation.allSucceeded is false — diagnose before presenting.Use simulate-transactions separately only for re-simulating with different parameters or simulating arbitrary transactions.
| Revert | Cause | What to do |
|---|---|---|
ERC20: insufficient allowance | Missing approval | Re-prepare — CLI should include approvals automatically |
ERC4626ExceededMaxWithdraw | Vault liquidity insufficient | Reduce amount (see below) |
insufficient balance | User lacks tokens | Tell the user |
| Custom error hex | Protocol-specific | Query state with get-market or get-vault to diagnose |
If prepare-withdraw --amount max returns a liquidity warning:
summary, apply ~1% buffer (parsedAmount * 0.99)prepare-withdraw with the buffered amount, then simulatesimulation.allSucceeded before presentingWhen a morpho CLI command fails, stop and report the error to the user. Do not:
jq or other filters — use the CLI's built-in flags (--fields, --sort-by, --limit, etc.) to shape the response--chain — every command requires it, there is no default1, 8453) instead of names (ethereum, base)10^decimals — "2000000000" USDC is 2000, not 2 billion--amount — CLI expects human-readable (1000 not 1000000000)--no-simulate without reason — simulation is on by default; only skip when debugging or for speedsimulation.allSucceeded === false — diagnose before presentingCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub morpho-org/morpho-skills --plugin morpho-cli