kfda-mcp
Enables LLM agents to query Korean drug, DUR safety rules, and health supplement databases via MCP protocol.
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.
π― 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:
- Call
search_drug("μνλ¦°")β get warfarin info + ATC code - Call
check_dur_interaction("warfarin", "grapefruit_extract")β DUR check - 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
- Anthropic MCP β Standard protocol for LLM-tool communication
- μνμμ½νμμ μ² (MFDS) β Public health data API provider
- 곡곡λ°μ΄ν°ν¬νΈ β Korean government open data platform
νκ΅μ΄ μμ½
μμ½μ²(MFDS)μ 곡곡 OpenAPIλ₯Ό MCP νλ‘ν μ½λ‘ κ°μΌ μλ²μ λλ€. Claude, GPT κ°μ LLM μμ΄μ νΈκ° νκ΅ μμ½ν λ§μ€ν°Β·DUR μμ μ±Β·κ±΄κ°κΈ°λ₯μν μ 보λ₯Ό μμ¨μ μΌλ‘ μ‘°νν μ μμ΅λλ€.
νκ΅ ν¬μ€ AI κ°λ°μλ€μ΄ λ§€λ² μμ½μ² API wrapperλ₯Ό μ§μ λ§λ€ νμ μμ΄, μ΄ MCP μλ² νλλ‘ νμ€νλ λꡬ μ κ·Όμ μ 곡νλ κ²μ΄ λͺ©νμ λλ€.
κΈ°μ¬ νμν©λλ€. π±
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.