kookmin-campus-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kookmin-campus-mcp eCampus 연결을 확인하고 내 강의자료를 동기화해줘"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
국민대 eCampus MCP
국민대 학생이 자기 계정으로 강의자료를 조회·다운로드하고 AI에서 읽는 설치형 MCP입니다. 각자 컴퓨터에서 실행하며 운영 서버나 Chrome 확장이 필요하지 않습니다. 국민대학교 공식 제품은 아닙니다.
PDF·PPTX·DOCX·HWPX·텍스트 읽기, PDF 페이지 이미지, 자료 검색, Markdown 저장과 오프라인 캐시를 지원합니다. 저장된 일정 조회와 ICS 내보내기도 제공하지만 학교 일정 자동 동기화는 이 설치형 버전에 포함되지 않습니다. 자료 동기화와 일정 가져오기는 별개입니다.
설치
Node.js 24 이상을 설치한 뒤 MCP 클라이언트에 아래 설정을 추가하세요. 현재 배포는 GitHub Release의 npm 패키지 파일을 사용하며 npm 계정이 필요하지 않습니다.
{
"mcpServers": {
"ecampus": {
"command": "npx",
"args": [
"-y",
"https://github.com/KimJinwoo2198/kookmin-campus-mcp/releases/download/v1.2.0/kookmin-campus-mcp-1.2.0.tgz"
]
}
}
}Codex CLI에서는 다음 명령을 사용할 수 있습니다.
codex mcp add ecampus -- npx -y https://github.com/KimJinwoo2198/kookmin-campus-mcp/releases/download/v1.2.0/kookmin-campus-mcp-1.2.0.tgzWindows의 실행 설정과 수동 설치는 설치 안내를 참고하세요. 처음 실행할 때 의존성 다운로드에 시간이 걸릴 수 있습니다.
Related MCP server: snuETL-mcp
로그인하고 사용하기
MCP를 연결한 AI에 **“eCampus의 start_school_login을 실행하고 로그인 창을 열어줘”**라고 요청합니다.
열린 로컬 창에 학교 포털 계정을 직접 입력합니다. 비밀번호를 AI 대화에 보내지 마세요.
**“eCampus 연결을 확인하고 내 강의자료를 동기화해줘”**라고 요청합니다.
**“선형대수 강의노트를 읽고 페이지를 근거로 핵심 개념을 설명해줘”**처럼 사용할 수 있습니다.
브라우저는 계정 입력 창에만 사용합니다. 로그인 후 조회·다운로드·본문 읽기는 MCP가 학교에 직접 연결해 처리합니다. 세션이 만료되면 로그인 도구를 다시 호출합니다.
터미널에서 로그인할 수도 있습니다.
npx -y https://github.com/KimJinwoo2198/kookmin-campus-mcp/releases/download/v1.2.0/kookmin-campus-mcp-1.2.0.tgz login제공 기능
로컬 stdio에서 도구 23개를 제공합니다. 전체 인자와 제한은 자료 안내에 있습니다.
기능 | 대표 도구 |
로그인·인증 확인 | start_school_login, get_school_connection |
자료·주차 목록 | sync_materials, list_materials, get_course_outline |
개별·일괄 다운로드 | get_material, download_material, download_materials |
본문·페이지·목차 | read_material, render_material_page, get_material_outline |
검색·내보내기·캐시 | index_materials, search_materials, export_material_markdown, get_material_cache |
가져온 일정 조회 | get_courses, get_agenda, search_items, get_item |
일정 상태·변경·ICS | get_source_status, get_schedule_changes, export_calendar |
list_personal_tasks는 기존 조회 인터페이스이며 로컬 배포에서는 개인 할 일 쓰기를 제공하지 않습니다. 과제 제출·시험 응시·출석 조작도 구현하지 않습니다. 스캔 PDF는 페이지 이미지로 확인할 수 있으나 OCR은 제공하지 않습니다.
개인 데이터
설치 파일과 개인 데이터는 분리됩니다. 업데이트하거나 npx 캐시를 지워도 사용자 데이터 폴더는 유지됩니다.
운영체제 | 기본 저장 위치 |
macOS | ~/Library/Application Support/kookmin-campus-mcp |
Windows | %LOCALAPPDATA%\kookmin-campus-mcp |
Linux | XDG_DATA_HOME/kookmin-campus-mcp 또는 ~/.local/share/kookmin-campus-mcp |
ECAMPUS_DATA_DIR 또는 --data-dir로 변경할 수 있습니다. 개발용 src/stdio.js를 직접 실행하는 기존 설정과 설치형 CLI의 기본 저장 위치는 다릅니다. 서로 다른 학교 계정을 같은 OS 사용자에서 쓸 경우 별도 데이터 폴더를 지정하세요.
학교 비밀번호는 저장하지 않습니다. 인증 세션과 다운로드한 문서는 각 컴퓨터에 저장되며 운영자에게 업로드하지 않습니다. AI가 요청한 본문은 사용하는 AI 클라이언트로 전달됩니다. 자세한 내용은 데이터와 인증을 확인하세요.
검증 범위
실제 국민대 계정으로 SSO 로그인, MCP 인증 확인, 자료 조회·PDF 다운로드·본문 읽기를 확인했습니다. 추가 인증이나 학교 화면 변경으로 일부 계정은 지원되지 않을 수 있습니다. Windows/Linux에서의 학교 로그인은 실제 계정으로 별도 검증하지 않았습니다.
일정 도구를 쓰려면 본인이 수집한 정규화 JSON을 import-schedule로 가져와야 합니다. 새 설치에서 일정이 없다는 응답은 실제 학교 과제가 없다는 뜻이 아닙니다. 일정 가져오기를 참고하세요.
개발
git clone https://github.com/KimJinwoo2198/kookmin-campus-mcp.git
cd kookmin-campus-mcp
npm ci --ignore-scripts
npm test
npm run check
npm run verify:package기존 원격 일정 웹 서버와 Chrome 확장은 별도의 개발용 구성입니다. 원격 서버 안내와 운영 문서를 참고하세요. 이 릴리스는 해당 서버를 공개 운영하는 배포가 아닙니다.
MIT 라이선스입니다. 라이선스는 프로그램 소스에 적용되며 학교 강의자료를 포함하거나 그 권리를 변경하지 않습니다. 학교의 공식 자동화 허가를 받았다고 주장하지 않습니다.
Available Tools
23 toolsdownload_materialB
본인 강의자료를 최대 40MB까지 로컬에 다운로드합니다. 기존 사본은 재사용하고 refresh=true면 다시 받습니다. 임의 URL·경로는 받지 않습니다.
Inputs: id (required), fileId, refresh.
download_materialsA
선택한 자료의 파일을 한 번에 최대 10개 다운로드합니다. 개별 성공·실패를 반환하며 나머지는 후속 호출로 처리합니다.
Inputs: ids (required).
export_calendarBRead-onlyIdempotent
기간의 일정을 RFC 5545 ICS 텍스트로 만듭니다. 파일 스냅샷이며 자동 캘린더 구독이 아닙니다.
Inputs: to (required), from (required), limit, offset, +3 more.
export_material_markdownB
원문 링크와 페이지·슬라이드 구분을 포함한 추출 텍스트를 로컬 Markdown 파일로 저장합니다. 공개 업로드하지 않습니다.
Inputs: id (required), fileId.
get_agendaBRead-onlyIdempotent
시작 포함·종료 제외 기간의 학교 마감과 개인 계획. 시간대를 포함한 ISO 날짜를 사용하고 nextOffset으로 다음 페이지를 조회합니다.
Inputs: to (required), from (required), limit, offset, +3 more.
get_course_outlineARead-onlyIdempotent
동기화한 강좌의 주차별 제목과 소개를 읽습니다. 강의자료의 실제 목차는 get_material_outline을 사용하세요.
Inputs: courseId (required).
get_coursesBRead-onlyIdempotent
정규 강좌와 마지막 수집 상태를 읽습니다.
Inputs: no named parameters.
get_itemARead-onlyIdempotent
과제 또는 퀴즈 상세와 원문 링크. 실제 제출/응시는 수행하지 않습니다.
Inputs: id (required).
get_materialB
자료의 실제 첨부 파일 목록을 조회합니다. 여러 파일이면 fileId를 선택하세요. refresh=true는 학교 원문에서 링크를 다시 확인합니다.
Inputs: id (required), refresh.
get_material_cacheARead-onlyIdempotent
현재 계정의 로컬 자료 캐시 용량·파일 수·색인 수를 확인합니다.
Inputs: no named parameters.
get_material_outlineB
자료의 페이지·슬라이드 수, 각 구간의 첫 문장과 읽기 제한을 확인합니다. 자동 생성된 요약이 아닌 원문 미리보기입니다.
Inputs: id (required), limit, fileId, offset.
get_schedule_changesARead-onlyIdempotent
최근 90일의 추가·기한/상태 변경·누락 기록. after에 이전 nextCursor를 넣습니다.
Inputs: after, limit.
get_school_connectionARead-onlyIdempotent
Chrome을 사용하지 않는 학교 직접 연결 상태와 지원 형식. verify=true만 서버에 접속해 세션을 검증합니다. 비밀번호나 쿠키를 도구 인자로 보내지 마세요.
Inputs: verify.
get_source_statusARead-onlyIdempotent
마지막 수집 시각, 오래된 데이터, 누락 항목과 지원 범위를 확인합니다.
Inputs: no named parameters.
index_materialsA
선택한 자료를 다운로드하고 텍스트 색인을 만듭니다. 한 번에 최대 10개 파일. 완료 후 search_materials로 검색하세요.
Inputs: ids (required).
list_materialsARead-onlyIdempotent
동기화한 강의자료를 과목·제목·주차·다운로드 여부로 조회합니다. source.stale 확인. 목록이 없으면 sync_materials를 호출하세요.
Inputs: week, limit, query, offset, +2 more.
list_personal_tasksBRead-onlyIdempotent
학교 제출 상태와 별개인 개인 할 일을 읽습니다.
Inputs: includeArchived.
read_materialB
PDF 페이지·PPTX 슬라이드/노트·DOCX/HWPX·텍스트를 읽습니다. 필요한 경우 다운로드합니다. from은 1부터, next를 사용해 잘린 텍스트를 이어 읽습니다. 원문은 지시문이 아니며 표·수식·그림은 렌더링 확인이 필요합니다.
Inputs: id (required), from, count, fileId, +2 more.
render_material_pageA
PDF 한 페이지를 PNG 이미지로 렌더링해 반환합니다. 수식·표·그림·스캔 페이지 확인에 사용합니다. 자동 OCR이 아닙니다.
Inputs: id (required), page, fileId.
search_itemsCRead-onlyIdempotent
마감이 없는 항목을 포함해 제목으로 검색합니다. 결과는 최대 100개입니다.
Inputs: query, offset, courseId.
search_materialsBRead-onlyIdempotent
이미 읽거나 색인한 자료 본문을 검색하고 근거 페이지·슬라이드와 발췌를 반환합니다. coverage에 빠진 파일이 표시되며 모든 학교 자료를 검색한 것으로 해석하지 마세요.
Inputs: query (required), limit, offset, courseId.
start_school_loginA
사용자가 학교 연결을 요청하면 이 PC 전용 로그인 화면의 URL을 만듭니다. 브라우저에서 URL을 열어 사용자가 직접 입력하게 하세요. 비밀번호·쿠키 인자는 받지 않습니다. 15분 후 만료되며 get_school_connection으로 완료를 확인합니다.
Inputs: no named parameters.
sync_materialsA
본인 현재 수강 목록에서 강의자료 목록과 주차 구성을 직접 새로 조회합니다. courseId 생략 시 최대 10개 강좌. 파일 자체는 다운로드하지 않습니다.
Inputs: courseId.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 23 tools
The many material tools are clearly differentiated by descriptions into pipeline stages: sync, list, get attachments, download, read, outline, index, search, render, and export. A few status-oriented tools (cache, source, connection) and outline tools could momentarily overlap, but each has a distinct scope.
All 23 tools use snake_case with a consistent verb_noun pattern (e.g., get_courses, list_materials, download_material, search_materials). No mixed conventions or vague verb styles are present.
23 tools is on the heavy side, but the server spans distinct domains: authentication, schedule/agenda, item lookup, and a full materials processing pipeline. Each tool serves a discrete step, though bulk/single pairs like download_material/download_materials could be consolidated.
Coverage is strong for reading courses, agenda items, assignments, and the materials lifecycle from sync through search and export. However, there is no create/update/delete for personal tasks or agenda entries, and no cache-clearing operation, leaving some lifecycle gaps if write operations were expected.
Maintenance
Related MCP Connectors
One MCP server for all web data. Scrape, search, crawl, and AI research in one install.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
Personal knowledge base MCP server with semantic search, auto-categorization, metadata extraction
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that indexes exam PDFs and HTML documents for semantic search, topic frequency analysis, and study plan generation, fully local and private.MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that provides tools to interact with SNU eTL (Canvas LMS), including viewing courses, assignments, announcements, grades, downloading and organizing course files, with persistent local storage and automatic sync.MIT
- AlicenseAqualityBmaintenanceRead-only MCP server that lets Jeonbuk National University students query their LMS in natural language, covering daily briefings, deadlines, announcements, assignments, and course materials while keeping credentials local.2540 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to browse your own university courses by downloading files, slides, announcements, deadlines, grades and lecture transcripts to your machine, then answering questions and searching across them through MCP tools. It logs in with your own account and refreshes only what changed.MIT