A DeFi opportunity engine that grades itself on what actually happened. Self-tracking scanner + Postgres realization layer + dashboard + gated Telegram alerts + agent operability. Exposes graded opportunities and their receipts to MCP-capable agents over stdio.
Five tools with complete schemas and descriptions, but descriptions are generic and lack LLM-optimized guidance. All tools are READ_ONLY (good for safety), but descriptions don't explain WHEN to use each tool vs. alternatives, or what downstream actions they enable. Parameters are typed but lack constraints (enums, ranges). No error handling guidance. Output schemas are not documented. Naming is clear (verb_noun pattern), but parameter descriptions are minimal.
Measured survival statistics per category: how many identities tracked, % that lasted 7+ days, median lifespan in days, average APY retention. The survivorship map.
The outcome history ("receipt") for an opportunity: APY retention, TVL change since first sighting, days observed, whether it is still live. Pass either a stable_fp or a category+action.
Current ranked DeFi opportunities from the latest scan, with realization flags (tvlFlight = trap). Filter by category, chain, max risk, or minimum return.
Proven-durable opportunities (the "safe anchor"): still live, 7+ days observed, APY retention ≥0.85, TVL stable. Ranked by retention-adjusted return.
Opportunities the engine has flagged as exit-liquidity traps: yield held while TVL fled ≥50%. Currently live in the pool.
Output schemas not documented. LLMs cannot plan downstream actions or extract required fields without knowing what each tool returns.
Descriptions lack LLM-optimized guidance. No explanation of WHEN to use each tool vs. alternatives (e.g., when to call list_opportunities vs. list_survivors vs. list_traps). Descriptions are 45 - 60 chars; baseline is 194 chars.
Parameters lack constraints. 'category' accepts free-form strings (e.g., 'YIELD, CLM, FUNDING, ALPHA, LIQUIDATION') but is not declared as an enum. 'maxRisk' and 'minReturnPct' have no min/max bounds. LLMs will hallucinate invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not document what happens on invalid input, missing data, or service failures. LLMs have no recovery path.
Parameter descriptions are minimal (5 - 20 chars). 'stable_fp' has no explanation of what a fingerprint is or how to obtain one. 'category' and 'action' in get_receipt lack guidance on mutual exclusivity with 'stable_fp'.