kfda-mcp

kfda-mcp

Enables LLM agents to query Korean drug, DUR safety rules, and health supplement databases via MCP protocol.

Category
Visit Server

README

πŸ‡°πŸ‡· 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.


✨ 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

  • [x] Project scaffold + MCP SDK setup
  • [x] search_drug β€” μ˜μ•½ν’ˆ λ§ˆμŠ€ν„° βœ… live verified (νƒ€μ΄λ ˆλ†€ β†’ ATC N02BE01)
  • [x] check_dur_interaction β€” DUR λ³‘μš©κΈˆκΈ° βœ… live verified (μ•„μŠ€ν”Όλ¦°+μ™€νŒŒλ¦° β†’ 50건)
  • [x] search_supplement β€” 건기식 βœ… live verified (μ‹ν’ˆμ•ˆμ „λ‚˜λΌ C003, 비타민 검색 OK)
  • [x] 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 μ„œλ²„ ν•˜λ‚˜λ‘œ ν‘œμ€€ν™”λœ 도ꡬ 접근을 μ œκ³΅ν•˜λŠ” 것이 λͺ©ν‘œμž…λ‹ˆλ‹€.

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured