Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Mini Course Generator MCP server

Vendor MCP
Open markdown

The Mini Course Generator MCP connector routes your AI agent's tool calls to Mini Course Generator's own MCP server through Scalekit. Each user signs in to Mini Course Generator once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 44 tools.

Tools
44
What they doRead · write · destructive
15 · 19 · 1015 read19 write10 destructive
Users sign in with
OAuth app
Scalekit's or your own

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. 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>
  3. Create the Mini Course Generator MCP connection

    In AgentKit > Connections, create a Mini Course Generator MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Mini Course Generator MCP server, so you don't need to register an OAuth app.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'minicoursegeneratormcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Mini Course Generator MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'minicoursegeneratormcp_whoami',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • minicoursegeneratormcp_course_analyticsAggregate learner analytics for a Course: how many are assigned, how many engaged, how many completed it, certificates and badges issued, and the mean quiz score.Read-only

    CourseAnalytics

    Aggregate learner analytics for a Course: how many are assigned, how many engaged, how many completed it, certificates and badges issued, and the mean quiz score. No personal data — counts only. Pass moduleId to narrow the same report to one Module. Start here before reaching for the per-learner lists — and for a public Course this is the ONLY reach figure, because a public Course enrols nobody and so has no learner list at all.

    Inputs

    courseIdstringrequired
    Course id from course_list.
    moduleIdinteger
    Optional: narrow the report to this Module.
  • minicoursegeneratormcp_course_finishersThe learners who completed a whole Course, with their mean score, when they finished, and their certificate URL where one was issued.Read-only

    CourseFinishers

    The learners who completed a whole Course, with their mean score, when they finished, and their certificate URL where one was issued. Use `from` to ask only about recent completions. Rows carry the learner's real name and email — the connected shop's own learners. Treat them as personal data: use them to answer what was asked, and do not republish a roster elsewhere.

    Inputs

    courseIdstringrequired
    Course id from course_list.
    fromstring
    Only learners who finished on or after this ISO 8601 date.
    pageinteger
    Zero-based page. Default 0.
    pageSizeinteger
    Rows per page. Default 20, max 100.
  • minicoursegeneratormcp_course_learnersThe learners on a Course — one row each with name and email, how far they got, their score, whether they earned the certificate and when they were last active.Read-only

    CourseLearners

    The learners on a Course — one row each with name and email, how far they got, their score, whether they earned the certificate and when they were last active. Paginated (20 per page, max 100). A public Course enrols nobody, so this returns no rows and a `note` saying so — report that note, not "no learners", and use course_analytics for its reach. Rows carry the learner's real name and email — the connected shop's own learners. Treat them as personal data: use them to answer what was asked, and do not republish a roster elsewhere.

    Inputs

    courseIdstringrequired
    Course id from course_list.
    pageinteger
    Zero-based page. Default 0.
    pageSizeinteger
    Rows per page. Default 20, max 100.
  • minicoursegeneratormcp_course_listList the courses in the connected account (a Course is the top-level program).Read-only

    CourseList

    List the courses in the connected account (a Course is the top-level program). Paginated — 20 per page by default, 100 max. An account can hold far more courses than one page, so check `hasNextPage` and keep paging before you conclude anything about the whole account; `totalCount` tells you how many there are in total.

    Inputs

    pageinteger
    Zero-based page. Default 0.
    pageSizeinteger
    Courses per page. Default 20, max 100.
  • minicoursegeneratormcp_get_content_formatThe MCG Course Authoring Guide — how to plan, structure, and write a course, the lesson content format, and landing-page copy.Read-only

    GetContentFormat

    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.

    Inputs

    This tool takes no inputs.

  • minicoursegeneratormcp_learner_getOne learner's full record: every Course they can reach, how far they got in each, their score, when they finished, and whether a certificate was issued — plus per-module detail inside each course.Read-only

    LearnerGet

    One learner's full record: every Course they can reach, how far they got in each, their score, when they finished, and whether a certificate was issued — plus per-module detail inside each course. This answers "which courses has this person completed" in one call. Rows carry the learner's real name and email — the connected shop's own learners. Treat them as personal data: use them to answer what was asked, and do not republish a roster elsewhere.

    Inputs

    learnerstringrequired
    The learner's email, username, or the session id from learner_list.
    startedOnlyboolean
    Skip Courses they were given but never opened. Default false.
  • minicoursegeneratormcp_learner_listThe account's learners across EVERY Course, one row each with how many courses they were given, started and completed.Read-only

    LearnerList

    The account's learners across EVERY Course, one row each with how many courses they were given, started and completed. Use this — not a course_learners call per course — to answer questions about people rather than about one course ("who has finished anything", "which of our learners are stalled", "find this person"). `search` matches name, email or username. Paginated (20 per page, max 100). Rows carry the learner's real name and email — the connected shop's own learners. Treat them as personal data: use them to answer what was asked, and do not republish a roster elsewhere.

    Inputs

    completedOnlyboolean
    Only learners who completed at least one Course. Default false.
    pageinteger
    Zero-based page. Default 0.
    pageSizeinteger
    Rows per page. Default 20, max 100.
    registeredOnlyboolean
    Skip anonymous public-link learners, who have no name or email to report. Default false.
    searchstring
    Match on name, email or username. Omit for everyone.
  • minicoursegeneratormcp_lesson_getGet a Lesson (title, type, and the rendered HTML body).Read-only

    LessonGet

    Get a Lesson (title, type, and the rendered HTML body).

    Inputs

    lessonIdintegerrequired
    The integer ID of the lesson to retrieve.