HIRA Disease MCP
by yoonscare
README.md
# HIRA Disease MCP
건강보험심사평가원 질병정보서비스를 Claude custom connector에서 바로 쓰기 위한 원격 MCP 서버입니다.
한의사 대상 강의에서 사용할 수 있도록 기본값은 `medTp=2` 한방 기준으로 잡았습니다. 의과(양방) 기준으로 조회하려면 `medTp=1`을 사용하면 됩니다.
[](https://vercel.com/new/clone?repository-url=https://github.com/yoonscare/hira-disease-mcp)
## Quick Start For Claude
Claude custom connector에 넣을 주소는 아래 둘 중 하나입니다.
### Option A. 공개 서버를 바로 쓰는 경우
대부분의 사용자는 아래 주소만 복사해서 Claude custom connector에 넣으면 됩니다.
```text
https://hira-disease-mcp.vercel.app/mcp?oc=YOUR_DATA_GO_KR_SERVICE_KEY
```
여기서 바꾸는 부분은 마지막의 `YOUR_DATA_GO_KR_SERVICE_KEY`뿐입니다.
공공데이터포털 인증키는 가능하면 **Encoding 인증키**를 사용하세요. 인증키에 `+`, `/`, `=` 같은 문자가 들어가면 URL에서 깨질 수 있습니다.
### Option B. 강의자가 별도 도메인을 제공한 경우
강의자가 `hiradisease.vercel.app` 같은 별도 주소를 제공했다면 그 주소를 그대로 사용하세요.
```text
https://hiradisease.vercel.app/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY
```
법률 MCP처럼 짧은 파라미터도 지원합니다.
```text
https://hiradisease.vercel.app/mcp?oc=YOUR_DATA_GO_KR_SERVICE_KEY
```
### Option C. 직접 배포해서 쓰는 경우
위의 **Deploy with Vercel** 버튼을 눌러 본인 Vercel에 배포합니다.
배포가 끝나면 Vercel이 이런 주소를 줍니다.
```text
https://your-project-name.vercel.app
```
그 주소 뒤에 `/mcp?key=본인_API키`를 붙입니다.
```text
https://your-project-name.vercel.app/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY
```
## What Is `YOUR_DOMAIN`?
`YOUR_DOMAIN`은 직접 입력하는 단어가 아닙니다.
MCP 서버가 배포된 실제 인터넷 주소를 뜻합니다.
| Situation | Connector URL |
| --- | --- |
| 공개 서버 바로 사용 | `https://hira-disease-mcp.vercel.app/mcp?oc=YOUR_DATA_GO_KR_SERVICE_KEY` |
| 강의자가 별도 도메인을 제공 | `https://hiradisease.vercel.app/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY` |
| 내 Vercel 프로젝트 사용 | `https://your-project-name.vercel.app/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY` |
| 내 커스텀 도메인 사용 | `https://my-domain.com/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY` |
즉, README나 예시에서 보이는 `YOUR_DOMAIN`은 아래 부분입니다.
```text
https://YOUR_DOMAIN/mcp?key=...
^^^^^^^^^^^
실제 배포 도메인
```
처음 사용하는 사람은 `YOUR_DOMAIN`을 직접 고민하지 말고, 강의자가 제공한 완성 URL 또는 Vercel 배포 후 나온 URL을 복사하면 됩니다.
## What It Does
- 질병명/상병코드 검색
- 질병 성별·연령별 통계 조회
- 질병 입원·외래별 통계 조회
- 질병 의료기관 종별 통계 조회
- 질병 의료기관 지역별 통계 조회
공공데이터포털의 `건강보험심사평가원_질병정보서비스`는 XML REST API이며, 질병명칭/코드조회와 여러 질병 통계를 제공합니다.
Source: https://www.data.go.kr/data/15119055/openapi.do
## Who Can Use This?
한의사만 사용할 수 있는 도구가 아닙니다.
HIRA 질병정보서비스는 의과(양방)·한방 구분값을 제공하므로, 한의사뿐 아니라 의사, 보건의료 연구자, 보험·심사 관련 실무자, 의료 데이터 교육자도 사용할 수 있습니다.
`medTp` 값은 아래처럼 사용합니다.
| medTp | Meaning |
| --- | --- |
| `1` | 의과(양방) |
| `2` | 한방 |
이 repo는 한의사 강의용 편의를 위해 기본값만 `medTp=2`로 둔 것이고, 도구 입력에서 `medTp=1`을 지정하면 의과 기준으로 조회할 수 있습니다.
## Claude Connector URL Formats
이 서버는 아래 형식을 모두 지원합니다.
```text
https://DEPLOYED_DOMAIN/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY
https://DEPLOYED_DOMAIN/mcp?oc=YOUR_DATA_GO_KR_SERVICE_KEY
https://DEPLOYED_DOMAIN/mcp?serviceKey=YOUR_DATA_GO_KR_SERVICE_KEY
```
고급 사용자는 헤더 방식도 사용할 수 있습니다.
```text
x-api-key: YOUR_DATA_GO_KR_SERVICE_KEY
Authorization: Bearer YOUR_DATA_GO_KR_SERVICE_KEY
```
> URL 쿼리에 API 키를 넣으면 브라우저 기록, 프록시 로그, 배포 플랫폼 로그에 남을 수 있습니다. 강의용·개인용 연결에는 편하지만 공개 공유는 하지 마세요.
## Get A Service Key
1. https://www.data.go.kr 접속
2. 회원가입 또는 로그인
3. `건강보험심사평가원 질병정보서비스` 검색
4. 원하는 Open API 선택
5. `활용신청` 클릭
6. 개발단계로 신청
7. 마이페이지 → 개발계정 → 인증키 확인
8. Claude connector URL의 `key=` 또는 `oc=` 뒤에 입력
Claude connector URL에는 가능하면 **Encoding 인증키**를 넣으세요.
공공데이터포털 안내에 따르면 개발계정은 자동승인이고, 개발계정 트래픽은 10,000건입니다.
## Tools
### `hira_search_disease`
질병명 또는 상병코드로 HIRA 질병 정보를 검색합니다.
Example:
```json
{
"searchText": "요추염좌",
"diseaseType": "SICK_NM",
"medTp": 2,
"numOfRows": 10
}
```
### `hira_disease_gender_age_stats`
상병코드 기준 성별·연령별 통계를 조회합니다.
```json
{
"sickCd": "J00",
"year": 2024,
"medTp": 2
}
```
### `hira_disease_inout_stats`
상병코드 기준 입원·외래별 통계를 조회합니다.
### `hira_disease_institution_type_stats`
상병코드 기준 의료기관 종별 통계를 조회합니다.
### `hira_disease_region_stats`
상병코드 기준 의료기관 지역별 통계를 조회합니다.
## Example Questions For Claude
처음 사용할 때는 `한방`, `의과`만 쓰기보다 `medTp` 값을 함께 적어주면 더 안전합니다.
공식 명세 기준:
| 기준 | medTp |
| --- | --- |
| 의과(양방) | `1` |
| 한방 | `2` |
```text
HIRA 질병정보 MCP로 요추염좌를 한방 기준, 즉 medTp=2로 검색하고 관련 상병코드를 알려줘.
```
```text
J00 상병코드의 2024년 한방 기준, 즉 medTp=2 성별·연령별 통계를 요약해줘.
```
```text
감기 관련 상병을 한방 기준, 즉 medTp=2로 검색한 뒤 한의원 강의에서 설명하기 좋게 정리해줘.
```
```text
HIRA 질병정보 MCP로 요추염좌 관련 질병을 먼저 검색해줘. 그 다음 적절한 상병코드를 골라서 한방 기준 medTp=2와 의과 기준 medTp=1의 2024년 성별·연령별 통계를 비교해줘.
```
```text
HIRA 질병정보 MCP로 요추염좌 관련 상병코드를 찾고, 한방 기준 medTp=2와 의과 기준 medTp=1에서 입원·외래 통계가 어떻게 다른지 비교해줘. 강의에서 설명하기 쉽게 핵심만 정리해줘.
```
```text
HIRA 질병정보 MCP가 연결되어 있는지 확인하고, 사용할 수 있는 도구 목록과 각 도구로 할 수 있는 일을 짧게 설명해줘.
```
## Deploy To Vercel
가장 쉬운 방법은 README 상단의 **Deploy with Vercel** 버튼을 누르는 것입니다.
CLI로 직접 배포하려면:
```bash
npm install
npm run build
npx vercel
```
Vercel에 배포되면 `/mcp`가 `/api/mcp`로 rewrite됩니다.
```text
https://YOUR_PROJECT.vercel.app/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY
```
Claude connector에는 Vercel 프로젝트 홈 주소가 아니라, 반드시 `/mcp?key=...`까지 붙인 주소를 넣어야 합니다.
## Local Development
```bash
npm install
npm run dev
```
Health check:
```bash
curl http://localhost:3000/health
```
MCP endpoint:
```text
http://localhost:3000/mcp?key=YOUR_DATA_GO_KR_SERVICE_KEY
```
## Local Stdio MCP
For Claude Desktop or local MCP clients:
```json
{
"mcpServers": {
"hira-disease": {
"command": "npx",
"args": ["hira-disease-mcp"],
"env": {
"HIRA_SERVICE_KEY": "YOUR_DATA_GO_KR_SERVICE_KEY"
}
}
}
}
```
## Notes
- HIRA changed the disease API base path to `diseaseInfoService1` and operation names ending in `1`.
- This server uses `getDissNameCodeList1`, `getDissByGenderAgeStats1`, `getDissByHsptlzFrgnStats1`, `getDissByClassesStats1`, and `getDissByAreaStats1`.
- HIRA `medTp` code: `1` = medicine/western medicine, `2` = Korean medicine.
- The default `medTp=2` is intended for Korean medicine lecture use cases.
## License
MIT
TDQS
A3.6/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct statistical dimension (gender/age, inpatient/outpatient, institution type, region) plus a search tool, with no overlap in purposes.
Naming Consistency5/5
All tools follow the consistent pattern 'hira_disease_<specific_dimension>', using snake_case uniformly.
Tool Count5/5
5 tools is well-scoped for a focused domain of disease statistics, covering core breakdowns without unnecessary bloat.
Completeness4/5
The set covers search and major statistical breakdowns, but lacks a tool for overall aggregated statistics (e.g., total counts) which could be useful.
Maintenance
ActivityStale
ResponsivenessNo issues