Metadata-Version: 2.3
Name: cdm-mcp-server
Version: 0.1.0
Summary: Develop MCP Servers for automate the work processes of the Clinical Data Manager.
Author: Woohyeon Jeong
Author-email: Woohyeon Jeong <whyeo.nooc@gmail.com>
Requires-Dist: fastmcp>=3.1.0
Requires-Dist: mcp[cli]>=1.26.0
Requires-Dist: numpy>=2.4.3
Requires-Dist: openpyxl>=3.1.5
Requires-Dist: pandas>=3.0.1
Requires-Dist: xlsxwriter>=3.2.9
Requires-Python: >=3.13
Description-Content-Type: text/markdown

# Clinical Data Management MCP Server

이 프로젝트는 Clinical Data Manager(CDM)의 업무 프로세스 자동화를 위한 통합 MCP(Model Context Protocol) 서버입니다. 엑셀 비교 엔진, 구글 캘린더 연동 등 다양한 도메인별 모듈을 하나의 서버 인터페이스(server.py)를 통해 제공하여 Gemini 에이전트가 CDM 업무를 지능적으로 수행할 수 있도록 돕습니다.

## 프로젝트 구조

MCPs/
├── modules/           # 도메인별 핵심 로직 (Engines)
│   ├── __init__.py
│   ├── excel_compare.py  # 엑셀 시트 및 DB Spec 비교 엔진
│   └── calendar_maker.py # 엑셀 타임라인 파싱 및 구글 캘린더 업로드용 CSV 생성
├── server.py          # 통합 MCP 서버 엔트리포인트 (Master Gateway)
├── pyproject.toml     # 프로젝트 메타데이터 및 의존성 관리 (uv)
└── README.md          # 프로젝트 통합 가이드

---

## 시작하기

### 1. 환경 설정 (uv 사용)

이 프로젝트는 파이썬 3.13 및 고성능 패키지 관리자인 uv를 사용합니다. 별도의 파이썬 설치 없이 uv만으로 모든 환경을 구축할 수 있습니다.

# 의존성 설치 및 가상 환경(.venv) 생성
uv sync

### 2. Gemini CLI 서버 등록

Gemini CLI가 현재 프로젝트의 가상 환경을 정확히 인식하고 도구를 발견(Discovery)할 수 있도록 등록합니다. 프로젝트 루트에서 다음 명령어를 실행하세요.

# cdm-server라는 식별자로 통합 서버 등록
gemini mcp add cdm-server "uv run server.py" --scope project

- uv run server.py: 프로젝트 내 .venv를 자동으로 찾아 서버를 실행합니다.
- --scope project: 설정 파일을 현재 폴더(.gemini/settings.json)에 생성하여 프로젝트 독립성을 유지합니다.

# 디버그용 Inspector 모드
uv run mcp dev server.py

# 서버 직접 실행
uv run server.py

### 3. 등록 확인

등록된 서버의 상태와 사용 가능한 도구 목록을 확인합니다.

# CLI 명령어
gemini mcp list

# 또는 대화 중(Interactive Mode)
/mcp list

---

## 포함된 도구 (Tools)

### Excel & DB Spec Engine (modules/excel_compare.py)

- **compare_excel_sheet**: 두 엑셀 파일의 특정 시트를 비교하여 차이점(추가, 삭제, 수정)을 분석하고 리포트(`comparison_result.xlsx`)를 생성합니다. (PK 컬럼 지정 필요)
- **compare_db_spec**: CDM 전용 DB Spec 양식 워크북 전체를 비교합니다. 헤더 위치를 자동으로 인식하며, Revision History 시트를 자동 업데이트합니다.

### Calendar Maker (modules/calendar_maker.py)

- **make_google_calendar_csv**: 엑셀(Timeline/Schedule)에서 추출한 주요 일정을 구글 캘린더 업로드용 CSV 형식으로 변환합니다. 변환된 파일은 구글 캘린더에서 '설정 > 가져오기/내보내기'를 통해 즉시 등록할 수 있습니다.

---

## 사용 예시

서버가 성공적으로 연결되면 Gemini CLI 대화창에서 다음과 같이 자연어로 요청할 수 있습니다:

"이전 버전 DB Spec이랑 이번 버전을 비교해서 차이점 리포트 만들어줘. 그리고 Timeline 시트에서 일정들을 추출해서 구글 캘린더 업로드용 CSV 파일로 만들어줘."

---
