Integrations

Claude Desktop (MCP)

SteadyShot ships an MCP server that lets Claude Desktop call every major SteadyShot operation by natural language. Generate characters, scenes, storybooks, and variations without leaving the chat.
Brand-kit tools below (list_brand_kits, get_brand_kit, generate_with_brand) are in private beta and require beta access on your account. Request access →

Install

  1. Grab an API key at steadyshot.ai/api-keys.
  2. Open Claude Desktop’s settings → DeveloperEdit Config.
  3. Add the SteadyShot MCP block to claude_desktop_config.json:
json
{
  "mcpServers": {
    "steadyshot": {
      "command": "npx",
      "args": ["-y", "steadyshot-mcp"],
      "env": {
        "STEADYSHOT_API_KEY": "ss_live_xxxxxxxxxxxxxxxx"
      }
    }
  }
}

Restart Claude Desktop. The 🔌 icon at the bottom of the chat should show steadyshot connected with 12 tools available.

Running from source instead? Point command at node and args at the absolute path of mcp-server.mjs in your local clone.

What you can ask

  • “List my characters”list_characters
  • “Generate a scene of Luna reading by a campfire” generate_scene
  • “Make 4 frowning variations of that scene” vary_scene
  • “Generate a 5-page storybook of Luna meeting Milo at the seaside” generate_storybook
  • “Combine Luna with the Acme brand kit for a marketing shot” generate_scene with both ids
  • “Generate reference sheets for character X” generate_references

All tools

ToolWhat it does
list_charactersList all your characters.
get_characterGet one character + references.
generate_sceneGenerate a single-character (and/or brand) scene.
vary_sceneCreate 1-4 single-dimension variations of an existing scene.
generate_multi_sceneScene with 2-4 characters together.
generate_storybookMulti-page storybook with optional PDF export.
generate_referencesGenerate reference sheet views for a character.
list_brand_kitsList your brand kits. (beta)
get_brand_kitGet one brand kit + assets. (beta)
generate_with_brandBrand-only scene generation (no character). (beta)
delete_characterPermanently delete a character.

Credits + auth

Every tool call bills against the credits of the user whose API key is in your MCP config. Same plan limits, same per-action costs as the web UI — Claude doesn’t get any special billing.

Sample conversations

These are real prompts that exercise multi-turn workflows. Claude figures out which tool to call from context and threads image_ids automatically.

Conversation 1 — character → scene → variation

text
You: "Show me my characters"
↳ list_characters → ["Mira (locked)", "Beanie (locked)", "Kai (draft)"]

You: "Generate Mira sitting by a moonlit pond"
↳ generate_scene(character_id=mira-id, prompt="Mira sitting by a moonlit pond")
→ returns image_id + url, Claude shows the image

You: "Make 4 versions with different expressions"
↳ vary_scene(image_id=<prev>, vary="expression", target="varied", count=4)
→ 4 thumbnails inline

You: "I like #3 — now make her at golden hour"
↳ vary_scene(image_id=<#3 image_id>, vary="lighting", target="golden hour", count=1)

Conversation 2 — full storybook from scratch

text
You: "Generate a 4-page bedtime story for Mira:
  1. She wakes up in a forest clearing
  2. She finds a glowing mushroom
  3. She touches it and it pulses with light
  4. She runs home through the trees, smiling
  Style: studio ghibli watercolor. Export to PDF."

↳ generate_storybook(
    character_id=mira-id,
    pages=[
      "She wakes up in a forest clearing",
      "She finds a glowing mushroom",
      "She touches it and it pulses with light",
      "She runs home through the trees, smiling"
    ],
    art_style="studio ghibli watercolor",
    export_pdf=true
  )
→ returns 4 page images + a pdf_url

Conversation 3 — brand kit + character together

text
You: "Generate Beanie holding an Acme Coffee cup at a sunlit café"
↳ list_brand_kits → ["Acme Coffee"]
↳ generate_scene(
    character_id=beanie-id,
    brand_kit_id=acme-id,
    prompt="Beanie holding an Acme Coffee cup at a sunlit café"
  )
→ image with the exact Acme logo on the cup, brand palette obeyed

Build your own MCP-compatible client

The SteadyShot MCP server is a standard Model Context Protocol stdio server. Any MCP-compatible client can connect — not just Claude Desktop.

  • Server source: mcp-server.mjs in the SteadyShot repo. Single file, ~370 lines, no build step.
  • Tools registered: see the table above. Each tool is declared in the tools array and routed via CallToolRequestSchema.
  • Transport: stdio (newline-delimited JSON-RPC). Wrap with your own MCP client SDK to call from a custom agent.