Moodle学习管理系统交互服务

一个实现Moodle学习管理系统交互功能的协议服务器,提供课程内容管理、作业跟踪、成绩查询等功能。

  • by loyaniu
  • Python
  • 本地部署
  • 52 星标
  • 更新于
在 GitHub 查看 loyaniu/moodle-mcp

使用说明

Moodle MCP

一种模型上下文协议(MCP)服务器实现,提供与Moodle LMS交互的功能。

特征

服务器公开了以下工具。

课程与内容

工具 说明
get_my_courses 获取当前用户注册的所有课程
get_course_content 通过ID获取特定课程的章节和模块
search_course_materials 按查询字符串搜索所有课程材料
get_course_announcements 从课程新闻论坛获取公告,可选择按课程ID筛选
get_recent_activity 获取自给定时间以来各课程的最新活动和更新

任务和截止日期

工具 说明
get_assignments 获取课程作业,可选择按课程ID筛选
get_assignment_status 获取特定作业的提交和评分状态
get_upcoming_deadlines 按截止日期排序,获取所有课程即将到来的作业截止日期
get_overdue_assignments 收到逾期未提交的作业,逾期时间最长的作业排在第一位
get_actionable_tasks 获取需要采取行动的优先任务列表,按紧急程度排序
analyze_assignment 分析作业:状态、要求、材料、进度、截止日期
extract_assignment_requirements 从任务中提取需求、可交付成果、约束和评估标准
find_relevant_materials 查找与作业相关的课程内容,按相关性排序
decompose_task 将任务分解为具有工作量、依赖关系和关键路径的子任务
create_implementation_plan 制定一个包含时间表、资源、里程碑和风险的分步计划

成绩和进步

工具 说明
get_grades 获取所有课程的成绩概览,或一门课程的详细成绩
get_course_progress 获取一门课程或所有课程的进度和完成情况
get_course_health 课程健康检查:进度、成绩、未提交和逾期计数
get_study_load 按周分析任务分布,以识别繁重的周

汇总概述

工具 说明
get_upcoming_events 从Moodle获取即将举行的活动
semester_dashboard 课程、即将到来的截止日期和成绩的综合概述
daily_briefing 逾期计数、今天的截止日期、最近的成绩、事件和任务的每日摘要
weekly_review 提交/评分计数、截止日期、逾期计数和进度的每周摘要
ask_moodle 提出一个自然语言问题,并将其发送到正确的数据源

API 参考

有关可用的Moodle API函数,请参阅 官方文档.

安装说明

方法1:使用 mcp CLI(推荐)

  1. 创建自己的 .env 文件来自 .env.example
  2. 假设你有 uv 已安装,运行 uv add "mcp[cli]" 安装MCP CLI工具
  3. 跑 mcp install main.py -f .env 将moodle mcp服务器添加到Claude应用程序

方法2:使用 uvx

转到Claude>设置>开发人员>编辑配置>Claude_desktop_Config.json,以包含以下内容

{
  "mcpServers": {
    "moodle-mcp": {
      "command": "uvx",
      "args": ["moodle-mcp"],
      "env": {
        "MOODLE_URL": "https://{your-moodle-url}/webservice/rest/server.php",
        "MOODLE_TOKEN": "{your-moodle-token}"
      }
    }
  }
}

认证

获取您的Moodle令牌

  1. 导航到您的Moodle令牌管理页面 https://{your-moodle-url}/user/managetoken.php
  2. 使用令牌 Moodle mobile web service 在 Service 列
  3. 将此令牌添加到您的 .env 文件