Strong foundation with 6 well-defined tools covering a cohesive domain (Korean holiday calculations). All tools have clear verb-noun naming (check_holiday, list_holidays, etc.), detailed descriptions (100-200 chars), and complete input schemas with type constraints and descriptions. Parameters use proper Zod validation with regex patterns, enums, min/max bounds, and defaults. Output is text-based rather than structured JSON, which limits downstream tool chaining. Error handling is present but minimal, no recovery guidance or actionable error messages. Security is solid (read-only operations, no secrets). Composition is excellent, each tool has one clear responsibility and parameters chain logically (e.g., from/to dates, includeLaborDay flag reused across tools).
기준일에서 영업일 N일 뒤(또는 앞)의 날짜를 구한다. 주말과 공휴일은 건너뛴다. "3영업일 내 처리", "5영업일 후 마감" 같은 날짜를 계산할 때 쓴다. days에 음수를 넣으면 과거로 센다.
특정 날짜가 한국 공휴일인지, 영업일인지 확인한다. 요일과 공휴일 이름도 함께 알려준다. 날짜를 생략하면 한국 시각 기준 오늘을 본다.
두 날짜 사이의 영업일 수를 센다 (주말과 공휴일 제외, 시작일과 종료일 포함). 마감일까지 실제 며칠 일할 수 있는지 계산할 때 쓴다.
특정 연도(또는 특정 월)의 한국 공휴일 전체 목록을 반환한다. 대체공휴일, 임시공휴일, 선거일을 모두 포함한다. 조회 가능 범위는 2015~2050년.
특정 연도의 연휴(주말과 공휴일이 이어져 쉬는 구간)를 길이와 함께 알려준다. 여행 계획이나 휴가 설계에 쓴다.
기준일 이후로 다가오는 공휴일을 순서대로 알려준다. 각 공휴일까지 며칠 남았는지도 함께 계산한다. "다음 공휴일 언제야?" 같은 질문에 쓴다.
Output is unstructured text (via text() helper) rather than structured JSON. Downstream tools cannot parse dates, counts, or holiday names programmatically. Agents must extract data via LLM reasoning, wasting tokens and introducing parsing errors.
Error messages lack recovery guidance. E.g., 'Invalid year' does not suggest valid range (2015 - 2050). 'Start date after end date' does not guide the agent to swap parameters. Errors should be actionable per pattern:recovery-guide.
No tool annotations (readOnlyHint, idempotentHint). All 6 tools are read-only and idempotent, but this is not declared in the schema. Clients cannot optimize caching or retry logic without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 84 | 2026-07-28+ | v2 |
Parameter descriptions use Korean examples and context (e.g., '관공서 기준이면 false, 일반 사기업 기준이면 true'). While culturally appropriate, non-Korean-speaking LLMs may misinterpret the intent. Consider English translations or clearer boolean semantics.
No pagination or result limits documented for list_holidays and list_long_weekends. If a user queries 2015 - 2050 (36 years), the response could be very large. Recommend capping results and offering pagination.