moodle-mcp-server
moodle-mcp-server — AI駆動のLMS分析
Moodleインスタンスに何でも質問できます。数秒で構造化された回答が得られます。
moodle-mcp-server は、AIエージェントをMoodleのWebサービスAPIに直接接続するオープンソースのMCP(Model Context Protocol)サーバーです。これは、CSMediaProのより広範なAgentic Query Layer(AQL)の取り組みの背後にあるMoodleコネクタです。
レポートビルダーを学習したり、SQLを記述したり、CSVをエクスポートしたりする代わりに、平易な英語で質問するだけで、AIエージェントがLMSにクエリを実行し、構造化されたデータを返します。
プロジェクトホーム: https://csmediapro.com/products/moodle-mcp-server
npmパッケージ: https://www.npmjs.com/package/moodle-mcp-server-aql
MCPレジストリ: io.github.csmediapro/moodle-mcp-server-aql
機能
コアクエリツール — コースカタログ、ユーザー登録、課題、カテゴリナビゲーション、サイトメタデータ、ユーザー検索、キャッシュ管理
プレミアムレポートプラグイン — コース完了レポートや最近のアクティビティなどのオプションツールをプラグインランタイムを通じて追加可能
LLM非依存 — Claude、GPT、Gemini、Ollama、またはMCP互換の任意のAIクライアントで動作
LMSの変更がゼロ — Moodleの既存のWebサービスAPIを使用し、プラグインのインストールは不要
コンプライアンス対応のデータ処理 — プライバシーバイデザインによる安全で効率的なデータ処理
読み取り専用 — Moodleデータを変更することはなく、本番環境で安全
プラグイン拡張可能 — 新しいツールモジュールをディレクトリにドロップするだけで、ツールとオプションのエージェントルーティングヒントが実行時に自動登録されます
Related MCP server: Moodle MCP Server
クイックスタート
前提条件
Node.js 20+
Webサービスが有効なMoodleインスタンス
Moodle APIトークン(サイト管理 → プラグイン → Webサービス → トークンの管理)
MCPクライアントでの使用
ほとんどのユーザーは、Claude DesktopなどのMCPクライアントを介してサーバーを起動します。
{
"mcpServers": {
"moodle-mcp-server-aql": {
"command": "npx",
"args": ["-y", "moodle-mcp-server-aql"],
"env": {
"MOODLE_URL": "https://your-moodle-instance.example",
"MOODLE_TOKEN": "your-moodle-web-services-token"
}
}
}
}ソースからのセットアップ
# Clone the repo
git clone https://github.com/csmediapro/moodle-mcp-server
cd moodle-mcp-server
# Install dependencies
npm install
# Configure
cp packages/server/.env.example packages/server/.env
# Edit .env: add your MOODLE_URL and MOODLE_TOKEN
# Run (stdio mode)
npm run server:build
node packages/server/dist/index.jsユーザーフィールドスキーマ
ユーザーフィールド表示設定はMoodleインスタンスごとに生成され、ローカルの
packages/server/data/user-field-schema.json に保存されます。このファイルは、サイト固有のカスタムプロファイルフィールドを含む可能性があるため、gitによって意図的に無視されます。
Moodleサイトに接続した後、refresh_user_field_schema ツールを1回実行して、利用可能な標準およびカスタムユーザーフィールドを検出します。最小限のサンプル形状が
packages/server/data/user-field-schema.example.json に含まれています。
user-directory プラグインは、school などのトップレベルのキーにフラット化されたカスタムプロファイルフィールドを含む、正規化された完全ユーザーキャッシュを保存します。そのキャッシュが存在すると、list_users はキャッシュされたユーザーをメモリ内でフィルタリングでき、summarize_user_directory_field はキャッシュされた個別の値とカウントを返すことができます。たとえば、「ユニークな学校を表示」または「学校とそれぞれに割り当てられたユーザー数を表示」は、別のMoodleフェッチを行わずに、キャッシュされた school フィールドを要約します。
設定ID
コアは2つの異なるサーバーIDフィールドを所有しています。
server.id— 安定したマシンID、例:mcp_8f3k2q9xserver.name— 人間向けの表示ラベル
server.id がない場合、コアは1つを生成し、起動が続行される前に解決された設定ファイルに永続化します。
環境変数のオーバーライド:
MOODLE_MCP_CONFIGまたはMOODLE_MCP_SERVER_CONFIG— 設定ファイルのパスを選択SERVER_ID— 明示的なserver.idのオーバーライドSERVER_NAME— 明示的なserver.nameのオーバーライドSERVER_VERSION— 明示的なserver.versionのオーバーライド
server.id がなく、解決された設定パスが書き込み可能でない場合、起動は意図的に失敗します。
リファレンスクライアントの使用
# From the project root
cp packages/client/.env.example packages/client/.env
npm run client:dev
# Open http://localhost:3000クライアントはMoodleインスタンスを自動検出し、平易な英語で質問できるチャットインターフェースを表示します。
LLMの接続
moodle-mcp-server は、自然言語インターフェースを強化するためにAIモデルを必要とします。モデルはお客様が用意します — moodle-mcp-server コアとリファレンスクライアントは、MCP互換の任意のプロバイダーをサポートしています。
オプション1: ローカルで実行(速度とプライバシーにおすすめ)
ローカルモデルを実行すると、すべてのデータがお客様のハードウェア上に保持され、ネットワーク外に出ることはありません。最新の量子化モデルは、コンシューマーGPUやCPUのみのセットアップでも適切に動作します。
パフォーマンス: 単一のRTX 3090上の量子化24Bモデルは、最初のクエリ後に約1.5秒の応答を提供します — システムが初期化されると、ほとんどのクラウドAPIよりも高速です。
Ollama経由(最も簡単)
# Install Ollama: https://ollama.com
ollama pull gemma3:12b # Fast, reliable tool use (~200ms TTFT)
ollama pull qwen3:14b # Strong reasoning, good for complex queries
ollama pull deepseek-r1:14b # Excellent at multi-step chains次に、リファレンスクライアントを http://localhost:11434(Ollamaのデフォルト)に向けます。
llama.cpp経由(最大の制御)
# Download a GGUF model (example: Devstral 24B Q4)
# Run the llama.cpp server:
llama-server -m devstral-24b-Q4_K_M.gguf --ctx-size 60000 --port 8080リファレンスクライアントを http://localhost:8080/v1 に向けます。
推奨ローカルモデル
モデル | サイズ | 最適な用途 | ハードウェア |
Gemma 3 12B | ~7 GB VRAM | 高速なツール呼び出し、単純なクエリ | 単一コンシューマーGPU |
Qwen 3 14B | ~8.5 GB VRAM | 複雑な推論、マルチツールチェーン | 単一コンシューマーGPU |
Devstral 24B Q4 | ~14.5 GB VRAM | 最大能力、60Kコンテキスト | RTX 3090 / 4090 |
オプション2: クラウドプロバイダー
Anthropic (Claude):
export ANTHROPIC_API_KEY=sk-ant-...リファレンスクライアントのプロバイダードロップダウンで「Anthropic」を選択します。Claude Sonnetは、最も信頼性の高いツール呼び出し動作を提供します。
OpenAI (GPT):
export OPENAI_API_KEY=sk-...プロバイダードロップダウンで「OpenAI」を選択します。GPT-4oは構造化クエリで優れたパフォーマンスを発揮します。
Ollama Cloud:
ローカルOllamaと同じAPIを使用し、https://ollama.com/v1 でホストされています。良い中間点です — ローカルのコールドスタートよりも高速で、大規模なクラウドプロバイダーよりもプライベートです。
オプション3: Claude Desktop(直接MCP)
Claude Desktopは、moodle-mcp-server コアにstdio経由で直接接続します — リファレンスクライアントは不要です。
Claude Desktopの設定(claude_desktop_config.json)に追加:
{
"mcpServers": {
"moodle-mcp-server": {
"command": "node",
"args": ["/path/to/moodle-mcp-server/packages/server/dist/index.js"],
"env": {
"MOODLE_URL": "https://your-moodle-instance.com",
"MOODLE_TOKEN": "your-api-token"
}
}
}
}Claude Desktopを再起動します。サーバーのツールがClaudeのツールリストに表示されます — 直接質問できます。
ツール
コアツール(無料、オープンソース — AGPL)
ツール | 説明 |
| カテゴリドリルダウン付きの完全なコースカタログ |
| 任意のコースの詳細ビュー |
| ロールとアクセスデータを持つ登録ユーザー(インタラクティブ選択によるコース名検索をサポート) |
| 期限付きのすべての課題 |
| 正確な親解決付きの完全な階層 |
| インスタンスの概要 — サイト名、バージョン、コース数 |
| Moodleユーザーの詳細ビュー |
| 特定のユーザーのコース |
| 標準のMoodle IDフィールドによるユーザー検索 |
| 部分一致とインタラクティブ選択による名前でのコース検索 |
プレミアムプラグイン(別途入手可能)
高度なレポート — 成績表、コース間比較、カスタムレポートビルダー
ユーザー分析 — 進捗追跡、エンゲージメントスコアリング、リスクフラグ
ユーザーディレクトリ — 標準およびカスタムプロファイルフィールドにわたるキャッシュされたディレクトリ一覧と構造化フィルタリング
コンプライアンスパック — 認定追跡、有効期限アラート、監査エクスポート
アーキテクチャ
User (plain English question)
│
▼
AI Agent (Claude / GPT / Gemini / Ollama / local)
│
▼ MCP Protocol
`moodle-mcp-server`
├── Tool Registry (core + plugins)
├── Agent Runtime Config (core + plugin rules)
├── Optimized Data Layer (secure, efficient data handling)
└── Moodle Client (REST API calls)
│
▼
Moodle Web Services APIトランスポートモード
Stdio —
dist/index.js— サブプロセスとして実行され、Claude Desktopおよび類似のクライアントで使用されます
OSSコアは意図的に stdio のみを同梱しています。ネットワーク対応のラッパー、リモート監視、またはプレミアムプラグインのアタッチメントは、別の商用ノードエージェントまたはラッパーに属します。
プラグインドキュメント
ライセンス
AGPL v3 — LICENSE を参照。
これは、次のことを意味します:
✅
moodle-mcp-serverコアを、任意の環境で無料で使用できます✅ ニーズに合わせてソースコードを変更できます
✅ 派生物を構築および配布できます
次のことはできません:
❌
moodle-mcp-serverコアをクローズドソースの競合する商用製品として再パッケージ化すること❌ 変更を共有せずにネットワークサービスとして提供すること
商標表示
MoodleはMoodle Pty Ltdの商標です。moodle-mcp-server は独立したCSMediaProプロジェクトであり、Moodle Pty LtdまたはMoodleプロジェクトと提携、承認、後援、または公式に接続されていません。この名前は、Moodle LMSとの互換性を説明するために使用されています。
CSMediaProによって構築
moodle-mcp-server は、AI統合、システムエンジニアリング、ワークフロー自動化を専門とするソフトウェア開発会社 CSMediaPro によって構築および保守されています。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with Moodle platforms to manage courses, students, assignments, and quizzes through natural language commands.71141MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables LLMs to interact with the Moodle platform to manage courses, students, assignments, and quizzes.711MIT
- Alicense-qualityDmaintenanceA powerful Model Context Protocol (MCP) server that seamlessly integrates AI assistants with Moodle Learning Management System. Enable your AI assistant to access courses, retrieve educational content, download resources, and search through your learning materials.14MIT
- Flicense-qualityBmaintenanceA Model Context Protocol (MCP) server that connects AI coding agents to your Moodle LMS. Fetch assignments, grades, deadlines, and sync everything to Obsidian automatically.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that integrates with Discord to provide AI-powered features.
An MCP server that gives your AI access to the source code and docs of all public github repos
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/csmediapro/moodle-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server