Skip to main content
Glama

amatta-mcp

영유아 건강 레퍼런스(국가예방접종·WHO 성장도표·영유아 건강검진·구강검진)를 LLM에게 도구로 제공하는 MCP 서버. OhRight 앱에 갇혀 있던 데이터·계산 로직을 stdio MCP 서버로 분리했다.

도구

  • compute_growth_percentile — WHO 성장도표(0–24개월) z-score·백분위 계산. 국내 성장도표 기준선(3·5·25·50·75·95·97백분위) 구간과 해당 월령 기준선 값 포함

  • list_vaccine_schedule / get_due_vaccines — NIP 백신 일정·접종 시기 (택1 백신 플래그). 선택 접종(수막구균)은 단일 접종 시점 대신 "생후 2개월부터 접종 가능 · 소아과 상담" 안내

  • list_checkups / get_next_checkup — 국가 영유아 건강검진 8회 + 구강검진 4회, 종류별 현재·다음 검진 시기

나이 문구는 소아과 관례를 따른다: 태어난 날이 생후 1일, 생후 90일까지는 "생후 N일", 이후는 "생후 M개월".

Related MCP server: BPS MCP Server

리소스

amatta://growth-reference, amatta://vaccine-master, amatta://checkup-schedule(건강검진·구강검진) — 원본 표 열람.

설치 · 사용 (npx)

별도 설치 없이 실행할 수 있다. claude_desktop_config.json:

{
  "mcpServers": {
    "amatta-mcp": {
      "command": "npx",
      "args": ["-y", "amatta-mcp"]
    }
  }
}

npm에 게시하기 전이라면 GitHub에서 바로 실행할 수도 있다:

{
  "mcpServers": {
    "amatta-mcp": {
      "command": "npx",
      "args": ["-y", "github:jkimdev/amatta-mcp"]
    }
  }
}

개발

npm install
npm test        # vitest
npm run dev     # tsx로 서버 실행
npm run build   # dist/ 로 컴파일

Claude Desktop 연결 (로컬 빌드)

소스에서 직접 빌드해 연결하려면 claude_desktop_config.json:

{
  "mcpServers": {
    "amatta-mcp": {
      "command": "node",
      "args": ["/절대경로/amatta-mcp/dist/index.js"]
    }
  }
}

npm run build 후 위 경로를 실제 절대경로로 바꾼다.

배포

npm publish로 게시한다. 게시 전 prepublishOnly가 빌드·테스트를 자동 실행하고, 배포물엔 dist/·README·LICENSE만 포함된다(files 필드).

면책

모든 응답은 참고 정보이며 진단이 아니다. 성장·접종·검진은 소아과 상담이 우선한다. 출처: WHO Child Growth Standards / 질병관리청 NIP / 국민건강보험공단 영유아 건강검진·구강검진.

라이선스

MIT — LICENSE 참고.

Available Tools

5 tools
compute_growth_percentile성장 백분위 계산A

WHO 성장도표(0–24개월)로 체중/키/머리둘레의 z-score와 백분위를 계산합니다. 참고 정보이며 진단이 아닙니다. 성장·접종·검진은 소아과에서 상담하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
sexYes
valueYes측정값 (weight=kg, height/headCircumference=cm)
measureYes
ageMonthsNo개월 나이 (0–24). birthDate 대신 직접 지정
birthDateNo생년월일 ISO YYYY-MM-DD
measureDateNo측정일 ISO YYYY-MM-DD (기본: 오늘)

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does add useful limitations: it is reference information, not a diagnosis, and is scoped to WHO charts for 0–24 months. However, it does not disclose behavior regarding missing age inputs, output format, or validation, leaving key behavioral aspects unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core function, followed by a concise disclaimer. No filler or redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter calculation tool with no output schema or annotations, the description gives the essential purpose and limitations but misses important operational details, such as how age should be specified (birthDate vs ageMonths) and what happens if it is omitted. It is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description partially supports the schema by naming weight/height/head circumference and the 0–24 month age range, which aligns with the 'measure' and 'ageMonths' fields. Schema description coverage is 67%, and the description adds context but does not explain the relationship between birthDate and ageMonths or the meaning of all parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific action ('calculates z-score and percentile') for a clear resource (WHO growth charts, 0–24 months) across three measurement types. It distinguishes from sibling vaccine/checkup tools by focusing on growth metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates that results are reference-only and advises consulting a pediatrician, which gives context, but it does not explicitly state when to choose this tool over other tools or what conditions make it inappropriate. The intended use is implied rather than directly contrasted with alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_due_vaccines접종 시기 백신 조회A

나이(일) 또는 생년월일 기준으로 맞을 때가 된 백신과 다가오는 백신을 반환합니다. 참고 정보이며 진단이 아닙니다. 성장·접종·검진은 소아과에서 상담하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
ageInDaysNo일 단위 나이. birthDate 대신 지정
birthDateNo생년월일 ISO YYYY-MM-DD (오늘 기준으로 나이 계산)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of disclosure. It accurately states the tool returns reference information and is not a diagnosis, adding a valuable safety caveat. However, it does not describe response format or any potential pitfalls like missing parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, each earning its place: one for functionality and one for the medical disclaimer. There is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with optional parameters and no output schema, the description conveys the core purpose and essential caveat. However, it lacks guidance on the no-parameter case or precedence if both parameters are supplied, which would make it more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes both parameters (ageInDays and birthDate) with 100% coverage, including the alternative relationship. The description merely repeats this ('based on age (days) or date of birth') without adding syntax or precedence details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns due and upcoming vaccines based on age in days or birth date. This specific verb+resource combination distinguishes it from sibling tools like list_vaccine_schedule or compute_growth_percentile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when age or birthdate is known, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions. It only offers a medical disclaimer about consulting a pediatrician.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_next_checkup다음 영유아 건강검진 조회A

생년월일 기준으로 현재/다음 영유아 건강검진 시기를 계산합니다. 참고 정보이며 진단이 아닙니다. 성장·접종·검진은 소아과에서 상담하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
todayNo기준일 ISO YYYY-MM-DD (기본: 오늘)
birthDateYes생년월일 ISO YYYY-MM-DD

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It does disclose that the tool provides reference information and not a diagnosis, which is a useful behavioral trait. However, it does not mention the return format or how the optional 'today' parameter influences the calculation, leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, with the first sentence stating the main purpose and the second adding an essential disclaimer. Every word earns its place, and it is front-loaded with the key function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, but without an output schema or annotations, the description should explain what the tool returns and any limitations. It does not describe the result format or the effect of the 'today' parameter, though the schema covers parameter meanings. This is a noticeable gap for an agent deciding whether to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% description coverage for both parameters, clearly explaining the meaning and default of 'today'. The description adds no new parameter-level information beyond saying the calculation is based on birth date, which is already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '계산합니다' (calculates) and clearly identifies the resource as the infant health checkup schedule, limiting to '현재/다음' (current/next). This clearly distinguishes it from sibling tools like list_checkups or get_due_vaccines, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context for the tool's use (calculating checkup timing) but does not explicitly state when to use this tool versus alternatives, nor does it mention sibling tools like list_checkups. The disclaimer about consulting a pediatrician is a limitation, not a usage guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_checkups영유아 건강검진 8회 전체A

국가 영유아 건강검진 8회 일정 전체를 반환합니다. 참고 정보이며 진단이 아닙니다. 성장·접종·검진은 소아과에서 상담하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description must carry the behavioral burden. It does so by clarifying the information is for reference only and not a diagnosis, which sets expectations appropriately for a read-only listing tool. It does not elaborate on return format, but for a zero-parameter tool this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose in the first sentence and a relevant medical disclaimer in the second. There is no redundant information or padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter tool with no output schema, the description sufficiently explains its function and caveats. It does not explicitly list the exact age ranges or contents of the 8 sessions, but this is a minor gap given the low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema fully covers everything (100% coverage). The baseline of 4 applies because there are no parameter semantics to describe, and the description need not add anything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the entire national infant/child health checkup schedule (8 sessions). The verb '반환합니다' specifies the action, and '전체' (full) differentiates from get_next_checkup which returns only the next one. The resource is distinct from vaccine or growth tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a disclaimer that it is reference information, not a diagnosis, and advises consulting a pediatrician. However, it does not explicitly mention when to use this tool versus sibling tools like list_vaccine_schedule or get_next_checkup, leaving the comparison implied by the resource name. This is adequate context but lacks explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_vaccine_scheduleNIP 백신 일정 전체A

국가예방접종(NIP) 표준 일정 전체를 반환합니다. 참고 정보이며 진단이 아닙니다. 성장·접종·검진은 소아과에서 상담하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds that this is reference information, not a diagnostic tool, and recommends pediatric consultation—valuable context beyond a simple 'returns schedule'. As a read-only, zero-parameter operation, it adequately discloses the informational nature without overstating.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the primary purpose, followed by an essential caveat. Every word earns its place; there is no fluff or repetition of schema fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with no output schema, the description provides sufficient context: what is returned (the full NIP schedule), its purpose (reference), and an important boundary (not diagnostic). It could specify the output format more concretely, but the simplicity of the tool and the disclaimer make the description adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. No parameter descriptions are needed. The description confirms that the tool returns the full schedule without requiring input, which is consistent with the empty input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('returns the entire NIP standard schedule') with a clear resource and scope. It distinguishes itself from siblings like get_due_vaccines (which likely returns personalized due vaccines) and list_checkups (which lists checkups, not vaccines), making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear context: it is reference information, not a diagnosis, and advises consulting a pediatrician. However, it does not explicitly state when to use this tool versus siblings such as get_due_vaccines or compute_growth_percentile, leaving the differentiation to implication rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updatesv0.1.0
    • First observedcompute_growth_percentile
    • First observedget_due_vaccines
    • First observedget_next_checkup
    • First observedlist_checkups
    • First observedlist_vaccine_schedule

TDQS

A4/5.0

Scored across 5 tools

Disambiguation4/5

The tools are mostly distinct: vaccine schedule lists all vaccines, while due vaccines is personalized by age; similarly, checkups list all vs. next checkup. However, the pairing of list/get for both vaccines and checkups could cause minor confusion, though descriptions clarify the difference.

Naming Consistency4/5

Naming mostly follows a verb_noun pattern (list_, get_, compute_), with list_vaccine_schedule and list_checkups being consistent. compute_growth_percentile introduces a different verb but is still clear. Minor inconsistency in verb choice prevents a perfect score.

Tool Count5/5

With 5 tools, the set is well-scoped for pediatric health reference information. Each tool covers a distinct need without redundancy, and the count is appropriate for the domain.

Completeness4/5

The domain covers vaccine schedules, growth percentiles, and checkups comprehensively. The only minor gap is the lack of a tool to retrieve details for a specific vaccine or checkup item, but the core informational needs are met.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Integrates Taiwan-specific medical data including ICD-10 codes, FDA drug databases, and nutrition information into the Model Context Protocol. It enables AI models to query clinical guidelines, verify medical codes, and convert health data into FHIR R4 standardized formats.
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Enables AI clients to access official Indonesian statistical data from Badan Pusat Statistik (BPS) through natural language queries. It provides over 20 tools for retrieving demographic, economic, and trade data with support for bilingual responses and fuzzy domain matching.
    34
    2 npm
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server that enables AI agents to assess child growth, plot growth curves, and interpret z-scores using WHO and China NHC standards.
    1
    MIT