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 nameorg.morpho/mcp

Read tools are generated from selected Core REST, Vaults App API and Markets API operations in the Morpho API OpenAPI specs, so their inputs and outputs match those APIs. 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. Vault and Blue market lists 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.
  • Chain-slug inputs. morpho_get_token_balance, morpho_prepare_claim_rewards and the morpho_prepare_midnight_* tools take a chain slug. The server instructions list the accepted slugs.

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.

The morpho_prepare_midnight_* tools are not generated either. They build transactions with the Morpho SDK and return a PreparedOperation, with any token approval and the MidnightBundlesV2 authorization before the main transaction. They take a chain slug, a Midnight marketId and amounts in human-readable decimals ("100"), not base units. Take tools (*_take_*) quote the book themselves and stop the fill at the quoted average price plus slippage (default 0.5%); call morpho_midnight_get_book_quote first to show the rate.

Connect a Client

Point any MCP client at https://mcp.morpho.org/. The tools appear in the next session.

Add the server with claude mcp add. 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/

Or install the morpho-mcp plugin from the Morpho skills marketplace:

/plugin marketplace add morpho-org/morpho-skills
/plugin install morpho-mcp@morpho-skills

Confirm it connected with claude mcp list. Inside a session, /mcp lists the connected servers and the tools each exposes.

In Claude, open Settings, then Connectors, then Add custom connector, and enter https://mcp.morpho.org/. Leave the OAuth fields empty.

On Team and Enterprise plans, an Owner adds the connector for the organization first.

In ChatGPT, turn on developer mode under Settings, then Apps & Connectors, then Advanced settings. Then create a connector with the MCP server URL https://mcp.morpho.org/ and No authentication.

Developer mode is only on paid plans, in ChatGPT on the web.

In a conversation, select the connector from the tools menu so ChatGPT can call it.

Add the server to ~/.cursor/mcp.json to use it in every project, or to .cursor/mcp.json to scope it to one project:

~/.cursor/mcp.json
{
  "mcpServers": {
    "morpho": {
      "type": "http",
      "url": "https://mcp.morpho.org/"
    }
  }
}

Add the server to your user profile from a terminal:

code --add-mcp '{"name":"morpho","type":"http","url":"https://mcp.morpho.org/"}'

To share it with a project instead, add it to .vscode/mcp.json:

.vscode/mcp.json
{
  "servers": {
    "morpho": {
      "type": "http",
      "url": "https://mcp.morpho.org/"
    }
  }
}

Add the server with codex mcp add, passing --url to select the Streamable HTTP transport:

codex mcp add morpho --url https://mcp.morpho.org/

Or declare it in ~/.codex/config.toml to make it global, or in a trusted project's .codex/config.toml to scope it to that project:

~/.codex/config.toml
[mcp_servers.morpho]
url = "https://mcp.morpho.org/"

Confirm it connected with codex mcp list.

Every client that takes a remote MCP server asks for the same three values:

FieldValue
Server URLhttps://mcp.morpho.org/
AuthenticationNone
TransportStreamable HTTP

Choose Streamable HTTP wherever a client offers a transport choice. The server does not support the older SSE transport, so a client configured for SSE never connects.

Other clients, for example Perplexity, Mistral Le Chat, Cline, LM Studio and Goose, ask for the same values, most of them under a settings screen named Connectors or Extensions. Field names vary: Windsurf's mcp_config.json calls the URL serverUrl.

Tools

The server exposes 43 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 each chain by name with its Blue, Vault and Midnight 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.

Vaults and Blue markets

ToolInputsDescription
morpho_query_vaultschain_ids, search, cursor, and other filtersList Morpho vaults (V1 and V2) with net APY, total assets and liquidity in USD, curators, warnings, and version. Filter by chain_ids, search, and other supported fields. Paginate by passing back cursor until it is null.
morpho_get_vaultvault-selectorGet one Morpho vault (V1 or V2) by vault selector <chainId>:<vaultAddress>.
morpho_get_vault_positionsuser-address, chain_ids, cursorList a user's Morpho V1 and V2 vault positions with portfolio totals. Paginate by passing back cursor until it is null.
morpho_query_marketsChain and token filters, cursorList Morpho Blue markets, filterable by chain, loan token and collateral token. Paginate by passing back cursor until it is null.
morpho_get_marketmarket-selectorGet one Morpho Blue market by market selector.
morpho_get_market_positionsuser-address, chain filtersList a user's Morpho Blue market positions, filterable by chain. Paginate by passing back cursor until it is null.

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 offer books for active maturities, with the top price levels.
morpho_midnight_get_bookGet one offer 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.

Midnight transactions

ToolDescription
morpho_prepare_midnight_take_lendLend at a fixed rate by taking the best ask offers.
morpho_prepare_midnight_take_borrowBorrow at a fixed rate against collateral already supplied, by taking the best bid offers.
morpho_prepare_midnight_supply_collateral_take_borrowSupply collateral and borrow at a fixed rate in one transaction.
morpho_prepare_midnight_take_withdrawExit a lend position before maturity by selling credit to the best bid offers.
morpho_prepare_midnight_take_repay_withdraw_collateralRepay debt at the book price before maturity, then optionally withdraw collateral.
morpho_prepare_midnight_supply_collateralSupply collateral to a Midnight market.
morpho_prepare_midnight_redeemRedeem lend credit for loan tokens.
morpho_prepare_midnight_repay_withdraw_collateralRepay debt at face value, withdraw collateral, or both.
morpho_prepare_midnight_cancel_offersCancel a maker's offer groups.
morpho_prepare_midnight_set_authorizationAuthorize or revoke MidnightBundlesV2 on Midnight.

Response notes

Vaults App API vault lists include net APY, total assets and liquidity in USD, curator details, warnings, and the vault version. APY values are decimal rates, so 0.0317 means 3.17%.

Vault list and position reads use the internal API tier through /vaults-app-api. For self-hosted deployments, all Morpho API calls use MORPHO_REST_API_URL (default https://internal-api-dev.morpho.dev; production: https://internal.api.morpho.org) and MORPHO_REST_API_KEY. The key is sent as the raw authorization header value, with no Bearer prefix. This is server-side configuration; MCP clients do not send or manage that secret.

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 offer book for the nearest maturity.
  8. Do I have claimable Merkl rewards on Base? If so, prepare the claim.