Skip to main content
Glama

Generate a course

generate_course

Starts writing a draft course from a prompt, optionally grounded in a URL. Returns a job id immediately — writing takes tens of seconds — then poll get_generation until status is completed or failed. Requires the Build plan or higher.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
localeNoBCP-47 code for the language to write the course in, e.g. 'en' or 'ar'. Reading direction follows from it. Omit to write in English.
promptYesWhat the course should teach, in plain language (up to 2000 characters).
audienceNoWho the course is for, e.g. 'support agents in their first month' (up to 200 characters).
sourceUrlNoA public web page to ground the course in; its text is read before writing. Omit to write from the prompt alone.
screensTargetNoRoughly how many screens to write, 1 to 20. Omit for about 8.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesThe generation job id. Pass it to get_generation.
statusYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, openWorldHint=true, and idempotentHint=false, covering basic write/network/non-idempotent behavior. The description adds value beyond annotations by disclosing the asynchronous nature ('returns a job id immediately, writing takes tens of seconds'), the plan requirement, and the optional grounding in a URL. These are meaningful behavioral traits that help the agent set expectations. No contradiction with annotations.

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?

The description is two sentences with no redundancy. The first sentence states the core action and optional grounding; the second immediately covers the async behavior, the required polling step, and the plan prerequisite. It is front-loaded with the most critical information and every clause earns its place.

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?

Given the tool's complexity (async, 5 parameters, output schema present), the description covers the essential operational contract: what it does, that it returns a job id, how to track completion (poll get_generation), and the plan requirement. It does not mention the output schema or list all optional parameters, but those are provided in structured fields. The description is sufficient for an agent to invoke the tool correctly and follow up appropriately.

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%, meaning every parameter already has a thorough description in the input schema. The description adds no parameter-specific information beyond what the schema provides; it only mentions 'optionally grounded in a URL' (which mirrors sourceUrl) and the async behavior. Since the schema carries the parameter documentation burden, a baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the core action: 'Starts writing a draft course from a prompt, optionally grounded in a URL.' The verb 'starts writing' and the resource 'draft course' make the purpose explicit. While it doesn't explicitly differentiate from the sibling create_course, the asynchronous generation concept is distinct and inferable.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: 'Returns a job id immediately — writing takes tens of seconds — then poll get_generation until status is completed or failed.' This tells the agent exactly how to handle the async flow and names the polling tool. It also mentions the prerequisite 'Requires the Build plan or higher.' It does not explicitly state when to avoid using this tool, but the guidance is clear and actionable.

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