Moodle AI助手桥接服务

一个允许AI助手通过浏览器与Moodle学习管理系统交互的桥接服务,适用于任何Moodle实例,包括使用SSO/LDAP的情况,且不涉及用户凭证传输。

  • by arunl
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 arunl/moodle-mcp-server

使用说明

Moodle MCP

一个让AI助手通过浏览器与Moodle LMS交互的桥梁。适用于任何Moodle实例,包括使用SSO/LDAP的实例,因为它使用您现有的浏览器会话。

建筑

┌─────────────────────────────────────────────────────────────────────────┐
│                              YOUR MACHINE                               │
├─────────────────────────────────────────────────────────────────────────┤
│  ┌────────────────┐              ┌────────────────────────────────────┐ │
│  │  AI Assistant  │              │     Browser (Chrome/Edge)          │ │
│  │  (Claude,      │              │  ┌──────────────────────────────┐  │ │
│  │   Cursor, etc) │              │  │ Your Moodle (logged in)      │  │ │
│  └───────┬────────┘              │  └──────────────────────────────┘  │ │
│          │ MCP Protocol          │  ┌──────────────────────────────┐  │ │
│          │                       │  │ Browser Extension            │  │ │
│          │                       │  │ (executes commands securely) │  │ │
│          │                       │  └─────────────┬────────────────┘  │ │
└──────────┼───────────────────────┼────────────────┼───────────────────┘
           │                       │                │ WebSocket
           ▼                       │                ▼
┌──────────────────────────────────┴────────────────────────────────────┐
│                    Moodle MCP Server (Hosted)                         │
│              Routes commands · Never sees your credentials            │
└───────────────────────────────────────────────────────────────────────┘

关键原则: 您的Moodle凭据永远不会离开您的浏览器。服务器仅在您的AI助手和浏览器扩展之间路由命令。

组件

组件 描述
服务器 (server/) 基于Hono的Node.js服务器,具有Google OAuth、JWT auth、WebSocket桥
浏览器扩展 (browser-extension/) 在Moodle会话中执行MCP命令的Chrome扩展程序
MCP远程 (mcp-remote/) 仅支持stdio的MCP客户端的通用stdio到HTTP网桥

快速开始

用户(托管服务)

  1. 注册 在托管服务上(从管理员处获取URL)
  2. 获取API密钥 从仪表板
  3. 安装扩展 从仪表板
  4. 配置AI客户端 (参见 安装指南)

开发者(本地)

# Clone and install
git clone https://github.com/arunlakhotia/moodle-mcp.git
cd moodle-mcp/server
npm install

# Configure environment
cp env.example .env
# Edit .env with your Google OAuth credentials

# Start server
npm run dev

然后:

  1. 负载 browser-extension/ 在Chrome浏览器中(chrome://extensions → 开发者模式→ 装载未包装)
  2. 访问 http://localhost:8080/dev 创建测试凭据
  3. 配置您的AI客户端(见下文)

AI客户端配置

游标IDE(带stdio桥)

Cursor需要基于stdio的MCP服务器。使用 mcp-remote 桥梁:

cd mcp-remote && npm install

添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "moodle": {
      "command": "npx",
      "args": ["tsx", "/path/to/moodle-mcp/mcp-remote/src/index.ts"],
      "env": {
        "MCP_SERVER_URL": "http://localhost:8080",
        "MCP_API_KEY": "your-api-key"
      }
    }
  }
}

克劳德桌面(SSE传输)

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)或 %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "moodle": {
      "transport": {
        "type": "sse",
        "url": "http://localhost:8080/mcp/sse"
      },
      "headers": {
        "Authorization": "Bearer your-api-key"
      }
    }
  }
}

可用工具

导航和内容

工具 说明
browse_moodle 导航到任何Moodle URL
extract_page_content 从当前页面获取内容
click_element 点击页面上的元素
type_text 在输入字段中键入
set_editor_content 在Moodle富文本编辑器中设置HTML

课程

工具 说明
get_courses 列出您注册的课程
open_course 导航到特定课程
get_course_content 获取课程活动和资源
get_course_sections 获取节ID和名称

参与者和用户

工具 说明
list_participants 列出具有角色的已注册用户
get_enrolled_users 获取注册用户详细信息
send_message 向用户发送直接消息
bulk_send_message 向多个用户发送消息

作业

工具 说明
list_assignments 列出带截止日期的作业
get_assignment 获取任务详细信息
get_assignment_submissions 获取提交状态
create_assignment 创建新任务
edit_assignment 修改分配设置
extend_assignment_deadline 资助期限延长
bulk_shift_deadlines 更改多个截止日期

论坛

工具 说明
forum_list_discussions 列出论坛讨论
find_forum_discussion 按主题搜索讨论
create_forum_post 创建新讨论
delete_forum_discussion 删除讨论
analyze_forum 获取参与统计数据

反馈活动

工具 说明
find_activity 按名称/类型查找任何活动
analyze_feedback 获取响应统计信息

课程管理

工具 说明
edit_section 重命名课程部分
add_section 添加新章节
delete_section 删除部分
hide_section 显示/隐藏部分
move_section 重新排序章节
enable_editing 启用编辑模式

安全与隐私

  • 🔐 凭证保留在本地 --您的Moodle会话永远不会离开您的浏览器
  • 🔑 API密钥被散列 --服务器仅存储哈希值
  • 🚫 无数据存储 --服务器仅路由命令
  • 🔒 HTTPS/WSS --所有流量在生产中加密
  • 🎓 符合FERPA标准 --学生PII在到达人工智能服务之前被屏蔽

学生数据保护

Moodle MCP通过以下方式保护学生隐私 自动PII屏蔽:

Your Browser          Cloud Server          AI Service
─────────────         ────────────          ──────────
"John Smith"    →     "M12345_name"    →    "M12345_name"
(real name)           (masked token)        (masked token)

在离开浏览器之前,学生姓名、电子邮件和ID将被匿名令牌替换。人工智能永远看不到真实的学生信息。 了解更多→

文档

许可证

MIT许可证——见 许可证

致谢