Tools
Every tool an assistant can use, the scope it needs and the input it takes.
Each tool is one call to a domain service, with the same validation and errors as the REST API. Lists that take page and pageSize are paginated. Ids come from the matching list tool, such as list_courses or list_spaces.
Pick a role and a set of scopes to see exactly which tools that connection gets. Reads never change anything. Changes create, update, reorder or publish. Removes deletes, revokes or takes something down, so your assistant should ask before running one.
All 87 tools
Courses
list_coursesSearch and page through the courses, each with its status and settings. Filter by status or category.
Readscourses:readShow inputs (6)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. status"draft" | "published"Optional. categorystringOptional. list_modulesThe modules of a course, in order.
Readscourses:readShow inputs (1)Hide inputs
Field Type Notes courseIdstringRequired. create_courseCreate a draft course. Publish it with update_course.
Changescourses:writeShow inputs (3)Hide inputs
Field Type Notes titlestringRequired. descriptionstringOptional. categorystringOptional. update_courseChange a course title, description, category or cover image, or publish and unpublish it with status. Fields left out stay as they are.
Changescourses:writeShow inputs (6)Hide inputs
Field Type Notes courseIdstringRequired. titlestringOptional. descriptionstringOptional. categorystringOptional. status"draft" | "published"Optional. thumbnailAssetIdstring | nullOptional. update_course_settingsChange course settings such as transcript downloads and comments. Settings left out stay as they are.
Changescourses:writeShow inputs (3)Hide inputs
Field Type Notes courseIdstringRequired. transcriptDownloadsbooleanOptional. commentsobjectOptional. create_moduleAdd a module at the end of a course. Returns the course modules in order.
Changescourses:writeShow inputs (2)Hide inputs
Field Type Notes titlestringRequired. courseIdstringRequired. rename_moduleRename a module. Returns the course modules in order.
Changescourses:writeShow inputs (3)Hide inputs
Field Type Notes titlestringRequired. courseIdstringRequired. moduleIdstringRequired. reorder_modulesSet the module order of a course. Pass every module id of the course in the new order.
Changescourses:writeShow inputs (2)Hide inputs
Field Type Notes orderedIdsstring[]Required. Every id in the collection, in the new order courseIdstringRequired. delete_coursePermanently delete a course with its modules and activities.
Removescourses:deleteShow inputs (1)Hide inputs
Field Type Notes courseIdstringRequired. delete_modulePermanently delete a module with its activities. Returns the remaining modules in order.
Removescourses:deleteShow inputs (2)Hide inputs
Field Type Notes courseIdstringRequired. moduleIdstringRequired.
Downloads
list_downloadsSearch and page through downloads: file collections a student can be granted. Filter by status or category.
Readsdownloads:readShow inputs (6)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. status"draft" | "published"Optional. categorystringOptional. list_download_filesThe files of a download, in order, with their display names.
Readsdownloads:readShow inputs (1)Hide inputs
Field Type Notes downloadIdstringRequired. create_downloadCreate a draft download. Add files with add_download_file and publish it with update_download.
Changesdownloads:writeShow inputs (3)Hide inputs
Field Type Notes titlestringRequired. descriptionstringOptional. categorystringOptional. update_downloadChange a download title, description, category or cover image, or publish and unpublish it with status. Fields left out stay as they are.
Changesdownloads:writeShow inputs (6)Hide inputs
Field Type Notes downloadIdstringRequired. titlestringOptional. descriptionstringOptional. categorystringOptional. status"draft" | "published"Optional. thumbnailAssetIdstring | nullOptional. add_download_fileAdd an uploaded file to the end of a download. Find file ids with list_media.
Changesdownloads:writeShow inputs (3)Hide inputs
Field Type Notes assetIdstringRequired. downloadIdstringRequired. displayNamestringOptional. rename_download_fileSet the name a file shows under in a download. null shows the file name.
Changesdownloads:writeShow inputs (3)Hide inputs
Field Type Notes displayNamestring | nullRequired. downloadIdstringRequired. assetIdstringRequired. reorder_download_filesSet the file order of a download. Pass every file id of the download in the new order.
Changesdownloads:writeShow inputs (2)Hide inputs
Field Type Notes assetIdsstring[]Required. downloadIdstringRequired. remove_download_fileTake a file out of a download. The uploaded file itself is kept.
Removesdownloads:writeShow inputs (2)Hide inputs
Field Type Notes downloadIdstringRequired. assetIdstringRequired. delete_downloadPermanently delete a download. The uploaded files are kept.
Removesdownloads:deleteShow inputs (1)Hide inputs
Field Type Notes downloadIdstringRequired.
Bundles
list_bundlesSearch and page through bundles: sets of courses, downloads and communities granted together.
Readsbundles:readShow inputs (4)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. list_bundle_itemsThe courses, downloads and communities in a bundle.
Readsbundles:readShow inputs (1)Hide inputs
Field Type Notes bundleIdstringRequired. create_bundleCreate a bundle, optionally with the course, download and community ids it starts with.
Changesbundles:writeShow inputs (2)Hide inputs
Field Type Notes namestringRequired. contentIdsstring[]Optional. rename_bundleRename a bundle.
Changesbundles:writeShow inputs (2)Hide inputs
Field Type Notes bundleIdstringRequired. namestringOptional. add_bundle_itemAdd a course, download or community to a bundle. Returns the bundle items.
Changesbundles:writeShow inputs (2)Hide inputs
Field Type Notes contentIdstringRequired. bundleIdstringRequired. remove_bundle_itemTake a course, download or community out of a bundle. Returns the remaining items.
Removesbundles:writeShow inputs (2)Hide inputs
Field Type Notes bundleIdstringRequired. contentIdstringRequired. delete_bundlePermanently delete a bundle. Its courses, downloads and communities are kept.
Removesbundles:deleteShow inputs (1)Hide inputs
Field Type Notes bundleIdstringRequired.
Media
list_mediaSearch and page through uploaded files, to use in downloads or as cover images of courses, downloads and communities. Uploading is done in the admin app.
Readsmedia:readShow inputs (6)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. kind"image" | "video" | "audio" | "document"Optional. The media class, derived by the server from the content type. source"library" | "member"Optional. Defaults to `library`.
Students
list_studentsSearch and page through the students with their access count, average progress, status and last activity.
Readsstudents:readShow inputs (4)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. invite_studentInvite someone by email as a student. They exist as an invited student at once. sendEmail false skips the email.
Changesstudents:inviteReaches outside the LMS: sends email or runs workflow actionsShow inputs (4)Hide inputs
Field Type Notes emailstringRequired. firstNamestringOptional. lastNamestringOptional. sendEmailbooleanOptional. resend_student_inviteSend a pending student's invite email again.
Changesstudents:inviteReaches outside the LMS: sends email or runs workflow actionsShow inputs (1)Hide inputs
Field Type Notes idstringRequired.
Access
list_accessWho has access to what. Filter by student (orgUserId), content, type or status.
Readsaccess:readShow inputs (9)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. status"active" | "expired" | "revoked"Optional. sourcestringOptional. orgUserIdstringOptional. contentIdstringOptional. type"course" | "download"Optional. grant_accessGive a student access to one course, download or community (contentId) or to a bundle (bundleId), never both. expiresAt is a date-time, or null for no expiry.
Changesaccess:writeShow inputs (4)Hide inputs
Field Type Notes orgUserIdstringRequired. expiresAtdate-time | nullRequired. When access ends; null never expires contentIdstring | nullOptional. bundleIdstring | nullOptional. set_access_statusRevoke an access grant, or reinstate a revoked one.
Removesaccess:writeShow inputs (2)Hide inputs
Field Type Notes status"active" | "revoked"Required. idstringRequired.
Analytics
get_dashboardPublished and draft course counts, active students, and access grants expiring soon.
Readsanalytics:readget_enrollment_trendDaily enrollments across the organization for the last days (default 30, at most 365).
Readsanalytics:readShow inputs (1)Hide inputs
Field Type Notes daysintegerOptional. get_course_analyticsEnrolled, started and completed counts, average progress and per-activity engagement for one course.
Readsanalytics:readShow inputs (1)Hide inputs
Field Type Notes courseIdstringRequired. get_course_enrollment_trendDaily enrollments in one course for the last days (default 30, at most 365).
Readsanalytics:readShow inputs (2)Hide inputs
Field Type Notes courseIdstringRequired. daysintegerOptional. get_student_analyticsOne student's enrolled, started and completed counts, average progress and progress in each course.
Readsanalytics:readShow inputs (1)Hide inputs
Field Type Notes idstringRequired. get_community_analyticsMembership, activity and moderation counts for one community.
Readsanalytics:readShow inputs (1)Hide inputs
Field Type Notes communityIdstringRequired.
Workflows and webhooks
list_automation_triggersThe events that can start a workflow.
Readsautomations:readlist_automation_actionsThe actions a workflow can run, with the settings each one takes.
Readsautomations:readlist_automationsWorkflows and webhooks with their triggers, ordered actions and enabled state. Filter by kind (workflow or webhook).
Readsautomations:readShow inputs (1)Hide inputs
Field Type Notes kind"workflow" | "webhook"Optional. list_automation_runsRuns of one workflow or webhook, newest first, with the trigger event as a webhook would receive it and each action result.
Readsautomations:readShow inputs (6)Hide inputs
Field Type Notes idstringRequired. pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. status"running" | "completed" | "failed"Optional. create_automationCreate a workflow from triggers and ordered actions. Use list_automation_triggers and list_automation_actions for valid values.
Changesautomations:writeShow inputs (5)Hide inputs
Field Type Notes namestringRequired. triggersstring[]Required. actionsobject[]Required. descriptionstringOptional. filterobject | nullOptional. update_automationChange a workflow name, description, triggers or actions, or turn it on and off with enabled. Fields left out stay as they are.
Changesautomations:writeShow inputs (7)Hide inputs
Field Type Notes idstringRequired. namestringOptional. descriptionstringOptional. triggersstring[]Optional. actionsobject[]Optional. filterobject | nullOptional. enabledbooleanOptional. rerun_automation_runRun a finished workflow or webhook run again with its original trigger event, using the automation's current actions. Emails and webhook deliveries are sent again. The new outcome replaces the run's previous one. A run still in progress can't be re-run.
Changesautomations:writeReaches outside the LMS: sends email or runs workflow actionsShow inputs (2)Hide inputs
Field Type Notes idstringRequired. runIdstringRequired. delete_automationPermanently delete a workflow.
Removesautomations:deleteShow inputs (1)Hide inputs
Field Type Notes idstringRequired. update_webhookChange a webhook URL, events or description, or turn it on and off with enabled. Fields left out stay as they are.
Changesautomations:writeShow inputs (5)Hide inputs
Field Type Notes idstringRequired. urlstringOptional. eventsstring[]Optional. descriptionstringOptional. enabledbooleanOptional. delete_webhookPermanently delete a webhook and its signing secret. Its delivery history is kept.
Removesautomations:deleteShow inputs (1)Hide inputs
Field Type Notes idstringRequired.
Comments
list_commentsThe comment moderation queue. Filter by status, reported, course, activity or author. Each comment carries its activityId and parentId.
Readscomments:readShow inputs (9)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. status"pending" | "published" | "removed"Optional. reportedstringOptional. courseIdstringOptional. activityIdstringOptional. orgUserIdstringOptional. publish_commentPublish a comment: approves one waiting for review, or restores a removed one.
Changescomments:moderateShow inputs (1)Hide inputs
Field Type Notes commentIdstringRequired. dismiss_comment_reportsMark the reports on a comment as resolved. The comment's status does not change.
Changescomments:moderateShow inputs (1)Hide inputs
Field Type Notes commentIdstringRequired. reply_to_commentReply to a published top-level comment as yourself. Pass its activityId and its id. To answer a reply, reply to its parentId.
Changescomments:moderateShow inputs (3)Hide inputs
Field Type Notes bodystringRequired. commentIdstringRequired. activityIdstringRequired. remove_commentTake a comment down.
Removescomments:moderateShow inputs (1)Hide inputs
Field Type Notes commentIdstringRequired.
Communities
list_communitiesSearch and page through the communities, drafts included, each with its status and direct-message settings. Filter by status, search by title.
Readscommunities:readShow inputs (5)Hide inputs
Field Type Notes pageintegerOptional. pageSizeintegerOptional. searchstringOptional. sortstringOptional. status"draft" | "published"Optional. list_spacesThe spaces of a community, in order, each with its access rule, topics and links.
Readscommunities:readShow inputs (1)Hide inputs
Field Type Notes communityIdstringRequired. create_communityCreate a draft community with the default direct-message settings and no spaces. Add spaces with create_space and publish it with update_community.
Changescommunities:writeShow inputs (2)Hide inputs
Field Type Notes titlestringRequired. descriptionstringOptional. update_communityChange a community title, description or cover image, or publish and unpublish it with status. The cover must be a ready image from list_media; null clears it. Fields left out stay as they are.
Changescommunities:writeShow inputs (5)Hide inputs
Field Type Notes communityIdstringRequired. titlestringOptional. descriptionstringOptional. status"draft" | "published"Optional. thumbnailAssetIdstring | nullOptional. update_community_messagingChange the direct-message settings of a community: who may message whom from now on. Settings left out stay as they are.
Changescommunities:writeShow inputs (8)Hide inputs
Field Type Notes communityIdstringRequired. enabledbooleanOptional. memberToMemberbooleanOptional. memberToStaffbooleanOptional. staffToAnyonebooleanOptional. firstMessageIsRequestbooleanOptional. groupChatsbooleanOptional. groupSizeintegerOptional. The most people a group chat may hold, its creator included create_spaceAdd a space at the end of a community. Its access rule decides who can open it: all members, by request or by invite. A space open to all members cannot have a capacity.
Changescommunities:writeShow inputs (6)Hide inputs
Field Type Notes namestringRequired. communityIdstringRequired. descriptionstringOptional. accessRule"all_members" | "by_request" | "by_invite"Optional. capacityinteger | nullOptional. settingsobjectOptional. update_spaceChange a space name, description, access rule, capacity or settings. settings merges into the current settings. Fields left out stay as they are.
Changescommunities:writeShow inputs (7)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. namestringOptional. descriptionstringOptional. accessRule"all_members" | "by_request" | "by_invite"Optional. capacityinteger | nullOptional. settingsobjectOptional. reorder_spacesSet the space order of a community. Pass every space id of the community in the new order.
Changescommunities:writeShow inputs (2)Hide inputs
Field Type Notes idsstring[]Required. Every id in the collection, once each, in the new order communityIdstringRequired. set_space_topicsReplace the topics of a space. An entry with an id keeps and renames that topic, one without adds a topic, and a topic left out is deleted. A topic that posts use cannot be deleted.
Changescommunities:writeShow inputs (3)Hide inputs
Field Type Notes topicsobject[]Required. The complete list, in order. A topic left out is deleted communityIdstringRequired. spaceIdstringRequired. add_space_linkLink a course, download or community into a space, after its other links. Returns the space.
Changescommunities:writeShow inputs (3)Hide inputs
Field Type Notes contentIdstringRequired. The course, download or community to link communityIdstringRequired. spaceIdstringRequired. reorder_space_linksSet the link order of a space. Pass every link id of the space in the new order.
Changescommunities:writeShow inputs (3)Hide inputs
Field Type Notes idsstring[]Required. Every id in the collection, once each, in the new order communityIdstringRequired. spaceIdstringRequired. remove_space_linkTake a link out of a space. The linked content itself is kept. Returns the space.
Removescommunities:writeShow inputs (3)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. linkIdstringRequired. delete_spacePermanently delete a space with its posts, comments and members.
Removescommunities:deleteShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. delete_communityPermanently delete a community with its spaces. Links to it from other spaces are removed.
Removescommunities:deleteShow inputs (1)Hide inputs
Field Type Notes communityIdstringRequired.
Community members
list_community_membersPage through everyone with active access to a community, granted directly or through a bundle. Search by name or email.
Readscommunity_members:readShow inputs (4)Hide inputs
Field Type Notes communityIdstringRequired. pageintegerOptional. pageSizeintegerOptional. searchstringOptional. list_space_membersPage through a space's members, its open requests to join and its open invitations.
Readscommunity_members:readShow inputs (4)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. pageintegerOptional. pageSizeintegerOptional. add_space_memberPlace a member of the community straight into a space, with no request or invitation. Not for a space open to all members, or one that is full.
Changescommunity_members:writeShow inputs (3)Hide inputs
Field Type Notes orgUserIdstringRequired. communityIdstringRequired. spaceIdstringRequired. invite_space_memberInvite a member of the community into an invite-only space. They are notified and join when they accept.
Changescommunity_members:writeReaches outside the LMS: sends email or runs workflow actionsShow inputs (3)Hide inputs
Field Type Notes orgUserIdstringRequired. communityIdstringRequired. spaceIdstringRequired. approve_space_requestApprove a person's request to join a space. Not when the space is full.
Changescommunity_members:writeShow inputs (3)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. orgUserIdstringRequired. decline_space_requestDecline a person's request to join a space.
Changescommunity_members:writeShow inputs (3)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. orgUserIdstringRequired. remove_space_memberRemove a person from a space, whether they are a member, asked to join or were invited. Their access to the community stays. Not for a space open to all members.
Removescommunity_members:writeShow inputs (3)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. orgUserIdstringRequired.
Community moderation
get_space_moderation_queueThe posts awaiting review in a space and the open flags on its posts and comments. Each list holds at most the 100 oldest; working the queue brings in the next ones.
Readscommunity_moderation:readShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. spaceIdstringRequired. get_message_moderation_queueThe messages in a community's chats with open flags, with the flags and the chat each is in. Holds at most the 100 oldest open flags.
Readscommunity_moderation:readShow inputs (1)Hide inputs
Field Type Notes communityIdstringRequired. approve_postPublish a post that is awaiting review.
Changescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. postIdstringRequired. dismiss_post_flagsClose every open flag on a post and leave it up.
Changescommunity_moderation:writeShow inputs (3)Hide inputs
Field Type Notes resolution"dismissed"Required. `dismissed` closes the open flags and leaves the post up. Removing the post resolves its flags as `removed` instead. communityIdstringRequired. postIdstringRequired. remove_postTake a published or pending post down and resolve its open flags as removed. restore_post brings it back.
Removescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. postIdstringRequired. restore_postPut a removed post back up.
Changescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. postIdstringRequired. dismiss_post_comment_flagsClose every open flag on a comment on a post and leave it up.
Changescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. commentIdstringRequired. remove_post_commentHide a comment on a post and resolve its open flags as removed. restore_post_comment brings it back.
Removescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. commentIdstringRequired. restore_post_commentPublish a removed comment on a post again.
Changescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. commentIdstringRequired. dismiss_message_flagsClose every open flag on a chat message and leave it up.
Changescommunity_moderation:writeShow inputs (3)Hide inputs
Field Type Notes resolution"dismissed"Required. `dismissed` closes the open flags and leaves the message up. Deleting the message or locking the chat resolves its flags as `deleted` or `locked` instead. communityIdstringRequired. messageIdstringRequired. lock_chatStop everyone sending or editing messages in a chat until it is unlocked. Its open message flags are resolved as locked.
Removescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. chatIdstringRequired. unlock_chatLet the participants of a locked chat send messages again.
Changescommunity_moderation:writeShow inputs (2)Hide inputs
Field Type Notes communityIdstringRequired. chatIdstringRequired.
A tool that answers "Not found" means the id isn't in this organization. Any other refusal carries the same message the REST API returns, such as a space being full or a topic still in use.