Skip to main content
Glama

Create project

create_project

Create a new blank Clueso project. Returns the projectId and initialClipId — the project starts with one blank clip already at index 0 (default short duration). Use update_clips to resize/retitle clip 0, add_clips(kind='blank') to append more clips, add_elements to place content, and add_audio to attach a project-level music track.

Optionally place the project inside a folder (use find(type='folders') to find folder IDs, or create_folder to make one) and set a description at creation time.

From a clueprint: it sets the format (layouts, pacing, motion, voiceover, music, captions) and this project's brand kit the identity (colors, fonts, logos, icons); see get_clueprint's brand.

Brand kit: a project follows the workspace's default brand kit unless given one (a workspace with no kit uses none). Pass brand_kit_id (from find(type='brand_kits')) to build this project with that kit, e.g. one project per brand, or 'none' to make it without a brand kit; the reply's brandKit says which kit it uses. Then get_design_guide({project_id, select: [...]}) returns that kit's colors, fonts, logos and guidelines.

Start it voiced (one or the other): • script — one blank clip per paragraph (blank-line separated), each with AI voiceover generated from it; clip lengths follow the speech (generation runs in the background, ~seconds per clip). Returns clip_ids. • audio — an audio upload (an mcp_upload_id or a Clueso upload_id): it becomes clip 0's voiceover as the original narration, transcribed (script + captions), and the clip takes its length. Returns duration and word_count.

Input Schema

NameRequiredDescriptionDefault
audioNoAn audio upload (an mcp_upload_id or a Clueso upload_id) to use as the voiceover (original narration, transcribed). Not with `script`.
titleNoProject title
scriptNoVoiceover script; one blank clip per paragraph. Not with `audio`.
folder_idNoOptional folder ID to nest the project under. Use find(type='folders') to discover IDs. Omit to create at workspace root.
descriptionNoOptional project description (max ~500 chars)
brand_kit_idNoBrand kit for this project: an id from find(type='brand_kits'), 'default' (the same as omitting it: follow the workspace default kit), or 'none' for no brand kit. Setting a kit needs an editor or admin.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / brand_kit_id / description
      Previous value: -"Brand kit for this project: an id from find(type='brand_kits'), or 'default' (the same as omitting it: follow the workspace default kit, including when the default changes). Setting a kit needs an editor or admin."New value: +"Brand kit for this project: an id from find(type='brand_kits'), 'default' (the same as omitting it: follow the workspace default kit), or 'none' for no brand kit. Setting a kit needs an editor or admin."
  2. Changed1 schema field changed
    • addedInput schema / properties / brand_kit_id
      Added value: +{
      +  "description": "Brand kit for this project: an id from find(type='brand_kits'), or 'default' (the same as omitting it: follow the workspace default kit, including when the default changes). Setting a kit needs an editor or admin.",
      +  "type": "string"
      +}
  3. Changed2 schema fields changed
    • addedInput schema / properties / audio
      Added value: +{
      +  "description": "An audio upload (an mcp_upload_id or a Clueso upload_id) to use as the voiceover (original narration, transcribed). Not with `script`.",
      +  "type": "string"
      +}
    • addedInput schema / properties / script
      Added value: +{
      +  "description": "Voiceover script; one blank clip per paragraph. Not with `audio`.",
      +  "type": "string"
      +}
  4. Changed4 schema fields changed
    • removedInput schema / properties / context
      Removed value: -{
      -  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      -  "type": "string"
      -}
    • removedInput schema / properties / conversation_id
      Removed value: -{
      -  "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.",
      -  "type": "string"
      -}
    • removedInput schema / properties / llm_model
      Removed value: -{
      -  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      -  "type": "string"
      -}
    • removedInput schema / required
      Removed value: -[
      -  "context",
      -  "llm_model"
      -]
  5. Changed4 schema fields changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      +  "type": "string"
      +}
    • addedInput schema / properties / conversation_id
      Added value: +{
      +  "description": "Echo the conversation_id from the server's previous response. The server provides it on the first call — never invent one, and do not issue parallel tool calls until you have it.",
      +  "type": "string"
      +}
    • addedInput schema / properties / llm_model
      Added value: +{
      +  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "context",
      +  "llm_model"
      +]
  6. Changed2 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • removedInput schema / additionalProperties
      Removed value: -false
  7. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare non-read-only, non-destructive, non-open-world, so the description carries the real behavioral load and does it well: background voiceover generation (~seconds per clip), clip lengths derived from speech or from the uploaded audio, transcription producing script and captions, and the workspace-default brand kit inheritance with 'none' as an opt-out. It also notes the editor/admin permission requirement for setting a kit, which annotations cannot express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core creation behavior and return values are front-loaded, and the clueprint/brand-kit/voiced sections are ordered by decision the caller has to make. Some content duplicates the schema (folder and brand-kit ID discovery instructions appear in both), and the clueprint paragraph is dense, but no sentence is pure filler.

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 a six-parameter, zero-required, side-effecting creation tool with no output schema, the description covers return shape, initial project state, background/async behavior, permission constraints, and defaults. An agent could call it correctly and know what to do next without opening another tool definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description earns above that by explaining what the values actually do — script paragraphs map one-to-one onto blank clips whose lengths follow the speech, audio becomes clip 0's voiceover and sets its length, and brand_kit_id has 'default' and 'none' special values with inheritance semantics. Only the title and description parameters get no added meaning beyond the schema.

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

Purpose5/5

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

Opens with a specific verb and resource ("Create a new blank Clueso project") and immediately states what is returned (projectId, initialClipId) plus the initial state (one blank clip at index 0). This separates it from siblings like duplicate_project and create_clueprint, which also produce projects but from existing material.

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

Usage Guidelines5/5

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

Explicitly routes follow-up work: update_clips to resize clip 0, add_clips(kind='blank') to append, add_elements for content, add_audio for music. It also states the script-vs-audio exclusivity ("one or the other") and names find(type='folders')/find(type='brand_kits')/create_folder as the sources for the ID parameters.

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.