Moodle MCP工具插件
一个Moodle管理工具插件,实现了 模型上下文协议(MCP)服务器 用于管理Moodle系统。该插件使AI助手和外部应用程序能够通过标准化协议与Moodle交互,提供对Moodle核心功能的安全、可编程的访问。
📚 文档
🎯 概述
此插件将Moodle转换为MCP服务器,允许:
- AI助理 (像克劳德一样)管理Moodle系统
- 外部应用程序 通过MCP协议与Moodle集成
- 自动化工作流程 用于课程和用户管理
- 安全的API访问 通过基于令牌的身份验证
安装
- 复制
tool_moodlemcpMoodle安装目录:
/path/to/moodle/admin/tool/moodlemcp/- 以管理员身份登录您的Moodle网站。
- 引导到 网站管理 > 通知 (或参观
/admin/index.php).
- Moodle会自动检测新插件并提示您安装。
- 点击 立即升级Moodle数据库 以完成安装。
访问
安装后,您可以通过以下方式访问该工具:
- 网站管理 > 工具 > Moodle MCP
- 直接URL:
/admin/tool/moodlemcp/index.php
需求
- Moodle 4.0或更高版本
- 管理员权限以安装插件
权限
该插件需要 tool/moodlemcp:view 默认情况下授予管理者的能力。
🚀 当前状态
✅ 完成
- 插件结构和安装
- 令牌管理系统(创建、验证、过期令牌)
- 令牌存储的数据库架构
- 示例测验创建功能
🚧 进行中
- MCP协议处理程序实现
- 身份验证中间件
- API终结点设置
📋 计划的
- 课程管理工具
- 用户管理工具
- 活动管理工具
- 资源访问端点
- 安全加固
看 特征矩阵 详细状态。
🏗️ 建筑
该插件遵循分层架构:
MCP Client → MCP Protocol Handler → Authentication Layer → Moodle API Wrapper → Moodle Core关键部件:
- MCP服务器:处理JSON-RPC 2.0协议
- 令牌身份验证:基于令牌的安全访问
- 工具实施:Moodle操作作为MCP工具
- 资源访问:通过MCP资源读取数据
🔐 安全
- 基于令牌的过期身份验证
- 基于能力的授权(尊重Moodle权限)
- 限制利率以防止滥用
- 输入验证和净化
- 全面的审计日志记录
📖 发展
插件结构
tool_moodlemcp/
├── version.php # Plugin version and metadata
├── lang/
│ └── en/
│ └── tool_moodlemcp.php # Language strings
├── db/
│ ├── install.xml # Database schema
│ └── access.php # Capability definitions
├── classes/
│ ├── token_manager.php # Token management ✅
│ ├── quiz_creator.php # Quiz creation examples ✅
│ ├── mcp/ # MCP protocol handlers (planned)
│ ├── auth/ # Authentication (planned)
│ ├── tools/ # MCP tools (planned)
│ └── resources/ # MCP resources (planned)
├── api/
│ └── mcp.php # MCP API endpoint (planned)
├── lib.php # Library functions
├── settings.php # Admin settings and menu
├── index.php # Main plugin page
└── examples/
└── create_quiz_example.php # Usage examples ✅🔌 API使用情况(计划)
一旦实施,MCP服务器将可在以下位置访问:
POST /admin/tool/moodlemcp/api/mcp.php
Authorization: Bearer {token}
Content-Type: application/json请求示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "create_course",
"arguments": {
"category_id": 1,
"fullname": "Introduction to AI",
"shortname": "AI101"
}
}
}许可证
此插件根据GNU GPL v3或更高版本获得许可。
