Moodle Student MCP

io.github.AnonymousOnyx22由 GitHub 账号 AnonymousOnyx22 发布v0.1.10更新于 Nov 1, 2026

Moodle MCP server for students. Read only access to courses, grades, due dates and announcements.

已验证STDIO仅桌面效率与工作流知识与记忆

概览

AI 生成的概览

只读的 MCP 服务器,让助手查询学生的 Moodle 课程、截止日期、未交作业、成绩、公告和课程文件。

可以做什么
  • 列出已选课程及其 ID
  • 查看即将到期、已逾期的事项,以及合并的每日待办摘要
  • 按课程查看作业、提交状态、未交作业和测验
  • 读取已发布的课程成绩和逐项成绩册
  • 浏览课程章节、活动、页面正文和公告
  • 阅读论坛讨论,并把文本、HTML 或 PDF 课程文件作为文本读取
适用场景
适合学校使用 Moodle 且已开启移动 Web 服务的学生,用来直接问 AI 应用有哪些作业到期、哪些已逾期、哪些还没交,以及成绩和公告内容,无需手动复制页面。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node.js 20 或更高版本。需要把学校 Moodle 地址填入 MOODLE_BASE_URL,并把从安全密钥页面复制的 Moodle 移动 Web 服务密钥填入 MOODLE_TOKEN。站点必须开启移动 Web 服务;若使用单点登录且不提供密钥则无法连接。
安装前请注意
MOODLE_TOKEN 是能读取你 Moodle 账户内容的个人凭据,会保存在 AI 应用的 MCP 配置中,请妥善保护该文件,泄露后及时重置密钥。该服务器自称只读,且只把密钥发往配置的 Moodle 地址,但课程数据仍会发送给你所连接的 AI 应用。最大 25 MB 的课程文件会被下载并以文本返回。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Moodle Student MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Moodle MCP for students

[npm] [downloads] [license] [MCP Registry]

Add the server to your AI app with npx. Put your school's Moodle address and your key in the line for your app below, then run it.

Ask your AI what's actually left to do in Moodle with the Moodle MCP server.

This is a free, open source Moodle MCP server. It lets Claude Desktop, Claude Code, Cursor, VS Code and other AI apps that run a local MCP server read your Moodle courses, due dates, grades and announcements. It is read only. It can never submit, edit or delete anything.

Works with Moodle sites that have the mobile web service turned on. Not affiliated with Moodle Pty Ltd.

Free forever. No sign up and no subscription. Your login details only ever go to your own school.

Install

Claude Code

Run this in a terminal:

bash
claude mcp add moodle --env MOODLE_BASE_URL=https://moodle.yourschool.edu --env MOODLE_TOKEN=your-key -- npx -y moodle-student-mcp

Add --scope user if you want the server in every project.

Cursor

Run this in a terminal. Cursor keeps its servers in mcp.json, so this line writes the server into ~/.cursor/mcp.json and leaves the servers you already have alone. On Windows that file is %USERPROFILE%\.cursor\mcp.json.

bash
node -e "const fs=require('fs'),os=require('os'),path=require('path'),file=path.join(os.homedir(),'.cursor','mcp.json');let config={};try{config=JSON.parse(fs.readFileSync(file,'utf8'))}catch(error){}config.mcpServers={...(config.mcpServers||{}),moodle:{type:'stdio',command:'npx',args:['-y','moodle-student-mcp'],env:{MOODLE_BASE_URL:'https://moodle.yourschool.edu',MOODLE_TOKEN:'your-key'}}};fs.mkdirSync(path.dirname(file),{recursive:true});fs.writeFileSync(file,JSON.stringify(config,null,2));"

VS Code

Run this in a terminal:

bash
code --add-mcp "{\"name\":\"moodle\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"moodle-student-mcp\"],\"env\":{\"MOODLE_BASE_URL\":\"https://moodle.yourschool.edu\",\"MOODLE_TOKEN\":\"your-key\"}}"

The quotes inside the JSON are escaped, so the command runs the same way in a Mac or Linux terminal and in the Windows Command Prompt. In PowerShell on Windows, use this line instead:

powershell
code --add-mcp '{\"name\":\"moodle\",\"type\":\"stdio\",\"command\":\"npx\",\"args\":[\"-y\",\"moodle-student-mcp\"],\"env\":{\"MOODLE_BASE_URL\":\"https://moodle.yourschool.edu\",\"MOODLE_TOKEN\":\"your-key\"}}'

This adds the server to your user profile, so it is there in every project.

Claude Desktop

Paste this into your MCP config (for Claude Desktop that's claude_desktop_config.json):

json
{  "mcpServers": {    "moodle": {      "command": "npx",      "args": ["-y", "moodle-student-mcp"],      "env": {        "MOODLE_BASE_URL": "https://moodle.yourschool.edu",        "MOODLE_TOKEN": "your-key"      }    }  }}

Restart the app if it was already running, then ask:

  • "What's due this week?"
  • "Is anything overdue?"
  • "What work am I still missing?"
  • "What's my grade in Networking?"

Demo

Here is a whole exchange from start to finish. The lines under "The server answers" are the exact text the tools send back, copied from a run of this code against the test Moodle site that ships with the tests. The courses, dates and announcements are made up sample data, and the times are UTC. Copy the block into any chat app to see what an answer looks like before you install anything.

text
You: What should I do today?
Tool call: get_todo{"name":"get_todo","arguments":{}}
The server answers:Start here: Problem set 1 (Data Structures) was due Mon, Oct 19, 11:59 p.m. UTC, not submitted
Overdue:- Problem set 1 (Data Structures) was due Mon, Oct 19, 11:59 p.m. UTC, not submitted
Due soon:- Quiz 1 closes (Networking Basics) is due Fri, Oct 23, 11:59 p.m. UTC- Lab 3: routing table (Networking Basics) is due Wed, Oct 28, 11:59 p.m. UTC, not submitted- Lab 4: report draft (Networking Basics) is due Mon, Nov 2, 11:59 p.m. UTC, draft, not submitted- Problem set 3 (Data Structures) is due Mon, Nov 2, 11:59 p.m. UTC
New announcements:- Lab 3 is due Friday (Networking Basics, Wed, Oct 21, 9:15 a.m. UTC)- Week 6 reading (Networking Basics, Tue, Oct 20, 2:05 p.m. UTC)- Room change for Thursday (Data Structures, Mon, Oct 19, 4:40 p.m. UTC)
The app replies: Start with Problem set 1 in Data Structures, which was due Monday. Quiz 1 closes Friday, the Lab 3 routing table is due Wednesday, and the Lab 4 report draft and Problem set 3 are due Nov 2. The latest announcements mention the Lab 3 deadline, the Week 6 reading and a room change for Data Structures.
You: What's due this week?
Tool call: get_upcoming_due_dates{"name":"get_upcoming_due_dates","arguments":{}}
The server answers:- Quiz 1 closes (Networking Basics) due Fri, Oct 23, 11:59 p.m. UTC- Lab 4 report (Networking Basics) due Wed, Oct 28, 11:59 p.m. UTC- Problem set 3 (Data Structures) due Mon, Nov 2, 11:59 p.m. UTC
The app replies: Three things are due soon. Quiz 1 closes on Friday, the Lab 4 report is due on Wednesday, and Problem set 3 in Data Structures is due on Monday.
You: What's due in Networking Basics?
Tool call: get_my_courses{"name":"get_my_courses","arguments":{}}
The server answers:- Networking Basics [id 11]- Data Structures [id 12]
Tool call: get_upcoming_due_dates{"name":"get_upcoming_due_dates","arguments":{"course_ids":[11]}}
The server answers:- Quiz 1 closes (Networking Basics) due Fri, Oct 23, 11:59 p.m. UTC- Lab 4 report (Networking Basics) due Wed, Oct 28, 11:59 p.m. UTC
The app replies: Networking Basics has two things due soon: Quiz 1 closes on Friday and the Lab 4 report is due on Wednesday.
You: Is anything overdue?
Tool call: get_overdue{"name":"get_overdue","arguments":{}}
The server answers:- Problem set 1 (Data Structures) was due Mon, Oct 19, 11:59 p.m. UTC
The app replies: One thing is overdue: Problem set 1 in Data Structures, which was due on Monday, Oct 19.
You: Which assignments have I not submitted in Networking Basics?
Tool call: get_my_courses{"name":"get_my_courses","arguments":{}}
The server answers:- Networking Basics [id 11]- Data Structures [id 12]
Tool call: get_assignments{"name":"get_assignments","arguments":{"course_id":11}}
The server answers:- Lab 1: LAN cabling due Fri, Oct 9, 11:59 p.m. UTC graded 8.00 / 10.00- Lab 2: subnetting worksheet due Fri, Oct 16, 11:59 p.m. UTC submitted- Lab 3: routing table due Wed, Oct 28, 11:59 p.m. UTC not submitted- Lab 4: report draft due Mon, Nov 2, 11:59 p.m. UTC draft, not submitted
The app replies: Networking Basics is course 11. Lab 3 routing table has not been submitted, and Lab 4 report draft is still a draft, so it is saved but not handed in. Lab 2 was submitted and Lab 1 is graded 8.00 out of 10.
You: What work am I still missing?
Tool call: get_missing_work{"name":"get_missing_work","arguments":{}}
The server answers:- Problem set 1 (Data Structures) was due Mon, Oct 19, 11:59 p.m. UTC, not submitted- Lab 3: routing table (Networking Basics) is due Wed, Oct 28, 11:59 p.m. UTC, not submitted- Lab 4: report draft (Networking Basics) is due Mon, Nov 2, 11:59 p.m. UTC, draft, not submitted- Problem set 2 (Data Structures) is due Fri, Nov 6, 11:59 p.m. UTC, not submitted
The app replies: Four assignments are still not handed in. Problem set 1 in Data Structures was due on Oct 19, Lab 3 routing table in Networking Basics is due on Oct 28, the Lab 4 report draft in Networking Basics is due on Nov 2 and is still only a draft, and Problem set 2 in Data Structures is due on Nov 6.
You: How am I doing in Networking Basics?
Tool call: get_my_courses{"name":"get_my_courses","arguments":{}}
The server answers:- Networking Basics [id 11]- Data Structures [id 12]
Tool call: get_my_grades{"name":"get_my_grades","arguments":{}}
The server answers:- Networking Basics 88.50- Data Structures no grade posted yet
Tool call: get_course_grade_items{"name":"get_course_grade_items","arguments":{"course_id":11}}
The server answers:- Lab 1: LAN cabling 8.00 (80.00 %)- Lab 2: subnetting worksheet 9.00 (90.00 %)- Course total 88.50 (88.50 %)
The app replies: Networking Basics has a course total of 88.50, which is 88.50 percent. Lab 1 is 8.00 (80.00 percent) and Lab 2 is 9.00 (90.00 percent). Data Structures has no grade posted yet.
You: Any new announcements?
Tool call: get_announcements{"name":"get_announcements","arguments":{}}
The server answers:- Lab 3 is due Friday (Networking Basics, Wed, Oct 21, 9:15 a.m. UTC)  Bring your laptop and the patched topology sheet.- Week 6 reading (Networking Basics, Tue, Oct 20, 2:05 p.m. UTC)  Read chapters 4 and 5 before the quiz.- Room change for Thursday (Data Structures, Mon, Oct 19, 4:40 p.m. UTC)  Data Structures meets in room B12 this week.
The app replies: Three announcements. Lab 3 is due Friday, so bring your laptop and the patched topology sheet. Week 6 reading says to read chapters 4 and 5 before the quiz. Data Structures has a room change for Thursday.

Quick start

  1. In Moodle, open your profile menu, go to Preferences > User account > Security keys. Copy the key for Moodle mobile web service. The guide to getting your Moodle mobile web service key has each step, plus what to do when the page or the key is missing.
  2. Put your school's Moodle address and that key into the command or the config block above.
  3. Restart your AI app and ask one of the questions above.

To check your setup first, run npx moodle-student-mcp doctor with the two environment variables set.

If you can't find a Security keys page, your school has turned off the mobile web service, or signs you in through single sign on without exposing keys. In that case this server can't connect to your account.

Supported Moodle versions and web service functions

This server talks to the standard Moodle web service API with your Moodle mobile web service key. It does not need a plugin or a custom service. I have not tested a list of Moodle versions, so there is no version table here. Tests run against a fake Moodle server. As a rule, a site where the official Moodle mobile app works for students should work here too, and npx moodle-student-mcp doctor tells you if your site answers.

If a tool says Access denied, your school's admin may have left a function out of the mobile web service. These are the functions the server calls, and the tools that use them:

Web service functionUsed by
core_webservice_get_site_infoSign in check and doctor
core_enrol_get_users_coursesget_my_courses and every tool that lists courses
core_calendar_get_action_events_by_timeframeget_upcoming_due_dates, get_overdue, get_calendar, get_todo
mod_assign_get_assignmentsget_assignments, get_assignment_details, get_missing_work, get_todo
mod_assign_get_submission_statusget_assignments, get_missing_work, get_todo
mod_quiz_get_quizzes_by_coursesget_quizzes
mod_quiz_get_user_attemptsget_quizzes
mod_quiz_get_user_best_gradeget_quizzes
gradereport_overview_get_course_gradesget_my_grades
gradereport_user_get_grade_itemsget_course_grade_items
core_course_get_contentsget_course_content
mod_page_get_pages_by_coursesget_course_page
mod_forum_get_forums_by_coursesget_announcements, get_forum_discussions, get_todo
mod_forum_get_forum_discussionsget_announcements, get_forum_discussions, get_todo
mod_forum_get_discussion_postsget_forum_posts

get_file does not use a web service function. It downloads a file link from your school's Moodle site with your key.

If only some functions are off, the other tools keep working.

What you can ask

  • "What's due this week?"
  • "What's due in Networking Basics?"
  • "What's due in the next two weeks?"
  • "What should I do today?"
  • "Is anything overdue?"
  • "Anything overdue in Networking Basics?"
  • "What work am I still missing?"
  • "What's my grade in each course, and what's in the gradebook for Networking?"
  • "Any new announcements?"
  • "What are people discussing in the Networking Basics forum?"
  • "Which assignments have I not submitted yet?"
  • "What's in each week of Networking Basics?"
  • "Read me the Week 1 page in Networking Basics."
  • "Open the slides PDF from week 2 and summarize it."

Why Moodle MCP

Moodle MCP is a Moodle AI assistant for students. Your AI app asks your school's Moodle for your courses, due dates, grades, quizzes, forums and files, then answers in plain language. It only reads. It cannot submit, edit or delete anything, and your key goes only to your own school.

Here is how it compares with the other ways to get Moodle into a chat:

Moodle MCPCopy and paste from MoodleOther Moodle MCP serversMoodle site or mobile app
Your AI can ask Moodle itselfYesNo, you paste itYesNo
Made for studentsYesNot applicableCheck each oneYes
Safe to hand to an AIRead only, no write callsYou choose what to pasteCheck what each one can changeNot applicable
Needs a plugin on the school siteNoNoCheck each oneNo
Needs the mobile web service turned onYesNoCheck each oneYes
FreeYesYesCheck each oneYes

For Brightspace, see the table in Moodle vs Brightspace.

Works with

AppHow to add it
Claude DesktopPaste the config block under Claude Desktop
Claude CodeRun the claude mcp add line under Claude Code
CursorRun the line under Cursor
VS CodeRun the code --add-mcp line under VS Code
WindsurfAdd the same npx -y moodle-student-mcp command and the two environment variables to its MCP config

Any other app that runs a local MCP server over stdio can use the same command.

Tools

All tools are read only.

ToolWhat it does
get_my_coursesYour current courses and their IDs
get_upcoming_due_datesItems that still need action and are due in the next 60 days, soonest first. Plain course events such as 'Course starts' are left out. Takes an optional course_ids list of course IDs
get_overduePast due items that still need action. Takes an optional course_ids list of course IDs
get_calendarCalendar events between a start_date and an end_date (YYYY-MM-DD), oldest first, including events that need no action. Works for any dates, up to 366 days. Takes an optional course_ids list of course IDs
get_todoOne digest for what to do next: overdue work, work due soon, assignments with no due date and the latest announcement subjects, each with the course name and due date. Takes an optional course_ids list, plus days_ahead and overdue_days to set the window
get_assignmentsAssignments for a course with due dates and submission status. Takes a course_id from get_my_courses
get_assignment_detailsThe due date, instructions and attached files of the assignments in a course, up to 5 at a time. Attached files come with a link ready for get_file. Takes a course_id from get_my_courses and an optional assignment_name, part of an assignment name, to pick one
get_quizzesQuizzes for a course with open and close dates, time limit, attempts used and allowed, and your best grade. Takes a course_id from get_my_courses
get_missing_workAssignments you have not handed in yet, drafts included, with the course name and the due date. Takes an optional course_ids list of course IDs
get_my_gradesCurrent grade for each course
get_course_grade_itemsEvery graded item in a course with mark and percentage. Takes a course_id from get_my_courses
get_course_contentSections and activities for a course, with the intro text of each activity, such as assignment instructions or label text, plus file names and links that leave your key out. Takes a course_id from get_my_courses
get_course_pageRead the Page activities of a course as plain text, up to 5 pages with up to 20000 characters each. Images and embedded media are not shown. Takes a course_id from get_my_courses and an optional page_name, part of a page title from get_course_content, to pick one page
get_fileDownload a course file from your school's Moodle site and return its text. Plain text, HTML and PDF files with readable text come back as text. A PDF with no extractable text comes back with its file name, a link with your key removed and a note to open it in Moodle. Any other file type comes back with its file name, a link with your key removed and a note that only plain text, HTML and PDF are supported, with a note to open it in Moodle. Takes a file_url from get_course_content
get_announcementsRecent announcements with the course name and date on each one, and any course Moodle will not open left out. Takes an optional course_ids list of course IDs
get_forum_discussionsLatest discussions in the forums of a course, with author, date, reply count and the start of the text. Announcement forums are left out. Takes a course_id from get_my_courses and an optional forum_name, part of a forum name, to pick one forum. Each discussion shows a discussion_id
get_forum_postsRead one forum discussion with the first post and every reply, with author, date and text. Takes a discussion_id from get_forum_discussions

Privacy and security

  • Your key stays on your computer. It is only sent to your own school's Moodle address.
  • Nothing is sent to any other server by this project.
  • get_file downloads files up to 25 MB. A bigger file, such as a lecture video, is not downloaded; you get its name and link to open it in Moodle instead.
  • get_file only downloads a link that points at your school's Moodle address. A link that points somewhere else is refused, so a link in a course page or an announcement can never take your key.
  • Every tool is marked read only. You can reset your key any time on the Security keys page.

Troubleshooting

Every tool returns these messages when the setup is off. Each one comes with the fix.

MessageFix
Not signed inYour key expired or was reset. Copy the new one from Preferences > User account > Security keys and update MOODLE_TOKEN.
Access deniedYour school turned that feature off for students. If you copied the key yourself, make sure it is the Moodle mobile web service one on Preferences > User account > Security keys.
Web services not enabledYour school hasn't turned on the mobile web service, so there is no Moodle mobile web service key on Preferences > User account > Security keys. Ask your school to turn it on.
Not foundCheck the course ID with get_my_courses.
The school's server sent a reply this server can't readCheck that MOODLE_BASE_URL points at your Moodle site's address.

Development

bash
npm installnpm run buildnpm test

Development needs Node 22.12 or newer, because the test runner needs it. The server itself runs on Node 20 or newer.

Tests run against a fake Moodle server, so they need no account or network.

The demo transcript above comes from the same code. Run npm run demo to print it again after you change a tool, and npm test checks that the README still matches what the tools answer.

If this saved you time digging through Moodle, please give the repo a star. It sits at 0 stars, and one star helps the next student find it.

Moodle vs Brightspace

Both are free, open source, read only MCP servers for students. Use the one that matches your school's learning platform. If your school uses both, or you move between schools, you can run both side by side under different server names in your MCP config.

Moodle MCPBrightspace MCP
Learning platformMoodleD2L Brightspace
Sign inMoodle mobile web service key from your Security keys pageBrowser sign in, works with Microsoft, Duo, Okta and Shibboleth
School setup neededMobile web service must be turned onNone
Courses, due dates, gradesYesYes
Submission status per assignmentYesYes
Course filesYesYes
AnnouncementsYesYes
Discussions, roster, calendar, grade outlookNoYes
Target grade calculatorNoYes
CostFreeFree

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

ServerWhat it does
Brightspace MCPD2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.
Canvas MCPCanvas LMS for AI, read only. Due dates, missing work, grades and announcements.
Google Classroom MCPGoogle Classroom for AI, read only. Todos, due dates, missing work and grades.
GPA Calculator MCPGPA, grade conversion and the grade you need on the final, for AI. Works offline, no account.
Citations MCPAPA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account.
Study Planner MCPExam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.
Paper Finder MCPSearch scholarly papers, find open access copies and related work through OpenAlex. No key needed.
BibTeX Reference Manager MCPClean, convert, dedupe and lint BibTeX, RIS and CSL JSON reference lists, and make cite keys. Works offline.
Open Textbook Finder MCPFind free legal copies of textbooks on OpenStax, DOAB and Open Library, look up editions by ISBN and suggest cheaper older ones.
STEM Calculator MCPChemistry and physics homework math: molar mass, balancing equations, grams to moles, unit conversion and significant figures. Works offline.
Essay Stats MCPOffline writing metrics for essays. Word and page counts, readability scores, passive voice, repeated openers, filler words, long sentences and word limit checks, so students can check their work against assignment requirements. No account, no network.
Syllabus to Calendar MCPSyllabus to calendar MCP server. Extract dates from syllabus text, build an ics calendar, expand recurring classes and merge calendars. Works offline, no account.
Job Application Tracker MCPJob application tracker MCP server. Track internships, jobs, interviews and deadlines offline, see what is coming up, and export your list as CSV or Markdown. No account and no API keys.

License

MIT

来源:README.md,提交 6c74fbb

工具

12

get_my_courses

My courses

Answers 'what courses am I enrolled in?' Lists each current Moodle course with the ID other tools take as course_id. No input. Ask: 'Which courses do I have this term?'

无需输入参数。

get_upcoming_due_dates

Upcoming due dates

Answers 'what is due soon?' Lists up to 50 items due in the next 60 days across your courses that still need action, soonest first, with the course name and due date. Course events such as 'Course starts' and 'Course ends' are left out because there is nothing to do about them. Input: course_ids, an optional array of course IDs to limit the list; leave it out to cover all current courses. Ask: 'What's due in the next two weeks?'

输入参数course_ids

get_overdue

Overdue work

Answers 'is anything overdue?' Lists past due items from the last 45 days that still need action, with the course name and the date each was due. Input: course_ids, an optional array of course IDs to limit the list; leave it out to cover all current courses. Ask: 'Is anything overdue?'

输入参数course_ids

get_todo

What to do next

Answers 'what should I do today?' One digest across your courses that opens with a Start here line naming the most urgent item (the oldest overdue work, else the next thing due), then lists overdue work, work due soon, assignments with no due date, and the latest announcement subjects, each with the course name and due date. Submission status comes from the assignment list and the calendar adds quizzes and other activities. Input: course_ids, an optional array of course IDs to limit the digest; days_ahead, how many days ahead to look, default 14; overdue_days, how many days back to look for overdue work, default 14. Ask: 'What should I do today?'

输入参数course_idsdays_aheadoverdue_days

get_assignments

Course assignments

Answers 'what do I still need to submit in this course?' Lists up to 25 assignments for one course with due dates and submission status: not submitted, draft, submitted or graded. Input: course_id, the ID from get_my_courses. Ask: 'Which assignments have I not submitted yet in Networking Basics?'

输入参数course_id必填

get_missing_work

Missing work

Answers 'what do I still owe?' Lists the assignments in your courses that you have not handed in yet, with the course name and the due date. Drafts that were never handed in are included, and work that was already handed in or graded is left out. Up to 25 assignments in each course are checked and the list holds up to 50 items. Input: course_ids, an optional array of course IDs to limit the list; leave it out to cover all current courses. Ask: 'What work am I still missing?'

输入参数course_ids

get_my_grades

My grades

Answers 'what's my grade in each course?' Shows the posted overall grade for every current course, or 'no grade posted yet'. No input. Ask: 'What's my grade in each course?'

无需输入参数。

get_course_grade_items

Grade breakdown

Answers 'what's in the gradebook for this course?' Lists every graded item for one course with the mark and percentage, including the course total when there is one. Input: course_id, the ID from get_my_courses. Ask: 'Show me the gradebook for Networking Basics.'

输入参数course_id必填

get_course_content

Course content

Answers 'what's in this course?' Lists the sections of one course, such as weeks or topics, with up to 40 activities in each, such as pages, quizzes and forums. Each activity shows its intro text when the course has one, such as assignment instructions, label text or a page summary. Each file shows its name and a link with your key removed, so the link is safe to show in a chat and get_file can still open it. Input: course_id, the ID from get_my_courses. Ask: 'What materials are posted in Networking Basics?'

输入参数course_id必填

get_course_page

Course page

Answers 'what does this course page say?' Reads the Page activities of one course, the pages listed as page in get_course_content, and returns their text with the HTML removed. Up to 5 pages are shown, each up to 20000 characters, and a longer page ends with [truncated]. Images and embedded media are not shown. Input: course_id, the ID from get_my_courses, and page_name, an optional word or phrase from the page title to pick one page; leave it out to read the first pages of the course. Ask: 'Read the Week 2 reading page in Networking Basics.'

输入参数course_id必填page_name

get_announcements

Announcements

Answers 'any new announcements?' Lists the latest news forum posts with subject, course name and text, up to 5 posts from each of up to 10 news forums. A course or forum the school server will not open is left out and the rest still shows. Input: course_ids, an optional array of course IDs to limit the search; leave it out to cover all current courses. Ask: 'Any new announcements from my teachers?'

输入参数course_ids

get_file

Course file

Answers 'what does this course file say?' Downloads one course file resource, such as a PDF, slide deck or handout, from its file_url. Supported types: plain text, HTML and PDF. Plain text and HTML files come back as readable text. A PDF with readable text comes back as text, and a PDF with no extractable text comes back with its file name, a link with your key removed and a note to open it in Moodle. Any other file type is not supported and comes back with its file name, a link with your key removed and a note that only plain text, HTML and PDF are supported, with a note to open it in Moodle. Only a link on your school's Moodle site is downloaded, so your key is never sent to another server. Input: file_url, the link from get_course_content. Ask: 'Read the Week 3 slides PDF.'

输入参数file_url必填

版本历史

10
  1. v0.1.10最新Nov 1, 2026
  2. v0.1.9Oct 30, 2026
  3. v0.1.8Oct 29, 2026
  4. v0.1.7Oct 26, 2026
  5. v0.1.6Oct 25, 2026
  6. v0.1.5Oct 23, 2026
  7. v0.1.4Oct 21, 2026
  8. v0.1.3Oct 20, 2026
  9. v0.1.1Oct 16, 2026
  10. v0.1.0Oct 14, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分