hospital-fee-mcp
by la1av1a
README.md
# 병원 비급여 진료비 조회 MCP 서버
건강보험심사평가원의 비급여 진료비 정보를 조회할 수 있는 MCP(Model Context Protocol) 서버입니다.
## 주요 기능
- 🏥 **병원 검색**: 병원명으로 병원 검색
- 💰 **비급여 항목 검색**: 지역별, 항목별 비급여 진료비 검색
- 📍 **지역 필터링**: 시/도, 시/군/구 단위 필터링 지원
- ⚡ **캐싱**: 동일 요청에 대한 빠른 응답 (5분 TTL)
- 🔒 **CSRF 토큰 관리**: 자동 토큰 갱신
- 🏗️ **멀티모듈 구조**: 클린 아키텍처 기반 설계
## 설치
### 필요 사항
- Python 3.10 이상
- Claude Desktop 또는 MCP 호환 클라이언트
### 설정
1. 저장소 클론:
```bash
git clone https://github.com/yourusername/hospital-fee-mcp.git
cd hospital-fee-mcp
```
2. 가상환경 생성 및 활성화:
```bash
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
```
3. 의존성 설치:
```bash
pip install -r requirements.txt
```
4. Claude Desktop 설정 (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"hospital-fee": {
"command": "/path/to/hospital-fee-mcp/venv/bin/python",
"args": ["/path/to/hospital-fee-mcp/hospital_fee_mcp.py"]
}
}
}
```
5. Claude Desktop 재시작
## 사용 예시
### 항목별 검색
```
부산 해운대구에서 라섹이 제일 싼 곳은 어디야?
```
```
서울 강남구 라섹 가격 알려줘
```
```
광명시 독감 예방접종 가격
```
### 병원별 검색
```
서울연세안과 라섹 가격
```
## 제공 도구
### `search_item_by_name`
항목명과 지역으로 비급여 진료비 검색
**파라미터:**
- `item_name` (필수): 검색할 항목명 (예: 라섹, 크라운, 독감)
- `sido_name` (선택): 시/도 (예: 서울, 부산, 경기)
- `sggu_name` (선택): 시/군/구 (예: 강남구, 부산해운대구)
- `emdong_name` (선택): 읍/면/동
- `hospital_type` (선택): 병원 유형
### `search_hospital`
병원명으로 병원 검색
**파라미터:**
- `hospital_name` (필수): 병원명
### `get_hospital_fee`
특정 병원의 비급여 진료비 상세 조회
**파라미터:**
- `hospital_name` (필수): 병원명
- `hospital_index` (필수): 검색 결과 인덱스
## 프로젝트 구조
```
hospital-fee-mcp/
├── apps/
│ └── mcp_server/ # MCP 서버 구현
│ ├── main.py # 진입점
│ └── server.py # FastMCP 서버
├── core/
│ └── hospital_fee/ # 비즈니스 로직
│ ├── services.py # 서비스 계층
│ ├── region_codes.py # 지역 코드 관리
│ └── constants.py # 상수 정의
├── infra/
│ ├── hira_client/ # 건강보험심사평가원 API 클라이언트
│ │ ├── hira_api.py # API 호출
│ │ ├── csrf.py # CSRF 토큰 관리
│ │ └── settings.py # API 설정
│ └── cache/ # 캐싱
│ └── memory_cache.py # 메모리 캐시 구현
├── common/
│ ├── logging_config.py # 로깅 설정
│ └── settings.py # 공통 설정
├── data/
│ └── region_codes.json # 지역 코드 데이터
└── hospital_fee_mcp.py # MCP 서버 진입점
```
## 기술 스택
- **FastMCP**: MCP 서버 프레임워크
- **HTTPX**: 비동기 HTTP 클라이언트
- **Playwright**: CSRF 토큰 획득용 브라우저 자동화
- **asyncio**: 비동기 프로그래밍
## 주요 기술 특징
### 지역 코드 자동 추출
- API의 `sidoCd`는 `sgguCd`의 앞 2자리를 사용
- 예: `sgguCd=230005` (대구수성구) → `sidoCd=23`
### 메모리 캐싱
- TTL 기반 캐싱 (기본 5분)
- 동일 요청에 대한 빠른 응답
### CSRF 토큰 관리
- Playwright를 통한 자동 토큰 획득
- 토큰 만료 시 자동 갱신
## 데이터 출처
이 서버는 [건강보험심사평가원](https://www.hira.or.kr)의 공개 데이터를 활용합니다.
## 면책 조항
⚠️ **중요**: 이 서버가 제공하는 비급여 진료비 정보는 참고용입니다.
- 비급여 항목의 경우 추가비용 등으로 실제 가격과 상이할 수 있습니다.
- 정확한 가격은 해당 의료기관에 직접 문의해주세요.
- 이 정보를 기반으로 한 의료 결정에 대해 개발자는 책임지지 않습니다.
- 최신 정보는 건강보험심사평가원 공식 사이트를 참고하세요.
## 라이센스
MIT License - 자세한 내용은 [LICENSE](LICENSE) 파일을 참고하세요.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues