Koskamo

Cannon Studio MCP

Official MCP server for Cannon Studio, an AI video production platform. It allows agents to access product information, pricing, workflow details, model availability, and API documentation to assist with AI filmmaking, content creation, and production planning tasks.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Cannon Studio MCP logo, by Cannon StudioVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Cannon Studio
MCP endpoint (Streamable HTTP)
https://www.cannonstudio.app/mcp
Vendor documentation

What its tools do

31 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

31 of 31 have a description · 31 of 31 declare behavior hints · 21 of 30 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to cannonstudio.app ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve product and pricing information
  • Access workflow and model availability details
  • Query API documentation for developers
  • Assist with AI video production planning

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
cannon-studio 1.2.0
MCP protocol negotiated in check
2025-11-25
Tools
31 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

For private projects, start with list_creator_flow_projects or list_worlds. Use get_creator_flow_project for state and export_creator_flow_project for a visual file; save its embedded resource and open it for the user. Display returned media resource links as files/previews, and use direct links if inline rendering fails. Never claim a generation or export succeeded until its result confirms success. Use this server to answer public Cannon Studio product, workflow, pricing, model availability, comparison, and developer API questions. Prefer search and fetch for citation-friendly answers. Do not ask for private workspace data through public tools.

Tools

31 advertised

search — Search Cannon Studio Knowledge
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

search input schema
{
  "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
}
search output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "results"
  ],
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "snippet": {
            "type": "string"
          },
          "category": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
search annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
fetch — Fetch Cannon Studio Knowledge Record
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

fetch input schema
{
  "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
}
fetch output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "text",
    "url"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}
fetch annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_capabilities — List Cannon Studio Capabilities
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_capabilities input schema
{
  "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
}
list_capabilities output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "summary",
    "stats",
    "matches"
  ],
  "properties": {
    "stats": {
      "type": "object",
      "additionalProperties": {}
    },
    "matches": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "snippet": {
            "type": "string"
          },
          "category": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "summary": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
list_capabilities annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
recommend_workflow — Recommend Cannon Studio Workflow
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

recommend_workflow input schema
{
  "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
}
recommend_workflow output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "goal",
    "recommendation",
    "steps",
    "sources"
  ],
  "properties": {
    "goal": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "snippet": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "recommendation": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
recommend_workflow annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
compare_alternatives — Compare Cannon Studio Alternatives
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

compare_alternatives input schema
{
  "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
}
compare_alternatives output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "use_case",
    "alternatives",
    "positioning",
    "caution",
    "sources"
  ],
  "properties": {
    "caution": {
      "type": "string"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "snippet": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "use_case": {
      "type": "string"
    },
    "positioning": {
      "type": "string"
    },
    "alternatives": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": false
}
compare_alternatives annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_pricing_context — Get Cannon Studio Pricing Context
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_pricing_context input schema
{
  "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
}
get_pricing_context output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "summary",
    "use_case",
    "media_type",
    "plan",
    "sources"
  ],
  "properties": {
    "plan": {
      "type": [
        "string",
        "null"
      ]
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "snippet": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "summary": {
      "type": "string"
    },
    "use_case": {
      "type": [
        "string",
        "null"
      ]
    },
    "media_type": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
get_pricing_context annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_offerings — List Cannon Studio Offerings
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_offerings input schema
{
  "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_offerings output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "offerings",
    "notes"
  ],
  "properties": {
    "notes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "offerings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "label",
          "summary",
          "priceUsd",
          "interval",
          "credits",
          "checkoutUrl",
          "requiresLogin",
          "tags",
          "notes"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "label": {
            "type": "string"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "credits": {
            "type": [
              "number",
              "null"
            ]
          },
          "summary": {
            "type": "string"
          },
          "interval": {
            "type": [
              "string",
              "null"
            ]
          },
          "priceUsd": {
            "type": [
              "number",
              "null"
            ]
          },
          "checkoutUrl": {
            "type": "string"
          },
          "requiresLogin": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_offerings annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_checkout_link — Get Cannon Studio Checkout Link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_checkout_link input schema
{
  "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
}
get_checkout_link output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "productKey",
    "offering",
    "checkoutUrl",
    "chargeStatus",
    "createsStripeSession",
    "nextStep",
    "safety"
  ],
  "properties": {
    "safety": {
      "type": "string"
    },
    "nextStep": {
      "type": "string"
    },
    "offering": {
      "type": "object",
      "required": [
        "id",
        "kind",
        "label",
        "summary",
        "priceUsd",
        "interval",
        "credits",
        "checkoutUrl",
        "requiresLogin",
        "tags",
        "notes"
      ],
      "properties": {
        "id": {
          "type": "string"
        },
        "kind": {
          "type": "string"
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "label": {
          "type": "string"
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "credits": {
          "type": [
            "number",
            "null"
          ]
        },
        "summary": {
          "type": "string"
        },
        "interval": {
          "type": [
            "string",
            "null"
          ]
        },
        "priceUsd": {
          "type": [
            "number",
            "null"
          ]
        },
        "checkoutUrl": {
          "type": "string"
        },
        "requiresLogin": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "productKey": {
      "type": "string"
    },
    "checkoutUrl": {
      "type": "string"
    },
    "chargeStatus": {
      "type": "string"
    },
    "createsStripeSession": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
get_checkout_link annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_model_availability — Get Cannon Studio Model Availability
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_model_availability input schema
{
  "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
}
get_model_availability output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "surfaces",
    "note"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "surfaces": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": false
}
get_model_availability annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_toolkits — List Cannon Studio Toolkits
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_toolkits input schema
{
  "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
}
list_toolkits output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "toolkits",
    "note"
  ],
  "properties": {
    "note": {
      "type": "string"
    },
    "toolkits": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    }
  },
  "additionalProperties": false
}
list_toolkits annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_api_operation — Get Cannon Studio API Operation Docs
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_api_operation input schema
{
  "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
}
get_api_operation output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "operations"
  ],
  "properties": {
    "operations": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "url",
          "summary",
          "text"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
get_api_operation annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
api_status — Check Cannon Studio Developer API Status
Advertised by the server during the last successful anonymous check.

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.

api_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
api_status output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "ok",
    "status",
    "response"
  ],
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "status": {
      "type": "number"
    },
    "response": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}
api_status annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
estimate_generation_cost — Estimate Developer API Generation Cost
Advertised by the server during the last successful anonymous check.

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.

estimate_generation_cost input schema
{
  "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
}
estimate_generation_cost output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "note": {
      "type": "string"
    },
    "error": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "status": {
      "type": "number"
    },
    "response": {
      "type": "object",
      "additionalProperties": {}
    },
    "operation": {
      "type": "string"
    },
    "estimatedCredits": {
      "type": [
        "number",
        "null"
      ]
    }
  },
  "additionalProperties": false
}
estimate_generation_cost annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
create_generation_request — Create Cannon Studio Generation Request
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

create_generation_request input schema
{
  "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
}
create_generation_request output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "error": {
      "type": "string"
    },
    "status": {
      "type": "number"
    },
    "response": {
      "type": "object",
      "additionalProperties": {}
    },
    "maxCredits": {
      "type": [
        "number",
        "null"
      ]
    },
    "estimatedCredits": {
      "type": "number"
    }
  },
  "additionalProperties": false
}
create_generation_request annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
get_generation_request — Poll and Sync Cannon Studio Generation Request
Advertised by the server during the last successful anonymous check.

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.

get_generation_request input schema
{
  "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
}
get_generation_request output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "ok": {
      "type": "boolean"
    },
    "error": {
      "type": "string"
    },
    "status": {
      "type": "number"
    },
    "response": {
      "type": "object",
      "additionalProperties": {}
    }
  },
  "additionalProperties": false
}
get_generation_request annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
list_creator_flow_projects — List Creator Flow Projects
Advertised by the server during the last successful anonymous check.

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.

list_creator_flow_projects input schema
{
  "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_creator_flow_projects annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_creator_flow_project — Get Creator Flow Project
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_creator_flow_project input schema
{
  "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
}
get_creator_flow_project annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_creator_flow_project — Create Creator Flow Project
Advertised by the server during the last successful anonymous check.

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.

create_creator_flow_project input schema
{
  "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_creator_flow_project annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_creator_flow_project — Update Creator Flow Project
Advertised by the server during the last successful anonymous check.

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.

update_creator_flow_project input schema
{
  "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_creator_flow_project annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_creator_flow_project — Delete Creator Flow Project
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_creator_flow_project input schema
{
  "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
}
delete_creator_flow_project annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
export_creator_flow_project — Export Creator Flow Project
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

export_creator_flow_project input schema
{
  "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
}
export_creator_flow_project annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_worlds — List Worlds
Advertised by the server during the last successful anonymous check.
Advertised read-only

Page through your owned worlds with titles, descriptions, media, and direct links. Returns a next_cursor when more worlds exist.

list_worlds input schema
{
  "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_worlds annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_world — Get World
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read an owned world's summary and media. Use list_world_assets to inspect its library and list_creator_flow_projects for project discovery.

get_world input schema
{
  "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
}
get_world annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_world — Create World
Advertised by the server during the last successful anonymous check.

Create an owned world with title, description, genre, visual style, lore, and production cues. No media generation or credit spend.

create_world input schema
{
  "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_world annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_world — Update World
Advertised by the server during the last successful anonymous check.

Update an owned world's descriptive fields. Omitted fields remain unchanged; empty strings/arrays clear optional fields. Does not rewrite existing media.

update_world input schema
{
  "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
}
update_world annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_world — Delete World
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_world input schema
{
  "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
}
delete_world annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}
list_world_assets — List World Assets
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_world_assets input schema
{
  "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
}
list_world_assets annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_world_asset — Get World Asset
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read one owned library asset's descriptive state and media. Use the kind and world_id from discovery; locations may be world-scoped.

get_world_asset input schema
{
  "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
}
get_world_asset annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_world_asset — Create World Asset
Advertised by the server during the last successful anonymous check.

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.

create_world_asset input schema
{
  "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
}
create_world_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
update_world_asset — Update World Asset
Advertised by the server during the last successful anonymous check.

Edit an owned reusable asset's descriptive fields and existing media references using the app's asset service. Does not generate new media.

update_world_asset input schema
{
  "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
}
update_world_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
delete_world_asset — Delete World Asset
Advertised by the server during the last successful anonymous check.
Advertised destructive

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.

delete_world_asset input schema
{
  "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
}
delete_world_asset annotations
{
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": true
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
380 ms
95th percentile latency
380 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 380 ms · metadata changed · 31 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http cannon-studio-mcp https://www.cannonstudio.app/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add cannon-studio-mcp --url https://www.cannonstudio.app/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable cannon-studio-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "cannon-studio-mcp": {
      "url": "https://www.cannonstudio.app/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "cannon-studio-mcp": {
      "type": "streamableHttp",
      "url": "https://www.cannonstudio.app/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start cannon-studio-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "cannon-studio-mcp": {
      "type": "http",
      "url": "https://www.cannonstudio.app/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http cannon-studio-mcp https://www.cannonstudio.app/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://www.cannonstudio.app/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "cannon-studio-mcp": {
      "serverUrl": "https://www.cannonstudio.app/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Cannon Studio MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Cannon Studio MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing