# Cannon Studio

> Public Cannon Studio MCP for product, pricing, workflow, model, and API answers.

- name: app.cannonstudio/cannon-studio
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 73/100 flags: no-repository
- quality: 91/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/app.cannonstudio%2Fcannon-studio
- tools: https://api.protogrid.dev/v1/servers/app.cannonstudio%2Fcannon-studio/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "cannon-studio": {
      "type": "http",
      "url": "https://www.cannonstudio.app/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 45
- drivers: +dns-namespace +reachable +uptime-100% ~updated-158d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 31 of 31 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 6,856 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 31, about 6,856 tokens to load them all
- tool set hash: 203f0318b747315ccdad3f7bd330a11b
- badge: [![protogrid quality](https://protogrid.dev/badge/app.cannonstudio/cannon-studio.svg)](https://protogrid.dev/servers/app.cannonstudio/cannon-studio)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://www.cannonstudio.app/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (31)

- `api_status`: 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.
- `compare_alternatives`: 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.
- `create_creator_flow_project`: 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_generation_request`: 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_world`: Create an owned world with title, description, genre, visual style, lore, and production cues. No media generation or credit spend.
- `create_world_asset`: 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.
- `delete_creator_flow_project`: 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_world`: 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_asset`: 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.
- `estimate_generation_cost`: 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.
- `export_creator_flow_project`: 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.
- `fetch`: 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.
- `get_api_operation`: 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_checkout_link`: 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_creator_flow_project`: 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_generation_request`: 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_model_availability`: 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_pricing_context`: 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_world`: 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_asset`: Read one owned library asset's descriptive state and media. Use the kind and world_id from discovery; locations may be world-scoped.
- `list_capabilities`: 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_creator_flow_projects`: 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_offerings`: 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_toolkits`: 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_world_assets`: 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_worlds`: Page through your owned worlds with titles, descriptions, media, and direct links. Returns a next_cursor when more worlds exist.
- `recommend_workflow`: 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.
- `search`: 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.
- `update_creator_flow_project`: 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_world`: Update an owned world's descriptive fields. Omitted fields remain unchanged; empty strings/arrays clear optional fields. Does not rewrite existing media.
- `update_world_asset`: Edit an owned reusable asset's descriptive fields and existing media references using the app's asset service. Does not generate new media.
