A Model Context Protocol (MCP) server for geocoding Korean addresses using Google Maps API
Single tool with minimal definition quality. Tool name 'get_coordinates' follows verb_noun convention (+), but description is only 28 chars in English (Korean description is 16 chars), below the 50-200 char baseline for LLM-optimized descriptions. Input schema present with type and description, but output schema is undocumented (no formal schema declaration visible). Error handling returns structured objects but lacks recovery guidance, LLM cannot determine if errors are retryable or what to do next. No parameter constraints (enums, ranges, patterns). Tool is READ_ONLY (good), but overall definition lacks depth for production use.
주소를 받아서 위도와 경도를 반환합니다.
Description too short (28 chars in English, 16 in Korean). Baseline is 50-200 chars. LLM cannot determine when to use this tool vs alternatives or what it returns.
Output schema not documented. Tool returns dict with 'success', 'address', 'latitude', 'longitude', 'error' fields, but no formal schema declaration visible. LLM cannot plan downstream operations or extract fields reliably.
Error responses lack recovery guidance. Returns 'error' field with message but does not tell LLM whether to retry, ask user, or abort. E.g. 'Address not found' should suggest 'Try a different address format or use a broader region.'
No input validation or constraints. 'address' parameter accepts any string. Should document expected format (e.g. 'Korean address in Korean or English, e.g. "서울시 강남구" or "Gangnam-gu, Seoul"), length limits, and what happens with invalid input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
API key exposed as environment variable without documentation of secret injection pattern. While not a parameter (good), the mcp.json example shows 'GOOGLE_CLOUD_API_KEY' in plaintext, should document secure injection via vault or credential manager.