ShinonomeLabo/moodle-mcp
If you are the rightful owner of moodle-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Moodle MCP Server is a Node.js-based server designed to facilitate communication with Moodle's Web Service API, enabling access and manipulation of various Moodle data endpoints.
Moodle MCP Server
Model Context Protocol (MCP) server for Moodle Web Service API integration.
概要
このプロジェクトは、Moodleの Web Service API と通信するためのMCPサーバーをNode.jsで実装したものです。MoodleのさまざまなAPIエンドポイントにアクセスし、コース情報、ユーザー情報、アサインメント、Analytics API等のデータを取得・操作できます。
機能
コア機能
- 🎓 コース管理: コース一覧、コンテンツ、ユーザー登録状況の取得
- 👥 ユーザー管理: ユーザー検索、作成、更新、削除
- 📝 アサインメント: 課題の一覧取得
- 🏢 サイト情報: Moodleサイトの基本情報取得
- 🔧 汎用API呼び出し: 任意のMoodle Web Service関数の直接呼び出し
拡張機能
- 📊 成績管理: 成績の取得、レポート生成
- 💬 フォーラム: フォーラムとディスカッションの管理
- 📧 メッセージング: メッセージの送受信、通知管理
- 📁 ファイル管理: ファイルのアップロード、取得
- 📈 Analytics API: 予測モデル、インサイト、機械学習の統合
- 🎯 小テスト: クイズの管理、試行の追跡
- 📚 SCORM: SCORMパッケージの管理とトラッキング
- 👥 コホート: ユーザーグループの管理
- 🏷️ タグシステム: タグの管理と検索
- 📝 ブログ: ブログエントリの管理
- 🔐 ロール管理: ロールの割り当てと権限管理
Analytics API機能 (Moodle Analytics API対応)
- 予測モデルの管理(作成、トレーニング、評価)
- インサイトの取得と管理
- インジケーターとターゲットの設定
- 時間分割方法の管理
- モデルの統計情報とレポート
必要条件
- Node.js 18以上、またはDocker
- MoodleサイトでWeb Servicesが有効になっていること
- 有効なWeb Service Token
インストール
Option 1: Docker を使用(推奨)
Docker Hubから実行
# Docker Hubから最新版をプル
docker pull shinonomelaboratory/moodle-mcp:latest
# 環境変数を設定して実行
docker run -it --rm \
-e MOODLE_SITE_URL=https://your-moodle-site.com \
-e MOODLE_WS_TOKEN=your-webservice-token \
shinonomelaboratory/moodle-mcp:latest
Docker Composeを使用
# リポジトリをクローン
git clone https://github.com/yourusername/moodle-mcp.git
cd moodle-mcp
# 環境変数を設定
cp env.example .env
# .envファイルを編集
# Docker Composeで起動
docker-compose up -d
Option 2: ローカル環境でのインストール
# リポジトリをクローン
git clone https://github.com/yourusername/moodle-mcp.git
cd moodle-mcp
# 依存関係をインストール
npm install
# ビルド
npm run build
設定
env.exampleを.envにコピーします:
cp env.example .env
.envファイルを編集し、Moodleの設定を入力します:
MOODLE_SITE_URL=https://your-moodle-site.com
MOODLE_WS_TOKEN=your-webservice-token
使用方法
Docker環境
# Docker Composeで起動
docker-compose up -d
# ログを確認
docker-compose logs -f moodle-mcp
# 停止
docker-compose down
ローカル環境
開発モード
npm run dev
プロダクションモード
npm run build
npm start
MCPクライアントからの接続
Docker環境の場合
{
"mcpServers": {
"moodle": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "MOODLE_SITE_URL=https://your-moodle-site.com",
"-e", "MOODLE_WS_TOKEN=your-token",
"shinonomelaboratory/moodle-mcp:latest"
]
}
}
}
ローカル環境の場合
{
"mcpServers": {
"moodle": {
"command": "node",
"args": ["/path/to/moodle-mcp/dist/index.js"],
"env": {
"MOODLE_SITE_URL": "https://your-moodle-site.com",
"MOODLE_WS_TOKEN": "your-token"
}
}
}
}
利用可能なツール
基本ツール
get_site_info
Moodleサイトの基本情報を取得します。
get_users
ユーザーを検索して情報を取得します。
searchKey: 検索キー (username, email, firstname, lastname)searchValue: 検索値
get_courses
コース一覧を取得します。
ids: コースID配列(オプション)
get_user_courses
特定ユーザーのコース一覧を取得します。
userId: ユーザーID
get_course_contents
コースのコンテンツとモジュールを取得します。
courseId: コースID
get_assignments
アサインメント(課題)を取得します。
courseIds: コースID配列(オプション)
拡張ツール
get_grades
成績を取得します。
courseId: コースIDcomponent: コンポーネント名(オプション)activityId: 活動ID(オプション)userIds: ユーザーID配列(オプション)
get_forums
フォーラムを取得します。
courseIds: コースID配列(オプション)
get_categories
コースカテゴリを取得します。
criteria: 検索条件(オプション)addSubcategories: サブカテゴリを含める
Analytics APIツール
analytics_get_models
Analytics予測モデルを取得します。
includeDisabled: 無効なモデルを含める
analytics_get_insights
Analyticsインサイトを取得します。
modelId: モデルID(オプション)contextId: コンテキストID(オプション)userId: ユーザーID(オプション)status: インサイトのステータス
analytics_train_model
Analyticsモデルをトレーニングします。
modelId: モデルID
analytics_predict_model
Analyticsモデルから予測を取得します。
modelId: モデルID
call_function
任意のMoodle Web Service関数を直接呼び出します。
functionName: 関数名params: パラメータ(オプション)
この汎用ツールを使用することで、上記にリストされていない任意のMoodle Web Service APIを呼び出すことができます。
開発
スクリプト
npm run build- TypeScriptをコンパイルnpm run dev- 開発モードで実行(ホットリロード)npm run lint- ESLintでコードをチェックnpm run format- Prettierでコードをフォーマットnpm test- テストを実行
Docker開発環境
# 開発用イメージをビルド
docker build -t moodle-mcp:dev .
# 開発コンテナーを起動
docker run -it --rm \
-v $(pwd):/app \
-e MOODLE_SITE_URL=https://your-moodle-site.com \
-e MOODLE_WS_TOKEN=your-token \
moodle-mcp:dev
アーキテクチャ
プロジェクトは以下のような構造になっています:
src/
├── index.ts # MCPサーバーのエントリーポイント
├── services/
│ └── moodleClient.ts # Moodle API通信クライアント
├── handlers/
│ ├── extendedHandlers.ts # 拡張API機能
│ ├── analyticsHandlers.ts # Analytics API
│ └── comprehensiveHandlers.ts # 包括的なAPI機能
└── types/
├── moodle.ts # 基本的なMoodle型定義
└── analytics.ts # Analytics API型定義
Docker Hub
このプロジェクトのDockerイメージはDocker Hubで公開されています。
利用可能なタグ:
latest- 最新の安定版v1.0.0,v1.0,v1- 特定のバージョンmain- 開発版(mainブランチ)
# 最新版を取得
docker pull shinonomelaboratory/moodle-mcp:latest
# 特定のバージョンを取得
docker pull shinonomelaboratory/moodle-mcp:v1.0.0