Skip to main content
Glama

πŸ‡°πŸ‡· KFDA MCP Server

MCP (Model Context Protocol) server for Korean Ministry of Food and Drug Safety (μ‹μ•½μ²˜) public OpenAPI.

LLM agents (Claude, ChatGPT, etc.) can autonomously query Korean drug master, DUR (Drug Utilization Review) safety rules, and health supplement databases through the standard MCP protocol.

DOI MCP Python License Healthcare


🎯 Why this exists

The Korean healthcare AI ecosystem lacks an open MCP server for MFDS (μ‹μ•½μ²˜) public APIs. Global MCP servers like BioMCP focus on US data (FDA, PubMed). For Korean healthcare AI applications β€” pharmacy systems, telemedicine, drug interaction checkers β€” direct access to KFDA/MFDS APIs is essential but each team has to write their own wrapper.

This project provides a standard MCP server so any LLM agent can query Korean drug safety data without bespoke integration code.


Related MCP server: pykrx-mcp

✨ Features

Tool

Description

KFDA OpenAPI

search_drug

μ˜μ•½ν’ˆ λ§ˆμŠ€ν„° 검색 (μ œν’ˆλͺ…Β·μ„±λΆ„Β·μ œμ‘°μ‚¬Β·ATC μ½”λ“œ)

μ˜μ•½ν’ˆ μ œν’ˆ ν—ˆκ°€μ •λ³΄

check_dur_interaction

두 μ•½λ¬Όμ˜ λ³‘μš©κΈˆκΈ°Β·μ—°λ ΉκΈˆκΈ°Β·μž„λΆ€κΈˆκΈ° 확인

μ˜μ•½ν’ˆ μ•ˆμ „μ‚¬μš©μ„œλΉ„μŠ€ (DUR)

search_supplement

건강기λŠ₯μ‹ν’ˆ μΈν—ˆκ°€ 정보 검색

μ‹ν’ˆμ•ˆμ „λ‚˜λΌ 건기식 OpenAPI

get_drug_easy_info

eμ•½μ€μš” (ν™˜μžμš© μ‰¬μš΄ μ•½λ¬Ό 정보) 쑰회

eμ•½μ€μš”

lookup_atc_code

ATC μ½”λ“œ β†’ μ•½λ¬Όκ΅° λΆ„λ₯˜ 정보

λ‚΄μž₯ λ§€ν•‘


πŸš€ Quick Start

1. Install

pip install kfda-mcp
# or from source
git clone https://github.com/pianovirus/kfda-mcp
cd kfda-mcp
pip install -e .

2. Get your MFDS API key

Apply for a free API key at data.go.kr (곡곡데이터포털) β€” select μ‹μ•½μ²˜ OpenAPI services.

3. Configure

Create .env:

MFDS_API_KEY=your_api_key_here

4. Run as MCP server

kfda-mcp

5. Connect from Claude Desktop

Add to ~/.config/claude/claude_desktop_config.json (or %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "kfda": {
      "command": "kfda-mcp",
      "env": {
        "MFDS_API_KEY": "your_api_key_here"
      }
    }
  }
}

Restart Claude Desktop. Now Claude can call Korean drug safety tools autonomously.


πŸ’‘ Example Usage

Ask Claude (or any MCP-compatible LLM):

"ν™˜μžκ°€ μ™€νŒŒλ¦°μ„ 볡용 쀑인데 자λͺ½ μΆ”μΆœ μ˜μ–‘μ œλ₯Ό 같이 먹어도 λ˜λŠ”μ§€ ν™•μΈν•΄μ€˜"

Claude will autonomously:

  1. Call search_drug("μ™€νŒŒλ¦°") β†’ get warfarin info + ATC code

  2. Call check_dur_interaction("warfarin", "grapefruit_extract") β†’ DUR check

  3. Synthesize a safety recommendation grounded in MFDS data


πŸ— Architecture

LLM Agent (Claude / GPT / etc.)
    β”‚
    β”‚ MCP Protocol (stdio / SSE)
    β”‚
    β–Ό
KFDA MCP Server (this project)
    β”‚
    β”‚ HTTP requests
    β”‚
    β–Ό
MFDS Public APIs
  - μ˜μ•½ν’ˆ μ œν’ˆ ν—ˆκ°€μ •λ³΄ OpenAPI
  - μ˜μ•½ν’ˆ μ•ˆμ „μ‚¬μš©μ„œλΉ„μŠ€ (DUR)
  - μ‹ν’ˆμ•ˆμ „λ‚˜λΌ 건기식 OpenAPI
  - eμ•½μ€μš”

πŸ“‹ Tool Reference

search_drug(name: str, limit: int = 10)

Search Korean drug master by product name, generic name, or manufacturer.

Returns: List of drugs with product_name, generic_name, manufacturer, atc_code, kor_indication, dosage_form.

check_dur_interaction(drug_a: str, drug_b: str)

Check DUR safety rules between two drugs (λ³‘μš©κΈˆκΈ°Β·μ—°λ ΉκΈˆκΈ°Β·μž„λΆ€κΈˆκΈ° λ“±).

Returns: List of warnings with rule_type, severity, description_kor.

search_supplement(ingredient: str | None = None, product: str | None = None)

Search μ‹μ•½μ²˜ 건강기λŠ₯μ‹ν’ˆ (functional health food) registrations.

Returns: List of supplements with product_name, manufacturer, main_ingredient, approved_function.

get_drug_easy_info(drug_name: str)

Get patient-friendly drug information from eμ•½μ€μš” (consumer-facing drug guide).

Returns: purpose, dosage, side_effects, warnings in Korean.

lookup_atc_code(atc_code: str)

Look up ATC (Anatomical Therapeutic Chemical) classification by code.

Returns: level1 ~ level5 Korean & English names, drug examples.


πŸ›£ Roadmap

  • Project scaffold + MCP SDK setup

  • search_drug β€” μ˜μ•½ν’ˆ λ§ˆμŠ€ν„° βœ… live verified (νƒ€μ΄λ ˆλ†€ β†’ ATC N02BE01)

  • check_dur_interaction β€” DUR λ³‘μš©κΈˆκΈ° βœ… live verified (μ•„μŠ€ν”Όλ¦°+μ™€νŒŒλ¦° β†’ 50건)

  • search_supplement β€” 건기식 βœ… live verified (μ‹ν’ˆμ•ˆμ „λ‚˜λΌ C003, 비타민 검색 OK)

  • get_drug_easy_info β€” eμ•½μ€μš” βœ… live verified (νƒ€μ΄λ ˆλ†€ 효λŠ₯Β·μš©λ²•Β·λΆ€μž‘μš© λ°˜ν™˜)

  • lookup_atc_code β€” ATC λ§€ν•‘ (planned)

  • Local cache layer (reduce API calls) β€” planned

  • Async batch query support β€” planned

  • Multilingual responses (ν•œ/영) β€” planned

ν˜„μž¬ μƒνƒœ: 4/4 핡심 tool λͺ¨λ‘ live 검증 μ™„λ£Œ, production-ready

  • Local cache layer (reduce API calls)

  • Async batch query support

  • Multilingual responses (ν•œ/영)


🀝 Contributing

Korean healthcare AI engineers β€” contributions welcome! Please open an issue or PR.

This project aims to be the de facto MCP server for MFDS public APIs.


πŸ“œ License

MIT Β© 2026 Myunghee Kim Β· pianovirus@naver.com


πŸ™ Acknowledgments


ν•œκ΅­μ–΄ μš”μ•½

μ‹μ•½μ²˜(MFDS)의 곡곡 OpenAPIλ₯Ό MCP ν”„λ‘œν† μ½œλ‘œ 감싼 μ„œλ²„μž…λ‹ˆλ‹€. Claude, GPT 같은 LLM μ—μ΄μ „νŠΈκ°€ ν•œκ΅­ μ˜μ•½ν’ˆ λ§ˆμŠ€ν„°Β·DUR μ•ˆμ „μ„±Β·κ±΄κ°•κΈ°λŠ₯μ‹ν’ˆ 정보λ₯Ό 자율적으둜 μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•œκ΅­ ν—¬μŠ€ AI κ°œλ°œμžλ“€μ΄ 맀번 μ‹μ•½μ²˜ API wrapperλ₯Ό 직접 λ§Œλ“€ ν•„μš” 없이, 이 MCP μ„œλ²„ ν•˜λ‚˜λ‘œ ν‘œμ€€ν™”λœ 도ꡬ 접근을 μ œκ³΅ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€.

κΈ°μ—¬ ν™˜μ˜ν•©λ‹ˆλ‹€. 🌱

Available Tools

4 tools
check_dur_interactionB

μ‹μ•½μ²˜ μ˜μ•½ν’ˆ μ•ˆμ „μ‚¬μš©μ„œλΉ„μŠ€(DUR)μ—μ„œ 두 μ•½λ¬Όμ˜ λ³‘μš©κΈˆκΈ°Β·μ—°λ ΉκΈˆκΈ° λ“± μ•ˆμ „μ„± 정보λ₯Ό ν™•μΈν•©λ‹ˆλ‹€. Check Korean Drug Utilization Review (DUR) safety rules between two drugs.

Inputs: drug_a (required), drug_b (required).

get_drug_easy_infoA

μ‹μ•½μ²˜ eμ•½μ€μš” (ν™˜μžμš© μ‰¬μš΄ μ•½λ¬Ό 정보)λ₯Ό μ‘°νšŒν•©λ‹ˆλ‹€. Get patient-friendly Korean drug information: purpose, dosage, side effects, warnings.

Inputs: drug_name (required).

search_drugA

μ‹μ•½μ²˜ μ˜μ•½ν’ˆ λ§ˆμŠ€ν„°μ—μ„œ μ•½ν’ˆμ„ κ²€μƒ‰ν•©λ‹ˆλ‹€ (Korean drug master search). μ œν’ˆλͺ…, μ„±λΆ„λͺ…, μ œμ‘°μ‚¬ λ“±μœΌλ‘œ 쑰회 κ°€λŠ₯. Returns product_name, generic_name, manufacturer, ATC code, indication.

Inputs: name (required), limit.

search_supplementA

μ‹μ•½μ²˜ μ‹ν’ˆμ•ˆμ „λ‚˜λΌ 건강기λŠ₯μ‹ν’ˆ μΈν—ˆκ°€ 정보λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€. Search Korean functional health food (건기식) registrations by ingredient or product name.

Inputs: limit, product, ingredient.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: interaction checking, patient info retrieval, drug search, and supplement search. There is no overlap or ambiguity among them.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with underscores (e.g., check_dur_interaction, search_drug). The naming is predictable and uniform.

    Tool Count5/5

    With 4 tools, the server is well-scoped for a focused domain of Korean drug and supplement information. Each tool serves a distinct function without redundancy.

    Completeness4/5

    The server covers drug search, patient information, interaction checking, and supplement searchβ€”key functionalities. Minor gaps exist (e.g., professional-level drug details), but the core workflows are supported.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Enables users to search and retrieve detailed pharmaceutical drug information from the Korea Pharmaceutical Information Center (KPIC) API. Supports drug name searches and detailed lookups by drug code including ingredients, usage, precautions, and storage information.
      2
      6
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides Korean stock market data (KOSPI, KOSDAQ, KONEX) including prices, fundamentals, investor trading, short selling, and indices via MCP protocol, enabling natural language queries from AI agents like ChatGPT and Claude.
      73 PyPI
      3
      MIT
    • F
      license
      A
      quality
      D
      maintenance
      Enables querying Korean public datasets (apartment prices, weather, air quality) via natural language using an MCP server and local LLM agent.
      5
      -