TypeScript MCP Server boilerplate with example tools for greeting, calculations, time queries, image generation, geocoding, and weather forecasts
Server has 6 tools with schemas and descriptions, but quality is uneven. Most tools follow the verb_noun naming convention well (greeting, calculator, get_time, generate_image, geocode, get_weather). Descriptions are present but mostly generic Korean translations without LLM-optimized guidance on WHEN to use tools or WHAT they return. Schemas are properly defined with Zod, types are correct, and most parameters have descriptions. However, descriptions lack actionable recovery guidance for errors, and several parameter descriptions are minimal (e.g., 'timeZone' for get_time). No tool annotations (readOnlyHint, destructiveHint) are present despite all tools being marked READ_ONLY. Error handling is basic, no guidance to agents on what to do if a call fails.
계산기
이미지 생성 도구
지오코딩 도구: 주소/도시명으로 좌표 검색
시간 조회
날씨 정보 도구: Open-Meteo API 사용
인사하기
No tool annotations despite all tools being marked READ_ONLY. Missing readOnlyHint/destructiveHint/idempotentHint metadata that helps agents understand side effects.
Error handling lacks recovery guidance. generate_image catches errors but provides only a generic message. No guidance to LLM on what to do next (retry? use fallback? ask user?). Other tools have minimal error handling.
Tool descriptions are minimal and not LLM-optimized. Most are single-word Korean translations (e.g., '인사하기', '계산기', '시간 조회'). None explain WHEN to use the tool, WHAT it returns, or how it differs from related tools. Missing actionable context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Parameter 'timeZone' in get_time has no guidance on valid format (IANA timezone strings? UTC±HH:MM?). LLM must guess or trial-error. Constraint should be documented.
generate_image requires HF_TOKEN environment variable but does not document this dependency in the tool description. If token is missing, tool fails silently to the agent.
Output schemas are not documented. Agents do not know what fields to expect in responses (e.g., geocode returns 'name', 'latitude', 'longitude', 'type', 'importance', 'address', but this is not declared in the tool definition).