Integration

iSpring LMS integration

iSpring LMS (formerly iSpring Learn) is a corporate learning platform. Manage users, departments and groups (ordinary and rule-based), enroll learners in courses and learning tracks, read learner and quiz results, grade assignments, run instructor-led trainings and attendance, and award gamification points. Not exposed: bulk rewrites of completion statuses, performance reviews (360 appraisals, competencies), on-the-job training checklists, webhooks, passwords and content creation. Authentication: an API key (client id and secret) exchanged for 30-minute tokens, plus the domain of your region (ispring.com, ispring.eu or ispring.au); the REST API needs a Business subscription.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in iSpring LMS.Built from the 70 iSpring LMS tools below, on the connection you add once.

What you can do with iSpring LMS

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.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Department, 5 operations

  • create_departmentCreate departmentPOSTCreates a department under a parent department and returns its UUID. For a top-level department pass the root department's id (from list_departments).
  • delete_departmentDelete departmentDELETEDeletes an empty department (no users, no sub-departments) for good.
  • get_departmentGet departmentGETReturns one department: name, code, parent and supervisors.
  • list_departmentsList departmentsGETLists departments, one page at a time, optionally searched by name or code, with parent and supervisor (the department head's userId).
  • update_departmentUpdate departmentPOSTUpdates a department's name, code or parent. Leave a field out to keep its current value.

Group, 5 operations

  • create_groupCreate groupPOSTCreates a group of users, optionally with its first members, and returns its UUID. For rule-based membership use create_smart_group.
  • delete_groupDelete groupDELETEDeletes a group (ordinary or smart) and its memberships for good; the users are kept.
  • get_groupGet groupGETReturns one group with its member userIds, usersCount and isSmart.
  • list_groupsList groupsGETLists groups, one page at a time, optionally searched by name. Each has groupId, name and isSmart.
  • update_groupUpdate groupPOSTRenames a group. Membership is changed with update_group_members.

Enrollment, 4 operations

  • enroll_learnersEnroll learnersPOSTEnrolls learners in courses or other content (itemId from get_courses_tree), with an optional deadline. Content must be published. An existing enrollment is reassigned with reenroll_learner.
  • get_enrollmentGet enrollmentGETReturns one enrollment: learner, content, access date, deadline, lock setting and certificate.
  • list_enrollmentsList enrollmentsGETLists enrollments, one page at a time, filtered by courses, learners or enrollment ids. Completion status is in list_learner_results.
  • update_enrollmentUpdate enrollmentPOSTChanges an enrollment's access date, deadline and lock-after-deadline setting.

List, 4 operations

  • list_catalog_categoriesList catalog categoriesPOSTLists catalog categories, optionally only those open to some groups or departments.
  • list_coursesList coursesPOSTLists the courses of the account with their title, type, author, passing score, custom fields and view link.
  • list_enrollment_rulesList enrollment rulesPOSTLists automatic enrollment rules (which course is assigned to which group or department), optionally for some groups or departments.
  • list_trainingsList trainingsPOSTLists trainings (instructor-led programs), one page at a time, optionally by title, organizer or type.

User, 3 operations

  • create_userCreate userPOSTCreates a user in a department and returns the new UUID. fields must contain login; optional email, first_name, last_name, job_title, about_me and custom fields (keys from list_user_profile_fields).
  • delete_userDelete userDELETEDeletes a user for good, with all enrollments and group memberships.
  • update_userUpdate userPOSTUpdates a user's profile, department, role or groups. fields must include login; send only what changes. Dates use yyyy-mm-dd.

V2, 3 operations

  • get_userGet userGETReturns a user's full profile: profile fields (login, email, names, custom fields), department, groups, roles, supervisors, status and work leave. Personal data.
  • list_usersList usersGETLists users with their profiles (personal data), one page at a time, filtered by departments, groups, logins, emails or user ids.
  • search_usersSearch usersPOSTSearches users with their profiles (personal data), one page at a time: full-text on first and last name, or filters on departments, groups, logins, emails, user ids.

Day, 2 operations

  • get_training_dayGet training dayGETReturns one day of a training session: start time, duration, location and meeting link, with its session and training ids.
  • update_training_dayUpdate training dayPOSTSets the meeting link of a training day.

Delete, 2 operations

  • delete_enrollmentsDelete enrollmentsPOSTRemoves enrollments in bulk: the learners lose access to the content, which itself is kept.
  • remove_work_leave_statusesRemove work leave statusesPOSTClears the work leave of users, back to active.

Move, 2 operations

  • move_departmentsMove departmentsPOSTMoves departments under a new parent department.
  • move_users_to_departmentMove users to departmentPOSTMoves users into another department.

Result, 2 operations

  • list_learner_modules_resultsList learner modules resultsGETLists learners' results per course module, one page at a time, with filters on users, courses, modules, departments, statuses and dates.
  • list_learner_resultsList learner resultsGETLists learners' course results (status, score, progress, dates), one page at a time. Filter completionStatuses (passed, failed, not_started...) to find who passed or failed.

Scheduled deactivation, 2 operations

  • cancel_user_deactivationCancel user deactivationDELETECancels a user's scheduled deactivation; the user stays active.
  • schedule_user_deactivationSchedule user deactivationPOSTSchedules a user's deactivation on a future date.

Scheduled termination, 2 operations

  • cancel_user_terminationCancel user terminationDELETECancels a user's scheduled termination.
  • schedule_user_terminationSchedule user terminationPOSTSchedules a user's termination (stronger than deactivation) on a future date.

Session, 2 operations

  • get_training_sessionGet training sessionGETReturns one session of a training: title, start time, duration, instructor and the ids of its days (get_training_day). Participants come from list_training_session_participants.
  • list_training_sessionsList training sessionsGETLists the sessions (scheduled runs) of a training.

Smart, 2 operations

  • create_smart_groupCreate smart groupPOSTCreates a smart group whose members are kept in sync from rules (department, group or profile field) and returns its UUID.
  • update_smart_groupUpdate smart groupPOSTReplaces the whole rule set of a smart group (rules are not merged: read them first with get_smart_group_rules). Fails on an ordinary group.

Subordination, 2 operations

  • change_department_subordinationChange department subordinationPOSTSets or removes a department's head: subordinationType manual with the head's supervisorId, no_supervisor to remove, or inherit to use the parent department's.
  • change_user_subordinationChange user subordinationPOSTSets who a user reports to: subordination and coSubordination, each with subordinationType (manual, inherit or no_supervisor) and supervisorId.

Activate, 1 operation

  • activate_usersActivate usersPOSTActivates users in bulk.

Active users by period, 1 operation

  • list_active_usersList active usersGETReturns the UUIDs of the users who were active within a date range.

Answer breakdown, 1 operation

  • list_answer_breakdownList answer breakdownGETLists quiz answers question by question, one page at a time, for one quiz, with filters on course, users, departments, groups and attempt dates.

Assignment, 1 operation

  • list_assignmentsList assignmentsGETLists course assignments with learner submissions, one page at a time. Set ungraded=1 for only the assignments awaiting review.

Award, 1 operation

  • award_pointsAward pointsPOSTAdds points to a user's gamification balance, with a mandatory reason.

Certificate, 1 operation

  • get_certificateGet certificateGETReturns the link to an issued certificate file. Recipient, course and dates are on the enrollment (get_enrollment, certificate field).

Course, 1 operation

  • list_learning_tracks_coursesList learning tracks coursesGETLists the courses inside learning tracks. Each nested course has its own enrollment.

Course field, 1 operation

  • list_course_fieldsList course fieldsGETLists the custom fields defined for courses.

Deactivate, 1 operation

  • deactivate_usersDeactivate usersPOSTDeactivates users in bulk (they can no longer sign in).

Field, 1 operation

  • list_user_profile_fieldsList user profile fieldsGETLists the user profile fields (built-in and custom) with their keys, types and rules: the keys to use in create_user and update_user.

Find existing, 1 operation

  • find_existing_usersFind existing usersPOSTChecks which of the given user UUIDs exist and returns those found. It does not search by name, login or email (use search_users).

Grade, 1 operation

  • grade_assignmentsGrade assignmentsPOSTGrades assignment submissions in bulk: per attempt (attemptId from list_ungraded_assignment_attempts) a score from 0 to 100 and an optional comment.

Member, 1 operation

  • update_group_membersUpdate group membersPOSTReplaces a group's whole member list with userIds: anyone left out is removed, so read the current list with get_group first.

Module, 1 operation

  • list_course_modulesList course modulesGETLists the modules of a course: training events (type training) and self-study material (type material).

Participant, 1 operation

  • list_training_session_participantsList training session participantsGETLists the participants of a training session, one page at a time.

Point, 1 operation

  • list_gamification_pointsList gamification pointsGETReturns the gamification point balance of users who have received or spent points (others are not listed), optionally for some users.

Quizz, 1 operation

  • list_quizzesList quizzesGETLists quizzes, one page at a time, optionally by quiz, content item or parent course. contentItemId is the courseId for list_learner_results and the enrollment tools.

Reenroll, 1 operation

  • reenroll_learnerReenroll learnerPOSTRe-enrolls a learner in the same course: progress goes back to zero and status to not_started. Works for courses and trainings, not learning tracks or standalone quizzes.

Remove, 1 operation

  • remove_user_from_groupsRemove user from groupsPOSTRemoves a user from the given groups.

Role, 1 operation

  • list_rolesList rolesGETLists the roles that can be assigned to users.

Rule, 1 operation

  • get_smart_group_rulesGet smart group rulesGETReturns a smart group's membership rules in the shape update_smart_group accepts. An ordinary group returns an empty rule list.

Terminate, 1 operation

  • terminate_usersTerminate usersPOSTTerminates users in bulk.

Training, 1 operation

  • get_trainingGet trainingGETReturns a training program: title, type, organizer and its sessions.

Tree, 1 operation

  • get_courses_treeGet courses treePOSTReturns all content items (courses, quizzes, folders, learning tracks, pages, videos, SCORM...) as a flat list with itemId, title, type and parentId. itemId is the course id for enrollments.

Ungraded, 1 operation

  • list_ungraded_assignment_attemptsList ungraded assignment attemptsGETLists the submissions of an assignment still waiting for a grade, optionally only for some learners. Each attempt has the attemptId that grade_assignments takes.

Update, 1 operation

  • update_training_day_attendanceUpdate training day attendancePOSTMarks participants present or absent on a training day, optionally with the time attended.

Withdraw, 1 operation

  • withdraw_pointsWithdraw pointsPOSTTakes points from a user's gamification balance, with a mandatory reason.

Work leave status, 1 operation

  • update_work_leave_statusesUpdate work leave statusesPOSTSets a work leave (vacation, sick leave, business trip...) with dates on users.

Use iSpring LMS from Claude Code, Cursor or Codex

Connect iSpring LMS in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its iSpring LMS operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect iSpring LMS

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect iSpring LMS once

    Add your iSpring LMS connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. 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.

iSpring LMS integration FAQ

What can you do with the iSpring LMS integration?

LiveContext exposes 70 operations on iSpring LMS, covering department, group, enrollment and list.

Popular integrations

Browse the whole catalog