Skip to main content
Glama

Create course

create_course

Creates a draft course. Screens follow the builder's shape — each has an id, title, and an array of blocks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesCourse title, shown to learners.
screensNoThe course's screens in order, each with an id, a title and an array of blocks. Omit to start with no screens and add them later with add_screen.
themeIdNoId of a theme in this workspace for the course to inherit its look from. Omit or null for no theme.
navigationNo'default' lets the player draw its own Back/Continue row; 'hidden' removes it (and swipe) so button blocks move the learner on. Omit to use the workspace default.
passingScoreNoPercentage (0-100) of graded blocks a learner must answer correctly to pass and earn a certificate. Omit or null and any completion counts.
quizFeedbackNoWhen learners see whether an answer was right: 'deferred' (at the end, suits assessments) or 'immediate' (as they answer, suits practice). Omit to use the workspace default.
certificateIdNoId of a certificate template in this workspace, issued on passing. Omit or null to issue the built-in default design.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
titleYes
statusYes
screensYes
themeIdYes
createdAtYes
directionYes
updatedAtYes
navigationYes
sourceKindYes
contentHashYes
customFontsYes
workspaceIdYes
passingScoreYes
quizFeedbackYes
certificateIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the operation profile (readOnlyHint=false, destructiveHint=false), so the bar is lower. The description adds one meaningful behavioral trait: the course is created in draft state, not published. It also describes the screen structure. It does not discuss idempotency or post-create behavior, but this is adequate given the annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The core action is front-loaded ('Creates a draft course'), and the screen-shape note is relevant context. Every sentence earns its place for a tool whose complexity is handled by the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a large, fully-documented schema and an output schema, the description doesn't need to explain return values. It covers the draft status and the expected screen structure, which is sufficient for correct invocation. It could optionally point to list_block_types or add_screen, but those are already referenced in the schema, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are already fully documented in the schema. The description adds no parameter-level meaning beyond what the schema provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Creates a draft course.' The qualifier 'draft' clarifies the state of the created object and distinguishes it from update/delete/list operations. Mentioning the screen shape (id, title, blocks) also helps separate it from sibling tools like add_screen and add_block, which operate on existing courses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb and resource — an agent can infer this is the tool for creating a new course. However, the description gives no explicit when-to-use guidance, exclusions, or alternatives (e.g., generate_course for AI-generated courses, add_screen for adding screens later). The schema partially compensates, but the description itself is silent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources