Single tool with mixed quality. The tool name 'get_yield_pools' follows verb_noun convention, but the parameter descriptions lack constraint information (enums, ranges, format). The tool description is adequate (170 chars, within 10-1024 range), but parameter descriptions are minimal and do not specify valid formats or examples. Output schema is not formally documented, the function returns a List[Dict[str, Any]], which the LLM cannot introspect. Error handling exists (try/except with ctx.error) but lacks actionable recovery guidance. No pagination support despite the underlying API potentially returning large result sets. The tool is read-only (good security posture), but overall definition completeness is mediocre.
Fetch DeFi yield pools from the yields.llama.fi API, optionally filtering by chain or project. Returns symbol, project, tvlUsd, apy, apyMean30d, and predictions for each pool.
Output schema not documented. Function returns List[Dict[str, Any]], forcing the LLM to guess field names and types. No documented structure for returned pool objects or pagination.
Parameter descriptions lack format constraints. 'chain' and 'project' parameters have minimal descriptions without examples of valid values (e.g., 'Ethereum', 'Solana', 'lido', 'aave-v3'). LLMs may hallucinate invalid filter values.
No pagination support. Large result sets could exhaust context windows. The API may return hundreds of pools, but the tool has no limit, page, or cursor parameters.
Error messages lack actionable recovery guidance. The ctx.error() call logs failures, but exceptions are re-raised without telling the LLM what to do next or how to retry.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 57 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 54 | - | v1 |
No result limiting. Tool description states it returns 'each pool' but does not cap results. Returning hundreds of yield pools in a single response dilutes context and wastes tokens.