MCP server for GeoLabel — GPS coordinates to AI-ready location context
Single tool with well-structured schema, comprehensive description, and thoughtful error handling. Tool name follows verb_noun pattern (get_location_label). Input schema includes proper types, ranges, and defaults. Description (280 chars) is LLM-optimized and includes usage guidance. Output schema documented in docstring with field-by-field explanations. Error handling is exceptional, returns actionable recovery guidance for 401, 429, 422, 502, timeout, and generic exceptions. Main gaps: no tool annotations (readOnlyHint, idempotentHint), no parameter enums despite constrained inputs (lat/lng ranges, radius bounds), and output schema not formally declared in JSON Schema format.
Identify a place from GPS coordinates and return its label, category, and live opening-hours status. Use this whenever the user provides coordinates or asks what is at a location. The response gives Claude everything needed to answer location-aware questions — place name, type, whether it is open right now, and when it closes or next opens.
Output schema not formally declared. Docstring describes fields but no JSON Schema output_schema in tool registration.
No tool annotations. Tool is read-only and idempotent but lacks readOnlyHint and idempotentHint in schema.
Numeric parameters lack formal constraints. lat/lng ranges and radius bounds (10 - 500 m) documented in text but not as JSON Schema min/max.
Error responses return dict with 'error' key but no structured error classification (retryable, user-fixable, fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |