Server definition
- Hash
- sha256:f17158db5f5defa54ef6154facde252f77df68b56b6995cc49f8f161c277ee93
- What it is
- What a remote MCP server returned when asked what it offers: 20 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"group_id": {
"description": "The user group id (from learnworlds_list_user_groups).",
"minLength": 1,
"type": "string"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
}
},
"required": [
"group_id",
"user"
],
"type": "object"
},
"name": "learnworlds_add_user_to_group",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"description": "The user's email.",
"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,}$",
"type": "string"
},
"fields": {
"additionalProperties": {
"type": [
"string",
"null"
]
},
"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"
},
"type": "object"
},
"send_registration_email": {
"description": "Send LearnWorlds' registration email to the user.",
"type": "boolean"
},
"signup_validation_rules": {
"description": "Apply the school's sign-up validation rules (default false).",
"type": "boolean"
},
"subscribed_for_marketing_emails": {
"description": "Marketing-email consent.",
"type": "boolean"
},
"tags": {
"description": "Tags to attach to the new user.",
"items": {
"type": "string"
},
"type": "array"
},
"username": {
"description": "The user's username (display name).",
"minLength": 1,
"type": "string"
}
},
"required": [
"email",
"username"
],
"type": "object"
},
"name": "learnworlds_create_user",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"duration": {
"description": "Subscriptions only: how many duration_type units.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"duration_type": {
"description": "Subscriptions only.",
"enum": [
"months",
"weeks",
"days"
],
"type": "string"
},
"justification": {
"description": "A note, e.g. \"Added by admin\".",
"type": "string"
},
"price": {
"description": "Price recorded for this enrollment; 0 for a free grant.",
"minimum": 0,
"type": "number"
},
"product_id": {
"description": "The product id (for a course, its slug).",
"minLength": 1,
"type": "string"
},
"product_type": {
"enum": [
"course",
"bundle",
"subscription"
],
"type": "string"
},
"send_enrollment_email": {
"description": "Send the enrollment email to the learner.",
"type": "boolean"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
}
},
"required": [
"user",
"product_id",
"product_type",
"price"
],
"type": "object"
},
"name": "learnworlds_enroll_user",
"outputSchema": null
},
{
"description": "Fetch one course by id (its slug). LearnWorlds: GET /v2/courses/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "The course id — the course slug, e.g. \"my-first-course\".",
"minLength": 1,
"type": "string"
}
},
"required": [
"course_id"
],
"type": "object"
},
"name": "learnworlds_get_course",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "The course id — the course slug, e.g. \"my-first-course\".",
"minLength": 1,
"type": "string"
}
},
"required": [
"course_id"
],
"type": "object"
},
"name": "learnworlds_get_course_analytics",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "The course id — the course slug, e.g. \"my-first-course\".",
"minLength": 1,
"type": "string"
}
},
"required": [
"course_id"
],
"type": "object"
},
"name": "learnworlds_get_course_contents",
"outputSchema": null
},
{
"description": "Assessment grades of the users enrolled in a course — per user and learning unit, with submission time. LearnWorlds: GET /v2/courses/{id}/grades.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "The course id — the course slug, e.g. \"my-first-course\".",
"minLength": 1,
"type": "string"
},
"items_per_page": {
"description": "Items per page, 1-200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"learning_units": {
"description": "Comma-separated learning-unit ids to filter by (from learnworlds_get_course_contents).",
"type": "string"
},
"order": {
"description": "Sort direction.",
"enum": [
"asc",
"desc"
],
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"sort": {
"description": "Field to sort by.",
"enum": [
"created",
"submittedTimestamp"
],
"type": "string"
},
"users": {
"description": "Comma-separated user ids to filter by.",
"type": "string"
}
},
"required": [
"course_id"
],
"type": "object"
},
"name": "learnworlds_get_course_grades",
"outputSchema": null
},
{
"description": "Fetch one payment by payment id or transaction id. LearnWorlds: GET /v2/payments/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"payment_id": {
"description": "The payment id or the transaction id.",
"minLength": 1,
"type": "string"
}
},
"required": [
"payment_id"
],
"type": "object"
},
"name": "learnworlds_get_payment",
"outputSchema": null
},
{
"description": "Fetch one user by id or email — profile, role, tags, sign-up fields, UTMs and last login. LearnWorlds: GET /v2/users/{id}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"include_suspended": {
"description": "Also return the user if suspended.",
"type": "boolean"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
}
},
"required": [
"user"
],
"type": "object"
},
"name": "learnworlds_get_user",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "The course id — the course slug, e.g. \"my-first-course\".",
"minLength": 1,
"type": "string"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
}
},
"required": [
"user",
"course_id"
],
"type": "object"
},
"name": "learnworlds_get_user_course_progress",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "Only certificates for this course id.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"user_id": {
"description": "Only certificates of this user (id or email).",
"type": "string"
}
},
"type": "object"
},
"name": "learnworlds_list_certificates",
"outputSchema": null
},
{
"description": "The users enrolled in one course, newest first (20 per page by default). LearnWorlds: GET /v2/courses/{id}/users.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"course_id": {
"description": "The course id — the course slug, e.g. \"my-first-course\".",
"minLength": 1,
"type": "string"
},
"items_per_page": {
"description": "Items per page, 1-200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
}
},
"required": [
"course_id"
],
"type": "object"
},
"name": "learnworlds_list_course_users",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"access": {
"description": "Only courses with one of these access values.",
"items": {
"enum": [
"paid",
"free",
"coming_soon",
"private",
"draft",
"enrollment_closed"
],
"type": "string"
},
"type": "array"
},
"categories": {
"description": "Comma-separated category names to filter by.",
"type": "string"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "learnworlds_list_courses",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"activity": {
"description": "Only this kind of event.",
"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"
},
"created_after": {
"description": "Created after (Unix timestamp in seconds, e.g. 1626088013).",
"minimum": 0,
"type": "number"
},
"created_before": {
"description": "Created before (Unix timestamp in seconds, e.g. 1626088013).",
"minimum": 0,
"type": "number"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"sort": {
"description": "By creation time; default desc.",
"enum": [
"asc",
"desc"
],
"type": "string"
},
"user_id": {
"description": "Only events of this user (id or email).",
"type": "string"
}
},
"type": "object"
},
"name": "learnworlds_list_event_logs",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"affiliate_id": {
"description": "Only payments referred by this affiliate (id or email).",
"type": "string"
},
"created_after": {
"description": "Created after (Unix timestamp in seconds, e.g. 1626088013).",
"minimum": 0,
"type": "number"
},
"created_before": {
"description": "Created before (Unix timestamp in seconds, e.g. 1626088013).",
"minimum": 0,
"type": "number"
},
"items_per_page": {
"description": "Items per page, 1-200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"product_id": {
"description": "Only payments for this product id.",
"type": "string"
},
"product_type": {
"enum": [
"course",
"bundle",
"subscription"
],
"type": "string"
},
"user_id": {
"description": "Only payments by this user (id or email).",
"type": "string"
}
},
"type": "object"
},
"name": "learnworlds_list_payments",
"outputSchema": null
},
{
"description": "The courses a user is enrolled in, with enrollment and expiry dates (50 per page). LearnWorlds: GET /v2/users/{id}/courses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
}
},
"required": [
"user"
],
"type": "object"
},
"name": "learnworlds_list_user_courses",
"outputSchema": null
},
{
"description": "List the school's user groups (cohorts / B2B seats), newest first — title, products, group managers, capacity and tags. LearnWorlds: GET /v2/user_groups.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "learnworlds_list_user_groups",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"custom_fields": {
"additionalProperties": {
"type": "string"
},
"description": "Custom-field filters, e.g. {\"cf_skill\": \"Excel\"}. The cf_ prefix is added if missing.",
"propertyNames": {
"pattern": "^(cf_)?[A-Za-z0-9_]+$",
"type": "string"
},
"type": "object"
},
"include_suspended": {
"description": "Include suspended users (default false).",
"type": "boolean"
},
"items_per_page": {
"description": "Items per page, 1-200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"page": {
"description": "Page number, starting at 1.",
"maximum": 9007199254740991,
"minimum": 1,
"type": "integer"
},
"registration_after": {
"description": "Registered after (Unix timestamp in seconds, e.g. 1626088013).",
"minimum": 0,
"type": "number"
},
"registration_before": {
"description": "Registered before (Unix timestamp in seconds, e.g. 1626088013).",
"minimum": 0,
"type": "number"
},
"role": {
"enum": [
"user",
"admin",
"instructor",
"reporter",
"license_reporter"
],
"type": "string"
},
"status": {
"enum": [
"paying",
"non_paying",
"suspended",
"never_logged_in"
],
"type": "string"
},
"tags": {
"description": "Comma-separated tags; users with these tags.",
"type": "string"
}
},
"type": "object"
},
"name": "learnworlds_list_users",
"outputSchema": null
},
{
"description": "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}.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"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,}$",
"type": "string"
},
"fields": {
"additionalProperties": {
"type": [
"string",
"null"
]
},
"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"
},
"type": "object"
},
"subscribed_for_marketing_emails": {
"type": "boolean"
},
"tags": {
"description": "The complete new tag list (replaces existing tags).",
"items": {
"type": "string"
},
"type": "array"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
},
"username": {
"minLength": 1,
"type": "string"
}
},
"required": [
"user"
],
"type": "object"
},
"name": "learnworlds_update_user",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"action": {
"enum": [
"attach",
"detach"
],
"type": "string"
},
"tags": {
"description": "The tags to attach or detach.",
"items": {
"minLength": 1,
"type": "string"
},
"minItems": 1,
"type": "array"
},
"user": {
"description": "The user's id, or their email address.",
"minLength": 1,
"type": "string"
}
},
"required": [
"user",
"tags",
"action"
],
"type": "object"
},
"name": "learnworlds_update_user_tags",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f17158db5f5defa54ef6154facde252f77df68b56b6995cc49f8f161c277ee93 | sha256sum