Mini Course Generator MCP connector
OAuth2.1/DCRMarketingMini Course Generator is a platform for creating and publishing short, focused online mini-courses. It enables creators to build bite-sized educational...
Mini Course Generator MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'minicoursegeneratormcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Mini Course Generator MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'minicoursegeneratormcp_course_list',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "minicoursegeneratormcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Mini Course Generator MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="minicoursegeneratormcp_course_list",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Certificate course add — Add a completion certificate to a Course — learners who finish the whole Course earn it
- Create course, lesson, module — Create a Course — the top-level program
- List course, module — List the courses in the connected account (a Course is the top-level program)
- Update course, lesson, module — Rename a Course or change its description
- Get content format, lesson, module — The MCG Course Authoring Guide — how to plan, structure, and write a course, the lesson content format, and landing-page copy
- Delete lesson, module, section — Delete a Lesson
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
minicoursegeneratormcp_course_add_certificate#Add a completion certificate to a Course — learners who finish the whole Course earn it. Creates the default certificate. Certificates live at the Course level, not per Module.1 param
Add a completion certificate to a Course — learners who finish the whole Course earn it. Creates the default certificate. Certificates live at the Course level, not per Module.
courseIdstringrequiredThe id of the course to add a certificate to. Retrieve it from course_list or course_create.minicoursegeneratormcp_course_create#Create a Course — the top-level program. A Course holds several Modules (add them with module_push, one per topic); use module_push directly only for a single standalone topic. Pass `landingPage` (marketing copy) to create the course's landing page with it. See get_content_format.3 params
Create a Course — the top-level program. A Course holds several Modules (add them with module_push, one per topic); use module_push directly only for a single standalone topic. Pass `landingPage` (marketing copy) to create the course's landing page with it. See get_content_format.
namestringrequiredCourse name.descriptionstringoptionalOptional course description.landingPagestringoptionalLanding-page marketing copy as YAML (introduction/audience/learning_outcomes/program_details/keywords).minicoursegeneratormcp_course_list#List the courses in the connected account (a Course is the top-level program).0 params
List the courses in the connected account (a Course is the top-level program).
minicoursegeneratormcp_course_update#Rename a Course or change its description. courseId is the id from course_list / course_create. Only the fields you pass change.3 params
Rename a Course or change its description. courseId is the id from course_list / course_create. Only the fields you pass change.
courseIdstringrequiredThe id of the course to update. Retrieve it from course_list or course_create.descriptionstringoptionalNew course description.namestringoptionalNew course name.minicoursegeneratormcp_get_content_format#The MCG Course Authoring Guide — how to plan, structure, and write a course, the lesson content format, and landing-page copy. Read it before creating anything.0 params
The MCG Course Authoring Guide — how to plan, structure, and write a course, the lesson content format, and landing-page copy. Read it before creating anything.
minicoursegeneratormcp_lesson_create#Add a Lesson to an existing Section. For a content lesson, pass `content` in the MCG content-authoring format (a `content:` document) — call get_content_format first. The CLI compiles it to HTML.5 params
Add a Lesson to an existing Section. For a content lesson, pass `content` in the MCG content-authoring format (a `content:` document) — call get_content_format first. The CLI compiles it to HTML.
moduleIdintegerrequiredThe integer ID of the module that owns this section.sectionIdstringrequiredThe unique identifier of the section to add the lesson to.titlestringrequiredThe title of the new lesson.contentstringoptionalFor an info lesson: the body as a content-authoring `content:` YAML document. For a quiz lesson: a YAML with `question:` and `choices:`.typestringoptionalLesson type — `info` for a content lesson or `quiz` for an interactive quiz lesson.minicoursegeneratormcp_lesson_delete#Delete a Lesson. This is destructive.1 param
Delete a Lesson. This is destructive.
lessonIdintegerrequiredThe integer ID of the lesson to permanently delete.minicoursegeneratormcp_lesson_get#Get a Lesson (title, type, and the rendered HTML body).1 param
Get a Lesson (title, type, and the rendered HTML body).
lessonIdintegerrequiredThe integer ID of the lesson to retrieve.minicoursegeneratormcp_lesson_move#Reorder a Lesson within its Module by setting its order (lower comes first). Optionally move it into another Section of the same module by passing sectionId. moduleId is the lesson's module.4 params
Reorder a Lesson within its Module by setting its order (lower comes first). Optionally move it into another Section of the same module by passing sectionId. moduleId is the lesson's module.
lessonIdintegerrequiredThe integer ID of the lesson to reorder or move.moduleIdintegerrequiredThe integer ID of the module that owns this lesson.orderintegerrequiredThe new 1-based position of the lesson within its section. Lower numbers appear first.sectionIdstringoptionalThe section to move the lesson into. Must be a section within the same module. Omit to keep the lesson in its current section.minicoursegeneratormcp_lesson_selections#Get a quiz/survey Lesson's selections — the authored options (id, text, and whether each is flagged correct). No learner/response data.1 param
Get a quiz/survey Lesson's selections — the authored options (id, text, and whether each is flagged correct). No learner/response data.
lessonIdintegerrequiredThe integer ID of the quiz or survey lesson whose answer options to retrieve.minicoursegeneratormcp_lesson_update#Edit a Lesson. Pass `title` to rename, and/or `content` (the MCG content-authoring format) to replace the body — the CLI recompiles it to HTML and replaces the whole body. Authoring is always in content-format, never raw HTML; call get_content_format for the spec.3 params
Edit a Lesson. Pass `title` to rename, and/or `content` (the MCG content-authoring format) to replace the body — the CLI recompiles it to HTML and replaces the whole body. Authoring is always in content-format, never raw HTML; call get_content_format for the spec.
lessonIdintegerrequiredThe integer ID of the lesson to edit.contentstringoptionalReplacement body in the MCG content-authoring format. The CLI compiles it to HTML and replaces the entire existing body. Call get_content_format for the authoring spec. Omit to leave the body unchanged.titlestringoptionalNew title for the lesson. Omit to leave the title unchanged.minicoursegeneratormcp_media_upload_url#Stage a media file (a video, a SCORM zip) for upload. Returns a temporary `uploadUrl` (presigned PUT) and `downloadUrl` (presigned GET, ~2h). Flow: (1) call this with the `fileName`; (2) PUT the file bytes to `uploadUrl`; (3) pass `downloadUrl` to `video_upload` / `scorm_upload`.2 params
Stage a media file (a video, a SCORM zip) for upload. Returns a temporary `uploadUrl` (presigned PUT) and `downloadUrl` (presigned GET, ~2h). Flow: (1) call this with the `fileName`; (2) PUT the file bytes to `uploadUrl`; (3) pass `downloadUrl` to `video_upload` / `scorm_upload`.
fileNamestringrequiredFile name to stage, e.g. "welcome.mp4" or "quiz.zip".contentTypestringoptionalMIME type to sign the PUT with, e.g. "video/mp4" or "application/zip" (default application/octet-stream).minicoursegeneratormcp_module_create#Create an empty Module inside a Course. A Module groups Sections; Sections hold Lessons. courseId is the id from course_list / course_create. Pass a short `description` — modules should always have one. To create a module WITH content in one step, prefer module_push.4 params
Create an empty Module inside a Course. A Module groups Sections; Sections hold Lessons. courseId is the id from course_list / course_create. Pass a short `description` — modules should always have one. To create a module WITH content in one step, prefer module_push.
courseIdstringrequiredThe id of the course to add this module to.namestringrequiredModule name.descriptionstringoptionalShort module description (1-2 sentences). Always set one.languagestringoptionalISO language code for the learner interface (default en).minicoursegeneratormcp_module_delete#Delete a Module and all its Sections and Lessons. This is destructive.1 param
Delete a Module and all its Sections and Lessons. This is destructive.
moduleIdintegerrequiredThe numeric id of the module to delete.minicoursegeneratormcp_module_get#Get a Module with its Sections and Lessons (and their ids — needed to edit them).1 param
Get a Module with its Sections and Lessons (and their ids — needed to edit them).
moduleIdintegerrequiredThe numeric id of the module to retrieve. Retrieve it from module_list.minicoursegeneratormcp_module_list#List the Modules inside a Course (each with id, name, and section/lesson counts). courseId is the Course (collection) id from course_list / course_create.1 param
List the Modules inside a Course (each with id, name, and section/lesson counts). courseId is the Course (collection) id from course_list / course_create.
courseIdstringrequiredThe id of the course whose modules to list.minicoursegeneratormcp_module_push#Create one complete Module (sections + lessons) from a `kind: Module` YAML spec. Include a top-level `landingPage` in the spec. Follow get_content_format for the content format; use dryRun:true to validate. Pass a short `description` — the spec has no description field, so this is how a created module gets one.4 params
Create one complete Module (sections + lessons) from a `kind: Module` YAML spec. Include a top-level `landingPage` in the spec. Follow get_content_format for the content format; use dryRun:true to validate. Pass a short `description` — the spec has no description field, so this is how a created module gets one.
specstringrequiredA `kind: Module` YAML spec defining sections and lessons. See get_content_format for the required structure.courseIdstringoptionalThe id of the parent course. Retrieve it from course_list or course_create.descriptionstringoptionalShort module description (1-2 sentences).dryRunbooleanoptionalIf true, validate the spec without creating anything.minicoursegeneratormcp_module_update#Rename a Module, change its description, or change its learner-interface language. Only the fields you pass change.4 params
Rename a Module, change its description, or change its learner-interface language. Only the fields you pass change.
moduleIdintegerrequiredThe numeric id of the module to update.descriptionstringoptionalNew module description.languagestringoptionalISO language code for the learner interface.namestringoptionalNew module name.minicoursegeneratormcp_scorm_upload#Host an interactive SCORM package on MCG for a lesson `scorm` block. Stage the zip with `media_upload_url`, then call this with the returned `downloadUrl` as `url`. Returns { packageId, entryPointUrl, title, version, fileName }.2 params
Host an interactive SCORM package on MCG for a lesson `scorm` block. Stage the zip with `media_upload_url`, then call this with the returned `downloadUrl` as `url`. Returns { packageId, entryPointUrl, title, version, fileName }.
urlstringrequiredPublicly-reachable URL of the SCORM .zip — use the `downloadUrl` from media_upload_url.fileNamestringoptionalOptional display name for the SCORM package.minicoursegeneratormcp_section_create#Add a Section to an existing Module.2 params
Add a Section to an existing Module.
moduleIdintegerrequiredThe numeric id of the module to add the section to.titlestringrequiredSection title.minicoursegeneratormcp_section_delete#Delete a Section and its Lessons. This is destructive.1 param
Delete a Section and its Lessons. This is destructive.
sectionIdstringrequiredThe unique identifier of the section to delete. All lessons inside it will also be permanently deleted.minicoursegeneratormcp_section_update#Rename a Section.2 params
Rename a Section.
sectionIdstringrequiredThe unique identifier of the section to rename.titlestringrequiredThe new title for the section.minicoursegeneratormcp_video_upload#Host a video on Vimeo through MCG (server-side — no Vimeo account needed) for a lesson `video` block. Pass any publicly-reachable MP4 `url`, or stage a local file with `media_upload_url` and pass the returned `downloadUrl` as `url`. Returns { shopClipId, clipId, playerUrl }.2 params
Host a video on Vimeo through MCG (server-side — no Vimeo account needed) for a lesson `video` block. Pass any publicly-reachable MP4 `url`, or stage a local file with `media_upload_url` and pass the returned `downloadUrl` as `url`. Returns { shopClipId, clipId, playerUrl }.
urlstringrequiredPublicly-reachable URL of the video file — any hosted MP4, or the `downloadUrl` from media_upload_url.fileNamestringoptionalOptional display name for the video on Vimeo.minicoursegeneratormcp_whoami#Returns the MCG account this connection is authenticated as (user id, email, shop id). Use it to confirm you connected the correct account.0 params
Returns the MCG account this connection is authenticated as (user id, email, shop id). Use it to confirm you connected the correct account.