Skip to main content
Glama

Get reserve details

get_reserve_details
Read-only

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 with a Pct suffix. On v4, utilisation and the rate curve are hub-wide, shared by every spoke drawing on the asset. Two v4 fields whose meaning the numbers do not give away: 'collateralFactorPct' is the liquidation boundary itself, because v4 has no separate liquidation threshold - do not look for one - so a position drawn to its full borrow limit sits at health factor 1.0; and 'liquidityFeePct' is the protocol's share of borrower interest, already netted out of supplyApyPct, so treating it as a user cost double-counts it (supplyApy = borrowApy x utilisation x (1 - liquidityFee), if you want to check). This is also where the asset's price lives: 'priceUsd', with 'priceSource' naming who priced it, and no listing carries either - get_markets quotes no price at all, so what an asset is worth on Aave is answered here. On v4 'quotableAs' lists the position-swap, repay-with-supply and leverage arguments the reserve can fill, the same list get_markets carries. Use get_markets first to get the reserveId (v4) or market+token (v3).

Input Schema

NameRequiredDescriptionDefault
tokenNov3 only: underlying token address.
marketNov3 only: market pool address (from get_markets).
chainIdNov3 only: chain id (positive integer).
versionNoOptional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both.
reserveIdNov4 only: the reserveId from get_markets, copied verbatim.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / version / description
      Previous value: -"Protocol version (v3 or v4; required)."New value: +"Optional: inferred from the reserve selector ('reserveId' is v4, 'market'+'token'+'chainId' is v3). Send it to be explicit, or if you somehow set both."
    • removedInput schema / required
      Removed value: -[
      -  "version"
      -]
  2. Changed2 schema fields changed
    • removedInput schema / properties / reserve
      Removed value: -{
      -  "description": "v4 only: reserveId (from get_markets).",
      -  "type": "string"
      -}
    • addedInput schema / properties / reserveId
      Added value: +{
      +  "description": "v4 only: the reserveId from get_markets, copied verbatim.",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/non-destructive, yet the description goes far beyond them: unit conventions ('3.32' means 3.32%, Pct suffix), v4 hub-wide vs per-spoke utilisation semantics, and explicit warnings about two misleading fields. The note that collateralFactorPct is the liquidation boundary itself ('do not look for one') and that liquidityFeePct is already netted out of supplyApyPct is exactly the interpretive context an agent cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and field inventory are front-loaded, and most sentences carry non-obvious payload (hub-wide semantics, fee netting, price location). It is dense and runs long, with the price/'quotableAs' material reading as a slight digression from the core field semantics, but nothing is purely filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the full burden and does so: it enumerates the returned field groups, fixes the unit convention, flags the two counterintuitive fields with formulas, and tells the agent where the price lives. An agent can interpret the response without further tooling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: it explains that the version is inferred from the selector (reserveId vs market+token+chainId), that reserveId must be copied verbatim from get_markets, and that v3-only params are mutually exclusive with v4 usage. It does not elaborate on chainId or market formatting beyond the schema, keeping it at 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb+resource plus an enumerated field list ('rates, caps, risk parameters, utilisation, the interest-rate curve, token addresses') scoped to 'a single reserve... on v3 or v4'. Directly distinguishes itself from get_markets by stating that tool carries no price at all. An agent can tell what it returns without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit prerequisite/ordering rule ('Use get_markets first to get the reserveId (v4) or market+token (v3)') and routes price lookups here while denying it to get_markets. It stops short of stating when NOT to reach for near-neighbours like get_interest_rate_model or get_aave_guide, so it is clear context rather than full when/when-not coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources