A geocoding server that provides location-based services through REST API and WebSocket connections, proxying requests to an external geocoding service
Single tool 'geocode' has critical definition gaps. Tool name lacks action verb prefix (should be 'geocode_location' or 'search_geocode'). Description is adequate (89 chars, within 10-1024 range) but lacks WHEN/WHY guidance. Input schema present but parameter 'k' is undocumented and ambiguous, no description of what it controls or valid values. Output schema completely absent, LLM cannot predict return structure. No error handling guidance. Tool is read-only but lacks readOnlyHint annotation. Overall, this is a bare-minimum implementation missing 70% of production patterns.
Geocodes a text query to retrieve location information including display name, confidence scores, bounding boxes, and level polygons
Missing output schema documentation. LLM cannot predict return structure (display_name, confidence, boundingboxes, levels_polygons fields are defined in TypeScript interface but not exposed in tool schema).
Parameter 'k' lacks description. Undocumented parameter forces LLM to guess its purpose and valid values. No indication of format, range, or when to use it.
Tool name 'geocode' does not follow verb_noun convention. Should start with action verb like 'search_geocode' or 'geocode_location' to help LLM infer intent from name alone.
No error handling guidance. Tool description does not explain what to do if geocoding fails, if text is invalid, or if the service is unreachable. LLM has no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 23 | 2026-07-28+ | v2 |
Missing tool annotations. Tool is read-only but lacks readOnlyHint annotation. No idempotentHint or destructiveHint declared, limiting agent reasoning about retry safety.