mcpField
M
moodle-cli

moodle-cli

github.com/nathanfredericks生产力044 次安装5 周前更新
代码仓库

关于 moodle-cli

moodle-cli 是一项技能,用于指导通过 `moodle` 命令行与 Moodle 学习管理系统 API 交互。内容涵盖身份验证、课程、作业和论坛,并提供命令参考及使用 `jq` 处理 JSON 输出的示例。

主要功能

  1. 01Moodle API 命令指导
  2. 02身份验证与课程操作
  3. 03作业上传与提交
  4. 04论坛阅读与发帖
  5. 05JSON 输出及 `jq` 筛选
  6. 06查询命令参考文档

适用场景

  1. 01登录并查看已选课程
  2. 02上传并提交作业
  3. 03下载课程和作业文件
  4. 04阅读或发布课程论坛内容

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nathanfredericks/moodle-cli --skill moodle-cli

安装后在 Claude Code 中输入/moodle-cli确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
moodle_assignment_download.md
moodle_assignment_due.md
moodle_assignment_get.md
moodle_assignment_list.md
moodle_assignment_status.md
moodle_assignment_submit.md
moodle_assignment_text.md
moodle_assignment_upload.md
moodle_assignment.md
moodle_auth_login.md
moodle_auth_logout.md
moodle_auth_status.md
moodle_auth_token.md
moodle_auth.md
moodle_config_get.md
moodle_config_list.md
moodle_config_set.md
moodle_config.md
moodle_course_content.md
moodle_course_download.md
moodle_course_get.md
moodle_course_grades.md
moodle_course_list.md
moodle_course_module.md
moodle_course_search.md
moodle_course.md
moodle_forum_delete.md
moodle_forum_discussions.md
moodle_forum_edit.md
moodle_forum_list.md

详细介绍

Moodle CLI 技能

你正在帮助用户运行 moodle——一个用于与 Moodle 学习管理系统 API 交互的 CLI 工具。

命令树

moodle
├── auth                    # Manage authentication
│   ├── login               # Log in to a Moodle instance
│   ├── logout              # Log out of the Moodle instance
│   ├── status              # Show authentication status
│   └── token               # Print the authentication token
├── course                  # Manage courses
│   ├── list                # List enrolled courses
│   ├── get <id>            # Get course details
│   ├── search <query>      # Search courses
│   ├── content <id>        # Get course contents (sections, modules)
│   ├── module <id>         # Get course module details
│   ├── grades <id>         # View your course grades
│   └── download <id>       # Download module files
├── assignment              # Manage assignments
│   ├── list                # List assignments (--course to filter)
│   ├── get <id>            # Get assignment details
│   ├── status <id>         # Check submission status
│   ├── upload <id> <file>  # Upload files to an assignment
│   ├── submit <id>         # Submit assignment for grading
│   ├── text <id>           # View or update online text submission
│   └── download <id>       # Download submission files (-R for resources)
├── forum                   # Manage forums
│   ├── list                # List forums in a course (--course)
│   ├── discussions <id>    # List discussions in a forum
│   ├── read <id>           # Read a discussion thread
│   ├── post <id>           # Create a new discussion
│   ├── reply <id>          # Reply to a post
│   ├── edit <id>           # Edit a post
│   └── delete <id>         # Delete a post
├── user                    # Manage users
│   ├── whoami              # Show current user info
│   ├── list                # List users enrolled in a course (--course)
│   └── get <id>            # Get user by ID
├── config                  # Manage configuration
│   ├── list                # List all configuration settings
│   ├── get <key>           # Get a configuration value
│   └── set <key> <value>   # Set a configuration value
└── version                 # Print the version

全局标志

每个命令都支持以下标志:

标志描述
-f, --format <fmt>输出格式:table、json、csv、yaml、plain
--no-color禁用彩色输出
-v, --verbose启用详细输出
-h, --help查看命令帮助

使用指南

默认使用 JSON 输出

建议命令时,优先使用 -f json 获取机器可读的输出。向用户展示如何通过管道将输出传递给 jq 进行筛选:

# List courses as JSON
moodle course list -f json

# Get a specific field
moodle course list -f json | jq '.[].fullname'

# Filter assignments by course
moodle assignment list --course 42 -f json | jq '.[] | {id, name, duedate}'

需要快速查看便于人类阅读的输出时,默认的 table 格式就很适用——无需添加标志。

常见工作流

首次设置:

moodle auth login --url https://moodle.example.com
moodle auth status          # verify login
moodle course list          # see enrolled courses

作业工作流:

moodle assignment list --course 42          # find assignment ID
moodle assignment get 101                   # check details and due date
moodle assignment upload 101 report.pdf     # upload file
moodle assignment submit 101 --accept-statement  # submit for grading
moodle assignment status 101                # verify submission

论坛工作流:

moodle forum list --course 42               # find forum ID
moodle forum discussions 5                  # list discussions
moodle forum read 100                       # read a thread
moodle forum reply 200 --message "Thanks!"  # reply to a post
moodle forum post 5 --subject "Question" --message "Hello"  # new discussion

下载作业资源:

moodle assignment get 101                   # see attached resources
moodle assignment download 101 --resources  # download instructor-attached files
moodle assignment download 101 -R -o ./resources  # download to a directory

下载课程文件:

moodle course content 42                    # browse course sections
moodle course download 500                  # download a module's files
筛选
  • 使用 --course <id> 按课程筛选作业、论坛和用户
  • 使用位置参数 <id> 指定资源(课程、作业、论坛、用户、模块)
  • 对 JSON 输出使用 jq 进行链式高级筛选
配置

用户可以设置默认值,避免重复输入标志:

moodle config set format json    # always output JSON
moodle config list               # see current settings

参考文档

如需了解特定命令的详细信息(标志、选项、示例),请阅读 references/ 目录中对应的文件:

  • 根命令: references/moodle.md
  • 认证组: references/moodle_auth.md、references/moodle_auth_login.md 等
  • 课程组: references/moodle_course.md、references/moodle_course_list.md 等
  • 作业组: references/moodle_assignment.md、references/moodle_assignment_list.md 等
  • 论坛组: references/moodle_forum.md、references/moodle_forum_list.md 等
  • 用户组: references/moodle_user.md、references/moodle_user_whoami.md 等
  • 配置组: references/moodle_config.md、references/moodle_config_set.md 等
  • 版本: references/moodle_version.md

文件名格式为 references/moodle_<group>_<command>.md。用户询问特定命令时,请先阅读参考文件,以便准确提供标志名称和用法详情。

评论

支持 Markdown