Online Course Platform MCP Tools

Online Course Platform MCP tools follow a course publishing and learning access workflow across branded course portals, courses, modules, lessons, materials, video protection, live sessions and replays, students, enrolments, payments, subscription expiry, access activation, learning progress, quizzes and assignments, submissions and grading, discussions, certificates, notifications, analytics, and audit logs.

course.config.get

read

Read platform settings for timezone, enrolment, payment, access expiry, device limits, watermarking, drip content, certificates, and notification defaults.

-

Read-only. No approval required.

Do not expose payment secrets, streaming origins, private keys, or internal webhook tokens.

course.branding.get

read

Read branded course portal logo, colours, domain, copy, and language settings.

course.config.get

Read-only. No approval required.

Do not expose DNS provider secrets or unpublished brand assets outside tenant scope.

course.catalog.list

read

List course catalog, publishing state, pricing, enrolment settings, and visibility scope.

course.config.get

Read-only. No approval required.

Only return courses visible to the requesting tenant and role.

course.course.get

read

Read one course outline, price, access rules, subscription settings, drip content, and certificate criteria.

course.catalog.list

Read-only. No approval required.

Do not reveal unpublished course detail unless the role can manage that course.

course.modules.list

read

List course modules, order, unlock rules, completion requirements, and linked lessons.

course.course.get

Read-only. No approval required.

Respect unpublished module visibility and learner access scope.

course.lesson.get

read

Read lesson content, videos, materials, quizzes, assignments, discussions, and unlock state.

course.modules.list

Read-only. No approval required.

Do not return protected media source URLs or locked lesson content to unauthorized users.

course.materials.list

read

List videos, PDFs, audio, downloads, and supplemental materials with versions, visibility, and download settings.

course.course.get, course.modules.list

Read-only. No approval required.

Return signed preview references only where the requester has permission.

course.video_assets.list

read

Read streaming video assets, watermark policy, domain lock, device limits, captions, and transcoding state.

course.course.get

Read-only. No approval required.

Never expose raw source files, origin bucket paths, DRM secrets, or permanent playback tokens.

course.live_sessions.list

read

List Zoom, YouTube Live, or other live class sessions with time, links, replay, attendance, and access conditions.

course.course.get

Read-only. No approval required.

Hide host keys, meeting passcodes, and private replay URLs unless the role is authorized.

course.students.list

read

List student profiles, status, tags, contacts, and recent learning summary.

course.config.get

Read-only. No approval required.

Apply tenant isolation and mask personal data according to requester role.

course.student.get

read

Read one student's enrolments, payments, access, progress, submissions, certificates, and notification history.

course.students.list

Read-only. No approval required.

Do not leak another learner's data across accounts, families, or corporate tenants.

course.enrolments.list

read

List enrolments, waitlists, cancellations, and activations by course, student, payment, or status.

course.course.get, course.students.list

Read-only. No approval required.

Respect payment and access privacy when returning enrolment state.

course.access_grants.list

read

Read learner course access, module scope, expiry, device limits, suspensions, and revocations.

course.student.get, course.course.get

Read-only. No approval required.

Access records must be scoped by tenant, course, and learner identity.

course.subscriptions.list

read

List recurring course subscriptions, renewals, failed payments, grace periods, and access expiry impact.

course.student.get, course.payments.list

Read-only. No approval required.

Do not expose full payment instrument details or gateway secrets.

course.payments.list

read

List course payments, receipts, refunds, balances, payment proofs, and gateway state.

course.student.get, course.course.get

Read-only. No approval required.

Mask card, bank, and gateway identifiers according to finance permission.

course.progress.list

read

Read watch time, lesson completion, quiz scores, assignment state, and completion rate.

course.student.get, course.course.get

Read-only. No approval required.

Do not allow progress reads outside the learner, instructor, or admin permission boundary.

course.quiz_bank.list

read

List quizzes, question banks, pass marks, attempt limits, auto-marking, and visibility settings.

course.course.get

Read-only. No approval required.

Hide answer keys from learner-facing contexts.

course.assignments.list

read

List assignments, deadlines, submission formats, rubrics, and late submission rules.

course.course.get, course.modules.list

Read-only. No approval required.

Respect lesson release and learner enrolment before exposing assignment detail.

course.submissions.list

read

Read learner submissions, scores, grading state, feedback, and resubmission history.

course.assignments.list, course.student.get

Read-only. No approval required.

Only instructors/admins or the owning learner may read submission content.

course.certificates.list

read

List certificate templates, completion criteria, issued certificates, serials, revocations, and reissues.

course.course.get, course.progress.list

Read-only. No approval required.

Do not expose certificate edit links or signing keys.

course.discussions.list

read

List lesson discussions, questions, replies, pinned posts, moderation, and visibility state.

course.lesson.get

Read-only. No approval required.

Apply moderation state and learner privacy rules before returning content.

course.notifications.list

read

Read welcome, course start, live class, payment, renewal, completion, and certificate notification templates and logs.

course.student.get, course.course.get

Read-only. No approval required.

Mask recipient personal data and do not expose provider credentials.

course.analytics_summary.get

read

Read enrolment, revenue, completion, drop-off, live attendance, quiz pass rate, and certificate summary.

course.enrolments.list, course.progress.list, course.payments.list

Read-only. No approval required.

Aggregate analytics should avoid exposing identifiable learner data unless explicitly authorized.

course.audit_logs.list

read

Read audit logs for course, content, access, payment, certificate, and notification actions.

course.course.get, course.student.get

Read-only. No approval required.

Audit logs must be immutable and scoped to admin or compliance roles.

course.publish.preview

preview

Preview course publishing impact across outline, modules, materials, pricing, enrolment, access, and notifications.

course.course.get, course.modules.list, course.materials.list, course.branding.get

Course manager approval required before public publishing or opening enrolment.

Detect missing materials, wrong visibility, accidental public access, and pricing changes before write.

course.lesson_release.preview

preview

Preview drip content, lesson unlocks, material visibility, and affected learners.

course.lesson.get, course.modules.list, course.access_grants.list

Approval required before releasing new learner-facing content.

Do not bypass subscription, expiry, or module prerequisite rules.

course.student_activation.preview

preview

Preview account activation, course access, login notification, and tag updates after payment.

course.student.get, course.payments.list, course.course.get, course.access_grants.list

Approval required when activation is not driven by a verified payment event.

Prevent unpaid access, duplicate accounts, wrong email delivery, and cross-course activation.

course.access_change.preview

preview

Preview learner access extension, suspension, revocation, or scope change impact.

course.access_grants.list, course.subscriptions.list, course.payments.list, course.progress.list

Approval required for paid access changes and exceptional extensions.

Preserve audit trail and avoid revoking access while paid entitlement remains valid.

course.subscription_change.preview

preview

Preview renewal, cancellation, suspension, failed payment, and grace period impact on access and notifications.

course.subscriptions.list, course.payments.list, course.access_grants.list

Finance or course manager approval required for manual subscription changes.

Do not alter gateway subscription state without matching internal entitlement plan.

course.notification.preview

preview

Preview notification copy, recipients, and channel for welcome, class, live, payment, renewal, completion, or certificate messages.

course.notifications.list, course.student.get, course.course.get

Approval required for bulk sends, payment reminders, and learner-facing policy changes.

Check consent, opt-out, frequency limits, and personal data before sending.

course.assessment_publish.preview

preview

Preview quiz or assignment visibility, deadlines, auto-marking, pass rules, and affected learners.

course.quiz_bank.list, course.assignments.list, course.modules.list

Approval required before assessments become visible to learners.

Detect leaked answer keys, invalid deadlines, and mismatch with certificate rules.

course.certificate_issue.preview

preview

Preview learner name, completion, pass state, template, serial, and email before certificate issue.

course.progress.list, course.certificates.list, course.student.get, course.course.get

Automatic approval only when configured criteria are fully met; manual exception requires approval.

Prevent certificates for incomplete courses, wrong names, duplicate serials, or revoked enrolments.

course.course.upsert

write

Create or update a course draft with title, outline, pricing, enrolment, access, drip content, and certificate rules.

course.course.get or course.publish.preview

Approval required for public copy, pricing, entitlement, or certificate rule changes.

Version changes and avoid altering existing learner entitlements unless explicitly approved.

course.course.publish

write

Publish a course, open enrolment, or release it to a defined audience.

course.publish.preview

Explicit course manager approval required before execution.

Use the preview diff as execution contract and keep rollback/audit records.

course.module.upsert

write

Create or update modules, ordering, unlock rules, and completion requirements.

course.modules.list, course.course.get

Approval required when changing learner-visible structure on a published course.

Protect existing learner progress and avoid breaking certificate requirements.

course.lesson.upsert

write

Create or update lesson content, videos, materials, quizzes, assignments, and discussion settings.

course.lesson.get, course.lesson_release.preview

Approval required before changing published learner-facing lessons.

Do not expose protected assets or locked lesson content unintentionally.

course.material.publish

write

Publish materials with course, module, lesson, learner group, download, and expiry settings.

course.materials.list, course.lesson_release.preview

Approval required before learners can access new or updated materials.

Scan visibility, file version, watermark, and download restrictions before release.

course.video_asset.attach

write

Attach a video asset to a lesson and configure watermarking, domain lock, device limits, captions, and replay visibility.

course.video_assets.list, course.lesson_release.preview

Approval required before protected video becomes learner-visible.

Never store raw source URLs in public fields; use signed playback references only.

course.live_session.upsert

write

Create or update live sessions, Zoom/YouTube Live links, replays, reminders, and attendance settings.

course.live_sessions.list, course.course.get

Approval required before sending live class links or schedule changes.

Protect host credentials and notify affected learners only after approval.

course.student.upsert

write

Create or update student profile, contact details, tags, language, and notification preferences.

course.student.get

Approval required for sensitive identity or contact changes.

Deduplicate by email/phone and preserve consent/audit records.

course.enrolment.create

write

Create enrolment, waitlist entry, or confirmed seat after payment.

course.student_activation.preview

Approval required unless triggered by verified payment and configured automation rule.

Prevent duplicate enrolments, over-capacity seats, and unpaid access activation.

course.enrolment.cancel

write

Cancel enrolment and handle waitlist release, refund state, access revocation, and notifications.

course.access_change.preview, course.subscription_change.preview

Approval required for paid or active enrolments.

Do not cancel active paid access without refund/subscription decision recorded.

course.access_grant.upsert

write

Grant, extend, suspend, revoke, or adjust learner course and module access.

course.access_change.preview

Approval required for manual access changes.

Respect payment entitlement, expiry, device policy, and audit requirements.

course.subscription.update

write

Update course subscription renewal, cancellation, suspension, grace period, and access expiry settings.

course.subscription_change.preview

Finance or course manager approval required.

Keep internal entitlement and payment gateway state consistent.

course.payment_request.create

write

Create course payment request, balance collection, renewal charge, or payment proof follow-up.

course.payments.list, course.subscriptions.list

Approval required for manual charges, balance requests, or refund-related collection.

Never create duplicate payment links for the same unpaid entitlement without confirmation.

course.progress.record

write

Record watch time, lesson completion, manual completion correction, or imported external learning progress.

course.progress.list, course.lesson.get

Approval required for manual overrides that affect certificates or completion rates.

Do not overwrite verified progress without immutable correction history.

course.quiz.upsert

write

Create or update quiz questions, pass marks, attempt limits, auto-marking, and result visibility settings.

course.assessment_publish.preview

Approval required before publishing quiz changes.

Protect answer keys, scoring logic, and learner attempt history.

course.assignment.upsert

write

Create or update assignments, deadlines, submission formats, rubrics, late rules, and visibility scope.

course.assessment_publish.preview

Approval required before publishing assignment changes.

Check deadlines, learner access, and certificate dependencies before release.

course.submission.grade

write

Grade submissions, update scores, feedback, pass state, and resubmission handling.

course.submissions.list, course.assignments.list

Instructor approval required for grading and grade corrections.

Keep grade history and prevent students from seeing other submissions.

course.certificate.issue

write

Issue, reissue, or revoke course certificates based on completion and pass criteria.

course.certificate_issue.preview

Approval required for manual issue, reissue, revocation, or criteria override.

Validate learner identity, completion, serial uniqueness, and certificate template before execution.

course.notification.send

write

Send welcome, course start, live class, payment, renewal, completion, certificate, or course update notifications.

course.notification.preview

Approval required for bulk, payment, policy, and schedule-change messages.

Respect consent, opt-out, recipient scope, and rate limits.

course.action_request.status

status

Check status for course platform writes, previews, or approval requests without re-executing actions.

course.audit_logs.list

Read-only status lookup. No approval required.

Return status and audit references only; never replay the original write from this endpoint.