mcpField
J
jbnu-lms-student

jbnu-lms-student

ローカル
github.com/moon0825科学・教育07 週間前に更新

jbnu-lms-student について

jbnu-lms-studentは、全北大学の学生向けにLMSの通知、課題、締切、授業資料をAIクライアントで確認できるローカルの読み取り専用MCPサーバーです。ブラウザーで認証し、セッションを端末内に保存して、情報源や原文へのリンク付きで学業情報をまとめます。

主な機能

  1. 01LMSの読み取り専用照会
  2. 02毎日の概要と週間計画
  3. 03通知・課題・提出状況の確認
  4. 04授業資料の検索とダウンロード
  5. 05ログインセッションのローカル保存
  6. 06時刻・情報源・原文リンクの表示

活用シーン

  1. 01今日の対応事項の確認
  2. 02今週の課題と締切の整理
  3. 03新着通知や授業資料の変更確認
  4. 04課題の最終提出状況の確認

MCP 対応

ローカルのSTDIO MCPサーバーとして、AIクライアントに25個のLMS照会ツールを提供します。LMS操作は読み取り専用で、ブラウザーでユーザーが認証します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"moon0825-jbnu-lms-student": {
"command": "npx",
"args": [
"-y",
"jbnu-lms-mcp"
]
}
}
}
起動コマンドnpx -y jbnu-lms-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmjbnu-lms-mcp0.8.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

전북대학교

전북대 LMS 학업비서

공지부터 과제 마감, 제출 상태, 수업자료까지.
학생이 지금 해야 할 일을 먼저 보여 주는 비공식 로컬 MCP입니다.

읽기 전용 LMS · 패스키 지원 · Windows + macOS · 25개 도구 · 사용자 승인 피드백

비공식 학생 도구: 전북대학교가 운영하거나 보증하는 공식 서비스가 아닙니다. 학교 명칭과 UI 자산의 권리는 전북대학교에 있으며, 공개 배포 전에는 공식 UI 사용 지침을 확인해야 합니다.

전북대학교 LMS(JBNU LXP, https://lms.jbnu.ac.kr)에 로그인한 학생이 Claude Desktop·Codex 같은 AI 클라이언트에서 "오늘 해야 할 일 알려줘", "이번 주 과제와 마감일 정리해줘", "새로 올라온 공지 알려줘" 처럼 물어볼 수 있게 해 주는 로컬 STDIO MCP 서버입니다. 모든 LMS 기능은 조회 전용이며, 로그인은 사용자가 브라우저에서 직접(패스키·2차 인증 포함) 완료합니다.

한눈에 보는 경험

묻는 말먼저 받는 답
오늘 뭐 해야 해?놓치면 안 되는 일 최대 3개와 근거
이번 주 일정 짜줘제출 상태·남은 시간 기준 학습 계획
뭐가 새로 올라왔어?마지막 확인 이후 공지·과제·자료 변경점
이 과제 뭐 내야 해?요구사항·제출물·주의사항과 원문 링크
놓친 것 있나?마감·공지·과제 변경을 합친 학생 확인함과 상위 행동 3개
이거 최종 제출됐어?과제 상세 화면을 다시 읽은 제출 판정·근거·주의사항
  • 비밀번호·패스키·인증 코드를 절대 입력받지 않습니다.
  • LMS 세션은 Windows DPAPI 또는 macOS Keychain으로 내 PC에만 보관합니다.
  • LMS 데이터와 인증정보는 lms.jbnu.ac.kr 이외로 전송하지 않습니다. 문제 신고·기능 제안은 사용자가 전송 내용을 확인하고 승인한 경우에만 로컬 보관함 또는 설정된 HTTPS 수집기로 접수합니다.

1. 가장 쉬운 설치 (Windows / macOS)

준비물은 Node.js 22 이상과 Chrome 또는 Edge입니다. 폴더를 만들거나 소스 코드를 내려받을 필요가 없습니다.

Codex

Windows는 PowerShell, Mac은 터미널에 아래 한 줄을 붙여넣습니다.

npx -y jbnu-lms-mcp@latest setup --client codex
Claude Desktop
npx -y jbnu-lms-mcp@latest setup --client claude

명령이 환경을 점검하고 기존 설정을 백업한 뒤 MCP를 등록하고 로그인 창을 엽니다. 전북대 아이디·비밀번호·패스키·2차 인증은 브라우저에서 직접 완료합니다. 실제 LMS 홈에 수강 과목이 보이면 Windows는 창을 그대로 두고, Mac은 방금 열린 로그인용 Chrome/Edge 창만 닫습니다. 완료 메시지가 나오면 Codex 또는 Claude Desktop을 완전히 종료했다가 다시 실행하면 됩니다.

Claude Desktop에서는 GitHub Release의 .mcpb 설치 파일도 사용할 수 있습니다. 개발자용 소스 설치와 수동 설정은 설치 안내서에 분리했습니다.

2. 첫 사용

Claude 에서 이렇게 물어보세요.

오늘 해야 할 일 알려줘

처음이면 도구가 자동 제어가 없는 로그인용 일반 브라우저 창을 LMS /my/에서 엽니다. LMS 로그인 페이지가 만든 공식 리다이렉트로 통합로그인에 들어간 뒤, 세 번째 아이디 로그인 탭을 선택해 아이디·비밀번호로 1차 인증한 뒤, 다음 2차 인증 화면에서 패스키를 선택하세요. 실제 수강 과목이 보이는 LMS 화면에 도착하면 Windows는 창을 그대로 두고, Mac은 방금 열린 로그인용 Chrome/Edge 창만 닫습니다. 도구가 LMS 쿠키만 읽어 검증하고, 원래 질문을 이어서 처리합니다. 두 번째 패스키 인증 로그인 탭의 비밀번호 없는 단독 로그인과는 다른 경로입니다. 인증이 끝나면 LMS 세션은 Windows DPAPI 또는 macOS Keychain에 저장하고, 전용 브라우저에는 LMS 쿠키만 남겨 원문 보기에 재사용합니다. 비밀번호·자동완성·방문 기록·SSO 쿠키·사이트 저장소·캐시는 자동 정리합니다. 패스키 인증에 필요한 팝업은 이 전용 창에서만 허용됩니다.

로그인만 다시 할 수도 있습니다.

npx -y jbnu-lms-mcp@latest login

3. 이런 질문에 답합니다

질문사용하는 도구
오늘 해야 할 일 알려줘get_daily_briefing
놓친 것 있나? 중요한 것만 보여줘get_attention_inbox
이번 주 과제와 마감일 정리해줘get_weekly_study_plan, get_upcoming_deadlines
새로 올라온 공지사항 알려줘get_announcements(only_new), get_recent_changes
이 공지/과제 원문 열어줘open_lms_source
이 과제 요구사항과 제출물을 분석해줘get_assignment_detail
이 과제가 최종 제출됐는지 다시 확인해줘check_assignment_submission
캘린더에 넣을 확정 일정만 찾아줘get_calendar_sync_candidates
이번 주차 수업자료를 찾아줘get_course_materials(week)
지난번 확인 이후 변경된 내용만 보여줘get_recent_changes
그 파일 내려받아 줘download_course_material
이 오류를 개발자에게 신고해줘get_feedback_status, report_lms_problem
이런 기능을 추가해달라고 제안해줘get_feedback_status, suggest_lms_feature
전송 못 한 신고를 다시 보내줘retry_feedback_delivery
내 로컬 신고 기록을 지워줘discard_local_feedback

전체 도구 25개의 입력·출력은 docs/05-tool-spec.md 에 있습니다.

응답에는 항상 기준 시각(Asia/Seoul), 로그인 상태, 마지막 동기화 시각, 데이터 출처(Moodle API / 웹 AJAX / LMS 화면 해석 / AI 추정)와 원문 URL 이 붙습니다. 실패하면 영향 범위·자동 복구·바로 실행할 다음 행동·비식별 진단 ID를 함께 안내하며, 일부 강좌만 실패한 결과는 완전한 빈 결과와 구분합니다. 과제는 마감·남은 시간·제출 상태·지각 허용 여부를, 공지는 📌 고정(중요)·🆕 새 글·📎 첨부 여부를 표시합니다. 자료를 다시 내려받으면 SHA-256으로 같은 파일인지 확인해 중복 복사본을 만들지 않습니다.

4. 認証方式の概要

全北大学の LMS は統合認証(SSO)専用です。モバイルウェブサービス自体は有効ですが、ログイン方式はアプリ内の認証情報方式(typeoflogin=1)であり、ブラウザー SSO トークンの発行経路(launch.php)は有効になっていません。二要素認証を回避したり、パスワードをツールに渡したりしないため、ブラウザーセッション方式を使用します(調査根拠:docs/03-auth-decision-record.md)。 そのため、このツールは次のように動作します。

  1. 専用のアプリ用ブラウザープロファイルで Chrome/Edge ウィンドウを開き、ユーザーが直接 SSO・パスキーによる認証を完了します
  2. ログイン済みのプロファイルから LMS セッション Cookie と sesskey のみを抽出し、Windows DPAPI または macOS Keychain に保存します
  3. 成功すると、LMS 以外の Cookie とパスワード・自動入力・閲覧履歴・サイトのストレージ・キャッシュを消去し、Chrome がユーザーアカウントで暗号化した LMS Cookie のみを、元の内容を表示するために保持します
  4. 以降の参照はブラウザーを使わずに、Moodle ウェブ AJAX API と LMS 画面の解析で行います
  5. 公式トークンを取得できた場合(学校の方針変更時)は、自動的に公式 REST API を優先して使用します

ログインウィンドウの方式は 2 種類あります。

モード説明設定
plain(デフォルト)自動化を一切行わない通常のブラウザーです。Windows では LMS のホーム画面を検出して専用ウィンドウを終了し、Mac ではユーザーがログイン用ウィンドウのみを閉じるとセッションを検証・保存しますJBNU_LMS_LOGIN_MODE=plain
assisted(実験的)Playwright でログイン完了を検出します。SSO に開発者ツールだと判断される可能性があるため、推奨しませんJBNU_LMS_LOGIN_MODE=assisted

利便性のため、サーバーの起動中は 20 分ごとにセッションを延長(キープアライブ)します。無効にするには JBNU_LMS_KEEPALIVE=0 を設定してください。

5. コマンドラインツール

npx -y jbnu-lms-mcp@latest setup --client codex   # Codex 등록 + 로그인
npx -y jbnu-lms-mcp@latest setup --client claude  # Claude 등록 + 로그인
npx -y jbnu-lms-mcp@latest login                  # 브라우저 로그인
npx -y jbnu-lms-mcp@latest status --verify        # 연결 상태
npx -y jbnu-lms-mcp@latest logout                 # 세션 삭제
npx -y jbnu-lms-mcp@latest doctor                 # 환경 점검

6. 環境変数

変数デフォルト値説明
JBNU_LMS_BASE_URLhttps://lms.jbnu.ac.krLMS のアドレス
JBNU_LMS_DATA_DIRWindows: %LOCALAPPDATA%\jbnu-lms-mcp / Mac: ~/.jbnu-lms-mcpプロファイル・スナップショットフォルダー。Mac のセッション本文は Keychain に保存
JBNU_LMS_BROWSER自動(Chrome→Edge)chrome、msedge、または実行ファイルのパス
JBNU_LMS_RETAIN_BROWSER_PROFILE1元の内容を表示するための LMS 専用プロファイルを保持します。0 の場合はログイン成功後すぐに破棄します
JBNU_LMS_LOGIN_MODEplainplain を推奨します。assisted は実験的です
JBNU_LMS_AUTO_LOGIN1セッションの有効期限が切れた際に、自動的にログインウィンドウを開きます
JBNU_LMS_AUTO_LOGIN_WAIT_SEC90自動ログインの待機時間
JBNU_LMS_KEEPALIVE / JBNU_LMS_KEEPALIVE_MIN1 / 20セッション延長の有効・無効 / 間隔(分)
JBNU_LMS_DOWNLOAD_DIR~/Downloads/jbnu-lms資料の保存フォルダー
JBNU_LMS_TIMEOUT_MS20000リクエストのタイムアウト時間
JBNU_LMS_MIN_INTERVAL_MS / JBNU_LMS_MAX_CONCURRENCY250 / 3リクエストの間隔制限
JBNU_LMS_LOG_LEVELwarnsilent error warn info debug(stderr)
JBNU_LMS_FEEDBACK_URLなし問題報告・機能提案をすぐに送信する HTTPS webhook。未設定の場合はローカルで受け付けます
JBNU_LMS_FEEDBACK_TOKENなし任意の webhook Bearer トークン。応答・ログ・レポートには保存しません
JBNU_LMS_FEEDBACK_TIMEOUT_MS8000フィードバックのリモート送信タイムアウト

7. 開発

npm install
npm run build
npm test                 # 단위·통합·보안 테스트 (mock LMS)
npm run test:security    # 보안 테스트만
npm run check:secrets    # 저장소에 토큰·쿠키가 없는지 검사
JBNU_LIVE=1 npm run test:live           # 실제 LMS 스모크 (로그인 필요)

ドキュメント:要件 · 脅威モデル · 認証決定記録 · 構造とデータフロー · ツール仕様 · インストールガイド · トラブルシューティング · リリースチェックリスト · 実際の LMS 検証 · 拡張ロードマップ · エラー・復旧 UX 契約 · パーサー互換性 · マルチプラットフォーム配布 · フィードバック収集契約 · ブランド・表示ポリシー · カレンダー同期 UX · 学生向け信頼性ワークフロー

8. セキュリティ上の注意事項

  • この PC にログインできる人は、保存された LMS セッションを使用できます。共有 PC では、使用後に disconnect_lms を実行してください。
  • Windows のセッションファイル(session.dpapi)と元の内容を表示するためのプロファイルは .gitignore で除外されており、絶対に共有しないでください。Mac のセッションはログイン Keychain に保存されます。専用プロファイルには LMS Cookie のみを残し、閲覧履歴・SSO Cookie・認証情報データは自動的に消去します。
  • ログ(stderr)にはトークン・Cookie・パスワード・課題本文が記録されないよう、マスキングします。
  • 問題報告・機能提案は自動送信されません。提出内容と収集場所を確認してから承認する必要があります。また、リモート送信した内容の削除・保存ポリシーは、収集サーバーの運用者に適用されます。
  • 状態を変更する機能(課題の提出、投稿、メッセージ送信)は実装されていません。拡張計画については docs/10-roadmap-extensions.md をご覧ください。

ライセンス:MIT。全北大学・ユビオンとは無関係の非公式ツールです。LMS の利用規約と学校の方針を遵守して使用してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。