Earn-native MCP server for the LI.FI Earn API: 12 tools for vault discovery, risk scoring, allocation, and deposit quoting
EarnForge MCP demonstrates solid tool design with consistent naming (verb_noun pattern), comprehensive parameter descriptions, and well-documented output expectations. All 13 tools follow action-verb conventions (get_, check_, detect_, probe_, score_, suggest_, quote_). Descriptions are detailed and contextual (avg ~180 chars), exceeding the 10-1024 char baseline. Parameters include type definitions, enums where appropriate (strategy, riskTolerance, sortBy), and clear constraints. However, output schemas are not explicitly documented in the source, they are inferred from descriptions. Error handling guidance is minimal; tools lack recovery hints or categorization (retryable vs fatal). No confirmation patterns for sensitive operations like deposit quoting. Tool composition is strong: tools chain well (get-earn-vaults → get-earn-vault → quote-vault-deposit), and responses include necessary IDs for downstream calls.
Check if a wallet has approved a token for spending. Returns the current allowance amount. Use this before quoting a deposit to see if an approval transaction is needed.
Detect breaking changes in the LI.FI Earn API. Compares the live API against cached schema expectations and reports any drift: new fields, removed fields, type changes, or endpoint changes. Run this periodically to catch API migrations before they break your code.
Run diagnostics on the EarnForge setup: API key validity, network connectivity, cache status, and SDK version. Use this to troubleshoot integration issues.
Chains with at least one indexed Earn vault. This is a SUBSET of all LI.FI-supported chains. Composer covers more. Use these chain ids to filter get-earn-vaults rather than hardcoding them.
Positions held in Earn vaults: vault details, share balance, USD value, and APY. Requires a wallet address.
Output schemas not explicitly documented in source code. Tool descriptions infer structure but formal JSON Schema definitions for return types are not visible, forcing LLMs to guess response shape.
No error handling guidance or recovery hints. Tools lack descriptions of failure modes, retryability, or what the LLM should do if a call fails (e.g., 'If vault not found, try get-earn-vaults with broader filters').
Sensitive operations (quote-vault-deposit, quote-vault-redeem) lack confirmation or dry-run patterns. No mechanism to preview consequences before execution, risking accidental fund transfers.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2025-06-18+ | v2 |
Protocols with at least one indexed vault. Ids are UNVERSIONED: "morpho", "aave", "euler", not "morpho-v1"/"aave-v3"/"euler-v2". Filtering on a versioned slug returns HTTP 200 with zero results rather than an error, so always resolve the id here first.
Full details for a single vault: APY breakdown, TVL, underlying tokens with USD prices, reward tokens, protocol, deposit/redeem support, and LI.FI's verification status. To deposit, pass the vault's address as toToken and its chainId as toChain to quote-vault-deposit.
Search yield vaults across every chain LI.FI Earn indexes. THE primary tool for finding yield. APY values are percentages already (4.63 = 4.63%), do not multiply by 100. Each result carries a verification block: LI.FI flags roughly 10% of vaults as suspect, and those should not be recommended without saying so.
Probe a deposit route for flags: gasless support, smart deposit support, and other route-level warnings. Helps identify routes that may fail or behave unexpectedly.
Quote for depositing into a vault. Returns an unsigned transaction request, gas estimate, and expected share balance. Does not sign or broadcast.
Quote for redeeming shares from a vault. Returns an unsigned transaction request, gas estimate, and expected token amount. Does not sign or broadcast.
Risk score for a vault (0–10, higher = riskier). Factors: TVL, protocol maturity, reward sustainability, concentration. Scores >= 7 are high-risk. Scores < 3 are conservative.
Suggest a diversified allocation across vaults matching your criteria. Returns a list of vaults with recommended deposit amounts (in USD) that sum to your target. Respects risk tolerance, chain preferences, and asset filters.
Parameter 'slug' format is complex and accepts legacy forms ('chainId-address'). Description mentions this but does not clearly state which format is preferred or how to construct new slugs. LLMs may generate invalid slugs.
No pagination or result-limiting guidance for get-earn-vaults. Default limit=10 is reasonable, but no mention of max results or whether results are sorted consistently. Large result sets could exhaust context.