OpenCage forward + reverse geocoding (free key, 2500/day)
Two tools with basic schemas and minimal descriptions. Tool names are acceptable but descriptions are extremely terse (6-18 chars vs. baseline 194 chars). No output schema documented. No error handling guidance. Parameters like 'bounds' and 'no_annotations' have no descriptions at all. The 'geocode' tool description is only 16 characters ('Forward geocode.'), below the 20-char floor for meaningful descriptions.
Forward geocode.
Reverse geocode.
Parameter descriptions missing entirely. 'bounds', 'no_annotations', 'abbrv', 'language', 'limit' in geocode and 'language', 'no_annotations', 'abbrv' in reverse have null or missing descriptions.
Tool descriptions are too terse (6-18 chars). 'Forward geocode.' and 'Reverse geocode.' provide no context on when to use each tool, what they return, or prerequisites.
No output schema documented. LLMs cannot plan downstream calls or extract fields without knowing the response structure. Rubric requires 100% of A+ tools to have documented return types.
No error handling guidance. callTool() throws generic errors ('OpenCage: 429 rate-limit', 'OpenCage: invalid API key') without recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
API key passed as _apiKey parameter. While not exposed in the schema, this pattern risks leaking secrets into logs.