MCP for training content
The Model Context Protocol lets an AI assistant call tools on a remote server. Point Claude, Cursor or any MCP client at a training platform's MCP server and the assistant can build courses, add quizzes, translate, publish and read back results — the same operations as the REST API, driven from a conversation instead of a script.
What does MCP change for training content?
https://underlayerhq.com/api/mcp that exposes every REST resource as tools.Authoring is where this helps most. Drafting screens, writing questions, restructuring a course and translating it are all tasks an assistant does quickly and a person reviews quickly. Through MCP the draft lands directly in the platform as real, editable course content — not as text you then have to paste into a builder.
Connecting a client
Any client that speaks Streamable HTTP connects with a URL and an API key from your workspace's API Keys page. Every call is scoped to that key's workspace, exactly like the REST API.
{
"underlayer": {
"url": "https://underlayerhq.com/api/mcp",
"headers": { "Authorization": "Bearer sk_live_..." }
}
}Clients that only speak stdio can bridge to the remote server with mcp-remote; the MCP docs have that config too.
Connecting from Claude.ai
Claude.ai's “Add custom connector” flow can't send a Bearer header, so it uses OAuth instead, and needs nothing configured in advance:
- Add
https://underlayerhq.com/api/mcpas a custom connector. Claude discovers the authorization server on its own. - Sign in to Underlayer if you aren't already, and approve the consent screen, which names the connecting app and your workspace.
- Use it. Approval grants the same access an API key would. Revoke it any time from Connected Apps in the dashboard, and access stops immediately.
What the assistant can do
Every REST resource has a matching set of tools, with the same validation and plan limits as the API:
- Courses, screens and blocks — create, update, reorder, duplicate;
list_block_typestells the assistant what exists. - AI generation — draft a whole course (Build plan and above).
- Translations, themes, certificate templates and SCORM export and import (Scale plan and above).
- Collections, webhooks, identities — organise courses, subscribe to events, manage learners by your own ids.
- Learner progress and reporting — completions, issued certificates, usage and the audit log, read-only.
One tip the docs spell out: have the assistant edit with update_screen rather than update_course. The screen tool changes one screen server-side; the course tool rewrites the whole screens array, and two edits in flight would lose one.
Things to ask it
- “Turn the refund policy below into a course: four short screens, then three single-choice questions, 70% to pass.”
- “Add a screen after screen 2 explaining the approval step, with an example.”
- “Translate this course into Arabic and French.”
- “Which learners haven't completed Onboarding 101 yet?”
- “Export Workplace Safety as SCORM 1.2 for a customer's LMS.”
Review before you publish. An assistant writes a good first draft; it is still a first draft, and the person publishing a course is the one vouching for what it teaches.
What it deliberately can't do
- It can't change results. Progress and completion tools only read. A completion records something a real person did; a tool that could edit one could award a pass.
- It can't mint API keys. A key created through a connector would outlive revoking the connector, so keys are only issued from the dashboard. Listing and revoking are available.
- Everything is attributable. Changes to who can get in are written to the audit log naming the key that made them.