Moodle API集成服务器

一个用于与Moodle Web Service API通信的Node.js服务器,支持课程管理、用户管理、作业管理和Analytics API等功能。

  • by ShinonomeLabo
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ShinonomeLabo/moodle-mcp

使用说明

Moodle MCP服务器

用于Moodle Web Service API集成的模型上下文协议(MCP)服务器。

概要

此项目包括:Moodle的,之Web Service API 通讯MCP打开服务器Node.js中所述修改相应参数的值。Moodle各种各样的API访问端点、学科课程信息、用户信息、分配、Analytics API等数据。

机能

核心功能

  • 🎓 课程管理:获取学科课程列表、内容和用户注册状态
  • 👥 用户管理:用户搜索、创建、更新和删除
  • 📝 分配:获取课题列表
  • 🏢 站点信息: Moodle获取站点基本信息
  • 🔧 通用API调用:任意Moodle Web Service直接调用函数

扩张机能

  • 📊 成绩管理:获取成绩,生成报告
  • 💬 论坛讨论:管理论坛和讨论
  • 📧 消息传递:消息收发、通知管理
  • 📁 文件管理:上载和检索文件
  • 📈 分析API:集成预测模型、网站和机器学习
  • 🎯 小测验:管理测验,跟踪尝试
  • 📚 参考模型: SCORM管理和跟踪包
  • 👥 科霍特:管理用户组
  • 🏷️ 标记系统:管理和搜索标记
  • 📝 网易博客:管理博客条目
  • 🔐 角色管理:角色分配和权限管理

分析API機能 (穆迪分析API対応)

  • 管理预测模型(创建、培训和评估)
  • 网站获取和管理
  • 设置指示器和目标
  • 管理时间分割方法
  • 模型统计信息和报告

必要条件

  • Node.js 18大于或等于Docker
  • Moodle网站缩略图Web Services已启用
  • 已启用Web Service Token

安装

Option 1: Docker 使用(推荐)

Docker Hub执行

# Docker Hubから最新版をプル
docker pull shinonomelaboratory/moodle-mcp:latest

# 環境変数を設定して実行
docker run -it --rm \
  -e MOODLE_SITE_URL=https://your-moodle-site.com \
  -e MOODLE_WS_TOKEN=your-webservice-token \
  shinonomelaboratory/moodle-mcp:latest

Docker Compose使用

# リポジトリをクローン
git clone https://github.com/yourusername/moodle-mcp.git
cd moodle-mcp

# 環境変数を設定
cp env.example .env
# .envファイルを編集

# Docker Composeで起動
docker-compose up -d

Option 2: 在本地环境中安装

# リポジトリをクローン
git clone https://github.com/yourusername/moodle-mcp.git
cd moodle-mcp

# 依存関係をインストール
npm install

# ビルド
npm run build

设定

  1. env.example 打开 .env 复制到:
cp env.example .env
  1. .env 编辑文件,然后单击Moodle的设置:
MOODLE_SITE_URL=https://your-moodle-site.com
MOODLE_WS_TOKEN=your-webservice-token

使用方法

Docker环境

# Docker Composeで起動
docker-compose up -d

# ログを確認
docker-compose logs -f moodle-mcp

# 停止
docker-compose down

本地环境

开发模式

npm run dev

生产模式

npm run build
npm start

MCP客户端连接

Docker对于环境

{
  "mcpServers": {
    "moodle": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "MOODLE_SITE_URL=https://your-moodle-site.com",
        "-e", "MOODLE_WS_TOKEN=your-token",
        "shinonomelaboratory/moodle-mcp:latest"
      ]
    }
  }
}

对于本地环境

{
  "mcpServers": {
    "moodle": {
      "command": "node",
      "args": ["/path/to/moodle-mcp/dist/index.js"],
      "env": {
        "MOODLE_SITE_URL": "https://your-moodle-site.com",
        "MOODLE_WS_TOKEN": "your-token"
      }
    }
  }
}

可用工具

基本工具

get_site_info

Moodle获取站点的基本信息。

get_users

搜索用户以获取信息。

  • searchKey: 検索キー (用户名、电子邮件、名字、姓氏)
  • searchValue: 検索値

get_courses

获取学科课程列表。

  • ids:学科课程ID数组(可选)

get_user_courses

获取特定用户的学科课程列表。

  • userId:用户ID

get_course_contents

获取学科课程的内容和模块。

  • courseId:学科课程ID

get_assignments

获取分配(挑战)。

  • courseIds:学科课程ID数组(可选)

扩展工具

get_grades

取得成绩。

  • courseId:学科课程ID
  • component:组件名称(可选)
  • activityId:活动ID(可选)
  • userIds:用户ID数组(可选)

get_forums

获取论坛。

  • courseIds:学科课程ID数组(可选)

get_categories

获取学科课程类别。

  • criteria:搜索条件(可选)
  • addSubcategories包括子类别

Analytics API 工具

analytics_get_models

Analytics获取预测模型。

  • includeDisabled:包括无效的模型

analytics_get_insights

Analytics获取插件。

  • modelId:模型ID(可选)
  • contextId:上下文ID(可选)
  • userId:用户ID(可选)
  • status:插件状态

analytics_train_model

Analytics训练模型。

  • modelId:模型ID

analytics_predict_model

Analytics从模型获取预测。

  • modelId:模型ID

call_function

任意Moodle Web Service函数。

  • functionName: 関数名
  • params:参数(可选)

通过使用该通用工具Moodle Web Service API来修改标记元素的显示属性。

开発

脚本,脚本

  • npm run build - TypeScript编译
  • npm run dev -在开发模式下运行(热重载)
  • npm run lint - ESLint检查代码
  • npm run format - Prettier格式化代码
  • npm test -运行测试

Docker开発环境

# 開発用イメージをビルド
docker build -t moodle-mcp:dev .

# 開発コンテナーを起動
docker run -it --rm \
  -v $(pwd):/app \
  -e MOODLE_SITE_URL=https://your-moodle-site.com \
  -e MOODLE_WS_TOKEN=your-token \
  moodle-mcp:dev

体系结构

项目具有以下结构:

src/
├── index.ts              # MCPサーバーのエントリーポイント
├── services/
│   └── moodleClient.ts   # Moodle API通信クライアント
├── handlers/
│   ├── extendedHandlers.ts     # 拡張API機能
│   ├── analyticsHandlers.ts    # Analytics API
│   └── comprehensiveHandlers.ts # 包括的なAPI機能
└── types/
    ├── moodle.ts         # 基本的なMoodle型定義
    └── analytics.ts      # Analytics API型定義

Docker Hub

单击功能区上Docker印象是Docker Hub中所述修改相应参数的值。

可用标签:

  • latest -最新稳定版
  • v1.0.0, v1.0, v1 -特定版本
  • main -开发版本(main分支)
# 最新版を取得
docker pull shinonomelaboratory/moodle-mcp:latest

# 特定のバージョンを取得
docker pull shinonomelaboratory/moodle-mcp:v1.0.0