NEIS 교육행정정보시스템의 급식 식단 정보를 조회하는 MCP(Model Context Protocol) 서버입니다.
🔍 학교 급식 정보 조회
- 📅 일일 식단 조회
- 📊 기간별 식단 조회
- 🍳 조식/중식/석식 구분 조회
- 📋 영양 정보 및 원산지 정보 포함
🏫 학교 정보 검색
- 시도교육청 코드 조회
- 학교 코드 검색 (학교명으로 검색)
- 지역별 학교 목록 조회
- 설립 유형별 학교 검색 (국립/공립/사립)
- 📘 TypeScript
- 🟢 Node.js
- 🔌 MCP SDK
- ✅ Zod (스키마 검증)
- 🔐 dotenv (환경 변수 관리)
# 저장소 클론
git clone https://github.com/shockzinfinity/school-meal.git
# 디렉토리 이동
cd school-meal
# 의존성 설치
npm install- 환경 변수 파일 생성:
# .env.sample 파일을 .env로 복사
cp .env.sample .env.env파일을 열어 실제 값으로 수정:
# NEIS Open API 설정
NEIS_API_KEY=your_api_key_here
NEIS_API_URL=https://open.neis.go.kr/hub/mealServiceDietInfo
# 기본 학교 정보
DEFAULT_OFFICE_CODE=B10 # 예: B10 (서울특별시교육청)
DEFAULT_SCHOOL_CODE=7031138 # 학교 고유 코드- 🔑
NEIS_API_KEY: NEIS Open API 인증 키 (발급 링크) - 🌐
NEIS_API_URL: NEIS API 엔드포인트 (기본값 사용 권장) - 🏛
DEFAULT_OFFICE_CODE: 시도교육청코드 (예: 'B10'은 서울특별시교육청) - 🏫
DEFAULT_SCHOOL_CODE: 학교코드 (NEIS에서 제공하는 표준 학교코드)
# 빌드
npm run build
# 서버 실행
npm start
# 개발 모드 실행 (자동 재시작)
npm run dev# 테스트 실행
node dist/test.jsconst result = await client.callTool({
name: 'getMeal',
arguments: {
ATPT_OFCDC_SC_CODE: 'B10', // 시도교육청코드
SD_SCHUL_CODE: '7010569', // 학교코드
MLSV_YMD: '20250409', // 급식일자
MMEAL_SC_CODE: '2', // 1: 조식, 2: 중식, 3: 석식
},
});src/
├── services/
│ └── mealService.ts # NEIS API 통신 서비스
├── tools/
│ └── mealTool.ts # MCP 도구 정의
├── types/
│ └── mealTypes.ts # 타입 정의
├── resources/ # 리소스 파일
├── index.ts # 서버 엔트리포인트
└── test.ts # 테스트 코드
ISC
shockzinfinity