Skip to content

Tutor LMS

New in 3.19.0 (Pro). Two dispatcher tools work with Tutor LMS 4.x (the free edition is enough):

ToolDefaultPurpose
tutor-readOnThe setup, courses with their curriculum, lessons, quizzes, enrolments and student progress (7 operations)
tutor-writeOffCreate and update courses, topics, lessons and quizzes, set the order, publish or trash, enrol and cancel (15 operations)

Enable the write tool under Tools > Plugins > Tutor LMS. EMCP runs Tutor’s own course builder code, so Tutor validates and stores every change the way its builder does. Administrators work on every course; an instructor only on the courses they teach.

  • get-setup: the Tutor version, how courses are sold, the course levels and statuses, the free question types, whether instructors may publish or trash courses, and the write operations you may run.
  • list-courses: courses with status, level, price, counts and links (20 per page; search, status, category, instructor).
  • get-course: the course fields (the names create-course takes), the curriculum (topics with their lessons and quizzes, in order), any orphans, and the course version.
  • get-lesson and get-quiz: a lesson’s or quiz’s own version.
  1. create-course with title and the details: content, level, categories and tags (term ids), benefits, requirements, target_audience, materials, duration {hours, minutes}, max_students, thumbnail_id, video {source, url}. It starts as a draft.
  2. create-topic for each section, with the latest course_version.
  3. create-lesson in a topic: title, content, video (youtube, vimeo, external_url, html5, embedded or shortcode), attachments, thumbnail_id.
  4. save-quiz with topic_id, title, options (passing_grade, attempts_allowed, time_limit, …) and questions, each with title, type, mark and answers [{title, is_correct}].
  5. get-course to check, then set-course-status with publish.

The free question types are true_false, single_choice, multiple_choice, open_ended and fill_in_the_blank. Tutor Pro types answer unsupported_question_type.

  • update-course, update-topic and update-lesson change only the fields you pass. "" clears a text field; on a lesson video: null, attachments: [] and thumbnail_id: 0 remove those.
  • save-quiz with quiz_id describes the whole quiz: keep each question_id and answer_id for what you keep; anything left out is removed.
  • reorder-contents sets the whole order, every topic once and every lesson and quiz exactly once. Contents may move between topics.

Every write to an existing course passes course_version; lesson and quiz writes pass that object’s version. A change made since you read it is a conflict and nothing is written: read again, or pass force: true to overwrite on purpose.

  • Questions students answered cannot be removed or changed, and a quiz with attempts cannot be deleted (has_attempts).
  • Courses are only moved to the trash (trash-course), never deleted: Tutor would delete their attempts and enrolments.
  • tutor_update_pending on save-quiz means Tutor has not finished its own database update; open any wp-admin page and try again.
  • enrol-student enrols an existing user in a published free course. Paid courses are refused (paid).
  • cancel-enrolment (with confirm: true) cancels it and keeps the progress.
  • list-enrolments and get-student-progress show who is enrolled and how far they got.

trash-course, delete-topic (an empty topic only), delete-lesson, delete-quiz and cancel-enrolment need confirm: true.

From our test run with the fictional Larkspur Kitchen School, recorded over a real MCP connection with Tutor LMS’s free edition. The Tutor LMS integration page shows every call the assistant made.

Tutor LMS course builder on the Curriculum step: topic The dough with two lessons, and topic Shapes with two lessons and the Pasta basics check quiz with 3 questions.

Tutor’s own course builder shows the curriculum the assistant built.

Tutor LMS course page for Fresh Pasta at Home: a photo of hands shaping tagliatelle, a Free price box with Enroll Now, learning outcomes, and the two topics.

The published course, with everything the assistant wrote: outcomes, materials, requirements and curriculum.

Every write can be undone in History: an edit comes back, a new course, topic, lesson or quiz is removed, a deleted lesson or quiz comes back with its old id, a trashed course gets its earlier status back and an order change is reversed. An undo is refused once students completed a lesson (has_progress) or took a quiz (has_attempts), whatever force says.