Model Context Protocol

MCP Tools for Elearning

Create and update course storyboards, scripts, and media with Claude Desktop, Gemini CLI, Google Antigravity, Visual Studio Code, and Kiro. Review the compatibility notes for ChatGPT and Gemini Enterprise before connecting.

Create an API token

The Model Context Protocol (MCP) is an open standard that allows AI assistants and coding agents to interact securely with external platforms and tools.

Authentication

Creating an API Token for MCP Access

Every MCP tool call requires authenticated access using a personal API bearer token. Tokens are scoped to your Cluelabs account and ensure your AI assistant can access only the resources you permit.

How to Generate Your Token

  1. Sign in to your Cluelabs account and navigate to Account Security.
  2. Locate the API Tokens section and select Create Token.
  3. Enter a recognizable label, such as "Claude Desktop Content Studio" or "VS Code Development".
  4. Set Resource type to Content Studio.
  5. Choose the Access Scope and Access level for your task:
    • To inspect an existing project, select One resource, choose the project, and select Only read.
    • To edit an existing project or generate media, select One resource, choose the project, and select Read and write.
    • To create new projects, select All resources in this category and Read and write. A token limited to one existing project cannot create another project.
  6. Choose an expiration period appropriate for your use.
  7. Select Create Token and copy the generated token immediately. For security, the full token string is displayed only once.

Server Connection Details

  • Protocol: Model Context Protocol (MCP)
  • Transport: Streamable HTTP
  • Endpoint URL: https://cluelabs.com/api/cluelabs/content/mcp
  • Authentication Header: Authorization: Bearer YOUR_API_TOKEN

Keep token values private. Prefer a user-level configuration file, and do not commit files containing tokens to source control or share them with collaborators.

After setup, verify access by asking your assistant to call list_projects. A successful response lists the projects allowed by your token, or returns an empty list; a connected status or visible tool list alone does not verify authentication.

Back to top

Product Capabilities

Content Studio MCP Tools Catalogue

Cluelabs Content Studio exposes 63 dedicated MCP tools. Use them to inspect storyboards, create slides, update scripts, configure visual styles, and queue media generation.

Project & Account Operations

  • list_projects: Lists Content Studio projects accessible to the API token, returning each project's ID and name.
  • create_project: Creates a new storyboard project with initial parameters, returning the newly assigned project ID.
  • rename_project: Renames an existing Content Studio project.
  • delete_project: Permanently removes a storyboard project and its associated metadata.
  • get_storage_zones: Lists storage zones with their IDs, names, account-default status, and availability under your plan.

Storyboard Architecture & Settings

  • get_storyboard_settings: Retrieves project-level instructional settings including target duration, audience profile, pacing, and slide density.
  • update_storyboard_settings: Updates instructional parameters and pacing preferences for a project.

Slide & Content Management

  • get_slides: Loads all slides in a project, including slide IDs, titles, narration scripts, on-screen text, visual directions, developer notes, and interaction plans.
  • create_slide: Adds a new slide to an existing project with specified titles and instructional copy.
  • update_slide: Saves selected fields at one slide ID, creating a slide data entry if that ID does not exist. This does not add the ID to the storyboard's slide order.
  • update_slides_bulk: Saves selected fields at multiple slide IDs in one request, creating missing slide data entries without adding them to the slide order.
  • delete_slide: Removes an individual slide from the storyboard.
  • reorder_slides: Updates the sequential slide order of the course.

Style Guides & Design Presets

  • list_style_presets: Lists all ready-to-use design presets for color palettes, typography, and UI component styling.
  • get_style_preset: Retrieves the full configuration of a specific style preset by identifier.
  • get_style_settings: Retrieves the active visual style rules and color tokens configured for a project.
  • save_style_settings: Saves brand colors, typography choices, and visual system guidelines for a project.

Narration Audio & Voice Configuration

  • list_voices: Lists all available text-to-speech voices across supported providers, languages, and regional accents.
  • get_default_voice: Returns the system default narration voice profile.
  • get_voice_settings: Retrieves project-level voice settings, including voice provider, speed, pitch, stability, and delivery tone.
  • save_voice_settings: Configures voice selection and delivery settings to maintain vocal consistency across slides.
  • generate_narrations: Queues asynchronous voiceover generation for slide scripts or custom narration files.
  • list_narrations: Lists generated voiceover audio files associated with a project.
  • rename_narration: Renames a generated narration audio file.
  • update_narration_metadata: Updates descriptive metadata and tags for an audio track.
  • delete_narrations: Removes generated voiceover files from a project.
  • generate_captions: Queues SRT caption generation for an existing narration MP3, using its filename and language, with an optional transcript to help alignment.
  • get_custom_narration_scripts: Retrieves custom standalone narration scripts not tied to standard slide timelines.
  • save_custom_narration_script: Saves an individual custom narration script with a stable identifier.
  • bulk_save_custom_narration_scripts: Saves multiple custom narration scripts simultaneously.
  • delete_custom_narration_script: Deletes a standalone custom narration script.

Course Graphics & Visual Direction

  • get_graphics_settings: Retrieves graphics generation settings, active art styles, and reference image anchors.
  • save_graphics_settings: Saves graphic generation guidelines and visual rules for a project.
  • list_graphics_images: Lists generated and uploaded graphic image assets for a project.
  • save_graphics_prompt: Saves an image generation prompt for a specific slide.
  • bulk_save_graphics_prompts: Saves image generation prompts across multiple slides at once.
  • delete_graphics_prompt: Deletes an image prompt from a slide.
  • upload_graphics_image: Uploads reference images or character art to anchor visual consistency across slides.
  • generate_graphics: Queues generation of custom course graphics from slide prompts and project style rules.
  • edit_graphics_image: Submits an image modification instruction to edit an existing graphic asset.
  • upscale_graphics_image: Queues an image upscaling task to increase resolution for high-DPI displays.
  • rename_graphics_image: Renames a graphic image asset.
  • delete_graphics_images: Removes graphic images from a project.

Sound Effects (SFX)

  • list_sfx_prompts: Lists sound effect prompt suggestions derived from slide interaction notes.
  • save_sfx_prompt: Saves a sound effect prompt for a slide event or interaction.
  • bulk_save_sfx_prompts: Saves multiple sound effect prompts at once.
  • delete_sfx_prompt: Deletes a sound effect prompt.
  • bulk_delete_sfx_prompts: Deletes multiple sound effect prompts in a single batch.
  • generate_sfx: Queues custom sound effect generation using AI audio synthesis.
  • list_sfx: Lists generated sound effect audio clips in a project.
  • rename_sfx: Renames a sound effect audio clip.
  • update_sfx_clip: Updates metadata or prompt tags for a sound effect clip.
  • delete_sfx: Deletes sound effect clips from a project.

Music

  • list_music_prompts: Lists music prompt suggestions matching lesson themes and pacing.
  • save_music_prompt: Saves a music generation prompt.
  • bulk_save_music_prompts: Saves multiple music prompts in a single batch.
  • delete_music_prompt: Deletes a music prompt.
  • bulk_delete_music_prompts: Deletes multiple music prompts simultaneously.
  • generate_music: Queues generation of music tracks tailored to course mood and duration.
  • list_music_clips: Lists generated music clips in a project.
  • rename_music_clip: Renames a music audio track.
  • update_music_clip: Updates metadata or prompt notes for a music track.
  • delete_music_clips: Deletes music tracks from a project.

Back to top

Client Integration

ChatGPT Compatibility

ChatGPT's web MCP connection flow requires an authentication integration beyond the personal API token used by the Cluelabs endpoint.

Authentication Requirements for ChatGPT on the Web

OpenAI documents OAuth, No Authentication, and Mixed Authentication for developer-mode MCP apps. Mixed Authentication combines OAuth-protected tools with unauthenticated tools; this setup flow does not offer a custom bearer-header field for a Cluelabs API token.

The Cluelabs Content Studio endpoint currently uses personal API bearer tokens and does not provide an OAuth connection flow. Selecting No Authentication may let ChatGPT discover the tools, but calls to those tools require a valid token and will fail without one.

Direct setup through this ChatGPT web flow is therefore not currently supported. It requires a separately implemented OAuth integration or an authenticated adapter that connects each user to their authorized Cluelabs resources; this page does not provide that integration.

For a configuration you can use now, follow the Claude Desktop setup or another supported client guide below. ChatGPT desktop configuration differs from the web flow and has not been validated in this guide.

See OpenAI's developer-mode documentation for current account eligibility, workspace policies, and connection options.

Back to top

ChatGPT Workflow Examples After Authenticated Integration

The examples below apply only after a compatible authenticated integration is available and a list_projects call succeeds. They do not establish a direct ChatGPT connection to the current endpoint.

How do I ask ChatGPT to create a new course storyboard in Content Studio?

Ask ChatGPT: "Use Content Studio to create a new project called 'Workplace Safety Fundamentals' with a target duration of 15 minutes." ChatGPT will call create_project and initialize the project settings with update_storyboard_settings.

Can ChatGPT review an existing lesson outline and update slide developer notes?

Yes. Prompt ChatGPT: "List my projects in Content Studio, inspect the slides for project ID 104, and add developer notes explaining how to build the drag-and-drop interaction on slide 3." ChatGPT will call get_slides to retrieve the current content, draft the notes, and invoke update_slide to save the changes.

How can I trigger narration audio generation from a ChatGPT prompt?

Once your narration scripts are finalized, prompt ChatGPT: "Check the voice settings for project 104 and generate voiceover narration for all slides." ChatGPT will call get_voice_settings to confirm your selected voice and then invoke generate_narrations to queue the audio generation job.

How can I have ChatGPT apply an existing brand design preset to my course?

Prompt ChatGPT to list available design presets using list_style_presets, review the color and font tokens with get_style_preset, and apply the selected system to your project using save_style_settings.

Can ChatGPT check that my on-screen text does not duplicate my narration script word-for-word?

Yes. Ask ChatGPT to load the slides with get_slides, analyze the text against instructional design redundancy principles, and update the on-screen bullets using update_slide while keeping the complete voiceover script in the narration field.

How do I prompt ChatGPT to generate a knowledge check slide with feedback for each choice?

Instruct ChatGPT to review preceding lesson slides and call create_slide with a multiple-choice question, plausible distractors, and remediation notes for each answer choice recorded in the developer notes field.

Can ChatGPT create standalone narration scripts not attached to standard slides?

Yes. Ask ChatGPT to draft custom audio scripts—such as a course introduction or compliance disclaimer—and persist them using save_custom_narration_script or bulk_save_custom_narration_scripts for voiceover generation.

What is the workflow for generating synchronized captions once ChatGPT updates my narration?

After saving revised slide scripts with update_slide or update_slides_bulk, regenerate the affected narration audio with generate_narrations and wait for generation to finish. Verify that the updated MP3 files are available before calling generate_captions for each filename and language, optionally supplying the matching transcript.

Back to top

Client Integration

Connecting Claude Desktop

Connect Anthropic's Claude Desktop application to Cluelabs Elearning Tools using its local configuration file.

Step-by-Step Setup Instructions

  1. Open the Claude Desktop application on your computer.

  2. Open Claude Desktop's Settings from the application menu.

  3. Select the Developer tab in the left sidebar.

  4. Select Edit Config and open claude_desktop_config.json in a text editor.

  5. Add the cluelabs-content-studio entry below to mcpServers, keeping any existing server entries. If the configuration file is empty, paste the complete example:

    {
      "mcpServers": {
        "cluelabs-content-studio": {
          "command": "npx",
          "args": [
            "-y",
            "mcp-remote",
            "https://cluelabs.com/api/cluelabs/content/mcp",
            "--header",
            "Authorization:${AUTHORIZATION}"
          ],
          "env": {
            "AUTHORIZATION": "Bearer YOUR_API_TOKEN"
          }
        }
      }
    }

    This configuration uses mcp-remote to connect Claude Desktop to the Cluelabs MCP endpoint. Keeping the header value in env avoids a Windows issue with spaces in command arguments.

  6. Replace YOUR_API_TOKEN in env.AUTHORIZATION with your Cluelabs API token, keeping Bearer and the space before the token. Leave Authorization:${AUTHORIZATION} exactly as shown, with no spaces.

  7. Save the claude_desktop_config.json file.

  8. Completely quit Claude Desktop (ensure the background process is terminated) and restart the application.

  9. Open a new chat and ask: "Use the Content Studio list_projects tool to list my Content Studio projects." Allow the tool call if Claude asks for permission.

    Verify that the list_projects call succeeds and returns your accessible projects, or an empty list if you have none. A successful tool call confirms that the connection and API token work; seeing the tools listed alone does not verify authentication.

Back to top

Claude Desktop Frequently Asked Questions

How do I use Claude to draft an entire course structure and save it to Content Studio?

Provide Claude with your source document or course syllabus and prompt: "Read this source outline, create a new Content Studio project called 'Customer Service Excellence', and add 8 structured slides covering chapter introductions, lesson content, and a final quiz." Claude will call create_project followed by create_slide for each section.

How does Claude handle bulk updates to narration scripts across multiple slides?

Ask Claude: "Review the narration scripts across all slides in project 42 and rewrite them to sound more conversational, then update the slides." Claude will retrieve the slides with get_slides, refine the scripts, and call update_slides_bulk to persist all changes in a single operation.

Can Claude check my visual style settings before generating image prompts?

Yes. Instruct Claude: "Check the style settings and active presets for project 42, then write custom graphics prompts for slides 1 through 5 that adhere to our brand illustration rules." Claude will invoke get_style_settings, formulate prompts matching those visual rules, and save them using bulk_save_graphics_prompts.

How can Claude transform a long training manual into a balanced storyboard?

Attach your training manual to Claude Desktop and prompt: "Analyze this training guide, create a new Content Studio project with a 20-minute target duration, and generate slides broken into clear instructional modules." Claude will call create_project, configure pacing with update_storyboard_settings, and generate the slide sequence.

Can Claude audit the reading grade level across all course narration scripts?

Yes. Prompt Claude to retrieve all slides via get_slides, evaluate the Flesch-Kincaid grade level of each narration script, and use update_slides_bulk to simplify complex sentences to an 8th-grade reading level.

How do I ask Claude to write image prompts that maintain character consistency across slides?

Instruct Claude: "Inspect the active graphics settings and reference image anchors in project 42 using get_graphics_settings, then draft illustration prompts for each slide that specify our defined character persona and clothing." Claude will format and save the prompts using bulk_save_graphics_prompts.

Can Claude help me choose a voice profile suited for international learners?

Yes. Ask Claude to call list_voices to display available voices for your target language, evaluate their stability and style settings, and execute save_voice_settings to set a measured, natural speaking pace.

How does Claude reorder slides when restructuring an instructional unit?

Ask Claude: "Reorganize the slides in project 42 so the interactive case study precedes the policy summary." Claude will retrieve the slide list with get_slides, calculate the updated slide order array, and invoke reorder_slides to persist the new sequence.

Back to top

Client Integration

Connecting Google Gemini

Connect Gemini CLI directly to Cluelabs Content Studio. Gemini Enterprise has separate authentication requirements, described below.

Step-by-Step Setup Instructions for Gemini CLI

  1. Ensure the latest Gemini CLI is installed on your workstation (npm install -g @google/gemini-cli@latest).

  2. Locate your Gemini settings file at ~/.gemini/settings.json (or your project-specific .gemini/settings.json).

  3. Add the cluelabs-content-studio entry to mcpServers, preserving existing settings. Use httpUrl for the Streamable HTTP endpoint:

    {
      "mcpServers": {
        "cluelabs-content-studio": {
          "httpUrl": "https://cluelabs.com/api/cluelabs/content/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_API_TOKEN"
          }
        }
      }
    }
  4. Replace YOUR_API_TOKEN with your Cluelabs Content Studio token, keeping Bearer and the space before the token. Save the file and start a new session by running gemini in your terminal.

  5. Run /mcp to inspect the server status, then ask: "Use the Content Studio list_projects tool to list my Content Studio projects." Allow the tool call if prompted and verify that it succeeds with your accessible projects or an empty list.

See the Gemini CLI MCP documentation for configuration and troubleshooting details.

Gemini Enterprise Compatibility

Gemini Enterprise supports custom MCP server data stores over Streamable HTTP, but its documented setup offers No authentication or OAuth 2.0. It does not provide the static bearer-header configuration used in the Gemini CLI example.

The current Cluelabs endpoint requires a personal API token and does not provide an OAuth connection flow, so it cannot be connected directly using those Enterprise authentication options. Use Gemini CLI for the setup above; an Enterprise integration requires a separately implemented OAuth integration or an authenticated adapter.

If your organization supplies a compatible integration, an administrator must satisfy Google's IAM and organization-policy prerequisites, configure the data store's authentication, and connect it to the intended Gemini Enterprise app. Imported tools are disabled by default: open the data store's Actions, select Reload custom actions, choose the required tools, and select Enable actions.

Then verify the integration by asking the assistant to call list_projects and checking for a successful result. See Google's custom MCP data store setup guide for the complete administrator requirements.

Back to top

Gemini CLI Frequently Asked Questions

How do I use Google Gemini to populate Content Studio slides from research notes?

Prompt Gemini CLI: "Inspect the research notes in my project directory and create a new Content Studio project with a 6-slide module on Data Privacy." Gemini reads your local notes, creates the project with create_project, and uses create_slide to save each slide's titles, on-screen text, and developer directions.

Can Google Gemini reorder existing slides or add knowledge check questions?

Yes. You can instruct Gemini: "Examine project 88, insert a multiple-choice quiz slide after slide 4, and reorder the subsequent slides." Gemini will call get_slides, generate the new quiz slide with create_slide, and call reorder_slides to maintain proper course sequence.

How do I configure voice profiles and speech speed in Content Studio using Gemini?

Ask Gemini: "List available English narration voices in Content Studio and configure project 88 to use a professional voice with a speaking speed of 1.1x." Gemini will execute list_voices, identify the matching voice code, and save your preferences using save_voice_settings.

How do I use Gemini to modify an existing course illustration in Content Studio?

Ask Gemini to inspect the project's images with list_graphics_images, identify the target image ID, and call edit_graphics_image with specific modification instructions, such as changing a character's posture or adjusting environmental details.

Can Gemini help me choose a storage zone for a new project?

Ask Gemini to call get_storage_zones to list zone IDs, names, your account default, and which zones your plan can use. Choose an available zone and pass its ID as zone_gcp when calling create_project; the zone catalogue does not report the storage location of an existing project's assets.

How can Gemini create sound effect prompts for interactive slide buttons?

Prompt Gemini: "Review the interaction plans in project 88, generate sound effect prompts for correct answers, hints, and error alerts, and save them." Gemini uses bulk_save_sfx_prompts to record the prompts and generate_sfx to initiate synthesis.

How do I prompt Gemini to upscale slide illustrations for high-resolution displays?

Instruct Gemini: "List the graphics in project 88 using list_graphics_images and upscale the title slide graphic to high resolution." Gemini will identify the image task ID and invoke upscale_graphics_image to generate a higher-resolution asset.

Can Gemini rename generated audio and graphic files to conform to project naming standards?

Yes. Instruct Gemini to review files using list_narrations and list_graphics_images, then execute rename_narration and rename_graphics_image to apply standardized file names matching your LMS or authoring scheme.

Back to top

Client Integration

Connecting Google Antigravity

Connect Google Antigravity to Cluelabs Elearning Tools to execute multi-step course authoring and content workflows autonomously using MCP tools.

Step-by-Step Setup Instructions

  1. Open the Google Antigravity IDE on your workstation.

  2. Open the agent side panel's ... menu, select MCP Servers, then Manage MCP Servers and View raw config. The global file is ~/.gemini/config/mcp_config.json; a workspace configuration can be stored at .agents/mcp_config.json.

  3. Add the cluelabs-content-studio entry under mcpServers, preserving existing entries. Use serverUrl for the remote endpoint:

    {
      "mcpServers": {
        "cluelabs-content-studio": {
          "serverUrl": "https://cluelabs.com/api/cluelabs/content/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_API_TOKEN"
          }
        }
      }
    }
  4. Replace YOUR_API_TOKEN with your Cluelabs Content Studio token, keeping Bearer and the space before the token. Save the configuration file and reload the agent environment to load the updated server settings.

  5. Start a new task and ask: "Use the Content Studio list_projects tool to list my Content Studio projects." Allow the tool call if prompted and verify that it succeeds with your accessible projects or an empty list.

See the Antigravity MCP documentation for configuration and connection management.

Back to top

Google Antigravity Frequently Asked Questions

How does an Antigravity agent automate course production from local source files?

In an Antigravity task prompt, instruct the agent: "Read the software architecture documentation in docs/architecture.md, create a new Content Studio project called 'System Onboarding', create slides with technical scripts and developer notes, and save custom graphic prompts." The agent autonomously executes the sequence of tool calls from create_project to bulk_save_graphics_prompts and reports its progress.

Can Antigravity manage sound effects and music generation for a project?

Yes. You can ask Antigravity: "Analyze the interaction notes in project 15, generate sound effect prompts for button clicks and error states, and queue their generation." Antigravity will call bulk_save_sfx_prompts and then execute generate_sfx.

How do I verify that Antigravity has connected to my Content Studio storyboard?

Prompt Antigravity: "Use the Content Studio list_projects tool to list my projects." A successful call returns the project IDs and names accessible to your token, or an empty list; ask for get_slides separately if you need a project's slide count.

How can Antigravity autonomously trigger narration, graphics, sound effects, and music in sequence?

In an Antigravity task, instruct the agent: "Review project 15. If slide scripts are complete, queue narration generation with generate_narrations, queue slide graphics with generate_graphics, and queue music generation with generate_music." The agent inspects the project state and triggers each generation chain.

Can Antigravity update a software training storyboard when product code changes in the repository?

Yes. Antigravity can analyze Git diffs or modified markdown docs in your repository, locate corresponding slides using get_slides, and invoke update_slide or update_slides_bulk to ensure developer notes and UI click paths remain accurate.

How does Antigravity clean up obsolete audio or graphic assets after an edit?

Instruct Antigravity: "Identify unreferenced or obsolete audio and graphics in project 15 and remove them." Antigravity calls list_narrations and list_graphics_images, identifies deprecated asset IDs, and calls delete_narrations and delete_graphics_images.

Can Antigravity read my local web design tokens and apply them as a project style guide?

Yes. Antigravity reads your local CSS custom properties or design token files, maps the hex colors and typography families to the Content Studio style schema, and invokes save_style_settings to align your storyboard visuals with your product branding.

How can Antigravity verify that slide pacing conforms to project guidelines?

Prompt Antigravity: "Inspect the storyboard settings for project 15 with get_storyboard_settings, calculate the estimated spoken duration of each slide script, and report any slides exceeding 90 seconds." The agent retrieves the slides with get_slides, computes word counts, and flags slides that need trimming.

Back to top

Client Integration

Connecting Visual Studio Code

Connect Visual Studio Code to Cluelabs Content Studio using GitHub Copilot Chat and VS Code's built-in MCP support.

Step-by-Step Setup Instructions

  1. Open Visual Studio Code and sign in to GitHub Copilot. Your account and organization settings must allow MCP tools.

  2. Open the Command Palette by pressing Ctrl+Shift+P (Windows/Linux) or Cmd+Shift+P (macOS).

  3. Type MCP: Open User Configuration and press Enter. This creates or opens mcp.json in your user profile. Alternatively, create .vscode/mcp.json in your project workspace.

  4. Add the cluelabs-content-studio entry under servers, preserving existing entries. This example uses VS Code's mcp.json format and connects directly over HTTP:

    {
      "servers": {
        "cluelabs-content-studio": {
          "type": "http",
          "url": "https://cluelabs.com/api/cluelabs/content/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_API_TOKEN"
          }
        }
      }
    }
  5. Replace YOUR_API_TOKEN with your Cluelabs Content Studio token, keeping Bearer and the space before the token. Save mcp.json.

  6. Run MCP: List Servers from the Command Palette, select cluelabs-content-studio, and start the server, accepting its trust prompt if shown.

  7. Open GitHub Copilot Chat (Ctrl+Alt+I or Cmd+Alt+I) and choose an agent that can use tools. Enable the Content Studio tools in the chat's tool picker.

  8. Ask: "Use the Content Studio list_projects tool to list my Content Studio projects." Allow the tool call if prompted and verify that it succeeds with your accessible projects or an empty list.

  9. If the connection fails, run MCP: List Servers, select cluelabs-content-studio, and choose Show Output to inspect that server's logs.

See the VS Code MCP configuration reference for supported formats and options for storing credentials separately from the configuration.

Back to top

Visual Studio Code Frequently Asked Questions

How do I use VS Code with Copilot Chat to edit slide copy while reviewing curriculum code?

While writing front-end or LMS code in VS Code, open Copilot Chat and ask: "Load the slides for Content Studio project 31, review slide 4's on-screen text, and align the wording with the JavaScript trigger parameters in my open editor file." Copilot Chat will use get_slides and update_slide to synchronize course copy directly with your source code.

Can VS Code update narration scripts and trigger caption generation across a project?

Ask Copilot Chat to save the revised scripts with update_slides_bulk and regenerate the affected audio with generate_narrations. After generation finishes and the updated MP3 files are available, ask it to call generate_captions for each filename and language, optionally supplying the matching transcript.

What happens if Copilot Chat uses a slide ID that does not exist?

update_slide and update_slides_bulk accept positive slide IDs that do not yet exist and create entries in the slide data map without adding them to the storyboard order. Ask Copilot Chat to call get_slides first and use the returned IDs when editing existing slides; use create_slide to add a new slide to the storyboard.

How do I use VS Code to ensure slide developer notes match our Storyline JavaScript triggers?

With your Storyline trigger JavaScript open in VS Code, prompt Copilot Chat: "Read the variable names in this script and update the developer notes on slide 5 in project 31 using update_slide so developers know which variables to configure." Copilot Chat extracts the trigger parameters and updates the storyboard.

Can I use VS Code to convert a local JSON course outline into Content Studio slides?

Yes. Open the JSON file in VS Code and prompt Copilot Chat: "Create a new project called 'API Fundamentals' in Content Studio, then iterate through each object in this JSON outline and call create_slide to build the storyboard." Copilot Chat will create the project and populate the slides sequentially.

How can I prompt Copilot Chat to draft music prompts for different lessons in my technical course?

Instruct Copilot Chat: "Review the technical topics in project 31, draft upbeat music generation prompts for introductory slides and focused ambient prompts for coding exercises, and save them using bulk_save_music_prompts." Copilot Chat analyzes the lesson context and saves the music prompts.

Can VS Code organize and rename generated narration files to match our LMS package naming structure?

Yes. Prompt Copilot Chat: "List all narration tracks in project 31 with list_narrations and rename them sequentially as mod1_lesson_audio_01.mp3, 02.mp3, etc., using rename_narration." Copilot Chat retrieves the files and applies the systematic naming convention.

How do I bulk delete placeholder sound effect prompts in VS Code before handoff?

Instruct Copilot Chat: "List the sound effect prompts in project 31 using list_sfx_prompts, identify all unapproved draft prompts, and delete them using bulk_delete_sfx_prompts." Copilot Chat executes the bulk cleanup command.

Back to top

Client Integration

Connecting Kiro

Connect Kiro to Cluelabs Elearning Tools to plan, build, and maintain courseware through spec-driven development workflows.

Step-by-Step Setup Instructions

  1. Open the Kiro editor on your workstation.

  2. Access the MCP configuration in one of two ways:

    • Open the Command Palette and select Kiro: Open user MCP config (JSON) or Kiro: Open workspace MCP config (JSON).
    • Or open your workspace configuration file at .kiro/settings/mcp.json (or global settings at ~/.kiro/settings/mcp.json).
  3. Add the cluelabs-content-studio entry under mcpServers, preserving existing entries. Kiro connects directly to the remote url:

    {
      "mcpServers": {
        "cluelabs-content-studio": {
          "url": "https://cluelabs.com/api/cluelabs/content/mcp",
          "headers": {
            "Authorization": "Bearer YOUR_API_TOKEN"
          }
        }
      }
    }
  4. Replace YOUR_API_TOKEN with your Cluelabs Content Studio token, keeping Bearer and the space before the token. Save the settings file; Kiro reloads changed server configurations automatically.

  5. Check that MCP support is enabled in Kiro's settings, then ask: "Use the Content Studio list_projects tool to list my Content Studio projects." Allow the tool call if prompted and verify that it succeeds with your accessible projects or an empty list.

See the Kiro MCP configuration guide for server settings and troubleshooting.

Back to top

Kiro Frequently Asked Questions

How can Kiro's spec-driven development workflow plan a course and implement it in Content Studio?

In Kiro, create an instructional design specification markdown document detailing course objectives and slide breakdowns. Then ask Kiro: "Execute this specification by creating project 'Compliance 2026' in Content Studio, generating all required slides, setting narration scripts, and configuring project style presets." Kiro will sequence tool calls through create_project, create_slide, and save_style_settings to build the complete course.

How do I use Kiro to generate custom sound effects and music clips from slide notes?

Ask Kiro: "Scan the interaction plans in project 55, create sound effect prompts for all interactive quizzes, and queue music generation for chapter intros." Kiro will call bulk_save_sfx_prompts, generate_sfx, save_music_prompt, and generate_music.

Can Kiro create duplicate storyboards for testing or localization?

Ask Kiro to read project 55 with get_slides, create 'Compliance 2026 - Review Copy' with create_project, and call create_slide for each source slide in order, copying its content and developer notes. If you also want matching project settings, ask it to retrieve and save the storyboard, style, voice, and graphics settings using their respective tools.

Creating the project alone does not copy slides or generated media. Confirm the new slide IDs and order with get_slides, and handle any media copying or regeneration as a separate task.

How does Kiro update an existing course when the specification document changes?

When you modify learning objectives or lesson text in your Kiro specification file, prompt Kiro: "Compare our updated spec with the live slides in project 55 and apply the changes." Kiro calls get_slides to retrieve current slide data, calculates the text differences, and issues targeted updates using update_slides_bulk without disturbing unchanged slides or existing media settings.

Can Kiro verify that every slide in a project has complete instructional fields before triggering media?

Yes. Instruct Kiro: "Audit project 55 to confirm every slide has non-empty narration, visual directions, and developer notes, and alert me to any omissions." Kiro inspects the storyboard using get_slides, reports any missing fields, and only invokes generate_narrations once you confirm all slide content meets instructional quality standards.

How does Kiro upload project reference images to enforce character and art consistency?

In your Kiro workspace, place your brand character sketches or style guide image files in your assets folder. Then prompt Kiro: "Upload our company character model sheet to project 55 and configure it as the primary reference image." Kiro calls upload_graphics_image to add the asset and save_graphics_settings to set the image anchor rules for subsequent illustration generation.

Can Kiro manage standardized legal disclaimer scripts across multiple projects?

Yes. Instruct Kiro: "Read our corporate compliance disclaimer document and save it as a reusable narration script in projects 55, 56, and 57." Kiro uses bulk_save_custom_narration_scripts across each project, allowing you to maintain uniform standalone compliance audio without retyping scripts into slide decks.

How can Kiro assist with project lifecycle management and archiving retired courses?

Prompt Kiro: "List all active projects in Content Studio, identify courses marked as archived in our internal curriculum registry, and remove retired draft storyboards." Kiro calls list_projects to match names and IDs against your internal tracker, confirms the deletion list with you, and executes delete_project to keep your workspace organized.

Back to top

Get Started

Start Building with MCP Today

Choose a supported client, generate your Content Studio API token, and verify the connection before starting your course development workflow.

Create an API token