LearnWorlds MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.39.1Updated Nov 14, 2026

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

The publisher's own server: Ably MCP by usefulapi

Overview

AI-generated overview

Hosted MCP server for LearnWorlds that lets an assistant review courses, learners, progress, grades, certificates and payments, and create, tag or enroll users.

What you can do
  • List and inspect courses, course contents and course analytics
  • List enrolled users, course grades, users, user groups and event logs
  • Check a user's enrollments and progress in a course
  • List and read payments and list certificates
  • Create or update users, attach or detach tags, enroll users in a product and add users to groups
  • Report usage, request a feature, upgrade or cancel the paid plan
When to use it
Useful when you run a LearnWorlds school and want to ask questions in plain language about enrollment, learner progress, grades, certificates or payments, or have the assistant make small learner-management changes such as creating a user, tagging or enrolling them.
Requirements
Remote endpoint reached over streamable HTTP; no local install. Sign-in uses OAuth, and on first connect you supply your school URL, API Client ID and access token from LearnWorlds Settings > Developers > API. The README says not to add an Authorization header or API key to the client config. A free tier allows 50 tool calls per month.
Before you install
Write tools create or update users, change tags, enroll users and add them to groups, so confirm before running them. The server stores your LearnWorlds school URL, client ID and access token per user. Paid plans are billed through Stripe Checkout; upgrades charge the price difference immediately and cancellations give no refund for the current period. Usage is metered per call.

Installation

In SourceWeft

  1. Open LearnWorlds MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Flearnworlds/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "learnworlds-by-usefulapi": {
      "type": "http",
      "url": "https://learnworlds.usefulapi.io/mcp"
    }
  }
}

README

LearnWorlds MCP by usefulapi

Use LearnWorlds from Claude, Cursor, or any MCP client — review courses, learner progress, grades, payments and certificates, and create, tag or enroll learners. Hosted, no local install: connect with your own LearnWorlds credentials.

Live endpoint: https://learnworlds.usefulapi.io/mcp · Homepage: https://usefulapi.io/learnworlds

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://learnworlds.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http learnworlds https://learnworlds.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "learnworlds": {      "url": "https://learnworlds.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your LearnWorlds credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/learnworlds/

On first connect you'll provide your school URL, API Client ID and access token (Settings > Developers > API). They're validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
learnworlds_list_coursesreadList courses
learnworlds_get_coursereadGet a course
learnworlds_get_course_contentsreadGet course contents
learnworlds_get_course_analyticsreadGet course analytics
learnworlds_list_course_usersreadList users enrolled in a course
learnworlds_get_course_gradesreadGet course grades
learnworlds_list_usersreadList users
learnworlds_get_userreadGet a user
learnworlds_list_user_coursesreadList a user's course enrollments
learnworlds_get_user_course_progressreadGet a user's progress in a course
learnworlds_list_paymentsreadList payments
learnworlds_get_paymentreadGet a payment
learnworlds_list_certificatesreadList certificates
learnworlds_list_user_groupsreadList user groups
learnworlds_list_event_logsreadList event logs
learnworlds_create_userwriteCreate a user
learnworlds_update_userwriteUpdate a user
learnworlds_update_user_tagswriteAttach or detach user tags
learnworlds_enroll_userwriteEnroll a user in a product
learnworlds_add_user_to_groupwriteAdd a user to a user group
learnworlds_usage_statusmetaUsage status (free-tier meter)
learnworlds_request_featuremetaRequest a missing feature
learnworlds_upgrademetaUpgrade to Pro or Pro+
learnworlds_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per user)$9/mo or $90/yr (2 months free)10,000 tool calls / month
Pro+ (per user)$39/mo or $390/yr (2 months free)100,000 tool calls / month

Each paid plan covers this server only. Ask your AI to run learnworlds_upgrade and choose Pro or Pro+, billed monthly or yearly (it returns a Stripe Checkout link). If you already have Pro, ask to change it to Pro+. The change requires your confirmation, keeps your billing interval and charges the price difference for the rest of the period immediately. Cancel any time with learnworlds_cancel_subscription: your paid plan continues to the end of the paid period, with no refund for the current period, and asking to resume the same plan with learnworlds_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by LearnWorlds.

Source: servers/learnworlds/README.md at commit f22f848

Tools

20

learnworlds_list_courses

List courses

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.

Parameterspageaccesscategories

learnworlds_get_course

Get a course

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

Parameterscourse_idrequired

learnworlds_get_course_contents

Get course contents

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.

Parameterscourse_idrequired

learnworlds_get_course_analytics

Get course analytics

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.

Parameterscourse_idrequired

learnworlds_list_course_users

List users enrolled in a course

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

Parameterspagecourse_idrequireditems_per_page

learnworlds_get_course_grades

Get course grades

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

Parameterspagesortorderuserscourse_idrequireditems_per_pagelearning_units

learnworlds_list_users

List users

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.

Parameterspageroletagsstatuscustom_fieldsitems_per_pageinclude_suspendedregistration_afterregistration_before

learnworlds_get_user

Get a user

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

Parametersuserrequiredinclude_suspended

learnworlds_list_user_courses

List a user's course enrollments

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

Parameterspageuserrequired

learnworlds_get_user_course_progress

Get a user's progress in a course

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.

Parametersuserrequiredcourse_idrequired

learnworlds_list_payments

List payments

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.

Parameterspageuser_idproduct_idaffiliate_idproduct_typecreated_aftercreated_beforeitems_per_page

learnworlds_get_payment

Get a payment

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

Parameterspayment_idrequired

learnworlds_list_certificates

List certificates

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.

Parameterspageuser_idcourse_id

learnworlds_list_user_groups

List user groups

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

Parameterspage

learnworlds_list_event_logs

List event logs

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.

Parameterspagesortuser_idactivitycreated_aftercreated_before

learnworlds_create_user

Create a user

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.

Parameterstagsemailrequiredfieldsusernamerequiredsend_registration_emailsignup_validation_rulessubscribed_for_marketing_emails

learnworlds_update_user

Update a user

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

Parameterstagsuserrequiredemailfieldsusernamesubscribed_for_marketing_emails

learnworlds_update_user_tags

Attach or detach user tags

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.

Parameterstagsrequireduserrequiredactionrequired

learnworlds_enroll_user

Enroll a user in a product

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.

Parametersuserrequiredpricerequireddurationproduct_idrequiredproduct_typerequiredduration_typejustificationsend_enrollment_email

learnworlds_add_user_to_group

Add a user to a user group

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

Parametersuserrequiredgroup_idrequired

Version history

25
  1. v1.39.1LatestNov 13, 2026
  2. v1.38.0Nov 12, 2026
  3. v1.37.3Nov 11, 2026
  4. v1.36.5Nov 8, 2026
  5. v1.36.4Nov 7, 2026
  6. v1.35.3Nov 5, 2026
  7. v1.35.2Nov 5, 2026
  8. v1.35.1Nov 4, 2026
  9. v1.35.0Nov 3, 2026
  10. v1.34.1Nov 3, 2026
  11. v1.33.0Nov 1, 2026
  12. v1.31.0Oct 31, 2026
  13. v1.30.0Oct 31, 2026
  14. v1.29.2Oct 30, 2026
  15. v1.29.0Oct 30, 2026
  16. v1.24.0Oct 26, 2026
  17. v1.21.3Oct 25, 2026
  18. v1.21.0Oct 25, 2026
  19. v1.20.0Oct 24, 2026
  20. v1.17.0Oct 23, 2026
  21. v1.16.4Oct 22, 2026
  22. v1.16.3Oct 21, 2026
  23. v1.11.1Oct 9, 2026
  24. v1.10.0Oct 9, 2026
  25. v1.0.0Sep 30, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations