LearningSuite integration
LearningSuite is an online course and learning platform (LMS) for coaches, agencies and companies. Create, update, disable and delete members and groups, give or remove access to courses, bundles and hubs, read and set course progress, grade and comment on task submissions, create lessons and publish courses, post and comment in the community, assign badges, manage event calendar entries and custom field values, chat with the account's AI agents, send push notifications or login emails, and manage webhook subscriptions. Member, team member, submission, analytics and custom field tools return personal data. Left out: the credential check route and the webhook sample-data routes (example payloads for building a webhook receiver). Authentication is an API key from your LearningSuite account, sent in the X-API-KEY header; the API allows 120 requests per minute.
Say what should happen.
The workflow builds itself.
What you can do with LearningSuite
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Custom field value, 7 operations
get_user_custom_fieldGet user custom fieldGETAgents: ask firstReturns the values of one custom field of a user (personal data), one per profile: text, numbers, option lists or file values.get_user_custom_field_card_valuesGet user custom field card valuesGETAgents: ask firstReturns a user's values for one custom field card (personal data), keyed by field key, for the default profile or the one picked by profileId, profileIndex or profileName.get_user_custom_field_storeGet user custom field storeGETAgents: ask firstReturns all custom field values of a user (personal data entered by or for them), keyed by field key, with their profiles per card.get_user_custom_field_valuesGet user custom field valuesGETAgents: ask firstReturns all custom field values of a user (personal data) for one profile index, keyed by field key; a field without that profile returns its default-profile value.set_user_custom_fieldSet user custom fieldPUTAgents: ask firstSets the value of one custom field of a user, in the default profile unless profileIndex or profileId is given, and returns the field's values.set_user_custom_field_card_valueSet user custom field card valuePUTAgents: ask firstSets one field value in a profile of a custom field card for a user (default profile unless profileId, profileIndex or profileName picks one) and returns the profile's values.set_user_custom_fieldsSet user custom fieldsPUTAgents: ask firstSets several custom field values of a user in one call and returns the user's whole custom field store.
Member, 7 operations
create_memberCreate memberPOSTAgents: ask firstCreates a member (learner account) and returns it. Sends a welcome email with login instructions unless disableLoginEmail is true. ignoreIfAlreadyExists returns an existing member instead of an error.delete_memberDelete memberDELETEAgents: ask firstDeletes a member account by its id.get_memberGet memberGETAgents: ask firstReturns one member (personal data: name, email, phone, last login), optionally with their groups.get_member_by_emailGet member by emailGETAgents: ask firstReturns the member with this email address (personal data), optionally with their groups.list_bundle_membersList bundle membersGETAgents: ask firstLists the members of a bundle with their access to it (personal data: names, emails, phone numbers). Paginate with limit (default 100) and offset.list_membersList membersGETAgents: ask firstLists members (learners) with name, email, phone, role and last login (personal data). Filter by creation date or inactivity; paginate with limit (default 1000) and offset.update_memberUpdate memberPUTAgents: ask firstChanges a member's name, email, phone, about, position, city or language, or deactivates (enabled=false) or reactivates the account. Returns the member.
Group, 5 operations
create_groupCreate groupPOSTAgents: ask firstCreates an empty group and returns it; add members with add_members_to_groups.delete_groupDelete groupDELETEAgents: ask firstDeletes a group by its id.find_groups_by_nameFind groups by nameGETAgents: ask firstFinds groups by name; with includeUsers=true each group carries its users (personal data).get_groupGet groupGETAgents: ask firstReturns one group; with includeUsers=true it carries its users (personal data).list_groupsList groupsGETAgents: ask firstLists all groups; with includeUsers=true each group carries its users (personal data).
Webhook subscription, 5 operations
create_webhook_subscriptionCreate webhook subscriptionPOSTAgents: ask firstSubscribes a URL to one LearningSuite event type (submission.created, lesson.completed, login.new and others) with a filter. LearningSuite documents no signature, so deliveries cannot be verified.delete_webhook_subscriptionDelete webhook subscriptionDELETEAgents: ask firstDeletes a webhook subscription; LearningSuite stops sending its events.get_webhook_subscriptionGet webhook subscriptionGETAgents: ask firstReturns one webhook subscription: event type, filter, target url and whether it is active.list_webhook_subscriptionsList webhook subscriptionsGETAgents: ask firstLists the webhook subscriptions of the account: event type, filter, target url and whether each is active.update_webhook_subscriptionUpdate webhook subscriptionPUTAgents: ask firstChanges the target URL, event type or filter of a webhook subscription. Returns the subscription.
Calendar event, 4 operations
create_calendar_eventCreate calendar eventPOSTAgents: ask firstCreates an event calendar series (one-time, weekly or every two weeks). Without memberIds, groupIds or bundleIds no member sees it. Reminders in notificationSettings are sent by push or email to everyone with access.delete_calendar_eventDelete calendar eventDELETEAgents: ask firstDeletes an event calendar series with all of its dates and per-date changes.list_calendar_eventsList calendar eventsGETAgents: ask firstLists event calendar SERIES (a weekly event is one entry), not single dates; compute dates from startDate, startTime, timeZone, repetitionInterval and endDate. fromDate/toDate keep series whose lifetime overlaps the range, widened by a day.update_calendar_eventUpdate calendar eventPATCHAgents: ask firstUpdates an event calendar series; fields you leave out keep their current value. Clearing a field (description, endDate, duration, reminders, link phases) is not exposed. Returns the updated series.
Course progress, 4 operations
get_member_course_infoGet member course infoGETAgents: ask firstReturns a member's access and progress for one course: whether they have access, start date, progress shown to the member (0 to 1), total progress, last visit and total learning time. Learner record (personal data).get_member_course_progressGet member course progressGETAgents: ask firstReturns a member's progress in a course, in percent. Learner record (personal data).reset_member_course_progressReset member course progressDELETEAgents: ask firstResets a member's progress for given pages, lessons or modules of a course, or for the whole course.set_member_course_progressSet member course progressPUTAgents: ask firstMarks pages, lessons, modules or the whole course as completed for a member.
Group course, 3 operations
add_courses_to_groupAdd courses to groupPUTAgents: ask firstAdds courses to a group, so all its members get access to them. Members get an email about new course access unless disableAccessNotificationEmail is true.list_group_coursesList group coursesGETAgents: ask firstLists the courses a group gives access to.remove_courses_from_groupRemove courses from groupDELETEAgents: ask firstRemoves courses from a group, so the group no longer gives access to them.
Group member, 3 operations
add_members_to_groupsAdd members to groupsPUTAgents: ask firstAdds members to groups (all users to all groups) and returns the groups with their users. Members get an email about new course access unless disableAccessNotificationEmail is true.add_members_to_groups_summaryAdd members to groups summaryPUTAgents: ask firstSame as add_members_to_groups, but returns only the number of new member-group assignments instead of the groups with their users. Emails members about new course access unless disableAccessNotificationEmail is true.remove_members_from_groupsRemove members from groupsDELETEAgents: ask firstRemoves members from groups (every given user from every given group) and returns the groups.
Lesson, 3 operations
create_lessonCreate lessonPOSTAgents: ask firstCreates a lesson in a section of a course, with optional HTML content, video and thumbnail from public URLs. Videos are processed in the background. Returns the lesson id and its paths.list_module_lessonsList module lessonsGETAgents: ask firstLists the lessons of a module with their visibility (VISIBLE, DRAFT or COMING_SOON).update_lessonUpdate lessonPUTAgents: ask firstRenames a lesson or changes its visibility (VISIBLE, DRAFT hides it, COMING_SOON shows it locked). Returns the lesson.
Member bundle, 3 operations
list_member_bundlesList member bundlesGETAgents: ask firstLists a member's bundles with their access: access dates, unlimited access, pauses, and whether access is direct or through a group. Learner record (personal data).remove_member_from_bundlesRemove member from bundlesDELETEAgents: ask firstRemoves a member from bundles.set_member_bundle_accessSet member bundle accessPUTAgents: ask firstGives a member access to bundles, or changes existing access (start or end date, unlimited, pause or resume); only fields sent change. Emails new course access unless disableAccessNotificationEmail is true.
Member course, 3 operations
add_member_to_coursesAdd member to coursesPUTAgents: ask firstGives a member direct access to courses. Sends an email about the new course access unless disableAccessNotificationEmail is true.list_member_coursesList member coursesGETAgents: ask firstLists a member's courses with access and progress (0 to 1), last visit and learning time. Paginate with limit (default 1000) and offset. Learner record (personal data).remove_member_from_coursesRemove member from coursesDELETEAgents: ask firstRemoves a member from courses.
Popup, 3 operations
get_popupGet popupGETAgents: ask firstReturns one custom popup by id or short id.list_popupsList popupsGETAgents: ask firstLists the custom popups with their id, short id and internal name. Paginate with limit (default 100) and offset.trigger_popupTrigger popupPOSTAgents: ask firstTriggers a custom popup for a member, so LearningSuite shows it to them.
Submission, 3 operations
get_submissionGet submissionGETAgents: ask firstReturns a task submission with the member (personal data), task, answer (text, files, audio or video), grading and all comments, internal ones included.grade_submissionGrade submissionPOSTAgents: ask firstGrades a submission as a team member, like grading in the LearningSuite UI; the member is notified. A new grading replaces the old one. For a task that is not gradable, leave grade out.list_course_submissionsList course submissionsGETAgents: ask firstLists task submissions in a course, newest first, with member (personal data), task, answer and grading. onlyUngraded=true keeps the latest ungraded submission per member and task. Paginate with limit (default 15) and offset.
Team member, 3 operations
get_team_memberGet team memberGETAgents: ask firstReturns one team member (personal data: name, email, role).get_team_member_by_emailGet team member by emailGETAgents: ask firstReturns the team member with this email (exact match, case-insensitive; the first one if several share it). Personal data.list_team_membersList team membersGETAgents: ask firstLists team members (users with admin-area access, not learners) with name, email and role (personal data). Paginate with limit (default 15) and offset.
Ai chat message, 2 operations
chat_with_ai_agentChat with ai agentPOSTAgents: ask firstSends a message to one of the account's AI agents as a member and returns its Markdown answer (counts against the member's AI credits). Omit chatId to start a chat. Fails with ERROR_AI_PRIVACY_CONSENT_REQUIRED without AI consent.chat_with_conciergeChat with conciergePOSTAgents: ask firstSends a message to the account's AI Concierge in the name of a member and returns its Markdown answer (AI usage counts against the member's AI credits). Omit chatId to start a chat; pass the returned chatId and metadata to continue.
Community post, 2 operations
create_community_postCreate community postPOSTAgents: ask firstPublishes a community post (or an answer in a discussion) in a forum in the name of a user; members of the forum can see it at once.list_community_postsList community postsGETAgents: ask firstLists published community posts with title, plain-text body and author (personal data), optionally of one area or forum. Paginate with limit (default 15) and offset.
Course, 2 operations
list_published_coursesList published coursesGETAgents: ask firstLists the published courses with their id, name, slug, description and last publication date.publish_coursePublish coursePOSTAgents: ask firstPublishes all pending changes of a course as a new version, which members then see. With notifyMembers=true, every member of the course gets an email and an in-app notification with updateMessage.
Custom field card, 2 operations
list_custom_field_cardsList custom field cardsGETAgents: ask firstLists the custom field cards (forms that group custom fields). Paginate with limit (default 15) and offset.list_custom_field_cards_expandedList custom field cards expandedGETAgents: ask firstLists the custom field cards with their field definitions and categories. Paginate with limit (default 15) and offset.
Custom field profile, 2 operations
list_user_custom_field_profilesList user custom field profilesGETAgents: ask firstLists a user's custom field profiles (each filling of a multi-profile card), optionally of one card. Personal data.list_user_custom_field_profiles_expandedList user custom field profiles expandedGETAgents: ask firstLists a user's custom field profiles with their values (personal data), optionally of one card.
Hub, 2 operations
create_hubCreate hubPOSTAgents: ask firstCreates a hub from a hub template, filling in the template's variables. publish=true publishes it at once.list_hubsList hubsGETAgents: ask firstLists the published hubs with their id, name, notes and the template variables they were created with.
Hub access, 2 operations
add_hub_accessAdd hub accessPUTAgents: ask firstGives members, groups or bundles access to a hub.remove_hub_accessRemove hub accessDELETEAgents: ask firstRemoves the hub access of members, groups or bundles.
Module, 2 operations
list_course_modulesList course modulesGETAgents: ask firstLists the modules of a course with their content drip (visibility) settings.list_course_modules_for_memberList course modules for memberGETAgents: ask firstLists the modules of a course with what one member sees: visibility, earliest visit date, content drip state and whether it was overridden for them. Learner record (personal data).
User badge, 2 operations
assign_user_badgesAssign user badgesPUTAgents: ask firstAssigns community badges to a user (visible on their community profile).remove_user_badgesRemove user badgesDELETEAgents: ask firstRemoves community badges from a user.
Access request, 1 operation
list_course_access_requestsList course access requestsGETAgents: ask firstLists access requests members sent for on-demand modules of a course, with the member (personal data), module, message and status. Paginate with limit (default 15) and offset.
Agent action, 1 operation
list_agent_actionsList agent actionsGETAgents: ask firstLists the agent actions (tools the account's AI agents can run) with their id, name and toolKey.
Ai agent, 1 operation
list_ai_agentsList ai agentsGETAgents: ask firstLists the enabled AI agents of the account with their id and name; pass an id to chat_with_ai_agent.
Ai credit limit, 1 operation
get_member_ai_creditsGet member ai creditsGETAgents: ask firstReturns a member's AI credit limits with usage: one entry for the global limit (aiAgentId null) and one per agent with its own limit. An empty list means no limit. Learner record (personal data).
Bundle, 1 operation
list_bundlesList bundlesGETAgents: ask firstLists the bundles (packages of courses that members get access to) with their id, name, description and access duration in days.
Calendar event analytics, 1 operation
get_calendar_event_analyticsGet calendar event analyticsGETAgents: ask firstShows how members engaged with one date of an event series (personal data): per member, clicks on infoOpen, beforeLinkClick, liveJoin (likely attended) and afterLinkClick. Members with an empty actions list did nothing (no-shows).
Community area, 1 operation
list_community_areasList community areasGETAgents: ask firstLists the community areas (top-level sections that hold forums). Paginate with limit (default 15) and offset.
Community badge, 1 operation
list_community_badgesList community badgesGETAgents: ask firstLists the community badges, optionally of one badge group. Paginate with limit (default 15) and offset.
Community comment, 1 operation
create_community_post_commentCreate community post commentPOSTAgents: ask firstPublishes a comment on a community post (or an answer to a comment) in the name of an admin user. Does not fire webhooks unless enableWebhookTriggering is true.
Community forum, 1 operation
list_community_forumsList community forumsGETAgents: ask firstLists the community forums, optionally of one area. Paginate with limit (default 15) and offset.
Course member, 1 operation
list_course_membersList course membersGETAgents: ask firstLists the members of a course (personal data) with how they got access (direct, group or bundle) and, with includeProgress=true, their progress. Paginate with limit (default 100) and offset.
Custom field category, 1 operation
list_custom_field_categoriesList custom field categoriesGETAgents: ask firstLists the custom field categories, optionally of one card. Paginate with limit (default 15) and offset.
Custom field definition, 1 operation
list_custom_field_definitionsList custom field definitionsGETAgents: ask firstLists custom field definitions (key, name, type definition, member visibility), optionally of one card or for given keys. Paginate with limit (default 15) and offset.
Custom field file, 1 operation
create_user_custom_field_fileCreate user custom field filePOSTAgents: ask firstImports a file from a public URL into a user's custom file field and returns customFieldValue; this does NOT set the field: pass [customFieldValue] as fieldValue to set_user_custom_field.
Group bundle, 1 operation
add_bundles_to_groupAdd bundles to groupPUTAgents: ask firstAdds bundles to a group, so all its members get access to the bundles' courses. Members get an email about new course access unless disableAccessNotificationEmail is true.
Hub template, 1 operation
list_hub_templatesList hub templatesGETAgents: ask firstLists the hub templates you can create hubs from with create_hub.
Hub template variable, 1 operation
list_hub_template_variablesList hub template variablesGETAgents: ask firstLists the variable names of a hub template; give a value for each in templateVariables of create_hub.
Lesson progress, 1 operation
get_member_lesson_progressGet member lesson progressGETAgents: ask firstReturns a member's progress in one lesson of a course, in percent. Learner record (personal data).
Login email, 1 operation
send_login_emailSend login emailPOSTAgents: ask firstSends a user an email with login information (a login link).
Module access override, 1 operation
create_module_unlock_overrideCreate module unlock overridePOSTAgents: ask firstOverrides the access of one member to one module (on_demand, hidden, published, locked or after_previous), regardless of the module's content drip settings.
Module progress, 1 operation
get_member_module_progressGet member module progressGETAgents: ask firstReturns a member's progress in one module of a course, in percent. Learner record (personal data).
Popup trigger, 1 operation
remove_popup_triggerRemove popup triggerDELETEAgents: ask firstRemoves a custom popup trigger for a member.
Push notification, 1 operation
send_push_notificationSend push notificationPOSTAgents: ask firstSends a push notification to users and group members who have an active login session in the account's custom mobile app (only available with a custom app). Returns success and failure counts.
Role, 1 operation
list_rolesList rolesGETAgents: ask firstLists the user roles of the account with their rights.
Section, 1 operation
list_module_sectionsList module sectionsGETAgents: ask firstLists the sections of a module; pass a section id to create_lesson.
Submission comment, 1 operation
create_submission_commentCreate submission commentPOSTAgents: ask firstComments on a submission as a team member. The member is notified unless internal is true (then only team members see it).
Use LearningSuite from Claude Code, Cursor or Codex
Connect LearningSuite in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its LearningSuite operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect LearningSuite
- Create your workspace
Sign up free. Nothing to install.
- Connect LearningSuite once
Add your LearningSuite connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
LearningSuite integration FAQ
What can you do with the LearningSuite integration?
LiveContext exposes 100 operations on LearningSuite, covering custom field value, member, group and webhook subscription.
