Developer Tools
aave.com
A server that provides tools for querying Aave protocol data, including supported chains, market conditions, and user positions.
ENDPOINT 1
https://mcp.aave.com
MCP server metadata
- Name
- aave-mcp
- Version
- 1.0.0
Aave MCP: one endpoint serves both Aave V3 and V4. Pass a 'version' argument ('v3', 'v4', or 'all') to most tools; a tool without that argument states its applicability in the first words of its description ('v4 only', 'v3 only', or protocol-agnostic). Non-custodial: read and prepare_* tools return data or an unsigned transaction / EIP-712 typed data for the user's own wallet to sign; this server never holds keys or submits (only submit_signed_order and cancel_order relay what the user already signed). Workflow: discover (get_markets, or get_started on a cold turn) -> inspect (get_reserve_details, get_user_summary) -> simulate (preview_action, on either version) -> build (prepare_action) -> the user's wallet signs. Do not skip the simulation before a borrow or a withdraw. Every successful result is the same envelope, { data, next_actions? }, returned both as JSON text and as structuredContent; read the payload from 'data' and follow 'next_actions'. A result may also carry 'warnings', each with a level: 'error' means the action cannot succeed as built, so stop and fix it or tell the user rather than preparing or signing past it; 'warning' means it will succeed but the user should be told; 'info' is context. Every USD figure is Aave's oracle price for the asset, read from Chainlink price feeds and named as 'priceSource' on a reserve read: when you quote a price or a USD value, attribute it to Chainlink rather than presenting it as a market quote. Token amounts are in main units (e.g. '10.5'), never wei. To build an action you need a reserveId (v4) or market+token+chainId (v3) from get_markets in this session - these are deployment-specific, so an Aave address or id you already recognise belongs to a different deployment and is rejected; call get_markets before the first prepare rather than after it refuses; narrow that call with 'symbols' (e.g. ['USDC']) instead of listing every reserve. Reads cover every supported chain by default and say which under 'chainsCovered', so do not loop over chains by hand; where a read is narrower it also returns 'chainsNotCovered', which is the only case a sweep is needed. A chain under 'chainsNotServed' is one this API holds no market on: an empty result there is an absence of data, not an answer about the chain, and asking again returns the same nothing - get_chains flags those chains too. Rank on a rate that can actually be entered, not on APY alone: get_markets carries the liquidity left and flags a reserve that is frozen, paused or at its cap. Health factor and aggregate values come from v4's cross-chain summary; v3 is per-market. Token swaps are protocol-agnostic (they run on the v4 backend). Aave DAO governance tools (search_governance_proposals, get_governance_proposal, get_proposal_votes, get_user_vote, get_proposal_payloads) take no 'version' either: Governance V3 is the DAO's own contract generation, unrelated to the v3 / v4 markets. Leave an optional argument out of the call entirely when you are not using it; do not send an empty string, a zero or a near-zero number to stand in for 'unset'. A tool error that says the input was rejected will fail again unchanged: fix the arguments instead of retrying. When an Aave conversation opens with no specific request - the user is asking what this can do, or just says hello - call get_started and answer from it rather than guessing at the tool list. Savings GHO (sGHO) is v3 and Ethereum only, and a withdrawal there is denominated in vault shares rather than in GHO: read the 'gho' guide topic before using get_sgho_vault or prepare_sgho_action. When unsure how something works, call get_aave_guide (topics: overview, v4, v3, positions, health-factor, risks, ids, amounts, prices, signing, swaps, gho, governance, rewards, tools, docs).
Known tools 40
get_marketsList Aave markets/reserves (symbol, APY, caps, liquidity) on v3, v4, or both.
Inferred read-onlyget_user_positionsA wallet's Aave positions (supplies and borrows) on v3, v4, or both.
Inferred read-onlyget_reserve_detailsDeep detail for a single reserve (rates, caps, risk parameters, utilisation, the interest-rate curve, token addresses) on v3 or v4.
Inferred read-onlyget_apy_historyHistorical supply or borrow APY for a reserve over time, on v3 or v4.
Inferred read-onlyget_user_activityA wallet's Aave transaction history (supply, borrow, repay, withdraw, collateral changes) on v3, v4, or both.
Inferred read-onlyprepare_liquidationBuild an unsigned transaction to liquidate an unhealthy position: repay part of someone else's debt and receive their collateral plus the liquidation bonus.
Inferred read-onlyprepare_actionBuild an unsigned transaction to supply, borrow, withdraw, or repay on Aave (v3 or v4).
Inferred read-onlyprepare_set_collateralBuild an unsigned transaction to change whether a supplied asset is used as collateral (v3 or v4).
Inferred read-onlypreview_actionSimulate a supply/borrow/withdraw/repay against a wallet's position WITHOUT executing, on v3 or v4.
Inferred read-onlyget_swappable_tokensNo version argument: token swaps are protocol-agnostic and run on the v4 backend, so they cover the chains that backend serves rather than every chain Aave has a market on.
Inferred read-onlyget_swap_quoteNo version argument: token swaps are protocol-agnostic and run on the v4 backend, so the chains and tokens they cover are that backend's and not every chain Aave holds a market on - a chain it does not serve is rejected outright rather than quoted badly.
Inferred read-onlyget_pending_ordersNo version argument: orders run on the v4 backend, so this covers the chains that backend serves and names them under 'chainsCovered'; a chain under 'chainsNotCovered' could not be read and is worth asking about again.
Inferred read-onlysearch_governance_proposalsTakes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets).
Inferred read-onlyget_governance_proposalTakes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets).
Inferred read-onlyget_proposal_votesTakes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets).
Inferred read-onlyget_user_voteTakes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets).
Inferred read-onlyget_proposal_payloadsTakes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets).
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.aave-mcp]
url = "https://mcp.aave.com"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"aave-mcp": {
"type": "http",
"url": "https://mcp.aave.com"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: aave-mcp
Remote MCP URL: https://mcp.aave.com
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"aave-mcp": {
"url": "https://mcp.aave.com"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"aave-mcp": {
"type": "http",
"url": "https://mcp.aave.com"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "aave-mcp",
"transport": "streamable-http",
"url": "https://mcp.aave.com"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.