MCP server for querying Korean school information and schedules from the NEIS (National Education Information System) API
Three tools with basic verb-noun naming (get_*), but descriptions are minimal (10-60 chars, well below the 194-char baseline). Input schemas are present with type declarations but lack descriptions for every parameter. No output schema documentation. Error handling is absent from tool definitions. The server implements a degraded mode when API keys are missing, but this is not surfaced in tool descriptions, leaving agents unaware of functional limitations.
학교 이름을 입력으로 정보를 조회합니다.
학교 코드와 교육청 코드를 입력으로 일정을 조회합니다.
학교 이름을 입력으로 일정을 조회합니다.(일정: YYYYMMDD)
All parameter descriptions missing. Rubric requires every parameter to have a description explaining what it controls. 'school_name', 'school_code', 'org_code', 'from_date', 'to_date' have type but no guidance on format, constraints, or purpose.
Tool descriptions are too short (10 - 60 chars vs. 194-char baseline). Descriptions lack WHAT the tool does, WHEN to use it, and any prerequisites. LLMs cannot determine when to select these tools over alternatives.
No output schema documented. Agents cannot plan downstream calls or extract required fields. The neis_api.py code shows complex nested structures (school_num, school_name[], school_code[], org_name[], org_code[], valid_grade[6][]) but tool definitions do not declare these.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Date format constraints not documented. Parameters 'from_date' and 'to_date' expect YYYYMMDD format but descriptions do not state this. LLMs will guess and pass invalid formats.
Degraded mode (limited to 5 results when API key missing) is not surfaced in tool descriptions. Agents are unaware that results may be truncated, leading to incomplete data handling.