这是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在将大型语言模型 (LLM) 与 Moodle 学习管理系统集成。通过此服务器,LLM 客户端可以访问 Moodle 中的数据并执行某些管理操作。

主要功能点

  • 学生管理:
    • 获取课程中的学生列表(包含ID、姓名、邮箱等)。
  • 作业管理:
    • 获取课程中的所有作业列表(包含ID、名称、截止日期、最高分数等)。
    • 查看特定学生在特定作业上的提交信息。
    • 获取特定作业提交内容的详细信息(包括文本和文件)。
    • 为学生的作业提交提供评分和反馈意见。
  • 测验管理:
    • 获取课程中的所有测验列表(包含ID、名称、开放/关闭日期、最高分数等)。
    • 获取特定学生在特定测验中的成绩。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/peancor/moodle-mcp-server.git
    cd moodle-mcp-server
  2. 安装依赖:
    npm install
  3. 配置环境变量:
    • 创建一个名为 '.env' 的文件在项目根目录。
    • 在 '.env' 文件中添加以下内容,并替换为你的Moodle信息:
      MOODLE_API_URL=https://your-moodle.com/webservice/rest/server.php
      MOODLE_API_TOKEN=your_api_token
      MOODLE_COURSE_ID=1  # 替换为你的课程ID
    • (提示:获取Moodle API Token需要管理员权限,并在Moodle中创建具有相应权限的Service和Token。)
  4. 构建服务器:
    npm run build
    这将生成可执行的服务器脚本 'build/index.js'。

服务器配置 (供MCP客户端使用)

要让支持MCP的LLM客户端(如Claude Desktop)连接到此服务器,您需要在客户端的配置文件中添加服务器信息。配置通常是一个 JSON 格式的对象,包含多个 MCP 服务器的定义。

您需要为此Moodle MCP服务器添加一个条目,指定:

  • 服务器名称: 用于在客户端中标识此服务器,例如 'moodle-mcp-server'。
  • 命令 (command): 启动此服务器进程的命令。通常是 Node.js 可执行文件的路径。
  • 参数 (args): 传递给命令的参数列表。第一个参数通常是服务器脚本的路径,即您在安装步骤中构建生成的 'build/index.js' 文件路径。
  • 环境变量 (env): 一个对象,包含启动服务器所需的环境变量。您需要在此处再次提供 'MOODLE_API_URL', 'MOODLE_API_TOKEN', 和 'MOODLE_COURSE_ID'。

请参考您的具体MCP客户端的文档来找到配置文件位置和准确的配置格式。例如,对于Claude Desktop,配置路径可能是 '~/Library/Application Support/Claude/claude_desktop_config.json' (macOS) 或 '%APPDATA%/Claude/claude_desktop_config.json' (Windows)。

配置示例(概念描述,非直接可用的JSON代码块): 客户端配置文件中会有一个 'mcpServers' 部分,您可以在其中添加一个名为 'moodle-mcp-server' 的对象。这个对象包含 'command' (指向 'node' 可执行文件), 'args' (指向服务器的 'build/index.js' 脚本), 和 'env' (包含 MOODLE相关的三个环境变量)。

基本使用方法

一旦服务器配置好并在MCP客户端中启用,LLM将能够发现并使用服务器提供的工具。您可以通过自然语言向LLM提问或发出指令,让它调用Moodle MCP服务器的功能。例如:

  • "列出这个课程里的所有学生。" (对应 'get_students' 工具)
  • "获取课程中所有作业的信息。" (对应 'get_assignments' 工具)
  • "请查看学号为 [学生ID] 的学生在作业 [作业ID] 上的提交内容。" (对应 'get_submission_content' 工具)
  • "给学号为 [学生ID] 的学生在作业 [作业ID] 上评分 [分数],并添加反馈:[反馈文本]" (对应 'provide_feedback' 工具)

LLM会解析您的请求,确定需要调用的工具和参数,然后通过MCP协议与服务器通信获取信息或执行操作。

信息

分类

生产力应用