moodle-mcp について
moodle-mcpは、Moodleの課題や提出物を確認する教師向けのMCPサーバーです。ファイルのダウンロードに対応し、成績やフィードバックの保存は教師の確認後に行います。
主な機能
- 01コースと課題の表示
- 02提出状況と内容の確認
- 03提出ファイルのダウンロード
- 04確認後の成績とフィードバックの保存
- 05確認後の提出物の修正差し戻し
- 06HTMLの除去と参加者メールの非表示
活用シーン
- 01教師の確認が必要な提出物の特定
- 02コース内の学生の課題確認
- 03課題確認用ファイルのダウンロード
- 04承認後の採点とフィードバック
MCP 対応
Moodle WebサービスREST APIを介し、stdio MCPクライアントにコース、課題、提出物、ファイル、採点のツールを提供します。学生に見える採点や提出物の変更には確認が必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @av-leschinskiy/moodle-mcpMOODLE_URLMoodle site address (wwwroot), e.g. https://moodle.example.orgMOODLE_TOKEN_FILEシークレットWhere moodle-mcp-login saves the token (path is resolved via homedir())MOODLE_TOKENシークレットWeb service token override (CI / smoke tests)MOODLE_TIMEOUTTimeout of a single API request (ms)MOODLE_CHROMEChrome/Chromium binary for moodle-mcp-login (looked up in PATH by default)MOODLE_DEBUG1/true/yes/on enables debug output to stderr and debug level in the host log channelローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
9掲載時のツール一覧 · 今日に更新
このツールにパラメーターはありません。
詳細
Moodle MCP Server
Moodle Webサービス REST APIを利用する、AIアシスタント(Claude Code、Cursor、Codexなどのstdioクライアント)向けMCPサーバーです。教師向けに作られており、アシスタントはコース、課題、学生の提出物を確認し、提出ファイルをダウンロードして、教師として採点とフィードバックを保存できます。これらの操作は、教師が確認した後にのみ実行されます。学生向けのMoodle MCPサーバーとは異なり、課題の確認と採点に重点を置いています。
このサーバーは、モバイルWebサービス(moodle_mobile_app)が有効なあらゆるMoodleサイトで動作します。トークンはMoodleモバイルアプリと同じ方法で発行されるため、キャプチャ認証がある外部OAuthプロバイダー経由のログインにも対応しています。
前提条件
- Node.js ≥ 22。
moodle-mcp-loginコマンドを実行するためのGoogle ChromeまたはChromium。- Moodleサイトでモバイルアプリへのアクセスが有効になっていること(サイト管理 → モバイルアプリ)。
確認するには、
<site>/admin/tool/mobile/launch.phpがエラーを返さずに開くことを確認してください。
クイックスタート
以下の例ではhttps://moodle.example.orgを使用しています。ブラウザーに表示されるMoodleのアドレス(スキーム、ホスト、パス)に置き換えてください。末尾のスラッシュの有無は問いません。
-
マシンごとに一度ログインします。また、ツールからログインエラーが返された場合は、その都度ログインしてください (Moodleのログインとサーバートークン、ロシア語):
MOODLE_URL=https://moodle.example.org npx -y -p @av-leschinskiy/moodle-mcp moodle-mcp-loginChromeウィンドウが開きます。通常どおりサイトにログインし、キャプチャ認証をご自身で完了してください。コマンドは
Logged in as <name> on <site>を表示して、ウィンドウを閉じます。-pを指定しない場合、npxはログインコマンドではなくサーバーを起動します。ChromeはPATHから検索されます。macOSとWindowsでは、MOODLE_CHROMEにパスを設定してください。 -
クライアントにサーバーを追加します。Claude Codeの場合:
claude mcp add moodle -e MOODLE_URL=https://moodle.example.org -- npx -y @av-leschinskiy/moodle-mcpすべてのプロジェクトで有効にするには、
-s userを追加します。指定しない場合は、現在のプロジェクトでのみ有効になります。Codexの場合。コマンドを使うか、
~/.codex/config.tomlに以下のブロックを追加します。codex mcp add moodle --env MOODLE_URL=https://moodle.example.org -- npx -y @av-leschinskiy/moodle-mcp[mcp_servers.moodle] command = "npx" args = ["-y", "@av-leschinskiy/moodle-mcp"] env = { MOODLE_URL = "https://moodle.example.org" }Cursorなどのクライアントの場合、コマンドに
npx -y @av-leschinskiy/moodle-mcpを指定し、MOODLE_URL変数を設定するstdioサーバーとして追加します。{ "mcpServers": { "moodle": { "command": "npx", "args": ["-y", "@av-leschinskiy/moodle-mcp"], "env": { "MOODLE_URL": "https://moodle.example.org" } } } } -
確認として、アシスタントに「自分のMoodleコースを表示して」と依頼します。
リポジトリをクローンしている場合は、npxの代わりにnode <clone>/dist/index.jsとnode <clone>/dist/cli/login.jsを使用してください。dist/はコミット済みのため、ビルドは不要です。
内容
合計10個のツールがあり、そのうち3個はユーザーの確認が必要です。
| カテゴリ | ツール | 確認 | 対応内容 |
|---|---|---|---|
| サイト | 2 | — | 自分の情報、Moodleのバージョン、利用可能な機能、自分のコース |
| 課題と提出物 | 4 | — | コースの課題、参加者と提出状況、コース全体で教師の対応が必要なもの、提出物の詳細 |
| ファイル | 1 | — | 提出ファイルのディスクへのダウンロード |
| 採点 | 3 | 3 | 評点とフィードバック、提出物へのコメント、提出物を再提出用に差し戻す |
名前の一覧
サイト
moodle_list_coursesmoodle_site_info
課題と提出物
moodle_get_submissionmoodle_list_assignmentsmoodle_list_pending_submissionsmoodle_list_submissions
ファイル
moodle_download_file
採点
moodle_add_submission_comment— 確認が必要moodle_revert_submission_to_draft— 確認が必要moodle_save_grade— 確認が必要
サーバーはあなたに代わって操作します。Moodleのインターフェースであなたが確認・変更できるものと同じものを確認・変更します。ホストが確認を求めるのは、学生に表示される書き込み操作(フィードバック付きの評点、提出物へのコメント、提出物を下書きに戻す操作(destructiveHint: true))のみです。ファイルのダウンロードも書き込みを伴いますが、あなたのディスクにのみ保存されるため、確認は必要ありません。
モデルのコンテキストに合わせて、レスポンスは短縮されます。説明や提出物のHTMLはプレーンテキストに変換され、時刻はISO形式になり、未設定の評点はnullに変換されます。また、参加者のメールアドレスは返されません。
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
MOODLE_URL | はい | — | Moodle サイトのアドレス(wwwroot)、例:https://moodle.example.org |
MOODLE_TOKEN_FILE | — | ~/.config/mcp-moodle/token.json | moodle-mcp-login がトークンを保存する場所(パスは homedir() を使って解決されます) |
MOODLE_TOKEN | — | — | Web サービストークンの上書き(CI/スモークテスト) |
MOODLE_TIMEOUT | — | 30000 | 1 回の API リクエストのタイムアウト(ms) |
MOODLE_CHROME | — | — | moodle-mcp-login 用の Chrome/Chromium バイナリ(デフォルトでは PATH 内から検索されます) |
MOODLE_DEBUG | — | false | 1/true/yes/on を設定すると、stderr へのデバッグ出力と、ホストのログチャネルでの debug レベルのログが有効になります |
トークンファイルの権限は 0600 で、発行先のサイトアドレスが保存されています。MOODLE_URL と一致しない場合、サーバーは moodle-mcp-login の実行を求めます。サーバーはリクエストのたびにファイルを読み込むため、再ログイン後にホストを再起動する必要はありません。トークンはエラーメッセージ、ログ、ツールのレスポンス(ファイル URL を含む)から除去されます。
ログインに使用する Chrome プロファイルは、メインのプロファイルとは別に保存されます(~/.config/mcp-moodle/chrome-profile)。サイトの Cookie は保持されるため、多くの場合、パスワードを入力せずに再ログインできます。
開発
npm install # also enables the git hooks (.githooks)
npm run dev # tsx, no compilation
npm run build # native TypeScript 7 → dist/
npm run verify # typecheck + lint + tests + docs check
MOODLE_URL=… npm run smoke # read-only tool chain against a live Moodle
npm run build のみでビルドしてください。devDependencies には 2 つのコンパイラバージョンが含まれています。詳細。dist/ はコミット済みです。pre-commit フックがビルドとステージングを行い、パッチバージョンを更新して、上記の表を再生成します。アーキテクチャとルールは AGENTS.md(ロシア語)に記載されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。