MCP server with tools (greet, calculator, time, geocode, get-weather, generate-image) and code-review prompt
This server provides 5 tools with consistent structure and reasonable descriptions in Korean and English. All tools have explicit input schemas with proper type definitions and descriptions. Output schemas are documented. However, the server has significant gaps: (1) Tool naming does not uniformly follow action-verb conventions, 'greet', 'time', and 'get-weather' are inconsistent in style; 'get-weather' uses a hyphen which is non-standard for tool names. (2) Tool descriptions are moderately detailed but could be more optimized for LLM selection, they lack explicit 'when to use this vs. similar tools' guidance. (3) Parameter descriptions are present but some lack format/constraint details that would help LLMs avoid invalid inputs. (4) Error handling is basic, the geocode tool does not appear to handle API failures gracefully, and several tools lack explicit recovery guidance. (5) No tool annotations (readOnlyHint, idempotentHint) are declared, which is a missed opportunity since these are read-only tools. The average parameter quality is good (3-4 params per tool, all typed and described), but the overall quality sits solidly in the 'fair to good' range due to naming inconsistencies and missing LLM-optimization guidance.
두 개의 숫자와 연산자를 입력받아 사칙연산 결과를 반환합니다.
도시 이름이나 주소를 입력받아 위도와 경도 좌표를 반환합니다.
위도와 경도 좌표, 예보 기간을 입력받아 해당 위치의 현재 날씨와 예보 정보를 제공합니다.
이름과 언어를 입력하면 인사말을 반환합니다.
특정 타임존의 현재 시간을 반환합니다.
Tool naming inconsistency and non-standard format: 'get-weather' uses hyphens (non-standard for MCP tool names, which should use underscores); 'greet' and 'time' lack action verbs; 'get-weather' is the only tool starting with 'get'. LLMs expect consistent verb_noun naming convention.
Missing tool annotations: No readOnlyHint, idempotentHint, or destructiveHint declared on any tool. All 5 tools are read-only and idempotent, this information should be explicitly signaled via tool annotations per MCP 2026-07-28 spec.
Incomplete error handling and recovery guidance: geocode tool calls external Nominatim API but no documentation of timeout behavior, rate limiting, or fallback instructions. Calculator handles division-by-zero cleanly but other tools lack explicit error classification and recovery paths.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 51 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 28 | - | v1 |
Parameter descriptions lack format/constraint details in natural language: 'timezone' parameter says 'IANA 타임존 이름' with examples but does not document what happens on invalid timezone (e.g., error message). 'forecast_days' has numeric constraints (min 1, max 16) in schema but description could emphasize the bounds more clearly.
Descriptions do not answer 'when to use this vs. similar tools': The 'geocode' tool description does not clarify why an LLM would call it vs. passing a location directly to 'get-weather', or when both are needed in sequence. This creates ambiguity in LLM tool selection.