식품의약품안전처 식품영양성분DB를 MCP 도구로 제공합니다.
This server provides two read-only Korean food nutrition tools with basic MCP registration. Both tools have input schemas and descriptions, but the descriptions are minimal (under 100 chars each), parameter descriptions are in Korean, and the schema quality is inconsistent. The server follows fundamental MCP patterns but lacks the documentation depth, error handling guidance, and composition clarity expected of production-grade tools. Based on the code, tool definitions are explicitly registered in src/index.ts via server.registerTool(), so scoring is not capped at 50 for inference.
식품영양성분DB에서 제공하는 영양성분 유형 목록을 조회합니다.
식품의약품안전처 식품영양성분DB에서 식품 정보를 검색합니다. 식품명, 제조사, 카테고리 등을 기준으로 검색할 수 있습니다.
Tool descriptions are too minimal (both under 100 chars) and lack context for when/why LLMs should select them. searchFoodNutrition description does not indicate pagination support, retry behavior, or what 'DB검색' entails. getNutritionComponentTypes does not explain the purpose of the nutrition component type list or how it relates to searchFoodNutrition results.
Parameter descriptions are in Korean only (e.g., '검색할 식품명 (예: "사과", "김치")'), making them inaccessible to non-Korean-speaking developers and LLMs trained primarily on English. Descriptions should be in English or bilingual for international adoption.
No documented output/response schema. The code shows mappers (toFoodNutrition, toAmtCodeTypeResponse) that transform API responses, but the tool definitions in src/index.ts do not declare what fields the agent should expect in the response. LLMs cannot plan downstream calls without knowing the output structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 34 | - | v1 |
searchFoodNutrition accepts 8 optional parameters but provides no guidance on mutual exclusivity, defaults, or dependency relationships. For example, it is unclear whether foodNameKr and itemReportNo are interchangeable or complementary, or what happens if none are provided.
Pagination parameters (pageNo, numOfRows) are present but the tool description does not state the default page size, maximum result limit, whether pagination is required, or how total count is returned. This forces LLMs to guess pagination behavior.
No error handling guidance. The code calls an external government API (src/external/mfds/api.ts) but does not document what errors searchFoodNutrition can return (API timeout, invalid key, malformed response, rate limit), how LLMs should interpret them, or what recovery steps are available.
Tool naming: 'getNutritionComponentTypes' uses 'get' but does not follow the verb_noun pattern cleanly. A clearer name would be 'list_nutrition_components' or 'search_nutrition_types', making intent more obvious to LLMs.