This gives the user the location of their device. Requires running https://github.com/RhetTbull/locationator on the device on port 8000.
Single tool 'get_current_location' with minimal input schema (empty object), basic description lacking context, and no parameter descriptions. Tool naming is clear and follows verb_noun pattern. Output schema is present but response structure includes both structuredContent and text variants without clear guidance. No error handling documented. Tool registration visible with annotations. Overall definition quality is below median due to sparse parameter/error documentation and incomplete descriptions.
Returns the latitude and longitude of the user's device.
Input schema is empty object {} with no parameters defined. While this tool legitimately takes no user-provided input, the schema lacks any documentation of preconditions (e.g., that locationator service must be running on port 8000).
Tool description is only 66 characters and lacks critical context: (1) When to call it vs alternatives, (2) Preconditions (locationator service required on localhost:8000), (3) What happens on failure (service not running, invalid response), (4) Typical use cases.
No error handling guidance. If the locationator service is not running on port 8000, fetch() will fail with a network error. The tool provides no recovery hints (e.g., 'Ensure locationator is running on localhost:8000 before trying again').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 48 | - | v1 |
Output schema documentation mixes structuredContent (object with latitude/longitude) and content array (text variant). The response structure is unclear: LLM must infer which fields it should use and when. Documentation should clarify the dual response format.
No validation or error categorization for edge cases: What if the HTTP response is not valid JSON? What if latitude/longitude are missing or invalid? What if the service returns a 5xx error? Zod parsing will throw but the error won't reach the LLM with actionable guidance.