What this MCP does
Manages LearnWorlds courses, learners, enrollments, progress, grades, certificates, groups and course payments.
Tools
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['group_id', 'user'], 'properties': {'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}, 'group_id': {'type': 'string', 'minLength': 1, 'description': 'The user group id (from learnworlds_list_user_groups).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['email', 'username'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tags to attach to the new user.'}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': "The user's email."}, 'fields': {'type': 'object', 'description': 'Sign-up fields to set, e.g. {"company": "Acme", "phone": "+1..."}. Built-in keys include bio, location, url, phone, address, country, birthday, company, company_size, university, graduation_year and social links; custom fields use their cf_ key (e.g. cf_skill).', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': ['string', 'null']}}, 'username': {'type': 'string', 'minLength': 1, 'description': "The user's username (display name)."}, 'send_registration_email': {'type': 'boolean', 'description': "Send LearnWorlds' registration email to the user."}, 'signup_validation_rules': {'type': 'boolean', 'description': "Apply the school's sign-up validation rules (default false)."}, 'subscribed_for_marketing_emails': {'type': 'boolean', 'description': 'Marketing-email consent.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['user', 'product_id', 'product_type', 'price'], 'properties': {'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}, 'price': {'type': 'number', 'minimum': 0, 'description': 'Price recorded for this enrollment; 0 for a free grant.'}, 'duration': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Subscriptions only: how many duration_type units.'}, 'product_id': {'type': 'string', 'minLength': 1, 'description': 'The product id (for a course, its slug).'}, 'product_type': {'enum': ['course', 'bundle', 'subscription'], 'type': 'string'}, 'duration_type': {'enum': ['months', 'weeks', 'days'], 'type': 'string', 'description': 'Subscriptions only.'}, 'justification': {'type': 'string', 'description': 'A note, e.g. "Added by admin".'}, 'send_enrollment_email': {'type': 'boolean', 'description': 'Send the enrollment email to the learner.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['course_id'], 'properties': {'course_id': {'type': 'string', 'minLength': 1, 'description': 'The course id — the course slug, e.g. "my-first-course".'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['course_id'], 'properties': {'course_id': {'type': 'string', 'minLength': 1, 'description': 'The course id — the course slug, e.g. "my-first-course".'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['course_id'], 'properties': {'course_id': {'type': 'string', 'minLength': 1, 'description': 'The course id — the course slug, e.g. "my-first-course".'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['course_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'enum': ['created', 'submittedTimestamp'], 'type': 'string', 'description': 'Field to sort by.'}, 'order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort direction.'}, 'users': {'type': 'string', 'description': 'Comma-separated user ids to filter by.'}, 'course_id': {'type': 'string', 'minLength': 1, 'description': 'The course id — the course slug, e.g. "my-first-course".'}, 'items_per_page': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Items per page, 1-200.'}, 'learning_units': {'type': 'string', 'description': 'Comma-separated learning-unit ids to filter by (from learnworlds_get_course_contents).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['payment_id'], 'properties': {'payment_id': {'type': 'string', 'minLength': 1, 'description': 'The payment id or the transaction id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['user'], 'properties': {'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}, 'include_suspended': {'type': 'boolean', 'description': 'Also return the user if suspended.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['user', 'course_id'], 'properties': {'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}, 'course_id': {'type': 'string', 'minLength': 1, 'description': 'The course id — the course slug, e.g. "my-first-course".'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'user_id': {'type': 'string', 'description': 'Only certificates of this user (id or email).'}, 'course_id': {'type': 'string', 'description': 'Only certificates for this course id.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'access': {'type': 'array', 'items': {'enum': ['paid', 'free', 'coming_soon', 'private', 'draft', 'enrollment_closed'], 'type': 'string'}, 'description': 'Only courses with one of these access values.'}, 'categories': {'type': 'string', 'description': 'Comma-separated category names to filter by.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['course_id'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'course_id': {'type': 'string', 'minLength': 1, 'description': 'The course id — the course slug, e.g. "my-first-course".'}, 'items_per_page': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Items per page, 1-200.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'sort': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'By creation time; default desc.'}, 'user_id': {'type': 'string', 'description': 'Only events of this user (id or email).'}, 'activity': {'enum': ['register', 'login', 'logout', 'purchase', 'manual_enrollment', 'drip_feed_section_unlocked', 'subscription_signup', 'subscription_trial', 'subscription_trial_expired', 'subscription_changed', 'subscription_renewal', 'subscription_cancelled', 'subscription_scheduled_cancellation', 'subscription_reactivated', 'failed_purchase', 'new_affiliate', 'new_affiliate_manual', 'affiliate_deactivated', 'affiliate_payout', 'follow', 'post', 'post_comment', 'post_like', 'award_certificate', 'visit_course', 'complete_course', 'installment_paid', 'payment_plan_completed', 'payment_plan_canceled', 'payment_failed', 'sca_related_events', 'session_scheduled', 'session_attended', 'session_manually_attended', 'group_session_scheduled', 'group_session_attended', 'group_session_manually_attended'], 'type': 'string', 'description': 'Only this kind of event.'}, 'created_after': {'type': 'number', 'minimum': 0, 'description': 'Created after (Unix timestamp in seconds, e.g. 1626088013).'}, 'created_before': {'type': 'number', 'minimum': 0, 'description': 'Created before (Unix timestamp in seconds, e.g. 1626088013).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'user_id': {'type': 'string', 'description': 'Only payments by this user (id or email).'}, 'product_id': {'type': 'string', 'description': 'Only payments for this product id.'}, 'affiliate_id': {'type': 'string', 'description': 'Only payments referred by this affiliate (id or email).'}, 'product_type': {'enum': ['course', 'bundle', 'subscription'], 'type': 'string'}, 'created_after': {'type': 'number', 'minimum': 0, 'description': 'Created after (Unix timestamp in seconds, e.g. 1626088013).'}, 'created_before': {'type': 'number', 'minimum': 0, 'description': 'Created before (Unix timestamp in seconds, e.g. 1626088013).'}, 'items_per_page': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Items per page, 1-200.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['user'], 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'page': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1, 'description': 'Page number, starting at 1.'}, 'role': {'enum': ['user', 'admin', 'instructor', 'reporter', 'license_reporter'], 'type': 'string'}, 'tags': {'type': 'string', 'description': 'Comma-separated tags; users with these tags.'}, 'status': {'enum': ['paying', 'non_paying', 'suspended', 'never_logged_in'], 'type': 'string'}, 'custom_fields': {'type': 'object', 'description': 'Custom-field filters, e.g. {"cf_skill": "Excel"}. The cf_ prefix is added if missing.', 'propertyNames': {'type': 'string', 'pattern': '^(cf_)?[A-Za-z0-9_]+$'}, 'additionalProperties': {'type': 'string'}}, 'items_per_page': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Items per page, 1-200.'}, 'include_suspended': {'type': 'boolean', 'description': 'Include suspended users (default false).'}, 'registration_after': {'type': 'number', 'minimum': 0, 'description': 'Registered after (Unix timestamp in seconds, e.g. 1626088013).'}, 'registration_before': {'type': 'number', 'minimum': 0, 'description': 'Registered before (Unix timestamp in seconds, e.g. 1626088013).'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['user'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The complete new tag list (replaces existing tags).'}, 'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}, 'email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"}, 'fields': {'type': 'object', 'description': 'Sign-up fields to set, e.g. {"company": "Acme", "phone": "+1..."}. Built-in keys include bio, location, url, phone, address, country, birthday, company, company_size, university, graduation_year and social links; custom fields use their cf_ key (e.g. cf_skill).', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': ['string', 'null']}}, 'username': {'type': 'string', 'minLength': 1}, 'subscribed_for_marketing_emails': {'type': 'boolean'}}}
Input schema
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['user', 'tags', 'action'], 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': 'The tags to attach or detach.'}, 'user': {'type': 'string', 'minLength': 1, 'description': "The user's id, or their email address."}, 'action': {'enum': ['attach', 'detach'], 'type': 'string'}}}
Recent tool changes
Similar MCP servers
MaCalculatriceEnLigne
Provides calculators for French and Belgian taxes, salaries, pensions, VAT, loans, health metrics, education scores, fitness, and…
HiveLearn
Creates and manages courses, lessons, quizzes, enrollments, learning tracks, events, certificates, resources, progress, and commu…
concordance
Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…
opportunity-exchange
Provides governed Saskatchewan labor-market, wage, housing, community-economy, workforce-pathway, procurement, and business-readi…
Lodi Kids Activities
Searches and manages a directory of youth programs, family events, and licensed daycares in Lodi, California, including listings,…
optionality-mcp
Generates options-trading scenarios, records trading journals, provides AI evaluations and hints, and tracks user performance and…
ClusterHack
Supports hackathon operations including events, registrations, teams, submissions, judging, schedules, companies and leaderboards.
The Ainglish Project
Maintains a measured, auditable register of language constructs, proposals, evidence, adoption, contributors, protocols, and rati…