Skip to content

Tools reference

63 tools in version 0.8.6. By scope: 26 read, 26 write and 11 admin. The reference groups them in two pages: 27 read tools (the 26 read ones plus search_users) and 36 write tools (the 26 write ones plus the other 10 admin ones). Clients discover them with tools/list. Disabled tools, write tools while write mode is off, and tools whose scope the user or token cannot use are not listed. Errors inside a tool come back as a tool error with a short message (for example Course not found.).

Besides tools, the server offers three MCP prompts (design_course, create_quiz_from_content, grade_assignment).

Read · General

Tool Moodle permission
site_info None. server details only with moodle/site:config
search_courses Course visibility for the user
list_categories Category visibility; canCreate reflects moodle/course:create
get_course_structure Course access
list_participants moodle/course:viewparticipants (moodle/site:viewuseridentity for email, moodle/site:accessallgroups for every group)
list_activities Course access
get_grades_summary moodle/grade:view; moodle/grade:viewall for averages and other users; hidden grades need moodle/grade:viewhidden
get_task_status Only the user who queued the task, or a site administrator
get_activity_settings moodle/course:manageactivities

Read · Student

Tool Moodle permission
get_my_deadlines That user's calendar action events; activity visibility
get_my_grades moodle/grade:view in each course
get_my_progress Course access
get_assignment_details mod/assign:view
get_forum_posts mod/forum:viewdiscussion
get_calendar_events Calendar visibility
search_course_content Visible activities only

Read · Teacher

Tool Moodle permission
get_ungraded_work mod/assign:grade, mod/quiz:grade
get_inactive_students moodle/course:viewparticipants and report/outline:view
get_submissions_status mod/assign:grade (moodle/site:accessallgroups to see every group)
get_submission mod/assign:grade (mod/assign:viewblinddetails to see identities under blind marking)
get_quiz_results mod/quiz:viewreports
get_activity_completion_report report/progress:view
get_course_logs_summary report/log:view
get_forum_unanswered mod/forum:viewdiscussion

Read · Messaging

Tool Moodle permission
list_conversations Only the user's own conversations
get_conversation_messages Membership of the conversation

Read · Accounts (admin scope)

Tool Moodle permission
search_users Scope admin and moodle/user:viewdetails (system)

Write · Courses and activities

Tool Moodle permission
create_course moodle/course:create in the category; a copy also needs moodle/backup:backupcourse and moodle/backup:backuptargetimport (moodle/backup:userinfo with user data)
add_section moodle/course:update
add_activity moodle/course:manageactivities and mod/<type>:addinstance (moodle/grade:managegradingforms for a rubric)
update_activity Moodle's normal activity update check (moodle/course:manageactivities); moodle/course:activityvisibility to change visible
set_visibility moodle/course:visibility, moodle/course:sectionvisibility or moodle/course:activityvisibility, depending on the target
delete_activity moodle/course:manageactivities
delete_section moodle/course:update
build_course New course: moodle/course:create in the category; existing course: moodle/course:manageactivities
update_course Per field: moodle/course:changefullname (fullName), moodle/course:changeshortname (shortName), moodle/course:changesummary (summary and the image), moodle/course:visibility (visible), moodle/course:setforcedlanguage (lang); everything else moodle/course:update
set_course_image moodle/course:update
set_course_completion moodle/course:update
set_availability Activities moodle/course:manageactivities; sections moodle/course:update

Write · Quizzes and questions

Tool Moodle permission
create_quiz moodle/course:manageactivities and mod/quiz:addinstance
add_quiz_questions mod/quiz:manage and moodle/question:add (moodle/question:managecategory to create a category)
import_questions moodle/question:add (mod/quiz:manage to add them to a quiz)

Write · Grading

Tool Moodle permission
grade_submission Scope write, write tools enabled and mod/assign:grade

Write · Enrolment, roles and groups

Tool Moodle permission
enrol_user enrol/manual:enrol
unenrol_user enrol/manual:unenrol
set_user_role moodle/role:assign
create_group moodle/course:managegroups
add_group_members moodle/course:managegroups
remove_group_members moodle/course:managegroups

Write · Forums and messaging

Tool Moodle permission
create_forum_discussion mod/forum:addnews in the announcements forum, mod/forum:startdiscussion elsewhere; mod/forum:pindiscussions for pinned
reply_forum_post mod/forum:replynews in the announcements forum, mod/forum:replypost elsewhere
send_private_message moodle/site:sendmessage
reply_conversation moodle/site:sendmessage and membership of the conversation

Write · User accounts (admin scope)

Tool Moodle permission
create_user Scope admin, write tools enabled and moodle/user:create (system)
create_users Scope admin, write tools enabled and moodle/user:create (system)
update_user Scope admin, write tools enabled and moodle/user:update (system)
suspend_user Scope admin, write tools enabled and moodle/user:update (system)
unsuspend_user Scope admin, write tools enabled and moodle/user:update (system)

Write · Site policies (admin scope)

Tool Moodle permission
set_site_policy_handler Scope admin, write tools enabled and moodle/site:config
create_policy Scope admin, write tools enabled and tool/policy:managedocs
update_policy Scope admin, write tools enabled and tool/policy:managedocs
list_policies Scope admin, write tools enabled and tool/policy:managedocs
get_policy_acceptances Scope admin, write tools enabled and tool/policy:viewacceptances