Morpho MCP
Morpho's hosted MCP server — query vaults, markets, Midnight fixed-rate markets, and positions, and prepare unsigned transactions from any MCP-compatible agent.
Morpho MCP is Morpho's hosted, remote MCP server. It gives any MCP-compatible agent live access to Morpho vaults, markets, Midnight fixed-rate markets, and positions, and lets it prepare unsigned transactions for you to review and sign.
Setup and Usage
The server is hosted and public. There is nothing to install and no key to manage. It never signs or sends a transaction.
| Endpoint | https://mcp.morpho.org/ |
| Transport | Streamable HTTP |
| Authentication | None — no API key, no account |
| Server name | morpho-mcp |
Most tools are generated from the Morpho API OpenAPI specs, one tool per API operation, so their inputs and outputs match the API reference. The conventions below apply to protocol calls:
- Generated tools take selectors. Single-vault tools and vault prepare tools take a
vault-selectorformatted as<chainId>:<vaultAddress>, for example8453:0xbeef0e0834849aCC03f0089F01f4F1Eeb06873C9. Single-market Blue tools and market prepare tools take amarket-selectorformatted as<chainId>:<marketId>. Midnight market IDs are unique across chains, so Midnight tools take amarket-idwith no chain ID. List tools take filters, not a selector. - Amounts are base units. Asset amounts are integer strings in the token's base units. Read token decimals from tool responses; never assume them. Share amounts (
sharesinputs orunit: "shares") are integer strings in raw onchain share units — vault shares, or Morpho Blue supply/borrow shares — not scaled to the asset's decimals. - List tools are paginated. Pass the returned
cursorback until it isnull. - Discover before you write. Find a target with a list tool, inspect it with the matching get tool, then call a
morpho_prepare_*tool. Never hardcode addresses. - Older tools take chain slugs.
morpho_get_token_balance,morpho_prepare_claim_rewards, and the deprecated get and position tools take achainslug. They accept only chains wheremorpho_get_supported_chainsreturnssupportsRpcTools: true. The deprecated query tools also accept a numericchainId.
Prepare tools
A generated morpho_prepare_* tool calls the Morpho Actions API and returns its result under data:
- If
data.statusissignature_required, sign eachdata.signatures[].typed_data, then call the same tool again with the same selector and the body{ continuation, signatures: [{ id, signature }] }. - A finished result lists the unsigned transactions in
data.calls. Send them unchanged and in order from the account, and only ifdata.simulation.statusissuccessanddata.expires_athas not passed. - If
data.simulation.statusisfailed, showdata.simulation.failureand do not send the calls. - Each result carries
action_proof, the Actions API'sMorpho-Action-Proofresponse header. The MCP server passes it through without verifying it. Production clients must verify it againsthttps://api.morpho.org/.well-known/morpho-actions-jwks.json(ES256 only) before showing typed data or sending calls.
morpho_prepare_force_redeem takes flat arguments (vault-selector, account, complete: true, max_penalty_bps) instead of a body, so it has no continuation call. Its result can report nonzero residual_shares, a safety margin the exit leaves in the vault; data.simulation.effects.remaining_shares shows the simulated balance left.
morpho_prepare_claim_rewards is not generated. It returns a PreparedOperation: the transactions to sign and a warnings array. Warnings carry a severity — an error means stop, and the transactions must not be presented for signing.
Setup Examples
Claude Code
Add the server with the claude mcp add command. The --scope user flag registers it once for every project on your machine; drop it to scope the server to the current project.
claude mcp add morpho --scope user --transport http https://mcp.morpho.org/Confirm it connected:
claude mcp listInside a session, /mcp lists the connected servers and the tools each exposes.
Codex
Add the server with codex mcp add, passing --url to select the Streamable HTTP transport:
codex mcp add morpho --url https://mcp.morpho.org/Confirm it connected:
codex mcp listYou can also declare the server in ~/.codex/config.toml to make it global, or in a trusted project's .codex/config.toml to scope it to that project:
[mcp_servers.morpho]
url = "https://mcp.morpho.org/"Other clients
Any MCP client that speaks the Streamable HTTP transport can connect by pointing at the endpoint. In Cursor, add it to .cursor/mcp.json:
{ "mcpServers": { "morpho": { "type": "http", "url": "https://mcp.morpho.org/" } } }Tools
The server exposes 80 tools. Read tools answer questions about protocol state or the documentation; prepare tools return unsigned transactions.
General
| Tool | Description |
|---|---|
morpho_health_check | Check the server and its connected services. |
morpho_get_supported_chains | List known chains, Core protocols, and RPC-tool support. |
morpho_get_token_balance | A token balance, plus whether Morpho or the Bundler still needs an approval. |
morpho_doc_search | Search the Morpho documentation by semantic similarity. |
Blue markets
| Tool | Description |
|---|---|
morpho_blue_list_markets | List markets, filterable by chain, token, market ID, and LLTV. |
morpho_blue_get_market | Get a market's configuration: tokens, oracle, IRM, and LLTV. |
morpho_blue_get_market_state | Get a market's current supply and borrow totals. |
morpho_blue_get_market_state_history | Get a market's supply and borrow totals over time. |
morpho_blue_get_market_apy_averages | Get a market's average supply and borrow APY over past periods. |
morpho_blue_get_market_apy_history | Get a market's supply and borrow APY over time. |
morpho_blue_get_market_liquidity | Get a market's available liquidity, including what the Public Allocator could add. |
morpho_blue_get_user_position | Get a user's collateral, supply, and borrow in a market. |
morpho_blue_get_user_position_history | Get a user's market position over time. |
morpho_blue_get_user_position_performance | Get what a user has earned and paid in a market. |
Vaults V1
| Tool | Description |
|---|---|
morpho_vault_v1_list_vaults | List listed V1 vaults across chains. |
morpho_vault_v1_get_vault | Get a V1 vault's configuration: asset, fees, owner, curator, guardian, and timelock. |
morpho_vault_v1_get_state | Get a V1 vault's current totals. |
morpho_vault_v1_get_state_history | Get a V1 vault's totals over time. |
morpho_vault_v1_get_apy_averages | Get the APY earned by vault users over past periods. |
morpho_vault_v1_get_apy_history | Get a V1 vault's APY over time. |
morpho_vault_v1_get_allocations | Get the markets a V1 vault allocates to, with caps. |
morpho_vault_v1_get_allocation_history | Get a V1 vault's allocations over time. |
morpho_vault_v1_get_pending_governance_actions | Get changes queued behind the vault's timelock. |
morpho_vault_v1_list_user_positions | List a user's V1 vault deposits across chains. |
morpho_vault_v1_get_user_position | Get a user's deposit in a V1 vault. |
morpho_vault_v1_get_user_position_history | Get a user's V1 vault deposit over time. |
morpho_vault_v1_get_user_position_activity | List a user's deposits, withdrawals, and transfers in a V1 vault. |
morpho_vault_v1_get_user_position_performance | Get what a user has earned in a V1 vault. |
Vaults V2
| Tool | Description |
|---|---|
morpho_vault_v2_list_vaults | List listed V2 vaults across chains. |
morpho_vault_v2_get_vault | Get a V2 vault's configuration: asset, fees, owner, curator, adapters, and gates. |
morpho_vault_v2_get_state | Get a V2 vault's current totals, including idle and allocated assets. |
morpho_vault_v2_get_state_history | Get a V2 vault's totals over time. |
morpho_vault_v2_get_apy_averages | Get the APY earned by vault users over past periods. |
morpho_vault_v2_get_apy_history | Get a V2 vault's APY over time. |
morpho_vault_v2_get_allocations | Get a V2 vault's adapters, caps, and allocations. |
morpho_vault_v2_get_caps_history | Get a V2 vault's allocations and caps over time. |
morpho_vault_v2_get_withdrawal_options | Get what can be withdrawn now, and what a forced withdrawal frees and costs. |
morpho_vault_v2_get_pending_governance_actions | Get changes queued behind the vault's timelock. |
morpho_vault_v2_list_user_positions | List a user's V2 vault deposits across chains. |
morpho_vault_v2_get_user_position | Get a user's deposit in a V2 vault. |
morpho_vault_v2_get_user_position_history | Get a user's V2 vault deposit over time. |
morpho_vault_v2_get_user_position_activity | List a user's deposits, withdrawals, and transfers in a V2 vault. |
morpho_vault_v2_get_user_position_performance | Get what a user has earned in a V2 vault. |
Midnight
| Tool | Description |
|---|---|
morpho_midnight_list_markets | List Midnight markets. |
morpho_midnight_get_market | Get a Midnight market's configuration. |
morpho_midnight_get_market_state | Get a Midnight market's current state. |
morpho_midnight_list_market_positions | List current positions in a Midnight market. |
morpho_midnight_list_user_positions | List a user's Midnight positions. |
morpho_midnight_get_user_position | Get a user's position in a Midnight market. |
morpho_midnight_get_user_position_performance | Get a Midnight position's performance. |
morpho_midnight_get_offer_group | Get the offer groups matching an onchain group ID. |
morpho_midnight_list_user_offer_groups | List a user's offer groups with their offers. |
morpho_midnight_list_maker_takeable_offers | List one maker's active offers. |
morpho_midnight_list_books | List order books for active maturities, with the top price levels. |
morpho_midnight_get_book | Get one order book with both sides. |
morpho_midnight_get_book_side | Get one side of a book as price levels. |
morpho_midnight_get_book_side_takeable_offers | Get up to 1,000 executable offers for one book side. |
morpho_midnight_get_book_quote | Get a quote for an amount, with expected prices and the offers to take. |
Transactions
| Tool | Description |
|---|---|
morpho_prepare_deposit | Deposit into a V1 or V2 vault. |
morpho_prepare_withdraw | Withdraw an exact asset amount from a V1 or V2 vault. |
morpho_prepare_redeem | Redeem vault shares, or the whole position with complete: true. |
morpho_prepare_force_withdraw | Force a V2 vault withdrawal from its adapters; a penalty applies. |
morpho_prepare_force_redeem | Force-redeem a whole V2 position through its adapters, capped by max_penalty_bps; a penalty applies and a small residual_shares margin can remain. |
morpho_prepare_redeem_in_kind | Exit a V2 vault, taking the illiquid part as a market supply position. |
morpho_prepare_supply | Supply (lend) the loan token to a market. |
morpho_prepare_blue_withdraw | Withdraw supplied loan tokens from a market. |
morpho_prepare_supply_collateral | Supply collateral to a market. |
morpho_prepare_withdraw_collateral | Withdraw collateral from a market. |
morpho_prepare_borrow | Borrow from a market against collateral already supplied. |
morpho_prepare_repay | Repay a market borrow by assets, by shares, or in full. |
morpho_prepare_supply_collateral_and_borrow | Supply collateral and borrow in one step. |
morpho_prepare_repay_and_withdraw_collateral | Repay and withdraw collateral in one step. |
morpho_prepare_refinance | Move a borrow position to another market on the same chain. |
morpho_prepare_claim_rewards | Claim Merkl rewards against the canonical Distributor. |
Deprecated
These read tools still work but will be removed. Use the generated tools instead.
| Deprecated | Use instead |
|---|---|
morpho_query_vaults | morpho_vault_v1_list_vaults, morpho_vault_v2_list_vaults |
morpho_get_vault | morpho_vault_v1_get_vault, morpho_vault_v2_get_vault |
morpho_get_vault_positions | morpho_vault_v1_list_user_positions, morpho_vault_v2_list_user_positions |
morpho_query_markets | morpho_blue_list_markets |
morpho_get_market | morpho_blue_get_market |
morpho_get_market_positions | morpho_blue_get_user_position (one call per market) |
Response notes
Generated tools return APYs as decimal rates that exclude rewards: 0.0317 means 3.17%. The deprecated tools return percentage strings. Vault list tools return no APY or TVL; fetch each vault's state and APY tools before ranking vaults. Vault tools return the curator as an address, not a name.
For product implementation and review guidance, install the separate Morpho Skills.
Prompt Examples
Once the server is connected, ask in plain language. Your agent picks the tools.
- For vault
0x…on Base, show its average APY, TVL, curator, and fee rates. Note that the APY excludes rewards. - Compare the borrow rates on the wstETH/WETH markets on Ethereum and Arbitrum.
- For
0x…on Base, show my position in market0x…and how much I have earned and paid. - List all my V2 vault positions across chains.
- Prepare a 1,000 USDC deposit into vault
0x…on Base for0x…, and show me the transactions before I sign anything. - How much can I withdraw from V2 vault
0x…on Ethereum right now, and what would a forced withdrawal cost? - List the Midnight markets and show the order book for the nearest maturity.
- Do I have claimable Merkl rewards on Base? If so, prepare the claim.