Skip to main content
Glama

Prepare an eMode change (v3)

prepare_set_emode
Read-only

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, raising borrowing power at the cost of restricting which assets the position may hold. Take categoryId from get_emode_categories for that market; pass 0 to turn eMode off. v3 only: v4 replaces eMode with risk premium and dynamic config.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketYesv3 only: market pool address, from a get_markets row in this session. It cannot be recalled: an Aave pool address you already recognise belongs to another deployment (v2, or another chain) and is rejected.
senderYesSender wallet address, 0x-prefixed (40 hex chars).
chainIdYesChain id (positive integer).
versionNoOptional, and only 'v3': this tool exists on v3 only.
categoryIdYeseMode categoryId from get_emode_categories, or 0 to disable.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description is consistent: building an unsigned transaction implies no state change. The description adds useful behavioral context beyond annotations, including the eMode LTV/restriction tradeoff, the v3-only constraint, and the categoryId=0 disable behavior.

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 description is front-loaded with the version and core action, and the eMode explanation is valuable. It loses a point for repeating 'v3 only' twice and for slightly over-explaining, but it remains compact and purposeful.

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

Completeness4/5

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

For a tool with 5 parameters and no output schema, the description provides enough context to select and invoke it appropriately: purpose, version constraints, category source, and zero-to-disable behavior. It does not describe the output shape, but 'unsigned transaction' gives a reasonable expectation.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description mostly restates what the schema already says for categoryId ('from get_emode_categories, or 0 to disable') and does not add substantial new parameter-specific meaning beyond the explanatory eMode context.

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?

The description states a specific verb and resource: 'Build an unsigned transaction to switch a wallet's Aave v3 eMode category.' It also clearly scopes the tool to v3 and distinguishes eMode from other Aave actions, so an agent can tell this apart from prepare_set_collateral or prepare_action.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use and when-not-to-use guidance: 'v3 only', 'v4 replaces eMode', and 'Take categoryId from get_emode_categories for that market; pass 0 to turn eMode off.' This tells the agent the prerequisite data source and the disabling behavior clearly.

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.

TDQS

A4.2/5.0
Disambiguation4/5

The tool set splits into clean families (get_ reads, prepare_ transaction builders, direct state-changing verbs) and the descriptions aggressively cross-reference each other to draw explicit boundaries, e.g. get_user_positions vs get_user_summary vs get_user_activity. A few clusters could still prompt misselection: the four get_user_* tools share a naming shape, get_started and get_aave_guide both claim the 'when nothing fits' role, and get_hub_assets vs get_markets both return rate data at different aggregation levels.

Naming Consistency5/5

Every tool follows a verb_noun pattern with a highly predictable convention: get_ for all read operations, prepare_ for every unsigned-transaction builder, and direct imperatives (cancel_order, submit_signed_order, preview_action) for the rest. search_governance_proposals is the only read not named get_, but search_ is semantically apt for full-text lookup. The get_/ prepare_ split is instantly legible across all 40 tools.

Tool Count2/5

40 tools is well past the 25+ 'too many' threshold, and even Aave's genuinely wide scope (v3 and v4 lending, governance, sGHO, rewards, intent orders) does not fully justify the surface. get_started and get_aave_guide overlap as guidance entry points, the three history tools and the get_user_* cluster add near-duplicate reads, and the paragraph-long descriptions compound the agent's context burden. Most tools earn their place individually, but the set would be stronger consolidated to roughly 25-30 tools.

Completeness4/5

Core workflows are fully covered with no dead ends: preview_action simulation, prepare_action and prepare_set_* builders, get_transaction_processed polling, plus the complete order lifecycle (quote, prepare, submit, status, cancel) and sGHO/rewards coverage. Minor gaps remain: governance is read-only with no way to cast a vote, the server cannot read a stkGHO balance or cooldown state for the migration flow, and there is no stkAAVE staking surface. These are workaroundable, and the v3/v4 dual-version handling is unusually thorough.

Resources