Model Context Protocol (MCP) server for freee API integration
Morpho is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Read Morpho vaults and markets data and prepare unsigned transactions.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http morpho-morpho-mcp https://mcp.morpho.org/
# 2 — ask your agent for something these tools do
# morpho_health_check, morpho_get_supported_chains, morpho_get_token_balance and 50 more
Morpho costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http morpho-morpho-mcp https://mcp.morpho.org/Reconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
53 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Check the health status of the MCP server and connected services
No parameter schema on file.
List every chain the Morpho MCP serves, by name, with whether Morpho Blue markets, Morpho Vaults (V1 or V2) and Midnight are supported on it. Blue and Vault support come from the Morpho API chain list the read tools use; Midnight support also requires the chain to be accepted by the Midnight tools.
No parameter schema on file.
Get token balance and whether the user needs to approve Morpho or the Bundler before writing. Balance and allowances are self-describing TokenAmounts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| userAddress | string | yes | — |
| tokenAddress | string | yes | — |
Simulate transactions on the latest block with eth_simulateV1 and check them against the limits of the Morpho action the user is taking, without sending anything. Use mode "preview" for unsigned calls, listing pending approvals or permits in authorizations; use mode "final" for calls whose signatures are already in the calldata, or pass a raw signed transaction as signedTransaction. `limits.op
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chainId | integer | yes | — |
| mode | string | yes | — |
| transactions | array | yes | — |
| authorizations | array | no | — |
| limits | yes | — | |
| blockNumber | string | no | — |
Search the Morpho documentation (docs.morpho.org) by semantic similarity. Returns raw search hits; each hit carries the matched text plus metadata (page title, absolute docs.morpho.org url, breadcrumbs, excerpt).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Natural-language search query |
| topK | integer | no | Maximum number of result chunks to return |
| rerank | boolean | no | Rerank results for relevance |
| scoreThreshold | number | no | Only return results scoring at or above this relevance score |
| rewriteQuery | boolean | no | Let the search service rewrite the query |
Prepare a deposit into a Morpho vault. Checks on-chain allowance and returns a ready-to-sign transactions array with approval txs (if needed) followed by the deposit tx. Handles USDT reset-to-zero and DAI non-standard approval.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Token amount in human-readable decimals (e.g., "1000.50"), or "max" for full balance |
Prepare a withdraw from a Morpho vault. Returns a ready-to-sign transactions array. Supports "max" for full withdrawal. A vault-share approval transaction may come first and is listed in requirements.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Token amount in human-readable decimals (e.g., "1000.50"), or "max" for full withdrawal |
Prepare a supply to a Morpho Blue market. Checks on-chain allowance and returns a ready-to-sign transactions array with approval txs (if needed) followed by the supply tx. Handles USDT reset-to-zero and DAI non-standard approval.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Loan token amount in human-readable decimals (e.g., "1000.50"), or "max" for full balance |
Prepare a borrow on a Morpho Blue market. Returns a ready-to-sign transactions array with the borrow tx. Includes health factor check against existing collateral position. A BlueBundlesV1 authorization transaction may come first in transactions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| borrowAmount | string/number | yes | Loan token amount to borrow in human-readable decimals (e.g., "500"), or "max" for maximum borrowable |
Prepare a repay on a Morpho Blue market. Checks on-chain allowance and returns a ready-to-sign transactions array with approval txs (if needed) followed by the repay tx. Supports "max" for full repayment. Handles USDT reset-to-zero and DAI non-standard approval.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Loan token amount to repay in human-readable decimals (e.g., "100"), or "max" for full repayment |
Prepare a supply of collateral tokens to a Morpho Blue market without borrowing. Checks on-chain allowance and returns a ready-to-sign transactions array with approval txs (if needed) followed by the supply collateral tx. Handles USDT reset-to-zero and DAI non-standard approval.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Collateral token amount in human-readable decimals (e.g., "1.5" for 1.5 WETH), or "max" for full balance |
Prepare a withdrawal of collateral tokens from a Morpho Blue market position. Returns a ready-to-sign transactions array. Supports "max" for full collateral withdrawal. Includes health factor check when user has active borrows. A BlueBundlesV1 authorization transaction may come first in transactions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Collateral token amount in human-readable decimals (e.g., "1.5"), or "max" for full withdrawal |
Fetch a user's claimable Merkl rewards and prepare a single claim transaction against the canonical Merkl Distributor (0x3Ef3D8bA38EBe18DB133cEc108f4D14CE00Dd9Ae). Returns a ready-to-sign transaction; if nothing is claimable, returns an empty transactions array with an info-level warning. No on-chain approval needed — the Distributor pulls from its own balance via Merkle proofs.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| userAddress | string | yes | — |
Prepare a share-based redemption from a Morpho Vault V1 or V2. Checks share allowance and supports "max" for the full share balance. A vault-share approval transaction may come first and is listed in requirements.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| userAddress | string | yes | — |
| shares | string/number | yes | Vault shares in human-readable decimals, or "max" for the full share balance |
Prepare an in-kind redemption from a Morpho Vault V1 or V2, exiting through its underlying Blue markets. A vault-share approval transaction may come first and is listed in requirements.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| userAddress | string | yes | — |
| amount | string/number | yes | Asset-denominated amount to exit in human-readable decimals |
Prepare a Vault V2 force withdrawal. The SDK selects the vault adapter and deallocates as needed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| userAddress | string | yes | — |
| assets | string/number | yes | Penalty-inclusive asset amount to withdraw in human-readable decimals |
Prepare a Vault V2 share redemption after user-directed market deallocations. Each deallocation amount should include a buffer for share-price drift.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| userAddress | string | yes | — |
| shares | string/number | yes | Vault shares in human-readable decimals, or "max" for the full share balance |
| deallocations | array | yes | — |
Prepare migration of shares from a Vault V1 into a Vault V2 with the same underlying asset. A vault-share approval transaction may come first and is listed in requirements.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| vaultAddress | string | yes | — |
| targetVaultAddress | string | yes | — |
| userAddress | string | yes | — |
| shares | string/number | yes | Source Vault V1 shares in human-readable decimals, or "max" for the full share balance |
Prepare a supply-side withdrawal from a Morpho Blue market. Supports "max" for the full supply position. A BlueBundlesV1 authorization transaction may come first in transactions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| withdrawAmount | string/number | yes | Supply-side loan token amount in human-readable decimals, or "max" for the full supply |
Prepare one transaction that supplies collateral and borrows from a Morpho Blue market, including when the user has no collateral on-chain yet. A BlueBundlesV1 authorization transaction may come first in transactions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| collateralAmount | string/number | yes | Collateral token amount to supply in human-readable decimals |
| borrowAmount | string/number | yes | Loan token amount to borrow in human-readable decimals |
Prepare a combined Morpho Blue debt repayment and collateral withdrawal. Supports "max" for full repayment or all collateral. A BlueBundlesV1 authorization transaction may come first in transactions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| userAddress | string | yes | — |
| repayAmount | string/number | yes | Loan token amount to repay in human-readable decimals, or "max" for full repayment |
| withdrawCollateralAmount | string/number | yes | Collateral amount to withdraw in human-readable decimals, or "max" for all collateral |
Prepare a full migration of a Morpho Blue borrow position into a destination market with matching loan and collateral tokens. A BlueBundlesV1 authorization transaction may come first in transactions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | — |
| destinationMarketId | string | yes | — |
| userAddress | string | yes | — |
Prepare a fixed-rate lend on a Midnight market by taking the best ask offers through MidnightBundlesV2. First call morpho_midnight_get_market for the loan token and morpho_midnight_get_book_quote with side asks and the same amount to check the rate and depth. The tool re-quotes the asks book itself. Returns unsigned transactions, approval and MidnightBundlesV2 authorization first, plus a sim
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| amount | string/number | yes | Loan token amount to lend, in human-readable decimals (e.g. "100") |
| slippage | string/number | no | Slippage percentage applied to the book quote (e.g. "0.5" = 0.5%). Bounds the units filled at the quoted average price. |
Prepare a fixed-rate borrow on a Midnight market against collateral already supplied, by taking the best bid offers through MidnightBundlesV2. First call morpho_midnight_get_user_position to check collateral and morpho_midnight_get_book_quote with side bids and the same amount. Use morpho_prepare_midnight_supply_collateral_take_borrow when collateral is not supplied yet. Returns unsigned t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| amount | string/number | yes | Loan token amount to receive, in human-readable decimals (e.g. "100") |
| slippage | string/number | no | Slippage percentage applied to the book quote (e.g. "0.5" = 0.5%). Bounds the units filled at the quoted average price. |
Prepare supplying collateral and a fixed-rate borrow on a Midnight market in one MidnightBundlesV2 transaction, taking the best bid offers. First call morpho_midnight_get_market for the collateral index and tokens, and morpho_midnight_get_book_quote with side bids and the same amount. Returns unsigned transactions, approval and MidnightBundlesV2 authorization first, plus a simulation and war
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| collateralIndex | integer | no | Index of the collateral in the market collaterals list |
| collateralAmount | string/number | yes | Collateral token amount to supply, in human-readable decimals |
| amount | string/number | yes | Loan token amount to receive, in human-readable decimals (e.g. "100") |
| slippage | string/number | no | Slippage percentage applied to the book quote (e.g. "0.5" = 0.5%). Bounds the units filled at the quoted average price. |
Prepare exiting a Midnight lend position before maturity: redeems withdrawable credit, then sells the rest to the best bid offers through MidnightBundlesV2. First call morpho_midnight_get_user_position for the credit and morpho_midnight_get_book_quote with side bids and the same amount. After maturity use morpho_prepare_midnight_redeem. Returns unsigned transactions, approval and MidnightB
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| amount | string/number | yes | Loan token amount to receive for the sold credit, in human-readable decimals |
| slippage | string/number | no | Slippage percentage applied to the book quote (e.g. "0.5" = 0.5%). Bounds the units filled at the quoted average price. |
Prepare repaying Midnight debt before maturity by buying back units from the best ask offers, then optionally withdrawing collateral, in one MidnightBundlesV2 transaction. First call morpho_midnight_get_user_position for the debt and collateral and morpho_midnight_get_book_quote with side asks and the same amount. Returns unsigned transactions, approval and MidnightBundlesV2 authorization fi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| amount | string/number | yes | Loan token amount to spend buying back debt, in human-readable decimals |
| slippage | string/number | no | Slippage percentage applied to the book quote (e.g. "0.5" = 0.5%). Bounds the units filled at the quoted average price. |
| collateralIndex | integer | no | Index of the collateral in the market collaterals list |
| collateralAmount | string/number | no | Collateral token amount to withdraw after the repay, in human-readable decimals, or "max" for the full balance. Omit to only repay. |
Prepare supplying collateral to a Midnight market directly on Midnight. First call morpho_midnight_get_market for the collateral index and token. Returns unsigned transactions, approval and MidnightBundlesV2 authorization first, plus a simulation and warnings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| collateralIndex | integer | no | Index of the collateral in the market collaterals list |
| amount | string/number | yes | Collateral token amount to supply, in human-readable decimals |
Prepare redeeming Midnight lend credit for loan tokens, limited to what the market can pay out now. First call morpho_midnight_get_user_position for the credit. Before maturity a market with a continuous fee leaves some credit; redeem again after maturity. Returns unsigned transactions, approval and MidnightBundlesV2 authorization first, plus a simulation and warnings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| amount | string/number | no | Credit units to redeem, in loan token decimals. Omit to redeem the full face value. |
Prepare repaying Midnight debt at face value, withdrawing collateral, or both, in one MidnightBundlesV2 transaction. First call morpho_midnight_get_user_position for the debt and collateral. To repay at the book price before maturity, use morpho_prepare_midnight_take_repay_withdraw_collateral. Returns unsigned transactions, approval and MidnightBundlesV2 authorization first, plus a simulation
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| marketId | string | yes | Midnight market ID (market_id from the Midnight read tools) |
| userAddress | string | yes | Account that sends the transactions and owns the position |
| repayAmount | string/number | no | Loan token amount to repay, in human-readable decimals, or "max" to repay all debt. "0" only withdraws collateral. |
| collateralIndex | integer | no | Index of the collateral in the market collaterals list |
| collateralAmount | string/number | no | Collateral token amount to withdraw, in human-readable decimals, or "max" for the full balance. Omit to only repay. |
Prepare cancelling a maker's Midnight offer groups through MidnightBundlesV2. First call morpho_midnight_list_user_offer_groups for the maker's group IDs. Cancels each group whatever has already been filled. Returns unsigned transactions, approval and MidnightBundlesV2 authorization first, plus a simulation and warnings.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| userAddress | string | yes | Maker that sends the transaction |
| groups | array | yes | Offer group IDs to cancel (id from morpho_midnight_list_user_offer_groups) |
Prepare authorizing or revoking MidnightBundlesV2 on Midnight for the user. The other Midnight prepare tools add the authorization when they need it, so call this only to revoke it or to authorize ahead of time. Returns one unsigned transaction.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain | string | yes | — |
| userAddress | string | yes | Account that sends the transaction |
| isAuthorized | boolean | no | true authorizes MidnightBundlesV2 on Midnight; false revokes it |
Get one Morpho vault (V1 or V2) by vault selector <chainId>:<vaultAddress>.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| vault-selector | string | yes | Selector formatted as <chain_id>:<vault_address>. Example: 1:0x23f5E9c35820f4baB695Ac1F19c203cC3f8e1e11. |
List 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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Page size. Defaults to 100, at most 1000. |
| cursor | string | no | Opaque cursor returned by the previous page. |
| sort_by | string | no | Sort key. Rows with a null sort value come last, except performance_fee and management_fee, where a null fee sorts as 0 (V1 vaults have no management fee). |
| sort_direction | string | no | — |
| search | string | no | Case-insensitive substring of the vault name or address, the asset symbol or address, or a curator name. |
| chain_ids | array | no | Chains to list. Defaults to every chain the app exposes. |
| versions | array | no | Vault versions to list. Defaults to every version. |
| assets | array | no | Underlying asset selectors, <chain_id>:<address> — the same values the assets facet returns. |
| collateral_exposure | array | no | Collateral asset selectors, <chain_id>:<address> — the same values the collateral_exposure facet returns. Keeps only vaults allocating to any of these collaterals. |
| collateral_exclusion | array | no | Collateral asset selectors, <chain_id>:<address>. Drops vaults allocating to any of these collaterals; applies to every facet count. |
| curator_ids | array | no | Curator ids to list, matched case-insensitively (lowercased before matching and cursor binding). |
| total_assets_usd_gte | number | no | Minimum total_assets_usd. Vaults with a null total_assets_usd are left out. |
| total_assets_usd_lte | number | no | Maximum total_assets_usd. Vaults with a null total_assets_usd are left out. |
| liquidity_usd_gte | number | no | Minimum liquidity_usd. Vaults with a null liquidity_usd are left out. |
| liquidity_usd_lte | number | no | Maximum liquidity_usd. Vaults with a null liquidity_usd are left out. |
| net_apy_gte | number | no | Minimum net_apy, as a decimal rate. Bounds the net APY (native net of fees plus rewards). |
| net_apy_lte | number | no | Maximum net_apy, as a decimal rate. Bounds the net APY (native net of fees plus rewards). |
| include_facets | string | no | Return the facets extra. Facets are only computed when true; the flag is not part of the cursor binding. |
List a user's Morpho V1 and V2 vault positions with portfolio totals. Paginate by passing back cursor until it is null.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| user-address | string | yes | Position owner address. |
| chain_ids | array | no | Chains to keep. Defaults to every exposed chain. |
| asset_addresses | array | no | Vault asset addresses to keep. Requires chain_ids; matches positions whose vault asset is one of these addresses on one of the chain_ids. |
| sort_by | string | no | Sort field. Positions with a null sort value come last. |
| sort_direction | string | no | — |
| limit | integer | no | Page size. Defaults to 100, at most 1000. |
| cursor | string | no | Opaque cursor returned by the previous page. |
List Morpho Blue markets, filterable by chain, loan token and collateral token. Paginate by passing back cursor until it is null.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain_ids | array | no | Filter by chain ids. Required when loan_tokens or collateral_tokens is provided. Omit to list markets on every chain the API exposes. |
| loan_tokens | array | no | Filter by loan token addresses. Combine with chain_ids; lowercase input is checksummed. |
| collateral_tokens | array | no | Filter by collateral token addresses. Combine with chain_ids; lowercase input is checksummed. |
| listed | string | no | Filter by listing status. When true, returns only markets surfaced by the app trust layer; when false, only unlisted markets. Omit to return both. |
| sort_by | string | no | Sort field for cursor pagination. Markets without a value for the sort field (for example, unpriced markets on USD sorts) come last in both directions. |
| sort_direction | string | no | Sort direction for cursor pagination. |
| limit | integer | no | Maximum number of items to return. |
| cursor | string | no | Opaque cursor from a previous page response. |
Get one Morpho Blue market by market selector.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market-selector | string | yes | Selector formatted as <chain_id>:<market_id>. Example: 1:0xfff1970c0ffae288764186fbb38a9171a17e98676744a1e345809cb8b9e73342. Chain id at most 2147483647. |
List a user's Morpho Blue market positions, filterable by chain. Paginate by passing back cursor until it is null.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| user-address | string | yes | Position owner address. |
| chain_ids | array | no | Only positions on these chains (comma-delimited). Defaults to every exposed chain. |
| limit | integer | no | Page size. Defaults to 100, at most 100. |
| cursor | string | no | Opaque cursor returned by the previous page. |
Cursor-paginated list of Midnight markets. Use this to discover markets. For a given user's positions on those markets, follow up with morpho_midnight_list_user_positions. Filters. Address filters (loan_assets, collateral_assets, oracle_addresses, enter_gates, liquidator_gates) must be combined with chain_ids — an address alone is not chain-unique. Lowercase addresses are c
| Parameter | Type | Required | Notes |
|---|---|---|---|
| chain_ids | array | no | Filter by chain ids. Supported chains: Ethereum (1), Base (8453), Arc (5042), and Robinhood Chain (4663). Required when any address filter is provided. |
| market_ids | array | no | Filter by Midnight market ids. These ids are globally unique. |
| market_family_ids | array | no | Filter by Midnight market family ids. A family contains markets whose immutable parameters differ only by maturity. |
| loan_assets | array | no | Filter by loan token addresses. Combine with chain_ids; lowercase input is checksummed. |
| collateral_assets | array | no | Filter by collateral token addresses. Combine with chain_ids; lowercase input is checksummed. |
| oracle_addresses | array | no | Filter by collateral oracle addresses. Combine with chain_ids; lowercase input is checksummed. |
| enter_gates | array | no | Filter by enter gate addresses. Combine with chain_ids; lowercase input is checksummed. |
| liquidator_gates | array | no | Filter by liquidator gate addresses. Combine with chain_ids; lowercase input is checksummed. |
| maturities | array | no | Filter by exact maturity timestamps, in unix seconds. |
| active_only | string | no | When true, enforces maturity strictly after the current timestamp. |
| maturity_gte | no | Filter for maturities greater than or equal to this unix timestamp. | |
| maturity_lte | no | Filter for maturities less than or equal to this unix timestamp. | |
| total_units_gte | string | no | Filter for total units greater than or equal to this value. |
| total_units_lte | string | no | Filter for total units less than or equal to this value. |
| lend_depth_gte | string | no | Filter for cached lend-side order-book depth, in loan-token units, greater than or equal to this value. |
| lend_depth_lte | string | no | Filter for cached lend-side order-book depth, in loan-token units, less than or equal to this value. |
| borrow_depth_gte | string | no | Filter for cached borrow-side order-book depth, in loan-token units, greater than or equal to this value. |
| borrow_depth_lte | string | no | Filter for cached borrow-side order-book depth, in loan-token units, less than or equal to this value. |
| listed | string | no | Filter by listing status. When true, returns only markets surfaced by the app trust layer; when false, only unlisted markets. Omit to return both. |
| sort_by | string | no | Sort field for cursor pagination. |
Detail lookup for a single market. :market-id is the stable Midnight market id and is unique across supported chains, so no chain id is required. Returns the immutable market configuration inside a data envelope. Use morpho_midnight_get_market_state for dynamic market state. 404s when the id is unknown.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market-id | string | yes | Midnight market id. |
Dynamic state lookup for a single market. :market-id is the stable Midnight market id and is unique across supported chains, so no chain id is required. Returns the market state inside a data envelope. Use morpho_midnight_get_market for immutable market configuration. 404s when the id is unknown.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market-id | string | yes | Midnight market id. |
Cursor-paginated list of a user's current Midnight positions. Position type. type is lend for positions with credit, borrow for positions with debt, or collateral_only for positions with no credit or debt but remaining collateral. Closed positions with no credit, no debt, and no remaining collateral are excluded. Performance fields. cost_basis uses the average cost method and i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| user-address | string | yes | User address to list positions for. Lowercase input is checksummed. |
| chain_ids | array | no | Filter by chain ids. Supported chains: Ethereum (1), Base (8453), Arc (5042), and Robinhood Chain (4663). Required when loan_assets is provided. |
| market_ids | array | no | Filter by Midnight market ids. |
| types | array | no | Filter by position type. |
| loan_assets | array | no | Filter by loan token addresses. Combine with chain_ids; lowercase input is checksummed. |
| maturities | array | no | Filter by exact maturity timestamps, in unix seconds. |
| active_only | string | no | When true, keep only positions whose market has not matured yet. |
| maturity_gte | no | Filter for maturities greater than or equal to this unix timestamp. | |
| maturity_lte | no | Filter for maturities less than or equal to this unix timestamp. | |
| credit_gte | string | no | Filter for credit greater than or equal to this value. |
| credit_lte | string | no | Filter for credit less than or equal to this value. |
| pending_fee_gte | string | no | Filter for pending fee greater than or equal to this value. |
| pending_fee_lte | string | no | Filter for pending fee less than or equal to this value. |
| debt_gte | string | no | Filter for debt greater than or equal to this value. |
| debt_lte | string | no | Filter for debt less than or equal to this value. |
| cost_basis_gte | string | no | Filter for cost basis greater than or equal to this value. |
| cost_basis_lte | string | no | Filter for cost basis less than or equal to this value. |
| effective_rate_wad_gte | string | no | Filter for compounded effective rate WAD greater than or equal to this value. |
| effective_rate_wad_lte | string | no | Filter for compounded effective rate WAD less than or equal to this value. |
| created_at_gte | no | Filter for position created_at greater than or equal to this unix timestamp. |
Cursor-paginated list of current Midnight positions for a market. :market-id is the stable Midnight market id and is globally unique across supported chains. The response uses the same public position item shape as morpho_midnight_list_user_positions: { cursor, data }, with type, state fields, collateral balances, and performance analytics. Filters. Range filters exist on `created_a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market-id | string | yes | Midnight market id. |
| chain_ids | array | no | Filter by chain ids. Supported chains: Ethereum (1), Base (8453), Arc (5042), and Robinhood Chain (4663). Required when loan_assets is provided. |
| types | array | no | Filter by position type. |
| loan_assets | array | no | Filter by loan token addresses. Combine with chain_ids; lowercase input is checksummed. |
| maturities | array | no | Filter by exact maturity timestamps, in unix seconds. |
| active_only | string | no | When true, keep only positions whose market has not matured yet. |
| maturity_gte | no | Filter for maturities greater than or equal to this unix timestamp. | |
| maturity_lte | no | Filter for maturities less than or equal to this unix timestamp. | |
| credit_gte | string | no | Filter for credit greater than or equal to this value. |
| credit_lte | string | no | Filter for credit less than or equal to this value. |
| pending_fee_gte | string | no | Filter for pending fee greater than or equal to this value. |
| pending_fee_lte | string | no | Filter for pending fee less than or equal to this value. |
| debt_gte | string | no | Filter for debt greater than or equal to this value. |
| debt_lte | string | no | Filter for debt less than or equal to this value. |
| cost_basis_gte | string | no | Filter for cost basis greater than or equal to this value. |
| cost_basis_lte | string | no | Filter for cost basis less than or equal to this value. |
| effective_rate_wad_gte | string | no | Filter for compounded effective rate WAD greater than or equal to this value. |
| effective_rate_wad_lte | string | no | Filter for compounded effective rate WAD less than or equal to this value. |
| created_at_gte | no | Filter for position created_at greater than or equal to this unix timestamp. | |
| created_at_lte | no | Filter for position created_at less than or equal to this unix timestamp. |
Detail lookup for a single position by (market-id, user-address). :market-id is the stable Midnight market id and is globally unique across supported chains. :user-address accepts any casing and is checksummed server-side. Returns the position inside a data envelope. When the position is closed (no credit, no debt, no remaining collateral) or has never existed for a known market, the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market-id | string | yes | Midnight market id. |
| user-address | string | yes | User address for the requested position. Lowercase input is checksummed. |
Performance-only lookup for a single position by (market-id, user-address). Returns performance analytics inside a data envelope. effective_rate_wad is compounded IRR+ using a 365.25-day year; effective_apr is simple interest using a 365-day year and is capped at 10 (1000%). The position detail endpoint omits these fields to keep state and performance concerns separate. When the positio
| Parameter | Type | Required | Notes |
|---|---|---|---|
| market-id | string | yes | Midnight market id. |
| user-address | string | yes | User address for the requested position. Lowercase input is checksummed. |
Returns every offer group matching the onchain group id, regardless of lifecycle status. The maker is not required; optional chain_id and maker query parameters can disambiguate the lookup. Distinct chain, maker, and group-id combinations remain separate, and no match returns an empty data array. The endpoint returns every latest offer revision in each matched group and exposes the current lifecy
| Parameter | Type | Required | Notes |
|---|---|---|---|
| group-id | string | yes | Offer group id. |
| chain_id | integer | no | Filter by chain id. |
| maker | string | no | Filter by offer maker address. |
Cursor-paginated list of a user's offer groups with nested offers. The statuses filter accepts one or more lifecycle states with OR semantics. The deprecated singular status parameter is a single-value alias; requests containing both are rejected. Omitting both defaults to active for backward compatibility. Maturity policy. The list includes only offers whose maturity is at 15:00 UTC, t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| user-address | string | yes | User address whose offer groups should be listed. |
| status | string | no | Deprecated single-value alias for statuses. Omit both status and statuses to return active groups. |
| statuses | array | no | Filter by one or more offer-group lifecycle states using OR semantics. Combined with other filters using AND semantics. Omit both status and statuses to return active groups. |
| callback_type | string | no | Filter by verified group callback type. blue_buy requires canonical Blue market params and an official factory registration owned by the maker at or before offer creation. |
| types | array | no | Filter by group offer intent. Multiple values use OR semantics. buy and sell mean reduce_only=false; buy_reduce_only and sell_reduce_only mean reduce_only=true. Combined with other filters using AND s |
| chain_ids | array | no | Filter by chain ids. Supported chains: Ethereum (1), Base (8453), Arc (5042), and Robinhood Chain (4663). |
| market_ids | array | no | Filter groups to those containing offers in the requested lifecycle and Midnight markets. Nested offers are not narrowed by this filter. |
| market_family_ids | array | no | Filter groups to those containing offers in the requested lifecycle and Midnight market families. Combined with market_ids using AND semantics. Nested offers are not narrowed by this filter. |
| loan_assets | array | no | Filter nested offers in the requested lifecycle by loan token addresses. Combined with market_ids, collateral_assets, maturities, and groups using AND semantics. |
| collateral_assets | array | no | Filter nested offers in the requested lifecycle by configured collateral token addresses. Combined with market_ids, loan_assets, maturities, and groups using AND semantics; lowercase input is checksum |
| maturities | array | no | Filter nested offers in the requested lifecycle by exact market maturity timestamps, in unix seconds. Combined with market_ids, loan_assets, collateral_assets, and groups using AND semantics. |
| maturity_gte | no | Filter nested offers in the requested lifecycle by market maturity greater than or equal to this unix timestamp. Combined with market_ids, loan_assets, collateral_assets, maturities, and groups using | |
| maturity_lte | no | Filter nested offers in the requested lifecycle by market maturity less than or equal to this unix timestamp. Combined with market_ids, loan_assets, collateral_assets, maturities, and groups using AND | |
| groups | array | no | Filter by offer group ids. Combined with market_ids, loan_assets, collateral_assets, and maturities using AND semantics. |
| created_at_gte | no | Filter for group created_at greater than or equal to this unix timestamp. | |
| created_at_lte | no | Filter for group created_at less than or equal to this unix timestamp. | |
| listed | string | no | Filter by market listing status. When true, returns only groups where every offer in the requested lifecycle is on a listed market; when false, groups with at least one lifecycle-matching offer on an |
| sort_by | string | no | Sort field for group cursor pagination. |
| sort_direction | string | no | Sort direction for group cursor pagination. |
| limit | integer | no | Maximum number of groups to return. |
Returns books for active maturities admitted by the current policy, with market metadata and the top 3 ask/bid levels. Unlisted and past maturities are excluded, even when requested with ids. If a maturity leaves the policy, its books are hidden immediately, including books with existing offers. Supports filtering, sorting, and pagination; default sort is id ascending.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sort | string | no | Sort by comma-separated fields (id, ask, bid, maturity). Prefix a field with - for descending. Max 3 fields. |
| maturity_lte | integer | no | Inclusive upper maturity bound in unix seconds. |
| maturity_gte | integer | no | Inclusive lower maturity bound in unix seconds. |
| maturities | array | no | Exact maturity timestamp filter in unix seconds (comma-separated). Maximum 150 values. |
| collateral_tokens | array | no | Collateral token filter (comma-separated, matches any collateral). Maximum 150 values. |
| loan_tokens | array | no | Loan token address filter (comma-separated). Maximum 150 values. |
| chain_ids | array | no | Chain ID filter (comma-separated). Currently accepts at most one chain id. |
| ids | string | no | Market ID filter as a single comma-separated query parameter. Returns books for matching currently listed markets. Maximum 20 IDs. |
| limit | number | no | Maximum number of items to return (max 20, default 10). |
| cursor | string | no | Opaque pagination cursor from a previous response. |
Returns one active book whose maturity is admitted by the current policy, with market metadata and both sides. If its maturity leaves the policy, the book becomes unavailable immediately, including when existing offers remain. A visible book with no offers returns empty asks and bids. Each side returns up to depth levels, sorted best price first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| depth | number | no | Maximum levels returned per side. Default: 100. Maximum: 6745 (ticks 0 through 6744, inclusive). |
| market-id | string | yes | Market ID whose book to read (market_id in responses). |
Returns one side of a book as price levels grouped by tick with total units, assets, and price, sorted best price first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| depth | number | no | Maximum levels returned. Default: 100. Maximum: 6745 (ticks 0 through 6744, inclusive). |
| side | string | yes | Book side to query (asks or bids). |
| market-id | string | yes | Market ID whose book side to read (market_id in responses). |
Returns up to 1,000 executable offers for one book side, sorted best price first. This endpoint is not paginated and does not accept a limit or cursor.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| side | string | yes | Book side to query (asks or bids). |
| market-id | string | yes | Market ID whose book side to read (market_id in responses). |
Returns a bundle-ready quote for the requested assets or units, plus expected best/worst average prices and maximum executable liquidity. The endpoint optimizes for successful target-aware bundle execution under contention: takeable_offers are best-priced per-offer caps and their total can exceed the requested target, giving a bundle executor fallback liquidity when earlier offers are partially
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | string | no | Maximum number of best-priced takeable offers the quote may walk and return. Returned prices and availability describe exactly this window, and a request that cannot fill within limit offers returns |
| average_worst_price | string | no | Optional conservative average worst-price guard for the requested target. For asks, the returned average_worst_price is at or below this value; for bids, it is at or above it. The target-closing |
| slippage | string | no | Optional slippage percentage used to derive a worst-price guard from the realized average_best_price for the requested target. The returned fallback window is trimmed until its conservative `average |
| units | string | no | Target unit amount. Provide exactly one of assets or units. |
| assets | string | no | Target assets amount. Provide exactly one of assets or units. |
| side | string | yes | Book side to quote (asks or bids). |
| market-id | string | yes | Market ID whose book to quote (market_id in responses). |
Returns one maker's active offers. A fresh offer is withheld until measured, unless indexed ratifier state proves both a blocker and maker intent through the tree signature, signer-authorization history, or root history. Eligible blocked offers return with units set to 0; missing state and unproven offers naming the maker remain hidden.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| maker | string | yes | Maker EVM address. Matching is case-insensitive. |
| market_ids | string | no | Comma-separated market IDs (32-byte hex). Matches takeable offers in any of the provided markets. Maximum 20 IDs. Combined with groups using AND semantics. |
| groups | string | no | Comma-separated group IDs (32-byte hex). Matches takeable offers in any of the provided groups. Maximum 20 IDs. |
| limit | number | no | Maximum number of items to return. |
| cursor | string | no | Opaque pagination cursor from a previous response. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Morpho or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| morpho_health_check | no tags | |
| morpho_get_supported_chains | no tags | |
| morpho_get_token_balance | sensitive-source | sensitive-source: keyword "get_token" |
| morpho_simulate_transactions | no tags | |
| morpho_doc_search | no tags | |
| morpho_prepare_deposit | no tags | |
| morpho_prepare_withdraw | no tags | |
| morpho_prepare_supply | no tags | |
| morpho_prepare_borrow | no tags | |
| morpho_prepare_repay | no tags | |
| morpho_prepare_supply_collateral | no tags | |
| morpho_prepare_withdraw_collateral | no tags | |
| morpho_prepare_claim_rewards | untrusted-input | untrusted-input: keyword "fetch" |
| morpho_prepare_redeem | no tags | |
| morpho_prepare_redeem_in_kind | no tags | |
| morpho_prepare_force_withdraw | no tags | |
| morpho_prepare_force_redeem | no tags | |
| morpho_prepare_migrate_to_vault_v2 | no tags | |
| morpho_prepare_blue_withdraw | no tags | |
| morpho_prepare_supply_collateral_and_borrow | no tags | |
| morpho_prepare_repay_and_withdraw_collateral | no tags | |
| morpho_prepare_refinance | no tags | |
| morpho_prepare_midnight_take_lend | no tags | |
| morpho_prepare_midnight_take_borrow | no tags | |
| morpho_prepare_midnight_supply_collateral_take_borrow | no tags | |
| morpho_prepare_midnight_take_withdraw | no tags | |
| morpho_prepare_midnight_take_repay_withdraw_collateral | no tags | |
| morpho_prepare_midnight_supply_collateral | no tags | |
| morpho_prepare_midnight_redeem | no tags | |
| morpho_prepare_midnight_repay_withdraw_collateral | no tags | |
| morpho_prepare_midnight_cancel_offers | no tags | |
| morpho_prepare_midnight_set_authorization | no tags | |
| morpho_get_vault | no tags | |
| morpho_query_vaults | no tags | |
| morpho_get_vault_positions | no tags | |
| morpho_query_markets | no tags | |
| morpho_get_market | no tags | |
| morpho_get_market_positions | no tags | |
| morpho_midnight_list_markets | no tags | |
| morpho_midnight_get_market | no tags | |
| morpho_midnight_get_market_state | no tags | |
| morpho_midnight_list_user_positions | no tags | |
| morpho_midnight_list_market_positions | no tags | |
| morpho_midnight_get_user_position | no tags | |
| morpho_midnight_get_user_position_performance | no tags | |
| morpho_midnight_get_offer_group | no tags | |
| morpho_midnight_list_user_offer_groups | no tags | |
| morpho_midnight_list_books | no tags | |
| morpho_midnight_get_book | no tags | |
| morpho_midnight_get_book_side | no tags | |
| morpho_midnight_get_book_side_takeable_offers | no tags | |
| morpho_midnight_get_book_quote | no tags | |
| morpho_midnight_list_maker_takeable_offers | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Morpho can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.