Site operationsPro
Tutor LMS MCP for course building, quizzes and results
The Tutor LMS MCP abilities in GoBuildWP Pro let an AI client build a course the way Tutor's builder does: a draft course, then topics, then lessons and quizzes appended in order, then questions. The same module reads quiz attempts and per-learner grades without email or IP addresses, and enrolls a learner only after Tutor's own purchasable check says the course is not for sale. That check is the whole guard: it covers what Tutor reports as purchasable, so a course whose access is sold through another plugin, such as a membership plugin, needs its payment and access rules checked separately.
Draft a course called Sourdough Basics with a Starter topic, one lesson and a three-question quiz.
wppilot/tutor-lms-create-courseWriteCreates the course as a draft with description, level and free price type.
wppilot/tutor-lms-create-topicWriteAppends the Starter topic to the curriculum.
wppilot/tutor-lms-create-lessonWriteAdds the lesson at the end of that topic, with a YouTube video source and its runtime.
wppilot/tutor-lms-create-quizWriteAdds a quiz at the end of the topic with Tutor's default settings.
wppilot/tutor-lms-add-quiz-questionWriteCalled three times, once per question, for single_choice, true_false and fill_in_the_blank questions.
wppilot/tutor-lms-get-course-structureReadReads the tree back, drafts included, to confirm the order.
- Edition
- Pro
- Abilities
- 24
- Requires
- WordPress 6.9+, PHP 8.0+, Tutor LMS 4.0.0+
Abilities
Tutor LMS abilities by effect
Inspect9
tutor-lms-check-setupCheck Tutor LMS Setuptutor-lms-get-courseGet Tutor LMS Coursetutor-lms-get-course-structureGet Tutor LMS Course Structuretutor-lms-get-gradesGet Tutor LMS Quiz Gradestutor-lms-get-quizGet Tutor LMS Quiztutor-lms-get-user-enrollmentsGet User Tutor LMS Enrollmentstutor-lms-list-course-contentList Tutor LMS Course Contenttutor-lms-list-coursesList Tutor LMS Coursestutor-lms-list-quiz-attemptsList Tutor LMS Quiz Attempts
Create and change10
tutor-lms-add-quiz-questionAdd Tutor LMS Quiz Questiontutor-lms-create-courseCreate Tutor LMS Coursetutor-lms-create-lessonCreate Tutor LMS Lessontutor-lms-create-quizCreate Tutor LMS Quiztutor-lms-create-topicCreate Tutor LMS Topictutor-lms-reorder-course-contentReorder Tutor LMS Course Contenttutor-lms-update-courseUpdate Tutor LMS Coursetutor-lms-update-lessonUpdate Tutor LMS Lessontutor-lms-update-quiz-questionUpdate Tutor LMS Quiz Questiontutor-lms-update-quiz-settingsUpdate Tutor LMS Quiz Settings
Reference: /docs/reference/tutor-lms
Documented source abilities; live registration can be narrower. Edition and effect labels describe the source catalogue. The installed schema, dependency versions, licence, WordPress capability, safety profile and per-ability policy determine availability; labels alone do not prove confirmation or recovery.
Worked example
Drafting a short course
Expected outcome to verify on the installed stack; this sequence has not been recorded as a runtime test.
The course sits unpublished until someone asks for it to go live. Course, topic, lesson and quiz can each be undone from the change log; the questions cannot, so the reply keeps them for recreating.
Check setup and the active monetization provider before course creation. Learner IDs, display names and grades remain sensitive even when email and IP are absent; use a bounded synthetic response for demonstrations.
tutor-lms-create-courseCreates the course as a draft with description, level and free price type.
tutor-lms-create-topicAppends the Starter topic to the curriculum.
tutor-lms-create-lessonAdds the lesson at the end of that topic, with a YouTube video source and its runtime.
tutor-lms-create-quizAdds a quiz at the end of the topic with Tutor's default settings.
tutor-lms-add-quiz-questionCalled three times, once per question, for single_choice, true_false and fill_in_the_blank questions.
tutor-lms-get-course-structureReads the tree back, drafts included, to confirm the order.
Limits
Undo coverage and enrollment rules
- Use a synthetic user and course with reviewed target IDs. A purchasable check is not a universal protection against bypassing commerce configuration; verify actual enrollment, access and payment policy separately.
- Undoable: new courses, topics, lessons and quizzes, course and lesson updates, quiz settings, and deletes that only trash. Not undoable: reorders, every question write, permanent deletes and added instructors.
- A reorder must list every topic and item in the course; the result carries restore_topics, which is the only way to put the old order back.
- Permanently deleting a course also deletes its topics, lessons, quizzes, quiz attempts and enrollments. A dry run reports the counts first.
- Enrollment is refused for any course Tutor reports as purchasable. Unenrollment deletes the enrollment record and is not a refund or subscription cancellation.
- Matching, ordering, image and Pro interactive question types can be read but must be edited in Tutor's quiz builder.
Data model
A tree of posts plus quiz tables
Tutor stores a course as a tree of posts: the course, its topics, and under each topic its lessons, quizzes and assignments, ordered by menu_order. Moving an item means changing its parent and order. Lesson duration is stored on the lesson's video, so a lesson without a video source has no duration.
Quiz questions and their answers are not posts. They are rows in tutor_quiz_questions and tutor_quiz_question_answers, which is why question writes cannot be rolled back from the change log and return the previous rows instead. An enrollment is a tutor_enrolled post, and instructors are linked through user meta.
Pricing depends on the monetisation provider the site uses: free, WooCommerce (a course links an existing product), or Tutor's native checkout (price and sale price on the course).
Other plugins
Commerce plugins and Tutor Pro
- For WooCommerce-priced courses, the course links an existing product that no other course uses; creating or repricing that product is done with the WooCommerce abilities.
- Courses priced through Easy Digital Downloads or a membership plugin are refused for paid setup; set the price in that plugin.
- Tutor Pro's Gradebook letter grades are not in the grade summary, and the lesson preview flag only shows with Tutor Pro's Course Preview add-on.
Quiz results, question fixes and curriculum moves
Finding the quiz question every learner gets wrong
A Tutor LMS MCP session that pays for itself quickly starts from the results rather than the content. tutor-lms-get-grades summarises one course per learner and quiz: attempts, best and latest percentage, the latest result and whether the passing grade was reached. A quiz where most learners pass only on a second or third attempt is the place to look. tutor-lms-list-quiz-attempts narrows to that quiz, and tutor-lms-get-quiz returns its questions with the correct answers marked, so the agent can point at a question whose wording or answer key looks wrong.
Attempt lists do not include learners' individual answers, so the agent cannot say which option people chose; it can say a quiz is failing more often than its neighbours and show you the questions to reread. Names and grades are still personal data even without emails, and they are sent to whichever AI provider your client uses, so keep these reads to the people who already see Tutor's reports.
Fixing a Tutor LMS question after learners have taken the quiz
tutor-lms-update-quiz-question rewrites a question's text, mark and flags, and when answers are sent it replaces all of them; the question type cannot change. Questions live in Tutor's own tables, so the change log cannot undo the edit, and the response carries the previous question and answers instead. Keep that response until you have checked the quiz in Tutor's builder.
Deleting a question is the heavier choice. The dry run of tutor-lms-delete-quiz-question returns the rows that would go and how many recorded attempt answers point at the question, which tells you how much quiz history refers to it. When that number is high, editing the wording usually serves learners better than deleting. Matching, ordering, image and Tutor Pro's interactive question types are read-only here and are edited in the quiz builder.
Quiz settings: attempts, passing grade and answer feedback
tutor-lms-update-quiz-settings changes only the settings you name and can be rolled back from the change log. passing_grade is a percentage, attempts_allowed switches the attempt limit on, time_limit takes a value with a unit from seconds to weeks, and max_questions sets how many questions are drawn per attempt from a larger pool. feedback_mode takes default, reveal or retry, and GoBuildWP maps it onto the two flags Tutor 4 uses, so the agent does not have to know the newer storage.
A new passing grade is meant for attempts made after the change; how Tutor treats results already recorded, and any certificate that depends on them, is worth checking on a staging copy with a test learner before changing a live course.
Moving lessons between topics with tutor-lms-reorder-course-content
Restructuring a curriculum is one call, and it is strict on purpose: every current topic and every lesson, quiz and assignment must appear exactly once, with its new topic and position. Run it with dry_run first to see the planned moves, then for real. The change log cannot reverse a reorder; the response's restore_topics is the way back, so keep it.
The authoring abilities accept a user who can manage options or holds Tutor's manage_tutor capability, but GoBuildWP's own check, manage options, comes first, so an instructor account cannot run them. On Production Safe, deleting content and enrolling or unenrolling wait for confirm; Read Only allows the reporting reads. The Tutor LMS reference has every parameter.
- "Read only: which quiz in the Sourdough course takes learners the most attempts to pass?"
- "Show me question 4 of that quiz with its answer key, and suggest clearer wording. Change nothing yet."
- "Move the Hydration lesson into the Starter topic, after the first lesson, and show me the dry run."
Questions
Tutor LMS questions
Can AI enroll a student in a paid Tutor LMS course?
Not when Tutor reports the course as purchasable: the enrollment ability calls Tutor's is_course_purchasable check, refuses, and the learner has to go through checkout. The ability checks nothing else, so if access to a course is sold through a membership or other plugin that Tutor does not count as a price, confirm that course's access rules yourself before asking for an enrollment.
Does unenrolling a learner refund them?
No. It permanently removes the enrollment record only. Refunds and subscription changes belong to the commerce system that sold the course.
Can I undo a quiz question the agent edited?
Not from the change log, because questions live in Tutor's own tables. The edit returns the previous question and answers so they can be written back.
Does the agent see learners' quiz answers?
Attempt lists and grade summaries return learner id, display name, marks and results, without email, IP address or answers. get-quiz does include the correct answers, as administrator data.
Where these facts come from
GoBuildWP behaviour is taken from the plugin source and the ability reference; third-party details from the vendor documentation below, checked by the GoBuildWP team.
Tutor LMS is a separate product; no partnership or endorsement is implied.