Aave MCP
mcp remote · streamable-http · v1.0.0 · source: crawl
https://mcp.aave.com
Official Aave MCP for V3 and V4 markets, positions, governance, and transaction preparation.
Works
100
Verified Oct 31, 2026 · p50 243 ms · p95 358 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'aave-mcp' |
| tools_listed | 15 | pass | 56 tools |
| schema_complete | 15 | pass | 56 of 56 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 243 ms |
| latency_p95 | 5 | pass | p95 358 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (56)
| Name | Description | Schema |
|---|---|---|
get_markets | List Aave markets/reserves (symbol, APY, caps, liquidity) on v3, v4, or both. Chain coverage: omit chainId and every response states the chains it read as 'chainsCovered', plus 'chainsNotCovered' when | typed |
get_chains | List chains Aave supports, on v3, v4, or both. A chain carrying 'notServed': true is one this API holds no market on: every market, position and rewards read comes back empty for it, and that emptines | typed |
get_emode_categories | v3 only. eMode groups correlated assets (ETH-correlated, stablecoins) so they borrow against each other at a higher LTV, raising borrowing power at the cost of restricting which assets the position ma | typed |
get_user_positions | A wallet's Aave positions (supplies and borrows) on v3, v4, or both. Omit chainId and both versions cover every chain they serve, stating which under 'chainsCovered'; there is no need to loop over cha | typed |
get_position_items | v4 only. The individual supplies or borrows inside one v4 spoke: principal, accrued interest and what is withdrawable right now, per item, which the per-spoke aggregate from get_user_positions cannot | typed |
get_user_summary | A wallet's aggregate position and health factor. Omit chainId and both versions cover every chain they serve, stating which under 'chainsCovered'; there is no need to loop over chains yourself. 'chain | typed |
get_transaction_processed | v4 only. After sending a transaction, ask whether the Aave API has processed it. Use this instead of sleeping or polling an RPC: the API lags the chain, and prepare_action will not issue a dependent f | typed |
get_market_history | v4 only. Deposits, borrows, available liquidity and utilisation over a window, for one hub or one spoke. Pick the layer deliberately: a hub is the liquidity itself and answers 'is this market growing' | typed |
get_reserve_details | Deep detail for a single reserve (rates, caps, risk parameters, utilisation, the interest-rate curve, token addresses) on v3 or v4. Every rate and percentage is a percent ('3.32' means 3.32%), named w | typed |
get_apy_history | Historical supply or borrow APY for a reserve over time, on v3 or v4. Returns a time-series of {date, apyPct}, where apyPct is a percent ('3.32' means 3.32%). Each point is an average over its samplin | typed |
get_user_activity | A wallet's Aave transaction history (supply, borrow, repay, withdraw, collateral changes) on v3, v4, or both. Most recent first. v4 covers every chain; v3 reads one market on one chain at a time, beca | typed |
get_protocol_history | v4 only. Aave v4 protocol-wide history: market size, total borrows and available liquidity per sample over a window. Omit chainId to cover every supported v4 chain. Use this for 'is the protocol growi | typed |
get_user_summary_history | v4 only. How one wallet's net worth, supplied, debt and health factor moved over a window on Aave v4. Use it to answer 'how has my position changed' or to see how close to liquidation a wallet has bee | typed |
get_hubs | v4 only. Aave v4 hubs: a hub holds the liquidity and global accounting that user-facing spokes draw from. Returns each hub's hubId, address, chain and totals. Pass a hubId to get_hub_assets for the as | typed |
get_hub_assets | v4 only. The assets held by one Aave v4 hub, with hub-wide supplied and borrowed totals, rates and utilisation. Get hubId from get_hubs (or the hubAddress on get_reserve_details). This is hub-level ac | typed |
get_asset_history | v4 only. One asset across every v4 reserve that holds it: 'price' is its oracle price per sample, 'supply' and 'borrow' are the amounts plus the APY spread across those reserves (averageApyPct with th | typed |
get_reserve_holders | v4 only. The biggest wallets supplying or borrowing one v4 reserve, largest first, for questions about concentration: whether one address is most of a reserve's liquidity, or most of its debt. The tok | typed |
get_interest_rate_model | v4 only. The rate curve for one hub asset: borrow and supply APY at each level of utilisation, as points along the curve the protocol actually uses. This explains a rate rather than reporting it - whe | typed |
get_wallet_balances | v4 only. The tokens a wallet actually holds that v4 can take, per token and summed across chains, with 'perChain' saying where each sits, plus the best supply APY and lowest borrow APY the protocol cu | typed |
get_risk_premium | v4 only. The per-collateral breakdown of one position's risk premium: how much of the position each token is, and the weight the protocol charges for it. 'currentRiskPremiumWeightPct' is the weight in | typed |
get_spoke_configs | v4 only. Per-asset limits for one (hub, spoke) pair: supply and borrow caps, whether the asset is active there, whether it is halted, and the risk premium threshold. Read it before sizing a large posi | typed |
get_multichain_asset | v4 only. One asset across every v4 chain at once, by symbol: what is supplied and borrowed on each, the rate on each, and a summary naming the best supply rate and the lowest borrow rate anywhere. Thi | typed |
prepare_liquidation | Build an unsigned transaction to liquidate an unhealthy position: repay part of someone else's debt and receive their collateral plus the liquidation bonus. Only viable while that position's health fa | typed |
prepare_set_emode | v3 only. Build an unsigned transaction to switch a wallet's Aave v3 eMode category. eMode groups correlated assets (ETH-correlated, stablecoins) so they borrow against each other at a higher LTV, rais | typed |
prepare_action | Build an unsigned transaction to supply, borrow, withdraw, or repay on Aave (v3 or v4). Returns an execution plan (a transaction to sign, or an approval step first). For a borrow or a withdraw, call p | typed |
prepare_set_collateral | Build an unsigned transaction to change whether a supplied asset is used as collateral (v3 or v4). On v4 'enable' sets the state; on v3 it toggles the current state, and a toggle that would invert a s | typed |
preview_action | Simulate a supply/borrow/withdraw/repay against a wallet's position WITHOUT executing, on v3 or v4 - or, v4 only, a quoted order that moves a position: a leverage, a position swap or a repay-with-supp | typed |
get_swappable_tokens | No 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. Call this before get_swap_q | typed |
get_swap_quote | No 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 no | typed |
get_position_swap_quote | v4 only. Quote swapping one Aave v4 position for another, atomically and without leaving the protocol: kind=supply swaps collateral for a different collateral asset, kind=borrow swaps one debt for ano | typed |
get_repay_with_supply_quote | v4 only. Quote paying down a borrow using supplied collateral, atomically and without the funds leaving Aave. 'debtPosition' is the borrow to reduce, a positionItemId from get_position_items with side | typed |
get_leverage_quote | v4 only. Quote opening or increasing a leveraged position in one atomic order: the debt reserve is flash-loaned, swapped into the collateral reserve and supplied, and the debt is drawn against it to r | typed |
prepare_order | No version argument: every order runs on the v4 backend. One prepare for every product - a token swap, position swap, repay-with-supply or leverage quoteId all come here. Which optional arguments appl | typed |
submit_signed_order | No version argument: every order runs on the v4 backend. Relay an order the user already signed (quoteId + signature from prepare_order's PreparedOrder). State-changing: this posts the order. The serv | typed |
prepare_cancel_order | No version argument. From an orderId, return the EIP-712 cancellation for the user to sign; cancel_order relays the result. This is the gasless route for an intent order; an order that went on chain ( | typed |
cancel_order | No version argument. Cancel an open order. Two routes: pass 'signature' (signed over what prepare_cancel_order returned) to relay a gasless cancellation - state-changing, and the route an intent order | typed |
get_order_status | No version argument. Status of an order by id: open, pending signature, fulfilled, cancelled or expired, with the operation it performs and an explorer link. 'order' comes back null when the API canno | typed |
get_pending_orders | No 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 a | typed |
get_user_rewards | A wallet's claimable Aave rewards on v3, v4, or both. Covers incentive programmes distributed through Merit as well as the protocol's own, so a GHO or sGHO incentive shows up here rather than anywhere | typed |
prepare_claim_rewards | v4 only. Build an unsigned transaction to claim a wallet's V4 rewards. If 'ids' is omitted, claims everything currently claimable. Non-custodial. There is no v3 equivalent because a v3 claim needs no | typed |
get_sgho_vault | v3 only, Ethereum only. Savings GHO (sGHO) is an ERC-4626 vault that pays a target rate on deposited GHO. Returns the vault's targetRatePct, totalAssets, supplyCap and paused flag; pass 'user' to add | typed |
get_sgho_preview | v3 only, Ethereum only. Convert between GHO and sGHO shares at the vault's current index, without building anything. Which unit 'amount' is in depends on the action: 'deposit' takes GHO and returns th | typed |
prepare_sgho_action | v3 only, Ethereum only. Build an unsigned transaction to deposit GHO into the sGHO vault or withdraw from it. Non-custodial: the user's wallet signs and submits, so building one commits them to nothin | typed |
prepare_stkgho_migrate | v3 only, Ethereum only. Build an unsigned transaction that moves a wallet's stkGHO out of the Safety Module and into the sGHO vault. All-or-nothing: it covers the entire stkGHO position and takes no a | typed |
get_safety_module | Aave's Safety Module, Ethereum only, and the one product here that is read from the contracts rather than the Aave API. Returns both generations: 'umbrella', the per-asset stake tokens securing the pr | typed |
get_governance_proposal | Takes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets). Full detail for one Aave DAO governance proposal: state, author, vote tallies, quorum, | typed |
get_vaults | v3 only. Name exactly one of 'user', 'owner' or 'vault', and read that sentence before choosing arguments: 'user' lists every vault that wallet holds shares in and is the portfolio question, 'owner' l | typed |
get_vault_preview | v3 only. Convert between a vault's assets and its shares at the current index, without building anything. Which unit 'amount' is in depends on the action, and this is the thing to get right: 'deposit' | typed |
prepare_vault_action | v3 only. Build an unsigned transaction to move value in or out of an Aave Vault. Non-custodial: the user's wallet signs and submits, so building one commits them to nothing - choose sensible values, b | typed |
get_vault_activity | v3 only. How one wallet's position in one vault moved over a window: total yield earned, plus a per-sample breakdown of balance, deposits and withdrawals. Use it to answer 'what has this vault actuall | typed |
search_governance_proposals | Takes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets). List or search Aave DAO governance proposals. Filter by 'state' to answer "what is liv | typed |
get_proposal_votes | Takes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets). Who voted on an Aave DAO proposal and with how much power, largest voter first. Pass s | typed |
get_user_vote | Takes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets). How one wallet voted on one Aave DAO proposal, and with how much power. Returns voted: | typed |
get_proposal_payloads | Takes no 'version' argument (DAO governance is not per-market; Governance V3 is unrelated to Aave v3/v4 markets). What an Aave DAO proposal actually executes: one payload per target chain, each with i | typed |
get_aave_guide | Applies to both versions. Protocol and usage guidance for building Aave flows correctly. Read the relevant topic before constructing an action. Topics: overview, v4, v3, positions, health-factor, risk | typed |
get_started | Applies to both versions. What this Aave server can do: the tool families, the ready-made prompts, and the guide topics. Call this when an Aave conversation opens with no specific request and answer f | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/com-aave-mcp)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.