Public Cannon Studio MCP for product, pricing, workflow, model, and API answers.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Check authenticated Cannon Studio account/API connectivity before estimating or creating requests. Requires OAuth or a developer API key; may update key/token usage metadata, but does not spend credits, enqueue jobs, change assets, or expose secrets.
This tool takes no arguments.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Check authenticated Cannon Studio account/API connectivity before estimating or creating requests. Requires OAuth or a developer API key; may update key/token usage metadata, but does not spend credits, enqueue jobs, change assets, or expose secrets.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Compare Cannon Studio's fit against named alternatives for a use case. Public read-only: no auth, no state changes, no charges; it returns approved positioning and cautions agents not to invent competitor claims.
| Argument | Type | Description |
|---|---|---|
| use_case* | string | Specific job-to-be-done for the comparison, such as UGC ads, AI filmmaking, image generation, 3D workflows, team review, or API media generation. |
| alternatives | array | Optional competitor/tool names the user mentioned, such as Runway, LTX Studio, Pika, Midjourney, Higgsfield, or a generic point generator. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"use_case"
],
"properties": {
"use_case": {
"type": "string",
"minLength": 1,
"description": "Specific job-to-be-done for the comparison, such as UGC ads, AI filmmaking, image generation, 3D workflows, team review, or API media generation."
},
"alternatives": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional competitor/tool names the user mentioned, such as Runway, LTX Studio, Pika, Midjourney, Higgsfield, or a generic point generator."
}
},
"additionalProperties": false
}Create a blank Creator Flow project with one scene and shot in an owned world, or a new world when world_id is omitted. This creates draft records only; no generation or credit spend.
| Argument | Type | Description |
|---|---|---|
| title* | string | |
| summary | string | |
| world_id | string | Existing owned world. Omit to create a new world. |
| aspect_ratio | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"maxLength": 180,
"minLength": 1
},
"summary": {
"type": "string",
"maxLength": 4000
},
"world_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Existing owned world. Omit to create a new world."
},
"aspect_ratio": {
"enum": [
"16:9",
"9:16",
"1:1"
],
"type": "string",
"default": "16:9"
}
},
"additionalProperties": false
}Create billable async Cannon Studio generation work only after explicit user approval. Requires OAuth or a developer API key; can spend credits up to max_credits and cannot be cancelled through MCP after submission. Use estimate_generation_cost first, then set confirmed=true and a user-approved max_credits cap. This tool does not create API keys, charge payment methods directly, or delete assets.
| Argument | Type | Description |
|---|---|---|
| input* | object | Operation-specific request payload. Use the exact shape documented by get_api_operation for the selected operation; this is the billable payload that will be submitted if confirmed and within max_credits. |
| confirmed | boolean | Must be true only after the user explicitly approves this billable generation request, including operation, payload, and max_credits. Missing or false returns a confirmation error and creates no job. |
| operation* | string | Cannon Studio developer API operation id to run. Use get_api_operation first if unsure. Examples: image.generate, video.generate, three_d.model.generate, three_d.location.generate, music.generate, narration.generate, subtitles.generate. |
| max_credits | number | Highest credit spend the user explicitly approved for this request. The tool rejects the request when the current estimate is greater than this cap. |
| webhook_url | string | Optional HTTPS URL that Cannon Studio calls when the request reaches a terminal succeeded or failed state. Omit when polling with get_generation_request. |
Create an owned world with title, description, genre, visual style, lore, and production cues. No media generation or credit spend.
| Argument | Type | Description |
|---|---|---|
| genre | string | |
| theme | any | |
| title* | string | |
| description | string | |
| visualStyle | any | |
| importantLore | array | |
| videoProductionCues | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"title"
],
"properties": {
"genre": {
"type": "string",
"maxLength": 120
},
"theme": {
"$ref": "#/properties/description"
},
"title": {
"type": "string",
"maxLength": 180,
"minLength": 1
},
"description": {
"type": "string",
"maxLength": 4000
},
"visualStyle": {
"$ref": "#/properties/description"
},
"importantLore": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 50
},
"videoProductionCues": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 50
}
},
"additionalProperties": false
}Create a reusable owned character, location, object, outfit, ability, or camera from descriptive fields and optional existing HTTPS media references. Does not generate or download media and spends no credits.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| name* | string | |
| notes | any | |
| summary | any | |
| imageUrl | string | |
| world_id | string | |
| description | string | |
| referenceImages | array | |
| imagePromptAddon | any | |
| videoPromptAddon | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"name",
"kind"
],
"properties": {
"kind": {
"enum": [
"character",
"location",
"object",
"outfit",
"ability",
"camera"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 180,
"minLength": 1
},
"notes": {
"$ref": "#/properties/description"
},
"summary": {
"$ref": "#/properties/description"
},
"imageUrl": {
"type": "string",
"format": "uri",
"maxLength": 8192
},
"world_id": {
"type": "string",
"maxLength": 600,
"minLength": 1
},
"description": {
"type": "string",
"maxLength": 4000
},
"referenceImages": {
"type": "array",
"items": {
"type": "string",
"format": "uri",
"maxLength": 8192
},
"maxItems": 20
},
"imagePromptAddon": {
"$ref": "#/properties/description"
},
"videoPromptAddon": {
"$ref": "#/properties/description"
}
},
"additionalProperties": false
}Preview deletion by default. Only the owner can permanently delete the project and its story/collaboration records. Keep dry_run=true until the user approves the stated impact; then set dry_run=false, confirmed=true, and expected_title from the preview. Preserves world/library assets.
| Argument | Type | Description |
|---|---|---|
| dry_run | boolean | Preview deletion impact; defaults to true. |
| confirmed | boolean | True only when the user explicitly requested this deletion after seeing its impact. |
| project_id* | string | Project ID returned by list_creator_flow_projects. |
| expected_title | string | Exact current title from the preview. Required when deleting. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"project_id"
],
"properties": {
"dry_run": {
"type": "boolean",
"default": true,
"description": "Preview deletion impact; defaults to true."
},
"confirmed": {
"type": "boolean",
"default": false,
"description": "True only when the user explicitly requested this deletion after seeing its impact."
},
"project_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Project ID returned by list_creator_flow_projects."
},
"expected_title": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Exact current title from the preview. Required when deleting."
}
},
"additionalProperties": false
}Preview world deletion including its project count. After explicit approval, supply dry_run=false, confirmed=true, expected_title. Deletes world projects/stories/relationships and detaches reusable assets using the app's deletion service.
| Argument | Type | Description |
|---|---|---|
| dry_run | boolean | Preview deletion impact; defaults to true. |
| world_id* | string | World ID returned by list_worlds. |
| confirmed | boolean | True only when the user explicitly requested this deletion after seeing its impact. |
| expected_title | string | Exact current title from the preview. Required when deleting. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"world_id"
],
"properties": {
"dry_run": {
"type": "boolean",
"default": true,
"description": "Preview deletion impact; defaults to true."
},
"world_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "World ID returned by list_worlds."
},
"confirmed": {
"type": "boolean",
"default": false,
"description": "True only when the user explicitly requested this deletion after seeing its impact."
},
"expected_title": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Exact current title from the preview. Required when deleting."
}
},
"additionalProperties": false
}Preview an owned library asset deletion. Only after explicit approval set dry_run=false, confirmed=true, expected_title. Existing projects may lose references to the deleted asset.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| dry_run | boolean | Preview deletion impact; defaults to true. |
| asset_id* | string | |
| world_id | any | |
| confirmed | boolean | True only when the user explicitly requested this deletion after seeing its impact. |
| expected_title | string | Exact current title from the preview. Required when deleting. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset_id",
"kind"
],
"properties": {
"kind": {
"enum": [
"character",
"location",
"object",
"outfit",
"ability",
"camera"
],
"type": "string"
},
"dry_run": {
"type": "boolean",
"default": true,
"description": "Preview deletion impact; defaults to true."
},
"asset_id": {
"type": "string",
"maxLength": 600,
"minLength": 1
},
"world_id": {
"$ref": "#/properties/asset_id"
},
"confirmed": {
"type": "boolean",
"default": false,
"description": "True only when the user explicitly requested this deletion after seeing its impact."
},
"expected_title": {
"type": "string",
"maxLength": 1000,
"minLength": 1,
"description": "Exact current title from the preview. Required when deleting."
}
},
"additionalProperties": false
}Estimate credits for a Cannon Studio generation request before creating billable work. Requires OAuth or a developer API key; it may update key/token usage metadata but does not spend credits, enqueue jobs, or change assets. Use get_api_operation first if operation or input fields are unclear, then pass the same operation/input pair to create_generation_request after user approval.
| Argument | Type | Description |
|---|---|---|
| input* | object | Operation-specific request payload to estimate. Use the exact shape documented by get_api_operation for the selected operation, for example image.generate expects fields like prompt/model/aspect_ratio, video.generate expects prompt/model/duration/aspect_ratio, and three_d.location.generate expects description with optional source_image_urls and angle_context. |
| operation* | string | Cannon Studio developer API operation id to price. Use get_api_operation first if unsure. Examples: image.generate, video.generate, three_d.model.generate, three_d.location.generate, music.generate, narration.generate, subtitles.generate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation",
"input"
],
"properties": {
"input": {
"type": "object",
"description": "Operation-specific request payload to estimate. Use the exact shape documented by get_api_operation for the selected operation, for example image.generate expects fields like prompt/model/aspect_ratio, video.generate expects prompt/model/duration/aspect_ratio, and three_d.location.generate expects description with optional source_image_urls and angle_context.",
"additionalProperties": {}
},
"operation": {
"type": "string",
"minLength": 1,
"description": "Cannon Studio developer API operation id to price. Use get_api_operation first if unsure. Examples: image.generate, video.generate, three_d.model.generate, three_d.location.generate, music.generate, narration.generate, subtitles.generate."
}
},
"additionalProperties": false
}Export a standalone HTML project overview or versioned JSON snapshot as an embedded file resource. Save the resource text verbatim to the returned filename and open the file for the user. HTML shows chapters/scenes/shots, images, videos, audio, missing visuals, search, print/PDF, and JSON download. Media is linked, not bundled, and needs network access. Private export: share only as requested.
| Argument | Type | Description |
|---|---|---|
| format | string | HTML is a standalone visual overview with a JSON download; JSON is machine-readable project state. |
| project_id* | string | Project ID returned by list_creator_flow_projects. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"project_id"
],
"properties": {
"format": {
"enum": [
"html",
"json"
],
"type": "string",
"default": "html",
"description": "HTML is a standalone visual overview with a JSON download; JSON is machine-readable project state."
},
"project_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Project ID returned by list_creator_flow_projects."
}
},
"additionalProperties": false
}Fetch one public Cannon Studio knowledge record by id after search. Public read-only: no auth, no state changes, no charges; use search first when you do not already have a record id.
| Argument | Type | Description |
|---|---|---|
| id* | string | Record id returned by the search tool. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Record id returned by the search tool."
}
},
"additionalProperties": false
}Return public docs for Cannon Studio developer API operations and payload shapes. Public read-only: no auth, no state changes, no charges; use this before estimate_generation_cost or create_generation_request when operation/input fields are unclear.
| Argument | Type | Description |
|---|---|---|
| operation | string | Optional operation id such as image.generate, video.generate, three_d.model.generate, three_d.location.generate, narration.generate, or subtitles.generate. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"operation": {
"type": "string",
"description": "Optional operation id such as image.generate, video.generate, three_d.model.generate, three_d.location.generate, narration.generate, or subtitles.generate."
}
},
"additionalProperties": false
}Return the first-party Cannon Studio checkout or inquiry URL for a selected offering. Public read-only: no auth, no state changes, no charges; use list_offerings first to get a valid product_key.
| Argument | Type | Description |
|---|---|---|
| product_key* | string | Offering id returned by list_offerings, such as subscription:creator:month or credits:2500. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_key"
],
"properties": {
"product_key": {
"type": "string",
"minLength": 1,
"description": "Offering id returned by list_offerings, such as subscription:creator:month or credits:2500."
}
},
"additionalProperties": false
}Inspect an accessible project's saved chapters, scenes, shots, visual readiness, linked media, and scoped assets. Returns a versioned snapshot. Use export_creator_flow_project when the user wants a visual overview or file.
| Argument | Type | Description |
|---|---|---|
| project_id* | string | Project ID returned by list_creator_flow_projects. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"project_id"
],
"properties": {
"project_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Project ID returned by list_creator_flow_projects."
}
},
"additionalProperties": false
}Poll and sync an existing Cannon Studio generation request by id. Requires OAuth or a developer API key; not a pure read because it may update lastPolledAt, sync downstream task state, update logs, and deliver one pending terminal webhook. It does not create work, spend credits, cancel jobs, delete data, or change assets. Poll sparingly using poll_after_ms or 10-30 second intervals.
| Argument | Type | Description |
|---|---|---|
| request_id* | string | Cannon Studio request id returned by create_generation_request or POST /api/v1/requests. This is not a provider task id. |
| include_logs | boolean | Set true only when the user explicitly asks to inspect retained request logs for this request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"request_id"
],
"properties": {
"request_id": {
"type": "string",
"minLength": 1,
"description": "Cannon Studio request id returned by create_generation_request or POST /api/v1/requests. This is not a provider task id."
},
"include_logs": {
"type": "boolean",
"description": "Set true only when the user explicitly asks to inspect retained request logs for this request."
}
},
"additionalProperties": false
}List public Cannon Studio model availability by product surface. Public read-only: no auth, no state changes, no charges; model availability is surface-specific and does not guarantee account eligibility or remaining credits.
| Argument | Type | Description |
|---|---|---|
| surface | string | Optional surface filter, such as image tools, video tools, Creator Flow, World Generator, image-api, video-api, or three-d-api. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"surface": {
"type": "string",
"description": "Optional surface filter, such as image tools, video tools, Creator Flow, World Generator, image-api, video-api, or three-d-api."
}
},
"additionalProperties": false
}Explain public Cannon Studio pricing, credits, plans, and usage tradeoffs. Public read-only: no auth, no state changes, no charges; use list_offerings or get_checkout_link only when the user asks for available purchase paths.
| Argument | Type | Description |
|---|---|---|
| plan | string | Optional plan or tier name the user mentioned, such as free, hobbyist, creator, pro, team, or enterprise. |
| use_case | string | Optional workload or scenario to price, such as UGC ads, AI video, 3D generation, narration, team workflows, or developer API automation. |
| media_type | string | Optional media category, such as image, video, 3D, audio, narration, subtitles, lip sync, or post-production. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"plan": {
"type": "string",
"description": "Optional plan or tier name the user mentioned, such as free, hobbyist, creator, pro, team, or enterprise."
},
"use_case": {
"type": "string",
"description": "Optional workload or scenario to price, such as UGC ads, AI video, 3D generation, narration, team workflows, or developer API automation."
},
"media_type": {
"type": "string",
"description": "Optional media category, such as image, video, 3D, audio, narration, subtitles, lip sync, or post-production."
}
},
"additionalProperties": false
}Read an owned world's summary and media. Use list_world_assets to inspect its library and list_creator_flow_projects for project discovery.
| Argument | Type | Description |
|---|---|---|
| world_id* | string | World ID returned by list_worlds. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"world_id"
],
"properties": {
"world_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "World ID returned by list_worlds."
}
},
"additionalProperties": false
}Read one owned library asset's descriptive state and media. Use the kind and world_id from discovery; locations may be world-scoped.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| asset_id* | string | |
| world_id | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset_id",
"kind"
],
"properties": {
"kind": {
"enum": [
"character",
"location",
"object",
"outfit",
"ability",
"camera"
],
"type": "string"
},
"asset_id": {
"type": "string",
"maxLength": 600,
"minLength": 1
},
"world_id": {
"$ref": "#/properties/asset_id"
}
},
"additionalProperties": false
}List public Cannon Studio capabilities for an audience, workflow, or output type. Public read-only: no auth, no state changes, no charges; use search or fetch when the user needs deeper source text.
| Argument | Type | Description |
|---|---|---|
| audience | string | Optional persona or buyer filter, such as creators, agencies, marketing teams, filmmakers, developers, or teams. |
| workflow | string | Optional workflow filter, such as UGC ads, Creator Flow, World Generator, API automation, 3D generation, audio, or post-production. |
| output_type | string | Optional desired output format, such as image, video, 3D model, 3D location, narration, music, subtitles, or lip sync. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"audience": {
"type": "string",
"description": "Optional persona or buyer filter, such as creators, agencies, marketing teams, filmmakers, developers, or teams."
},
"workflow": {
"type": "string",
"description": "Optional workflow filter, such as UGC ads, Creator Flow, World Generator, API automation, 3D generation, audio, or post-production."
},
"output_type": {
"type": "string",
"description": "Optional desired output format, such as image, video, 3D model, 3D location, narration, music, subtitles, or lip sync."
}
},
"additionalProperties": false
}Discover your owned and shared Creator Flow projects with IDs, roles, direct links, and final videos. May backfill legacy collaboration indexes. Start here when the user mentions their project.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum returned records. |
| cursor | string | Last returned ID, for the next page. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1,
"description": "Maximum returned records."
},
"cursor": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Last returned ID, for the next page."
}
},
"additionalProperties": false
}List public Cannon Studio plans, credit packs, and team offerings. Public read-only: no auth, no state changes, no charges; returns first-party checkout or inquiry URLs without creating Stripe sessions or granting credits.
| Argument | Type | Description |
|---|---|---|
| kind | string | Optional offering kind filter: free, subscription, credit_pack, or team. |
| interval | string | Optional subscription interval filter: month or year. |
| include_checkout_links | boolean | Set false to omit checkout URLs from the response. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"type": "string",
"description": "Optional offering kind filter: free, subscription, credit_pack, or team."
},
"interval": {
"type": "string",
"description": "Optional subscription interval filter: month or year."
},
"include_checkout_links": {
"type": "boolean",
"description": "Set false to omit checkout URLs from the response."
}
},
"additionalProperties": false
}List first-party Cannon Studio image, video, audio, subtitle, editing, Composer, and 3D toolkit surfaces, including which ones are developer-API operations and which should be opened in the app or routed through Director Mode. Public read-only: no auth, no state changes, no charges.
| Argument | Type | Description |
|---|---|---|
| action | string | Optional action filter such as generate, edit, upscale, trim, stitch, lip_sync, transcribe, or delivery. |
| family | string | Optional toolkit family filter such as image, video, audio, subtitles, editing, motion, composer, script, or 3d. |
| media_type | string | Optional media filter such as image, video, audio, subtitles, model3d, script, or timeline. |
| project_context_only | boolean | Set true to return only toolkit surfaces that can operate from selected project or Director Mode asset context. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"action": {
"type": "string",
"description": "Optional action filter such as generate, edit, upscale, trim, stitch, lip_sync, transcribe, or delivery."
},
"family": {
"type": "string",
"description": "Optional toolkit family filter such as image, video, audio, subtitles, editing, motion, composer, script, or 3d."
},
"media_type": {
"type": "string",
"description": "Optional media filter such as image, video, audio, subtitles, model3d, script, or timeline."
},
"project_context_only": {
"type": "boolean",
"description": "Set true to return only toolkit surfaces that can operate from selected project or Director Mode asset context."
}
},
"additionalProperties": false
}Discover asset kinds, then page through owned characters, locations, objects, outfits, abilities, or cameras. Select kind; optionally filter world_id. Returns asset IDs, descriptions, media links, and next_cursor.
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| limit | integer | Maximum returned records. |
| cursor | string | Last returned ID, for the next page. |
| world_id | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"kind": {
"enum": [
"character",
"location",
"object",
"outfit",
"ability",
"camera"
],
"type": "string"
},
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1,
"description": "Maximum returned records."
},
"cursor": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Last returned ID, for the next page."
},
"world_id": {
"$ref": "#/properties/cursor"
}
},
"additionalProperties": false
}Page through your owned worlds with titles, descriptions, media, and direct links. Returns a next_cursor when more worlds exist.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum returned records. |
| cursor | string | Last returned ID, for the next page. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 30,
"maximum": 100,
"minimum": 1,
"description": "Maximum returned records."
},
"cursor": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Last returned ID, for the next page."
}
},
"additionalProperties": false
}Recommend a Cannon Studio workflow for a stated creative or developer goal. Public read-only: no auth, no state changes, no charges; use this for planning, not to create generation jobs.
| Argument | Type | Description |
|---|---|---|
| goal* | string | User's desired outcome or problem to solve, such as producing UGC ads, planning a short film, generating 3D assets, or automating API media generation. |
| audience | string | Optional user or organization type, such as solo creator, agency, brand team, developer, filmmaker, or enterprise team. |
| team_size | string | Optional team context, such as solo, small team, agency team, or enterprise team; used to bias collaboration and review recommendations. |
| output_type | string | Optional final output target, such as image, video, ad, trailer, 3D model, 3D location, audio, subtitles, or API integration. |
| budget_sensitivity | string | Optional cost posture, such as low, medium, high, cost-sensitive, or speed-prioritized; used to frame pricing and iteration tradeoffs. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"goal"
],
"properties": {
"goal": {
"type": "string",
"minLength": 1,
"description": "User's desired outcome or problem to solve, such as producing UGC ads, planning a short film, generating 3D assets, or automating API media generation."
},
"audience": {
"type": "string",
"description": "Optional user or organization type, such as solo creator, agency, brand team, developer, filmmaker, or enterprise team."
},
"team_size": {
"type": "string",
"description": "Optional team context, such as solo, small team, agency team, or enterprise team; used to bias collaboration and review recommendations."
},
"output_type": {
"type": "string",
"description": "Optional final output target, such as image, video, ad, trailer, 3D model, 3D location, audio, subtitles, or API integration."
},
"budget_sensitivity": {
"type": "string",
"description": "Optional cost posture, such as low, medium, high, cost-sensitive, or speed-prioritized; used to frame pricing and iteration tradeoffs."
}
},
"additionalProperties": false
}Search public Cannon Studio knowledge when a user asks about products, workflows, pricing, models, comparisons, use cases, or developer API docs. Public read-only: no auth, no state changes, no charges; call fetch with a returned id when full source-backed text is needed.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results. Defaults to 8 and caps at 20. |
| query* | string | Natural-language query to search Cannon Studio public knowledge. |
| audience | string | Optional audience/persona filter such as creators, agencies, marketing teams, or developers. |
| category | string | Optional category filter such as pricing, developer, comparison, model_availability, use_case, tools, or creator_flow. |
| pain_point | string | Optional pain point filter such as consistent characters, cost predictability, team review, model choice, or finishing. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "Maximum number of results. Defaults to 8 and caps at 20."
},
"query": {
"type": "string",
"minLength": 1,
"description": "Natural-language query to search Cannon Studio public knowledge."
},
"audience": {
"type": "string",
"description": "Optional audience/persona filter such as creators, agencies, marketing teams, or developers."
},
"category": {
"type": "string",
"description": "Optional category filter such as pricing, developer, comparison, model_availability, use_case, tools, or creator_flow."
},
"pain_point": {
"type": "string",
"description": "Optional pain point filter such as consistent characters, cost predictability, team review, model choice, or finishing."
}
},
"additionalProperties": false
}Edit an accessible project's title, summary, or visual style. Requires editor access and respects another collaborator's active edit lease. Does not regenerate media.
| Argument | Type | Description |
|---|---|---|
| title | string | |
| summary | string | |
| project_id* | string | Project ID returned by list_creator_flow_projects. |
| visualStyle | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"project_id"
],
"properties": {
"title": {
"type": "string",
"maxLength": 180,
"minLength": 1
},
"summary": {
"type": "string",
"maxLength": 4000
},
"project_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "Project ID returned by list_creator_flow_projects."
},
"visualStyle": {
"$ref": "#/properties/summary"
}
},
"additionalProperties": false
}Update an owned world's descriptive fields. Omitted fields remain unchanged; empty strings/arrays clear optional fields. Does not rewrite existing media.
| Argument | Type | Description |
|---|---|---|
| genre | string | |
| theme | any | |
| title | string | |
| world_id* | string | World ID returned by list_worlds. |
| description | string | |
| visualStyle | any | |
| importantLore | array | |
| videoProductionCues | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"world_id"
],
"properties": {
"genre": {
"type": "string",
"maxLength": 120
},
"theme": {
"$ref": "#/properties/description"
},
"title": {
"type": "string",
"maxLength": 180,
"minLength": 1
},
"world_id": {
"type": "string",
"maxLength": 600,
"minLength": 1,
"description": "World ID returned by list_worlds."
},
"description": {
"type": "string",
"maxLength": 4000
},
"visualStyle": {
"$ref": "#/properties/description"
},
"importantLore": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 50
},
"videoProductionCues": {
"type": "array",
"items": {
"type": "string",
"maxLength": 240
},
"maxItems": 50
}
},
"additionalProperties": false
}Edit an owned reusable asset's descriptive fields and existing media references using the app's asset service. Does not generate new media.
| Argument | Type | Description |
|---|---|---|
| kind* | string | |
| name | string | |
| notes | any | |
| summary | any | |
| asset_id* | string | |
| imageUrl | string | |
| world_id | any | |
| description | string | |
| referenceImages | array | |
| imagePromptAddon | any | |
| videoPromptAddon | any |
| idempotency_key | string | Optional stable retry key for the same operation and payload. Reuse it when retrying after a network/client error; do not generate a new key for the same intended request. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"operation",
"input"
],
"properties": {
"input": {
"type": "object",
"description": "Operation-specific request payload. Use the exact shape documented by get_api_operation for the selected operation; this is the billable payload that will be submitted if confirmed and within max_credits.",
"additionalProperties": {}
},
"confirmed": {
"type": "boolean",
"description": "Must be true only after the user explicitly approves this billable generation request, including operation, payload, and max_credits. Missing or false returns a confirmation error and creates no job."
},
"operation": {
"type": "string",
"minLength": 1,
"description": "Cannon Studio developer API operation id to run. Use get_api_operation first if unsure. Examples: image.generate, video.generate, three_d.model.generate, three_d.location.generate, music.generate, narration.generate, subtitles.generate."
},
"max_credits": {
"type": "number",
"minimum": 0,
"description": "Highest credit spend the user explicitly approved for this request. The tool rejects the request when the current estimate is greater than this cap."
},
"webhook_url": {
"type": "string",
"format": "uri",
"description": "Optional HTTPS URL that Cannon Studio calls when the request reaches a terminal succeeded or failed state. Omit when polling with get_generation_request."
},
"idempotency_key": {
"type": "string",
"description": "Optional stable retry key for the same operation and payload. Reuse it when retrying after a network/client error; do not generate a new key for the same intended request."
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"asset_id",
"kind"
],
"properties": {
"kind": {
"enum": [
"character",
"location",
"object",
"outfit",
"ability",
"camera"
],
"type": "string"
},
"name": {
"type": "string",
"maxLength": 180,
"minLength": 1
},
"notes": {
"$ref": "#/properties/description"
},
"summary": {
"$ref": "#/properties/description"
},
"asset_id": {
"type": "string",
"maxLength": 600,
"minLength": 1
},
"imageUrl": {
"type": "string",
"format": "uri",
"maxLength": 8192
},
"world_id": {
"$ref": "#/properties/asset_id"
},
"description": {
"type": "string",
"maxLength": 4000
},
"referenceImages": {
"type": "array",
"items": {
"type": "string",
"format": "uri",
"maxLength": 8192
},
"maxItems": 20
},
"imagePromptAddon": {
"$ref": "#/properties/description"
},
"videoPromptAddon": {
"$ref": "#/properties/description"
}
},
"additionalProperties": false
}