admission-mcp-server
by ugori2
README.md
# 수시 전형 정보 검색 MCP 서버
국내 주요 대학의 2027학년도 수시 전형 정보(전형유형, 모집인원, 전형방법, 수능최저학력기준)를 검색하고, 수능 등급이 특정 전형의 수능최저학력기준을 충족하는지 계산하는 MCP 서버입니다.
이 서버는 "합격 가능성 예측"이 아니라 공개된 전형 정보 검색 + 수능최저 충족 여부 계산만 제공합니다. 수능최저 충족은 지원자격이지 합격을 보장하지 않습니다.
## 제공 도구
| 도구 | 설명 |
|---|---|
| `search_admissions(query, university, admission_type)` | 키워드/대학명/전형유형(교과·논술·학종)으로 전형 검색 |
| `get_admission_detail(admission_id)` | 특정 전형의 상세 정보(모집인원, 전형방법, 수능최저기준) 조회 |
| `list_admission_types()` | 등록된 전형유형 목록 조회 |
| `check_suneung_min(admission_id, kor, math, eng, tamgu)` | 국/수/영/탐 등급을 입력하면 해당 전형의 수능최저학력기준 충족 여부 계산 |
데이터는 `data/admissions.json`에 있으며(2026-07-12 기준, 38건), 베리타스알파의 주요 22개대 2027전형계획 분석 기사와 각 대학 입학전형 시행계획을 참고해 정리한 샘플 데이터입니다. 계열별로 기준이 세분화되어 자동 판정이 어려운 전형은 `suneung_pool` 등 구조화 필드를 비워두고 `suneung_min_text`(공식 기준 원문)만 제공합니다. 정확한 지원 자격은 반드시 각 대학 모집요강 원문으로 재확인해야 합니다.
## 기술 스택
- Python 3.11 + [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) (`FastMCP`)
- Transport: Streamable HTTP, 엔드포인트 `POST /mcp`
- `transport_security`를 명시적으로 비활성화해 클라우드 도메인에서도 정상 동작하도록 구성 (기본값은 localhost 이외 Host 헤더를 421로 거부함)
## 로컬 실행
```bash
pip install -r requirements.txt
python server.py
```
포트는 `PORT` 환경변수로 변경 가능 (기본 8080).
### 테스트
```bash
python test_client.py
```
tools/list, search_admissions, list_admission_types, get_admission_detail, check_suneung_min 전체 플로우를 콘솔에서 확인할 수 있습니다.
## Docker 빌드/실행 (선택)
```bash
docker build --platform linux/amd64 -t admission-mcp .
docker run --rm -p 8080:8080 admission-mcp
```
## PlayMCP in KC 배포
1. GitHub에 push (루트에 `Dockerfile` 포함).
2. https://playmcp.kakaocloud.io 로그인 → "+ 새 MCP 서버 등록" → "Git 소스 빌드" → Git URL/브랜치(`main`) 입력 → 등록.
3. Status가 `Active`가 되면 Endpoint URL 복사.
## PlayMCP 등록
1. https://playmcp.kakao.com 로그인 → 개발자 콘솔 → "새로운 MCP 서버 등록".
2. Endpoint URL 입력 → "정보 불러오기" (도구 4개가 보이면 성공) → "임시 등록".
3. AI 채팅으로 테스트 후 "심사 요청" → 승인되면 "전체 공개"로 전환.
4. 공모전 접수 비즈폼에 공개된 MCP 상세페이지 URL 등록 (계정당 최대 2개 MCP 서버 등록 가능).
## 프로젝트 구조
```
admission-mcp-server/
├── server.py
├── data/
│ └── admissions.json
├── test_client.py
├── requirements.txt
├── Dockerfile
└── README.md
```
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues