Docs

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.

Endpointhttps://mcp.morpho.org/
TransportStreamable HTTP
AuthenticationNone — no API key, no account
Server namemorpho-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-selector formatted as <chainId>:<vaultAddress>, for example 8453:0xbeef0e0834849aCC03f0089F01f4F1Eeb06873C9. Single-market Blue tools and market prepare tools take a market-selector formatted as <chainId>:<marketId>. Midnight market IDs are unique across chains, so Midnight tools take a market-id with 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 (shares inputs or unit: "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 cursor back until it is null.
  • 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 a chain slug. They accept only chains where morpho_get_supported_chains returns supportsRpcTools: true. The deprecated query tools also accept a numeric chainId.

Prepare tools

A generated morpho_prepare_* tool calls the Morpho Actions API and returns its result under data:

  • If data.status is signature_required, sign each data.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 if data.simulation.status is success and data.expires_at has not passed.
  • If data.simulation.status is failed, show data.simulation.failure and do not send the calls.
  • Each result carries action_proof, the Actions API's Morpho-Action-Proof response header. The MCP server passes it through without verifying it. Production clients must verify it against https://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 list

Inside 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 list

You 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

ToolDescription
morpho_health_checkCheck the server and its connected services.
morpho_get_supported_chainsList known chains, Core protocols, and RPC-tool support.
morpho_get_token_balanceA token balance, plus whether Morpho or the Bundler still needs an approval.
morpho_doc_searchSearch the Morpho documentation by semantic similarity.

Blue markets

ToolDescription
morpho_blue_list_marketsList markets, filterable by chain, token, market ID, and LLTV.
morpho_blue_get_marketGet a market's configuration: tokens, oracle, IRM, and LLTV.
morpho_blue_get_market_stateGet a market's current supply and borrow totals.
morpho_blue_get_market_state_historyGet a market's supply and borrow totals over time.
morpho_blue_get_market_apy_averagesGet a market's average supply and borrow APY over past periods.
morpho_blue_get_market_apy_historyGet a market's supply and borrow APY over time.
morpho_blue_get_market_liquidityGet a market's available liquidity, including what the Public Allocator could add.
morpho_blue_get_user_positionGet a user's collateral, supply, and borrow in a market.
morpho_blue_get_user_position_historyGet a user's market position over time.
morpho_blue_get_user_position_performanceGet what a user has earned and paid in a market.

Vaults V1

ToolDescription
morpho_vault_v1_list_vaultsList listed V1 vaults across chains.
morpho_vault_v1_get_vaultGet a V1 vault's configuration: asset, fees, owner, curator, guardian, and timelock.
morpho_vault_v1_get_stateGet a V1 vault's current totals.
morpho_vault_v1_get_state_historyGet a V1 vault's totals over time.
morpho_vault_v1_get_apy_averagesGet the APY earned by vault users over past periods.
morpho_vault_v1_get_apy_historyGet a V1 vault's APY over time.
morpho_vault_v1_get_allocationsGet the markets a V1 vault allocates to, with caps.
morpho_vault_v1_get_allocation_historyGet a V1 vault's allocations over time.
morpho_vault_v1_get_pending_governance_actionsGet changes queued behind the vault's timelock.
morpho_vault_v1_list_user_positionsList a user's V1 vault deposits across chains.
morpho_vault_v1_get_user_positionGet a user's deposit in a V1 vault.
morpho_vault_v1_get_user_position_historyGet a user's V1 vault deposit over time.
morpho_vault_v1_get_user_position_activityList a user's deposits, withdrawals, and transfers in a V1 vault.
morpho_vault_v1_get_user_position_performanceGet what a user has earned in a V1 vault.

Vaults V2

ToolDescription
morpho_vault_v2_list_vaultsList listed V2 vaults across chains.
morpho_vault_v2_get_vaultGet a V2 vault's configuration: asset, fees, owner, curator, adapters, and gates.
morpho_vault_v2_get_stateGet a V2 vault's current totals, including idle and allocated assets.
morpho_vault_v2_get_state_historyGet a V2 vault's totals over time.
morpho_vault_v2_get_apy_averagesGet the APY earned by vault users over past periods.
morpho_vault_v2_get_apy_historyGet a V2 vault's APY over time.
morpho_vault_v2_get_allocationsGet a V2 vault's adapters, caps, and allocations.
morpho_vault_v2_get_caps_historyGet a V2 vault's allocations and caps over time.
morpho_vault_v2_get_withdrawal_optionsGet what can be withdrawn now, and what a forced withdrawal frees and costs.
morpho_vault_v2_get_pending_governance_actionsGet changes queued behind the vault's timelock.
morpho_vault_v2_list_user_positionsList a user's V2 vault deposits across chains.
morpho_vault_v2_get_user_positionGet a user's deposit in a V2 vault.
morpho_vault_v2_get_user_position_historyGet a user's V2 vault deposit over time.
morpho_vault_v2_get_user_position_activityList a user's deposits, withdrawals, and transfers in a V2 vault.
morpho_vault_v2_get_user_position_performanceGet what a user has earned in a V2 vault.

Midnight

ToolDescription
morpho_midnight_list_marketsList Midnight markets.
morpho_midnight_get_marketGet a Midnight market's configuration.
morpho_midnight_get_market_stateGet a Midnight market's current state.
morpho_midnight_list_market_positionsList current positions in a Midnight market.
morpho_midnight_list_user_positionsList a user's Midnight positions.
morpho_midnight_get_user_positionGet a user's position in a Midnight market.
morpho_midnight_get_user_position_performanceGet a Midnight position's performance.
morpho_midnight_get_offer_groupGet the offer groups matching an onchain group ID.
morpho_midnight_list_user_offer_groupsList a user's offer groups with their offers.
morpho_midnight_list_maker_takeable_offersList one maker's active offers.
morpho_midnight_list_booksList order books for active maturities, with the top price levels.
morpho_midnight_get_bookGet one order book with both sides.
morpho_midnight_get_book_sideGet one side of a book as price levels.
morpho_midnight_get_book_side_takeable_offersGet up to 1,000 executable offers for one book side.
morpho_midnight_get_book_quoteGet a quote for an amount, with expected prices and the offers to take.

Transactions

ToolDescription
morpho_prepare_depositDeposit into a V1 or V2 vault.
morpho_prepare_withdrawWithdraw an exact asset amount from a V1 or V2 vault.
morpho_prepare_redeemRedeem vault shares, or the whole position with complete: true.
morpho_prepare_force_withdrawForce a V2 vault withdrawal from its adapters; a penalty applies.
morpho_prepare_force_redeemForce-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_kindExit a V2 vault, taking the illiquid part as a market supply position.
morpho_prepare_supplySupply (lend) the loan token to a market.
morpho_prepare_blue_withdrawWithdraw supplied loan tokens from a market.
morpho_prepare_supply_collateralSupply collateral to a market.
morpho_prepare_withdraw_collateralWithdraw collateral from a market.
morpho_prepare_borrowBorrow from a market against collateral already supplied.
morpho_prepare_repayRepay a market borrow by assets, by shares, or in full.
morpho_prepare_supply_collateral_and_borrowSupply collateral and borrow in one step.
morpho_prepare_repay_and_withdraw_collateralRepay and withdraw collateral in one step.
morpho_prepare_refinanceMove a borrow position to another market on the same chain.
morpho_prepare_claim_rewardsClaim Merkl rewards against the canonical Distributor.

Deprecated

These read tools still work but will be removed. Use the generated tools instead.

DeprecatedUse instead
morpho_query_vaultsmorpho_vault_v1_list_vaults, morpho_vault_v2_list_vaults
morpho_get_vaultmorpho_vault_v1_get_vault, morpho_vault_v2_get_vault
morpho_get_vault_positionsmorpho_vault_v1_list_user_positions, morpho_vault_v2_list_user_positions
morpho_query_marketsmorpho_blue_list_markets
morpho_get_marketmorpho_blue_get_market
morpho_get_market_positionsmorpho_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.

  1. For vault 0x… on Base, show its average APY, TVL, curator, and fee rates. Note that the APY excludes rewards.
  2. Compare the borrow rates on the wstETH/WETH markets on Ethereum and Arbitrum.
  3. For 0x… on Base, show my position in market 0x… and how much I have earned and paid.
  4. List all my V2 vault positions across chains.
  5. Prepare a 1,000 USDC deposit into vault 0x… on Base for 0x…, and show me the transactions before I sign anything.
  6. How much can I withdraw from V2 vault 0x… on Ethereum right now, and what would a forced withdrawal cost?
  7. List the Midnight markets and show the order book for the nearest maturity.
  8. Do I have claimable Merkl rewards on Base? If so, prepare the claim.