LearnWorlds MCP by usefulapi

io.usefulapi/learnworlds

Check LearnWorlds courses, learners, progress, grades and payments, and enroll or tag users.

Yes, your AI can use this right now.Answered a live MCP handshake in 183 ms with no sign-in needed and exposes 20 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://learnworlds.usefulapi.io/mcp

20 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
learnworlds_list_coursesread-only

List the school's courses, newest first, 50 per page — title, price fields, access (paid/free/draft...), categories and author. A cheap way to confirm the credentials work. LearnWorlds: GET /v2/courses.

learnworlds_get_courseread-only

Fetch one course by id (its slug). LearnWorlds: GET /v2/courses/{id}.

learnworlds_get_course_contentsread-only

The course outline: its sections (with drip-feed settings) and the learning activities (videos, PDFs, SCORM, assessments, certificates...) in each, with their ids. LearnWorlds: GET /v2/courses/{id}/contents.

learnworlds_get_course_analyticsread-only

Course-level analytics: students, learning units, average score and success rate, total study time, average time to finish, social interactions and certificates issued. LearnWorlds: GET /v2/courses/{id}/analytics.

learnworlds_list_course_usersread-only

The users enrolled in one course, newest first (20 per page by default). LearnWorlds: GET /v2/courses/{id}/users.

learnworlds_get_course_gradesread-only

Assessment grades of the users enrolled in a course — per user and learning unit, with submission time. LearnWorlds: GET /v2/courses/{id}/grades.

learnworlds_list_usersread-only

List the school's users, newest first (20 per page by default), filterable by status, role, tags, registration date and custom fields. All filters are ANDed. LearnWorlds: GET /v2/users.

learnworlds_get_userread-only

Fetch one user by id or email — profile, role, tags, sign-up fields, UTMs and last login. LearnWorlds: GET /v2/users/{id}.

learnworlds_list_user_coursesread-only

The courses a user is enrolled in, with enrollment and expiry dates (50 per page). LearnWorlds: GET /v2/users/{id}/courses.

learnworlds_get_user_course_progressread-only

A user's progress in one course — status, progress rate, average score, time on course, completed units, and a per-section / per-activity breakdown. LearnWorlds: GET /v2/users/{id}/courses/{cid}/progress.

learnworlds_list_paymentsread-only

List payments, newest first (50 per page by default) — product, price, discount, tax, coupon, affiliate, gateway and billing info. All filters are ANDed. LearnWorlds: GET /v2/payments.

learnworlds_get_paymentread-only

Fetch one payment by payment id or transaction id. LearnWorlds: GET /v2/payments/{id}.

learnworlds_list_certificatesread-only

Certificates awarded, newest first (20 per page), for a course and/or a user — at least one of course_id or user_id is required. LearnWorlds: GET /v2/certificates.

learnworlds_list_user_groupsread-only

List the school's user groups (cohorts / B2B seats), newest first — title, products, group managers, capacity and tags. LearnWorlds: GET /v2/user_groups.

learnworlds_list_event_logsread-only

The school's activity log (50 per page) — registrations, logins, purchases, enrollments, course completions, certificates, subscription changes and more, filterable by user, activity and time. LearnWorlds: GET /v2/event-logs.

learnworlds_create_usercan modify

WRITE: create a learner account. Deliberately no password or admin flag — set send_registration_email so the learner sets their own password. LearnWorlds: POST /v2/users.

learnworlds_update_usercan modify

WRITE: update a user's email, username, marketing consent, sign-up fields or tags. Only the fields you pass are sent. Passing `tags` REPLACES the tag list — use learnworlds_update_user_tags to add/remove individual tags. LearnWorlds: PUT /v2/users/{id}.

learnworlds_update_user_tagscan modify

WRITE: add (attach) or remove (detach) tags on a user, leaving their other tags untouched. Reversible with the opposite action. LearnWorlds: PUT /v2/users/{id}/tags.

learnworlds_enroll_usercan modify

WRITE: manually enroll a user in a course, bundle or subscription. This grants access and records a manual enrollment at the given price (use 0 for a free grant) — it does not charge the learner's card. Optionally emails the learner. LearnWorlds: POST /v2/users/{id}/enrollment.

learnworlds_add_user_to_groupcan modify

WRITE: add an existing user to a user group (which may enroll them in the group's products). LearnWorlds: POST /v2/user_groups/{id}/users/{uid}.

Alternatives in Finance & Payments

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”