compare_yields

READ-ONLY — return a ranked table of supply-side yield opportunities for a given asset across every integrated lending / staking protocol. v1 covers Aave V3 (5 EVM chains), Compound V3 (5 EVM chains, multi-market per chain), and Lido stETH (Ethereum only). Other protocols (Morpho Blue, MarginFi, ...

Server VaultPilot MCP vaultpilot-mcp
Category Read
Risk class Low
Parameters 41 required

What compare_yields does on VaultPilot MCP

AI agents call compare_yields to retrieve information from VaultPilot MCP without modifying anything — typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

ParameterTypeRequiredDescription
asset string Yes Asset to compare supply yields for. 'stables' is a meta-asset that expands to USDC + USDT (the two stables every adapter knows). 'ETH' resolves to WETH on EVM l
chains array Restrict to specific chains. Default: all integrated EVM chains + Solana. BTC / LTC have no integrated lending so they return empty — pass them only if you spec
minTvlUsd number Minimum supply-side TVL in USD; rows below the bar are filtered. Rows where TVL is unknown (the upstream didn't expose it) are NOT filtered — surfaced honestly
riskCeiling number Minimum protocol risk score (0-100; higher = safer per `get_protocol_risk_score`). Despite the name 'ceiling', the comparison is `score >= ceiling` — only show

Parameters from the server's own tool schema.

Why compare_yields needs a policy

Even though compare_yields only reads data, uncontrolled read access leaks sensitive information and racks up API costs — an agent caught in a retry loop can make thousands of calls a minute without anyone noticing.

Questions about compare_yields

What does the compare_yields tool do? +

READ-ONLY — return a ranked table of supply-side yield opportunities for a given asset across every integrated lending / staking protocol. v1 covers Aave V3 (5 EVM chains), Compound V3 (5 EVM chains, multi-market per chain), and Lido stETH (Ethereum only). Other protocols (Morpho Blue, MarginFi, Kamino, Marinade, Jito, EigenLayer, Solana native-stake) appear in the response's unavailable[] list with a coverage-gap reason — they need their wallet-less market readers split out from existing wallet-aware readers; tracked as follow-up work. Output per row: protocol, chain, market (free-form: 'cUSDCv3' for Compound, the asset symbol for Aave, 'stETH' for Lido), supplyApr (current, fractional 0.0481 = 4.81%), supplyApy (continuously-compounded), tvl (USD, may be null when the upstream doesn't expose it cheaply), riskScore (0-100 from get_protocol_risk_score, may be null), notes (pause flags, frozen reserves, etc.). Rows are sorted by supplyApr descending; null APR sinks. Filters: chains (default = all EVM mainnets + Solana); minTvlUsd (rows with tvl: null are NOT filtered — no data ≠ tiny market); riskCeiling (only show protocols at LEAST this safe; rows with riskScore: null are NOT filtered). Empty result returns emptyResultReason explaining whether nothing matched at all vs. everything filtered out. AGENT BEHAVIOR: this tool surfaces data; it does NOT pick. Surface the comparison verbatim. Do NOT pick a 'best' option for the user — they decide. The plan's positioning is explicit: 'Here are current supply rates' is right; 'I recommend depositing in X' is OUT. It is categorised as a Read tool in the VaultPilot MCP MCP Server, which means it retrieves data without modifying state.

What parameters does compare_yields accept? +

compare_yields accepts 4 parameters: asset, chains, minTvlUsd, riskCeiling. Required: asset. The full parameter table on this page comes from the server's own tool schema.

How do I enforce a policy on compare_yields? +

Register the VaultPilot MCP server in PolicyLayer and add a rule for compare_yields: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches VaultPilot MCP. Nothing to install.

What risk level is compare_yields? +

compare_yields is a Read tool with low risk. Read-only tools are generally safe to allow by default.

Can I rate-limit compare_yields? +

Yes. Add a rate_limit block to the compare_yields rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.

How do I block compare_yields completely? +

Set action: deny in the PolicyLayer policy for compare_yields. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.

What MCP server provides compare_yields? +

compare_yields is provided by the VaultPilot MCP server (vaultpilot-mcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.