LearnWorlds MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP bind address | 0.0.0.0 |
| PORT | No | HTTP listen port | 8765 |
| MCP_HTTP_PATH | No | HTTP MCP route | /mcp |
| MCP_TRANSPORT | No | stdio or http (the Docker image defaults to http) | stdio |
| MCP_SHARED_TOKEN | No | Require Authorization: Bearer <token> on /mcp | |
| LEARNWORLDS_BASE_URL | Yes | Your school's API base URL | |
| LEARNWORLDS_API_TOKEN | Yes | Bearer access token | |
| LEARNWORLDS_CLIENT_ID | Yes | Sent as the Lw-Client header | |
| LEARNWORLDS_TIMEOUT_MS | No | Per-attempt request timeout | 30000 |
| LEARNWORLDS_MAX_RETRIES | No | Retries on 429 / 5xx / network errors | 3 |
| LEARNWORLDS_MAX_REQUESTS | No | Client-side requests per window (0 disables throttling) | 25 |
| LEARNWORLDS_OPENAPI_PATH | No | Load a different OpenAPI YAML | |
| LEARNWORLDS_RATE_WINDOW_MS | No | Rate-limit window in ms | 10000 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_coursesA | 🟢 READ-ONLY · Courses · GET /v2/courses Get all courses Returns a list of all courses of the school. The courses are in sorted order, with the most recently created course appearing first, and the list is paginated, with a limit of 50 courses per page. |
| create_courseA | 🟡 WRITE · creates data · Courses · POST /v2/courses Create a course Creates a new course. The endpoint response is the created Course resource. |
| get_courseA | 🟢 READ-ONLY · Courses · GET /v2/courses/{id} Get a course Returns information about the course specified by the provided course id. |
| update_courseA | 🟡 WRITE · updates data · Courses · PUT /v2/courses/{id} Update a course Updates the course specified by the provided course id. The endpoint response is the updated Course resource. |
| get_analytics_courseA | 🟢 READ-ONLY · Reporting · GET /v2/courses/{id}/analytics Get analytics for a course Returns analytics about the course specified by the provided course id. |
| get_analytics_learning_activityB | 🟢 READ-ONLY · Reporting · GET /v2/courses/{id}/units/{uid}/analytics Get analytics for a learning activity Returns analytics about a learning activity of a course specified by the provided course id and learning activity id. |
| get_bundlesA | 🟢 READ-ONLY · Bundles · GET /v2/bundles Get all bundles Returns a list of all bundles of the school. The bundles are in sorted order, with the most recently created bundle appearing first, and the list is paginated, with a limit of 20 bundles per page. |
| get_bundleB | 🟢 READ-ONLY · Bundles · GET /v2/bundles/{id} Get a bundle Returns the bundle specified by the provided bundle id. |
| get_list_subscription_plansB | 🟢 READ-ONLY · Subscription plans · GET /v2/subscription-plans Get a list of subscription plans Returns a list of all subscription plans. The subscription plans are in sorted order, with the most recently created subscription plan appearing first, and the list is paginated, with a limit of 50 subscription plans per page. |
| get_subscription_planA | 🟢 READ-ONLY · Subscription plans · GET /v2/subscription-plans/{id} Get subscription plan Returns the subscription plan specified by the provided subscription plan id. |
| get_users_subscriptionsA | 🟢 READ-ONLY · User subscriptions · GET /v2/user-subscriptions Get users subscriptions Returns a list with the user subscriptions. The subscriptions are in sorted order based on user's creation date in descending order and the list is paginated, with a limit of 20 subscriptions per page. To refine the list of subscriptions, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| get_active_installmentsA | 🟢 READ-ONLY · Installments · GET /v2/installments/active Get active installments Return a list with active installments of users. The installments are in sorted order based on user's creation date in descending order, and the list is paginated, with a limit of 50 installments per page. To refine the list of installments, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| get_school_eventsA | 🟢 READ-ONLY · Calendar · GET /v2/school/events Get school events Returns all the upcoming scheduled school events, regarding course drip feed, file assignment and live session. |
| get_usersA | 🟢 READ-ONLY · Users · GET /v2/users Get all users Returns a list with all the users of the school. The users are in sorted order, with the most recently created user appearing first, and the list is paginated, with a default limit of 20 users per page. To refine the list of users, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| create_userA | 🟡 WRITE · creates data · Users · POST /v2/users Create a user Creates a new user. The endpoint response is the created User resource. |
| get_userA | 🟢 READ-ONLY · Users · GET /v2/users/{id} Get a user Returns the user specified by the provided user id. |
| update_userB | 🟡 WRITE · updates data · Users · PUT /v2/users/{id} Update a user Updates user information. The endpoint response is the updated User resource. |
| get_courses_enrollments_userA | 🟢 READ-ONLY · Users · GET /v2/users/{id}/courses Get courses (enrollments) of user Returns a list with all course enrollment data of the specified user. The list is paginated, with a limit of 50 course enrollments per page. |
| get_users_per_courseA | 🟢 READ-ONLY · Courses · GET /v2/courses/{id}/users Get all users per course Retrieves all the users enrolled in the course specified by the provided course id. The users are in sorted order, with the most recently created user appearing first, and the list is paginated, with a default limit of 20 users per page. |
| create_course_sectionB | 🟡 WRITE · creates data · Courses · POST /v2/courses/{id}/sections Create course section Creates a new course section in the course, specified by the course id. The endpoint response is the course contents including the newly created section. |
| get_paymentsA | 🟢 READ-ONLY · Payments · GET /v2/payments Get payments Returns a list with all the payments. The payments are in sorted order, with the most recently created payment appearing first, and the list is paginated, with a default limit of 50 payments per page. To refine the list of payments, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| get_paymentB | 🟢 READ-ONLY · Payments · GET /v2/payments/{id} Get payment Returns information about the payment specified by the provided payment id. |
| get_contents_courseA | 🟢 READ-ONLY · Courses · GET /v2/courses/{id}/contents Get contents of a course Returns the contents of the course specified by the provided course id. Includes sections and learning activities. |
| get_leadsA | 🟢 READ-ONLY · Leads · GET /v2/leads Get leads Returns a list with all the leads of the school. The leads are in sorted order, with the most recently created leads appearing first, and the list is paginated, with a limit of 20 leads per page. |
| get_products_userA | 🟢 READ-ONLY · Users · GET /v2/users/{id}/products Get products of user Returns a list with all the products of the user specified by the provided user id. |
| update_user_tagsA | 🟡 WRITE · updates data · Users · PUT /v2/users/{id}/tags Update user tags Updates the tags of the user specified by the provided user Id or email. The endpoint response is the updated User resource. |
| get_promotions_couponsA | 🟢 READ-ONLY · Promotions · GET /v2/promotions/{pid}/coupons Get promotions coupons Returns all coupons for the promotion specified by the provided promotion id. |
| create_coupon_promotionA | 🟡 WRITE · creates data · Promotions · POST /v2/promotions/{pid}/coupons Create a coupon in a promotion Creates a coupon for the promotion specified by the provided promotion id. The endpoint response is the created coupon resource. |
| get_coupon_usageA | 🟢 READ-ONLY · Promotions · GET /v2/promotions/{pid}/coupons/{cid}/usage Get coupon usage Returns information about the coupon specified by the provided promotion id and coupon code. More specifically, the coupon usage details are listed along with the asocciated payments.The payments are in sorted order, with the most recently created payment appearing first, and the list is paginated, with a limit of 50 payments per page. |
| enroll_user_productC | 🟡 WRITE · creates data · Users · POST /v2/users/{id}/enrollment Enroll user to product Enroll user to product, regarding course, bundle, manual subscription |
| unenroll_user_productB | 🔴 DESTRUCTIVE · deletes · Users · DELETE /v2/users/{id}/enrollment Unenroll user from product Unenroll user from a product specified by the provided product id |
| get_affiliatesA | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates Get affiliates Returns a list with all the affiliates of the school. The affiliates are in sorted order, with the most recently created affiliate appearing first, and the list is paginated, with a limit of 20 affiliates per page. |
| get_leads_per_affiliateA | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates/{id}/leads Get all leads per affiliate Retrieves all the leads connected with the affiliate specified by the provided affiliate id. The leads are in sorted order, with the most recently created lead appearing first, and the list is paginated, with a limit of 20 leads per page. |
| update_certificate_reissueC | 🟡 WRITE · updates data · Certificates · PUT /v2/certificates/{id} Update a certificate (Reissue) Updates the certificate specified by the provided certificate id. |
| delete_certificate_revoke_invalidateB | 🔴 DESTRUCTIVE · deletes · Certificates · DELETE /v2/certificates/{id} Delete a certificate (Revoke / Invalidate) Deletes the certificate specified by the provided certificate id. |
| get_promotionsA | 🟢 READ-ONLY · Promotions · GET /v2/promotions Get promotions Returns a list with all the promotions of the school. The promotions are in sorted order, with the most recently created promotion appearing first, and the list is paginated, with a limit of 20 promotions per page. |
| create_promotionA | 🟡 WRITE · creates data · Promotions · POST /v2/promotions Create a promotion Create a new Promotion without coupons. The endpoint response is the created Promotion resource. |
| get_customers_per_affiliateA | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates/{id}/customers Get all customers per affiliate Retrieves all the customers connected with the affiliate specified by the provided affiliate id. The customers are in sorted order, with the most recently created customer appearing first, and the list is paginated, with a limit of 20 customers per page. |
| get_affiliate_paymentsA | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates/{id}/payments Get affiliate payments Returns a list with all the affiliate payments. The payments are in sorted order, with the most recently created payment appearing first, and the list is paginated, with a limit of 50 payments per page. To refine the list of payments, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| get_invoice_link_per_paymentA | 🟢 READ-ONLY · Payments · GET /v2/payments/{id}/invoice-link Get invoice link per payment Returns the invoice number and a private expiring link to acccess the invoice. |
| get_user_progress_per_courseA | 🟢 READ-ONLY · Reporting · GET /v2/users/{id}/courses/{cid}/progress Get user progress per course Returns information about the user progress for the user and course specified by the provided user id and course id. The result also includes the breakdown of user progress data per learning activity. |
| get_user_segmentsA | 🟢 READ-ONLY · Users · GET /v2/users/segments Get user segments Returns a list of all user segments in the school. |
| suspend_userA | 🟡 WRITE · updates data · Users · PUT /v2/users/{id}/suspend Suspend a user Suspends a user from loging in or creating another account. The endpoint response is the suspended User resource. |
| unsuspend_userA | 🟡 WRITE · updates data · Users · PUT /v2/users/{id}/unsuspend Unsuspend a user Unsuspends a user. The endpoint response is the unsuspended User resource. |
| get_certificatesA | 🟢 READ-ONLY · Certificates · GET /v2/certificates Get certificates Returns a list with certificates. The certificates are in sorted order, with the most recently created user appearing first, and the list is paginated, with a limit of 20 certificates per page. To refine the list of certificates, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). At least one query parameter is required. |
| get_promotionA | 🟢 READ-ONLY · Promotions · GET /v2/promotions/{id} Get promotion Returns the promotion specified by the provided promotion id. |
| get_users_segmentA | 🟢 READ-ONLY · Users · GET /v2/users/by-segment Get all users by segment Retrieves all the users in the segment specified by the provided segment id. The users are in sorted order, with the most recently created user appearing first, and the list is paginated, with a limit of 20 user per page. |
| get_users_productA | 🟢 READ-ONLY · Users · GET /v2/users/by-product Get all users by product Retrieves all the users with access to the product specified by the provided product id. The users are in sorted order, with the most recently created user appearing first, and the list is paginated, with a limit of 20 users per page. |
| get_upcoming_affiliate_payoutsB | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates/{id}/payouts/upcoming Get upcoming affiliate payouts Returns the upcoming payouts specified by the provided affiliate id |
| get_due_affiliate_payoutsB | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates/{id}/payouts/due Get due affiliate payouts Returns the due payouts related to the provided affiliate |
| get_completed_affiliate_payoutsA | 🟢 READ-ONLY · Affiliates · GET /v2/affiliates/{id}/payouts/completed Get completed affiliate payouts Returns a list with all the completed payouts related to the provided affiliate. The payouts are in sorted order, with the most recently created payouts appearing first, and the list is paginated, with a limit of 20 payouts per page. |
| create_coupons_promotion_bulkB | 🟡 WRITE · creates data · Promotions · POST /v2/promotions/{id}/coupons-bulk Create coupons in a promotion (Bulk) Bulk create coupons in a promotion. The endpoint response is an array with the created coupon resources. |
| get_event_logsA | 🟢 READ-ONLY · Event logs · GET /v2/event-logs Get event logs Returns a list with all event logs of the school. The list is paginated, with a limit of 50 event logs per page. To refine the list of event logs, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| make_affiliateB | 🟡 WRITE · creates data · Affiliates · POST /v2/affiliates/{id} Make an affiliate Makes a user specified by the provided user id an affiliate. The endpoint response is the affiliate resource. |
| get_user_progressA | 🟢 READ-ONLY · Reporting · GET /v2/users/{id}/progress Get user progress Returns information about the user progress, for the user specified by the provided user id, for all courses the user is enrolled in. The result also includes the breakdown of user progress data per learning activity. The list is paginated, with a default limit of 20 course progress data per page. |
| get_course_gradesA | 🟢 READ-ONLY · Courses · GET /v2/courses/{id}/grades Get course grades Retrieves the grades of all enrolled users in the course specified by the provided course id. The list is paginated with a limit of 20 grades per page. |
| get_assessment_responsesA | 🟢 READ-ONLY · Assessments · GET /v2/assessments/{id}/responses Get assessment responses Retrieves all the responses a user has submitted in an assessment, with the most recent submission appearing first. The list is paginated with a limit of 20 responses per page. |
| get_form_responsesB | 🟢 READ-ONLY · Assessments · GET /v2/forms/{id}/responses Get form responses Retrieves all the responses a user has submitted in a form, with the most recent submission appearing first. The list is paginated with a limit of 20 responses per page. |
| mark_as_completeB | 🟡 WRITE · creates data · Update user progress · POST /v2/users/{id}/courses/{cid}/complete Mark as complete Updates the user's progress on a course or learning activity level as complete. |
| reset_user_progressC | 🟡 WRITE · creates data · Update user progress · POST /v2/users/{id}/courses/{cid}/reset Reset user progress Resets the user's progress on a course or learning activity level. |
| get_progress_asynchronous_actionB | 🟢 READ-ONLY · Asynchronous actions · GET /v2/async-actions/{id} Get the progress of an asynchronous action Returns information about the progress of an asynchronous action. |
| get_seat_offeringsA | 🟢 READ-ONLY · Multiple seats · GET /v2/seats Get all seat offerings Returns a list of all seat offerings of the school. The seat offerings are in sorted order, with the most recently created appearing first and the list is paginated, with a default limit of 20 users per page. |
| create_seat_offeringB | 🟡 WRITE · creates data · Multiple seats · POST /v2/seats Create a seat offering Creates a new seat offering. The endpoint response is the created Seat offering resource. |
| get_specific_seat_offeringB | 🟢 READ-ONLY · Multiple seats · GET /v2/seats/{id} Get a specific seat offering Returns the seat offering specified by the provided seat offering id. |
| update_seat_offeringB | 🟡 WRITE · updates data · Multiple seats · PUT /v2/seats/{id} Update a seat offering Updates a seat offering. The endpoint response is the updated seat offering resource. |
| delete_seat_offeringA | 🔴 DESTRUCTIVE · deletes · Multiple seats · DELETE /v2/seats/{id} Delete a seat offering Deletes a specific seat offering asynchronously. This endpoint removes a seat offering identified by its unique ID. The deletion request is processed asynchronously, meaning the operation may continue after the initial request is accepted. |
| get_users_seat_offeringA | 🟢 READ-ONLY · Multiple seats · GET /v2/seats/{id}/users Get all users of seat offering Retrieves all the users who are members of the seat offering specified by the provided seat offering id. The users are in sorted order, with the most recently created user appearing first, and the list is paginated, with a default limit of 20 users per page. |
| add_user_seat_offeringA | 🟡 WRITE · creates data · Multiple seats · POST /v2/seats/{id}/users/{uid} Add a user to a seat offering Add a user to the seat offering specified by the provided seat offering id. Additionally there is the option to assign the user a seat in the seat offering. |
| remove_user_seatA | 🔴 DESTRUCTIVE · deletes · Multiple seats · DELETE /v2/seats/{id}/users/{uid} Remove user from a seat Remove a user from a seat and optionally from the seat offering. |
| get_seat_offerings_that_user_is_memberA | 🟢 READ-ONLY · Users · GET /v2/users/{id}/seats Get seat offerings that a user is member of Returns a list of all seat offerings that the specified user is a member of. |
| get_user_groupsA | 🟢 READ-ONLY · User groups · GET /v2/user_groups Get all user groups Returns a list of all user groups of the school. The user groups are in sorted order, with the most recently created appearing first and the list is paginated, with a default limit of 20 users per page. |
| create_user_groupB | 🟡 WRITE · creates data · User groups · POST /v2/user_groups Create a user group Creates a new user group. The endpoint response is the created user group resource. |
| get_user_groupA | 🟢 READ-ONLY · User groups · GET /v2/user_groups/{id} Get a user group Returns the user group specified by the provided user group id. |
| update_user_groupC | 🟡 WRITE · updates data · User groups · PUT /v2/user_groups/{id} Update a user group Updates a user group. The endpoint response is the updated user group resource. |
| deletes_user_groupA | 🔴 DESTRUCTIVE · deletes · User groups · DELETE /v2/user_groups/{id} Deletes a user group Deletes a specific user group asynchronously. This endpoint removes a user group identified by its unique ID. The deletion request is processed asynchronously, meaning the operation may continue after the initial request is accepted. |
| get_users_user_groupA | 🟢 READ-ONLY · User groups · GET /v2/user_groups/{id}/users Get users of a user group Retrieves all the users who are members of the user group specified by the provided group id. The users are in sorted order, with the most recently created user appearing first, and the list is paginated, with a default limit of 20 users per page. |
| add_user_user_groupC | 🟡 WRITE · creates data · User groups · POST /v2/user_groups/{id}/users/{uid} Add a user to a user group Add a user to a user group. |
| remove_user_user_groupB | 🔴 DESTRUCTIVE · deletes · User groups · DELETE /v2/user_groups/{id}/users/{uid} Remove user from a user group Remove a user from a user group. |
| get_user_groups_that_user_is_memberA | 🟢 READ-ONLY · Users · GET /v2/users/{id}/user-groups Get user groups that a user is member of Returns a list of all user group that the specified user is a member of. |
| get_user_rolesA | 🟢 READ-ONLY · User roles · GET /v2/user-roles Get all user roles Returns a list with all the user roles of the school. The roles are in alphabetical ascending order according to their title. |
| get_user_role_userA | 🟢 READ-ONLY · Users · GET /v2/users/{id}/user-role Get user role of a user Returns the user role of the user specified by the provided user id. Includes the assigned resources, if applicable (assigned course(s) for instructor role, assigned user group(s) for user group managers, assigned seat offering(s) for segment manager, assigned segment for reporter roles). |
| update_user_role_userB | 🟡 WRITE · updates data · Users · PUT /v2/users/{id}/user-role Update user role of a user Updates the role assigned to the user. |
| get_community_collectionsA | 🟢 READ-ONLY · Community · GET /v2/community/collections Get all community collections Returns a list with all community collections of the school. The community collections are in sorted order, with the oldest created collections appearing first |
| get_community_spacesA | 🟢 READ-ONLY · Community · GET /v2/community/spaces Get community spaces Returns a list with all community spaces of the school. The community spaces are in sorted order, with the oldest created spaces appearing first |
| create_community_spaceB | 🟡 WRITE · creates data · Community · POST /v2/community/spaces Create community space Create a community space. The endpoint response is the created community Space resource. |
| get_community_spaceA | 🟢 READ-ONLY · Community · GET /v2/community/spaces/{id} Get a community space Returns information about the community space specified by the provided space id. |
| update_community_spaceB | 🟡 WRITE · updates data · Community · PUT /v2/community/spaces/{id} Update a community space Updates the community space specified by the provided space id. The endpoint response is the updated community space resource. |
| delete_community_spaceA | 🔴 DESTRUCTIVE · deletes · Community · DELETE /v2/community/spaces/{id} Delete a community space Deletes the community space specified by the provided space id. |
| get_users_community_spaceA | 🟢 READ-ONLY · Community · GET /v2/community/spaces/{id}/users Get users of a community space Returns a list with all the users of the space. The users are in sorted order, with the oldest created user appearing first, and the list is paginated, with a default limit of 10 users per page. |
| add_invite_users_community_spaceA | 🟡 WRITE · creates data · Community · POST /v2/community/spaces/{id}/users Add/Invite users to a community space Adds or invites users to a space. If space has |
| remove_user_community_spaceA | 🔴 DESTRUCTIVE · deletes · Community · DELETE /v2/community/spaces/{id}/users/{uid} Remove a user from a community space Removes the user specified by the provided user id from the provide space id. |
| get_community_postsA | 🟢 READ-ONLY · Community · GET /v2/community/posts Get community posts Returns a list with all the posts of the school community. The post are in sorted order, with the most recently created post appearing first, and the list is paginated, with a default limit of 10 posts per page. To refine the list of posts, there are a number of query params outlined in the following section; In case more than one Query param is provided, then all of them will be applied (AND operator). |
| get_community_postA | 🟢 READ-ONLY · Community · GET /v2/community/posts/{id} Get a community post Returns information about the community post specified by the provided post id. |
| review_submission_user_s_assessment_submissionA | 🟡 WRITE · creates data · Assessments · POST /v2/assessments/scores/{id}/review Review the submission of a user's assessment submission Updates the grades and feedback for each delivered question in an assessment submission and calculates the new grades |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ohneben/Learnworlds-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server