Skip to content

Learning Studio / agents

Connect through MCP

Use the same validated course-editing path as the editor.

Configure a compatible MCP client with your Learning Studio app origin followed by /mcp. Complete OAuth authorization. The KB domain does not host the MCP endpoint.

Task Tools
Discover and read list_courses, get_course, list_course_versions
Course workspace create_course, duplicate_course, rename_course, archive_course, delete_course, move_course
Folders list_folders, create_folder, rename_folder, delete_folder
Check and reuse validate_course, get_course_alignment, list_templates
Edit content apply_course_ops
AI draft_course, suggest_course_edit, suggest_blueprint, build_from_blueprint

Use the client’s discovered tool schemas for exact arguments. Workspace writes and apply_course_ops take an idempotency key. AI drafting has a separate retry boundary described below. Read the latest version before applying course operations.

  1. Create or locate the course.
  2. Read its content and version.
  3. Prepare native operations with fresh IDs.
  4. Apply operations, then read back and validate.
  5. Check the rendered result in the app.

AI edit and blueprint tools return suggestions to apply explicitly. draft_course creates a new course; it is not a suggestion-only operation. Prefer archive over deletion unless permanent removal is intended.

courseId and folderId are UUID strings. Optional fields are marked with ?. Workspace write keys are 8–100 characters; use a new key for a different intended write.

Tool Inputs
list_courses, list_folders No arguments
list_templates kind? (block or section)
get_course, list_course_versions, validate_course, get_course_alignment courseId
create_course title (1–200 characters), idempotencyKey, language? (up to 16), folderId? (UUID or null)
duplicate_course, rename_course courseId, title (1–200), idempotencyKey
archive_course courseId, archived (boolean), idempotencyKey
delete_course courseId, idempotencyKey
move_course courseId, folderId (UUID or null), idempotencyKey
create_folder name (1–120), idempotencyKey
rename_folder folderId, name (1–120), idempotencyKey
delete_folder folderId, idempotencyKey
apply_course_ops courseId, baseVersion (integer ≥1), idempotencyKey, ops (1–500), label? (up to 200)
draft_course text (up to 60,000), mode? (prompt or document), title?, language?
suggest_course_edit courseId, baseVersion, instruction (3–2,000), scopeSectionId?, scopeBlockId?
suggest_blueprint courseId, baseVersion, brief (10–4,000), length? (short, medium, long)
build_from_blueprint courseId, baseVersion

For suggest_course_edit, provide a content page’s scopeSectionId or a block’s scopeBlockId. The schema marks them optional, but the current runtime requires a valid page scope and rejects the cover or a chapter. If both are present they must refer to the same page. Suggestions cannot edit other pages.

MCP does not expose the HTTP dryRun option. Use the HTTP operation endpoint when validation without saving is required.

draft_course requires at least 20 trimmed characters for a prompt or 200 for document text. It creates a course and has no idempotency key. If its response is interrupted, list courses and check whether creation completed before trying again. Suggestion tools can also invoke paid model requests on each retry even though they do not save course content.