Moodle MCP Server について
Moodle MCP Server は、LLM が Moodle プラットフォームと連携してコース、受講者、課題、小テストを管理できるようにする MCP サーバーです。Claude などの MCP クライアントで日常の教務作業を行いたい教員や管理者向けです。
主な機能
- 01ページネーション対応のコース情報照会
- 02受講者一覧と最終アクセス日時の確認
- 03課題一覧と受講者の提出物の確認
- 04課題への成績とコメントの登録
- 05小テスト一覧と受験履歴の照会
- 06小テスト受験へのフィードバックコメントの登録
活用シーン
- 01受講者の一覧と提出状況の確認
- 02課題の採点とフィードバックコメントの記入
- 03小テストの受験内容の確認と講評
MCP 対応
本プロジェクトは MCP サーバーであり、Moodle のコース、受講者、課題、小テストに関する操作をツールとして MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Moodle MCP サーバー
LLM が Moodle プラットフォームとやり取りし、コース、学生、課題、クイズを管理できるようにする MCP(Model Context Protocol)サーバーです。
機能
コース管理ツール
get_courses- Moodle のコース情報を取得します- 利用可能なすべてのコースを安全に取得できるよう、ページネーション(
page、limit)に対応しています。 courseIdを指定すると、特定のコースを取得できます。
- 利用可能なすべてのコースを安全に取得できるよう、ページネーション(
学生管理ツール
list_students- コースに登録されている学生の一覧を取得します- 各学生の ID、名前、メールアドレス、最終アクセス時刻を表示します
課題管理ツール
get_assignments- コースで利用可能なすべての課題を取得します- ID、名前、説明、締切日、最高評点などの情報を含みます
get_student_submissions- 特定の課題に対する学生の提出物を確認します- 課題 ID が必要です。学生 ID は任意です
provide_assignment_feedback- 学生の提出物に評点とコメントを付けます- 学生 ID、課題 ID、評点、フィードバックコメントが必要です
クイズ管理ツール
get_quizzes- コースで利用可能なすべてのクイズを取得します- ID、名前、説明、開始日時と終了日時、最高評点などの情報を含みます
get_quiz_attempts- 特定のクイズに対する学生の受験状況を確認します- クイズ ID が必要です。学生 ID は任意です
provide_quiz_feedback- クイズの受験にコメントを付けます- 受験 ID とフィードバックコメントが必要です
必要条件
- Node.js(v14 以降)
- 適切な権限を持つ Moodle API トークン
- Moodle コース ID
インストール
- このリポジトリをクローンします:
git clone https://github.com/your-username/moodle-mcp-server.git
cd moodle-mcp-server
- 依存関係をインストールします:
npm install
- 次の設定を含む
.envファイルを作成します:
MOODLE_API_URL=https://your-moodle.com/webservice/rest/server.php
MOODLE_API_TOKEN=your_api_token
MOODLE_COURSE_ID=1 # Replace with your course ID
- サーバーをビルドします:
npm run build
Claude での使用方法
Claude Desktop で使用するには、サーバーの設定を追加します:
MacOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"moodle-mcp-server": {
"command": "/path/to/node",
"args": [
"/path/to/moodle-mcp-server/build/index.js"
],
"env": {
"MOODLE_API_URL": "https://your-moodle.com/webservice/rest/server.php",
"MOODLE_API_TOKEN": "your_moodle_api_token",
"MOODLE_COURSE_ID": "your_course_id"
},
"disabled": false,
"autoApprove": []
}
}
}
Windows ユーザーの場合、パスにはバックスラッシュを使用します:
{
"mcpServers": {
"moodle-mcp-server": {
"command": "C:\\path\\to\\node.exe",
"args": [
"C:\\path\\to\\moodle-mcp-server\\build\\index.js"
],
"env": {
"MOODLE_API_URL": "https://your-moodle.com/webservice/rest/server.php",
"MOODLE_API_TOKEN": "your_moodle_api_token",
"MOODLE_COURSE_ID": "your_course_id"
},
"disabled": false,
"autoApprove": []
}
}
}
設定すると、Claude は Moodle コースとやり取りして、次の操作を行えるようになります:
- 学生とその提出物の一覧を表示する
- 課題にコメントと評点を付ける
- クイズの受験状況を確認し、フィードバックを提供する
開発
自動再ビルドを有効にした開発の場合:
npm run watch
デバッグ
MCP サーバーは stdio を介して通信するため、デバッグが難しい場合があります。MCP Inspector の使用をおすすめします:
npm run inspector
Inspector は、ブラウザーでデバッグツールにアクセスするための URL を表示します。
Moodle API トークンの取得
- 管理者として Moodle サイトにログインします
- サイト管理 > プラグイン > ウェブサービス > トークンを管理 に移動します
- コース管理に必要な権限を持つ新しいトークンを作成します
- 生成されたトークンをコピーし、
.envファイルに追加します
セキュリティ
.envファイルや Moodle API トークンを他者と共有しないでください- MCP サーバーが、管理に必要なコースのみにアクセスできるようにしてください
- 必要最小限の権限を持つトークンを使用してください
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。