NEIS MCP Server
MCP (Model Context Protocol) server for Korean NEIS (National Education Information System).
Features
Provides 4 MCP tools to access Korean school information:
1. neis.school.search
Search for schools by name.
Input:
name(string): School name to search for
Output:
schoolCode: School identifierofficeCode: Education office codeschoolName: Full school nameaddress: School addresstype: School type
2. neis.meal
Get school meal information.
Input:
schoolCode(string): School code from searchofficeCode(string): Office code from searchymd(string, optional): Date in YYYYMMDD format (defaults to today)
Output:
date: Query datemeals: Array of meal information (breakfast, lunch, dinner)
3. neis.timetable
Get class timetable.
Input:
schoolCode(string): School code from searchgrade(string, optional): Grade levelclassName(string, optional): Class name/numberymd(string, optional): Date in YYYYMMDD format (defaults to today)
Output:
date: Query datetimetable: Array of class periods with subjects and teachers
4. neis.schedule
Get school events and schedules.
Input:
schoolCode(string): School code from searchofficeCode(string, optional): Office code from searchymd(string, optional): Date in YYYYMMDD format (defaults to today)
Output:
date: Query dateevents: Array of school events
Setup
Environment Variables
Create a .env.local file:
Get your NEIS API key from: https://open.neis.go.kr/
Installation
Development
Deploy to Vercel
Push this repository to GitHub
Import to Vercel
Add
NEIS_API_KEYenvironment variableDeploy
Usage with MCP Clients
Connect to this server using the deployed Vercel URL:
SSE Transport:
HTTP Transport:
Example Workflow
Search for a school:
neis.school.search({ name: "서울고등학교" })Use the returned codes to get meal info:
neis.meal({ schoolCode: "B100000658", officeCode: "B10", ymd: "20240115" })Get timetable:
neis.timetable({ schoolCode: "B100000658", grade: "1", className: "1" })Check school events:
neis.schedule({ schoolCode: "B100000658", officeCode: "B10" })
Tech Stack
Next.js 15 (App Router)
TypeScript
mcp-handler ^1.0.3
@modelcontextprotocol/sdk
zod (schema validation)
axios (HTTP client)
Vercel (deployment)
License
MIT
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables access to Korean school information through the National Education Information System (NEIS) API. Provides tools to search schools, retrieve meal menus, class timetables, and school event schedules.