Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 4 min ago
teppi

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 yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:f17158db5f5defa54ef6154facde252f77df68b56b6995cc49f8f161c277ee93 | sha256sum