MCP Hub
Back to servers

mcp-nonpayment-health

A specialized MCP server for accessing South Korean non-benefit medical expenses data, providing tools for searching medical codes, comparing hospital prices, and performing statistical analysis to support patient decision-making.

Tools
13
Updated
Jan 7, 2026
Validated
Jan 11, 2026

비급여 진료비 정보 MCP 서버 🏥

비급여 진료비 정보를 조회하고 분석하는 Model Context Protocol (MCP) 서버입니다. 건강보험심사평가원의 비급여진료비정보서비스 API를 활용하여 비급여 항목 코드 조회, 병원별 가격 정보, 통계 분석, 의사결정 지원 기능을 제공합니다.

Python 3.11+ | MCP 호환 | 라이선스: MIT

✨ 주요 기능

📋 코드 관리 도구

  • 코드 검색: 키워드로 비급여 항목 코드 검색
  • 코드 분류 체계: 코드의 분류 체계 조회
  • 코드 설명: 일반인이 이해하기 쉬운 코드 설명 제공
  • 코드 유효성 검증: 코드 유효성 및 만료일 확인

🏥 병원 정보 도구

  • 병원 검색: 특정 비급여 항목을 제공하는 병원 찾기
  • 가격 범위: 병원별 특정 항목의 가격 범위 조회
  • 가격 비교: 같은 지역 내 병원 간 가격 비교

📊 통계 분석 도구

  • 지역별 통계: 지역별 가격 통계 조회
  • 병원 종별 통계: 병원 종별 가격 비교
  • 이상 가격 탐지: 비정상적으로 높거나 낮은 가격 탐지

💡 의사결정 지원 도구

  • 최저가 옵션: 위치 기반 최저가 옵션 찾기
  • 합리적 가격 판단: 가격이 합리적인지 판단
  • 설명 리포트: 환자 친화적인 설명 리포트 생성

🚀 빠른 시작

설치

# 저장소 클론
git clone https://github.com/your-username/mcp-nonpayment-health.git
cd mcp-nonpayment-health

# 의존성 설치
pip install -r requirements.txt

설정

.env 파일을 생성하세요:

# 공공데이터포털 API 키 (필수)
# https://www.data.go.kr 에서 발급받으세요
DATA_GO_KR_API_KEY=your_api_key_here

# 서버 설정
PORT=8000                    # 서버 포트 (기본값: 8000)
HOST=0.0.0.0                 # 서버 호스트 (기본값: 0.0.0.0)
DEBUG=False                  # 디버그 모드 (기본값: False)

환경 변수 설명

변수명필수기본값설명
DATA_GO_KR_API_KEY-공공데이터포털에서 발급받은 API 키
PORT8000서버가 사용할 포트 번호
HOST0.0.0.0서버가 바인딩할 호스트 주소
DEBUGFalse디버그 모드 활성화 (True/False)

MCP 서버 실행

로컬 모드 (stdio):

python -m src.server

원격 모드 (HTTP):

python run_server.py

또는 uvicorn을 직접 사용:

uvicorn src.server_http:app --host 0.0.0.0 --port 8000

Docker를 사용한 실행

Docker Compose 사용 (권장):

# .env 파일 생성 (API 키 설정)
echo "DATA_GO_KR_API_KEY=your_api_key_here" > .env

# 서비스 시작
docker-compose up -d

# 로그 확인
docker-compose logs -f

# 서비스 중지
docker-compose down

Docker 직접 사용:

# 이미지 빌드
docker build -t nonpayment-health-mcp .

# 컨테이너 실행
docker run -d \
  -p 8001:8000 \
  -e DATA_GO_KR_API_KEY=your_api_key_here \
  --name nonpayment-health-mcp \
  nonpayment-health-mcp

개발 모드: docker-compose.yml은 개발 모드를 위해 소스 코드를 볼륨으로 마운트하여 코드 변경 시 자동으로 반영됩니다.

🛠️ 사용 가능한 도구

코드 관리 도구

1. nonpayment.code.search

키워드로 비급여 항목 코드를 검색합니다.

매개변수:

  • keyword (string, 필수): 검색 키워드 (예: "1인실", "MRI")
  • date (string, 선택): 유효성 검증 날짜 (YYYY-MM-DD 형식)

예제:

{
  "name": "nonpayment.code.search",
  "arguments": {
    "keyword": "1인실",
    "date": "2025-01-01"
  }
}

2. nonpayment.code.hierarchy

비급여 코드의 분류 체계를 조회합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드

예제:

{
  "name": "nonpayment.code.hierarchy",
  "arguments": {
    "npayCd": "RZ6410000"
  }
}

3. nonpayment.code.explain

비급여 코드에 대한 일반인이 이해하기 쉬운 설명을 제공합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드

4. nonpayment.code.validate

코드 유효성 및 만료일을 확인합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드
  • date (string, 필수): 확인할 날짜 (YYYY-MM-DD 형식)

병원 정보 도구

5. nonpayment.hospital.search

특정 비급여 항목을 제공하는 병원을 검색합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드
  • sido (string, 선택): 시/도 이름 (예: "서울", "부산")
  • sggu (string, 선택): 시/군/구 이름
  • clCd (string, 선택): 병원 종별 코드 또는 이름 (예: "상급종합", "종합병원")

6. nonpayment.hospital.price-range

특정 병원의 특정 항목에 대한 가격 범위를 조회합니다.

매개변수:

  • hospital (string, 필수): 병원 이름
  • npayCd (string, 필수): 비급여 코드

7. nonpayment.hospital.compare

같은 지역 내 병원 간 가격을 비교합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드
  • sido (string, 필수): 시/도 이름
  • sggu (string, 선택): 시/군/구 이름

통계 분석 도구

8. nonpayment.stats.by-region

비급여 항목의 지역별 가격 통계를 조회합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드

9. nonpayment.stats.by-hospital-type

병원 종별 가격 통계를 조회합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드

10. nonpayment.stats.outlier-detect

병원의 가격이 비정상적으로 높거나 낮은지 탐지합니다.

매개변수:

  • hospital (string, 필수): 병원 이름
  • npayCd (string, 필수): 비급여 코드
  • price (number, 필수): 확인할 가격

의사결정 지원 도구

11. nonpayment.decision.cheapest-option

위치를 기반으로 최저가 옵션을 찾습니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드
  • sido (string, 필수): 시/도 이름
  • sggu (string, 선택): 시/군/구 이름

12. nonpayment.decision.reasonable-price

가격이 합리적인지 판단합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드
  • price (number, 필수): 확인할 가격
  • sido (string, 선택): 시/도 이름 (지역별 비교 시 사용)

13. nonpayment.decision.explanation-report

환자 친화적인 설명 리포트를 생성합니다.

매개변수:

  • npayCd (string, 필수): 비급여 코드
  • sido (string, 선택): 시/도 이름

📋 요구사항

  • Python 3.11+
  • aiohttp - 비동기 HTTP 클라이언트
  • fastapi - HTTP 서버 프레임워크
  • uvicorn - ASGI 서버
  • mcp - Model Context Protocol SDK
  • pydantic - 데이터 검증
  • xmltodict - XML 파싱

📢 공공저작물 출처표시 (공공누리 제1유형)

본 프로젝트는 공공누리 제1유형(출처표시)으로 개방된 공공저작물을 활용하여 제작되었습니다.

본 저작물은 건강보험심사평가원에서 작성·개방한 「비급여진료비정보서비스」 공공데이터를 공공누리 제1유형(출처표시) 조건에 따라 이용하였습니다.

해당 공공데이터는 공공데이터포털(data.go.kr) https://www.data.go.kr

에서 무료로 제공됩니다.

본 프로젝트는 위 공공데이터를 기반으로 비급여 진료비 정보를 조회·분석하기 위한 MCP 서버로, 데이터의 가공·분석 결과 및 이에 대한 해석의 책임은 본 프로젝트에 있으며, 건강보험심사평가원 또는 기타 공공기관의 공식 입장이나 후원, 보증을 의미하지 않습니다.

Reviews

No reviews yet

Sign in to write a review