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, ...
This record as markdown: /tools/io-github-szhygulin-vaultpilot-mcp/compare-yields.md
What compare_yields does on VaultPilot MCP
AI agents call compare_yields to retrieve information from VaultPilot MCP without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
| Parameter | Type | Required | Description |
|---|---|---|---|
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 is rated Low
This tool retrieves and queries yield data across DeFi protocols without creating, modifying, deleting, or executing any transactions. It has no side effects and presents read-only information to help users compare investment opportunities. The low severity reflects that misuse would at worst provide misleading yield comparisons, not enable financial loss or fund movement.
From the tool's definition Tool description explicitly states 'READ-ONLY' and describes returning a 'ranked table of supply-side yield opportunities' with no modification or execution capabilities. The output is informational data about yields across protocols.
Attacks that exploit this kind of access
The rule that runs compare_yields safely
PolicyLayer is an MCP gateway: it sits between your AI agents and VaultPilot MCP, and checks every tool call against a rule you set before the call runs. Nothing changes on the server itself. For compare_yields, this is the rule to start with:
compare_yields is read-only, so it stays allowed. Everything else on the server is denied unless you say otherwise.
The button opens the PolicyLayer dashboard: create your workspace, connect VaultPilot MCP, apply this rule, and every compare_yields call is checked against it from then on.
Questions about 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, 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.
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.
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.
compare_yields is a Read tool with low risk. Read-only tools are generally safe to allow by default.
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.
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.
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.
More on VaultPilot, and thousands of servers like it.
This server
Across the catalogue