MCP server that searches Naver Map for places (restaurants, cafes, etc.) based on queries, with support for sorting by reviews or relevance
Single tool with basic structure but significant gaps. Tool name 'search_naver_places' follows verb_noun convention (+). Input schema present with types and defaults (+). However, description is adequate but generic (108 chars, below ideal 150-200 range). Parameter descriptions exist but lack detail on constraints (e.g., sort_by enum values not formally constrained, max_results range not specified). Output schema not documented, LLM cannot predict response structure. No error handling guidance; exceptions return generic error dicts. No tool annotations (readOnlyHint present semantically but not declared). Overall: functional but below production baseline.
Searches Naver Map for places (like restaurants, cafes) based on a query. Can prioritize popular places based on review counts ('reviews') or relevance ('accuracy').
Output schema not documented. LLM cannot predict response structure (list of dicts with name, category, address, road_address fields). Agents cannot plan downstream operations or extract data reliably.
Parameter 'sort_by' lacks enum constraint. Description says 'reviews' or 'accuracy' but no formal enum declaration. LLM may hallucinate invalid values like 'popularity' or 'rating'.
Parameter 'max_results' lacks range specification. Description omits min/max bounds. Code clamps to [1,5] but LLM has no visibility into this constraint and may request 100+ results.
Error responses return generic dicts like {"error": "..."}. No recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal. E.g., 'Missing credentials' should suggest checking environment setup.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Tool description (108 chars) is below ideal range (150-200). Lacks WHEN to use guidance and prerequisite clarity. Does not explain that Naver API credentials are required or what 'reviews' vs 'accuracy' sorting actually means to the user.