使用说明
📚 LMS MCP (Model Context Protocol)
대학 LMS(Moodle/Canvas 등)의 과제를 자동으로 탐색하고 강의계획서를 파싱하여 AI 에이전트의 컨텍스트(Context)로 만들어주는 강력한 MCP 서버입니다.
이 프로젝트는 브라우저 자동화(Playwright) 기술을 활용하여 LMS의 복잡한 구조(팝업, 다중 페이지 iFrame 등)를 뚫고, 완벽하게 정제된 마크다운 데이터만 에이전트에게 제공합니다.
🚀 주요 기능 (Features)
- 과목 및 과제 자동 스크래핑: 사용자가 수강 중인 과목과 숨겨진 미완료 과제(공지, 모듈 등)를 자동으로 찾아냅니다.
- 다중 페이지 강의계획서 파싱: 팝업이나 모달 내부에 있는 강의계획서 정보를 끝까지 스크롤하여 자동으로 읽어오고(Next 버튼 감지), AI가 읽기 좋게 **토큰 다이어트(정규식 압축)**를 수행합니다.
- 맞춤형 과제 초안 생성: 긁어온 정보를 바탕으로 일반 과제는
.md, 프로그래밍 과제는.py,.ts등의 템플릿(초안) 파일을 생성해 줍니다. - 안전한 세션 유지: 매번 로그인할 필요 없이 브라우저 세션을 재활용하며, 자격 증명(ID/PW)은 로컬
.env에만 안전하게 보관됩니다. (클라우드 전송 ❌)
⚙️ 사전 요구사항 (Prerequisites)
- Node.js (v18 이상)
- Gemini CLI 또는 MCP 표준을 지원하는 AI 에이전트 환경(Cursor, VSCode 등)
📦 설치 가이드 (Installation)
-
레포지토리 클론 및 폴더 이동
git clone https://github.com/YOUR_USERNAME/lms-mcp.git cd lms-mcp -
의존성 설치 Playwright 및 컴파일 도구를 설치합니다.
npm install -
브라우저 드라이버 설치 (최초 1회) Playwright가 자동화를 시도할 브라우저를 다운로드합니다.
npx playwright install chromium
🖼️ [여기에 설치가 성공적으로 완료된 깔끔한 터미널 스크린샷]

🔌 MCP 서버 연동 설정 (Configuration)
이 프로젝트를 사용자의 AI 에이전트(예: Gemini CLI)와 연결하려면 설정 파일에 둥지를 터주어야 합니다.
🔹 설정 파일 위치 (Gemini CLI 기준)
- Windows:
C:\Users\사용자명\.gemini\config.json - macOS/Linux:
~/.gemini/config.json
위 설정 파일을 열어 mcpServers 블록 안에 lms-mcp를 아래와 같이 추가하세요. (경로는 본인이 git clone 받은 절대 경로로 작성해야 합니다.)
{
"mcpServers": {
"lms-mcp": {
"command": "npx.cmd", // macOS의 경우 "npx" 로 변경
"args": [
"-y",
"tsx",
"C:\\Users\\user\\Desktop\\lms-mcp\\server.ts" // <--- 본인의 절대 경로로 수정하세요!
]
}
}
}
🖼️ [여기에 config.json 에 정상적으로 블록이 추가된 VSCode 화면 캡처]

🛠 사용 방법 (Usage)
MCP 서버가 연동되었다면, AI 에이전트(Gemini CLI) 내장 워크플로우를 통해 매우 쉽게 사용할 수 있습니다.
1️⃣ /init_lms (LMS 초기 셋업)
학기를 시작할 때 또는 강의계획서가 변경되었을 때 실행합니다.
- 기능: LMS에 접속(최초 시 ID/PW 요구) -> 수강 교과목 탐색 -> 각 과목의 강의계획서를 전부 읽어서
.gemini/context/과목명_index.md구조로 에이전트 두뇌에 압축 저장합니다.
> /init_lms
🖼️ [여기에 에이전트가 "교과목 목록을 발견했습니다. 진행할까요?" 라고 묻고 다중 페이지를 스캔하는 로그를 보여주는 터미널 캡처]

2️⃣ /check_assignments (과제 탐색 및 초안 생성)
교수님이 새로운 과제를 올렸는지 확인하거나, 과제를 시작하려 할 때 실행합니다.
- 기능: 공지사항, 미완료 메뉴, 강의 메인 화면을 뒤져 과제를 스크랩합니다. 발견된 과제가 코딩인지 문서인지 판별 후
drafts/폴더 내부에 작업할 빈 파일을 예쁘게 만들어 줍니다.
> /check_assignments
🖼️ [여기에 drafts/ 폴더 하위에 .ts, .md 과제 초안 파일들이 예쁘게 트리 구조로 생성된 에디터 사이드바 캡처]

🔐 보안 안내 (Security)
본 MCP 서버는 사용자의 아이디와 비밀번호를 절대 외부 서버로 전송하지 않습니다. 최초 1회 로그인 시 입력받은 정보는 프로젝트 최상단의 로컬 파일인 .env에 평문 저장되며, 이는 .gitignore에 등록되어 있어 절대 GitHub에 업로드되지 않습니다.
👨💻 기여 (Test & Contribution)
기여 방법: LmsService.ts 내의 스크래핑 정규식이 특정 학교 LMS 체계와 맞지 않는다면, 새로운 학교별 Strategy 클래스 구현 PR을 환영합니다!
그 외의 모든 개선 가능성도 환영합니다.
📝 라이선스 (License)
This project is licensed under the MIT License.