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. Counts against the workspace's monthly generation allowance (5 on Sandbox, 100 on Build, 500 on Scale); once it is spent, this fails until the next calendar month.

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.3/5.0
Behavior5/5

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

Goes well beyond the annotations (which only mark it as a non-readonly, non-idempotent, open-world write). It discloses the asynchronous job-id return, the tens-of-seconds duration, the required polling step, the recurring quota model with concrete per-tier limits, and the specific failure mode once the allowance is spent.

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?

Three tightly written sentences, front-loaded with what happens first (draft + job id), then the follow-up action, then the limiting constraint. No filler, and every clause carries actionable information.

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

Completeness5/5

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

For an async generation tool with an output schema and full-schema parameter docs, the description covers everything an agent needs: the immediate return, the polling contract, and the quota boundary. Nothing material is left for the agent to guess.

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 the schema already documents prompt, locale, audience, sourceUrl, and screensTarget fully. The description's phrasing 'optionally grounded in a URL' mirrors sourceUrl without adding format or behavior detail beyond the schema, so the baseline of 3 applies.

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?

States a specific verb and resource: 'Starts writing a draft course from a prompt, optionally grounded in a URL.' The 'draft'/'from a prompt' framing implicitly separates it from the manual sibling create_course, but the sibling is never named, so an agent must infer the distinction.

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?

Gives clear operational context: use this to kick off generation, then poll get_generation until status is 'completed' or 'failed'. It names the follow-up tool and the terminal states. It does not, however, state when to prefer this over create_course or address what to do if the quota is exhausted beyond waiting.

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