Moodle课程管理服务器

一个MCP(模型上下文协议)服务器,使LLMs能够与Moodle平台交互,管理课程、学生、作业和测验。

  • by peancor
  • JavaScript
  • 本地部署
  • 45 星标
  • 更新于
在 GitHub 查看 peancor/moodle-mcp-server

使用说明

Moodle MCP服务器

MCP(模型上下文协议)服务器,使LLM能够与Moodle平台交互,以管理课程、学生、作业和测验。

特性

课程管理工具

  • get_courses -检索Moodle中课程的信息
    • 支持分页(page, limit)安全地取回所有可用的课程。
    • 可选地,允许通过提供 courseId.

学生管理工具

  • list_students -检索已注册课程的学生列表
    • 显示每个学生的ID、姓名、电子邮件和上次访问时间

任务管理工具

  • get_assignments -检索课程中所有可用的作业
    • 包括ID、姓名、描述、截止日期和最高成绩等信息
  • get_student_submissions -审查学生提交的特定作业
    • 需要作业ID和可选的学生ID
  • provide_assignment_feedback -提供学生提交的成绩和评论
    • 需要学生证、作业证、成绩和反馈意见

测验管理工具

  • get_quizzes -检索课程中所有可用的测验
    • 包括ID、姓名、描述、开始/结束日期和最高成绩等信息
  • get_quiz_attempts -检查学生在特定测验中的尝试
    • 需要测验ID和可选的学生ID
  • provide_quiz_feedback -为测验尝试提供评论
    • 需要尝试ID和反馈注释

需求

  • Node.js(v14或更高版本)
  • 具有适当权限的Moodle API令牌
  • Moodle课程ID

安装

  1. 克隆此存储库:
git clone https://github.com/your-username/moodle-mcp-server.git
cd moodle-mcp-server
  1. 安装依赖项:
npm install
  1. 创建一个 .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
  1. 构建服务器:
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检查员:

npm run inspector

检查器将提供一个URL,用于访问浏览器中的调试工具。

获取Moodle API代币

  1. 以管理员身份登录您的Moodle网站
  2. 转到“网站管理”>“插件”>“Web服务”>“管理令牌”
  3. 创建具有管理课程所需权限的新令牌
  4. 复制生成的令牌并将其添加到您的 .env 文件

安全

  • 永远不要分享你的 .env 文件或Moodle API令牌
  • 确保MCP服务器只能访问它需要管理的课程
  • 使用具有最低必要权限的令牌

许可证

麻省理工学院