Integrations
Claude (MCP)
list_brand_kits, get_brand_kit, generate_with_brand) are in private beta and require beta access on your account. Request access →Option A · claude.ai custom connector (recommended)
Works in the browser and on the claude.ai mobile app. No CLI, no config files — paste a URL + your API key once.
- Grab an API key at steadyshot.ai/api-keys.
- In claude.ai, open Settings → Connectors → Add custom connector.
- Use these values:
Server URL: https://steadyshot.ai/api/mcp
Auth header: Authorization: Bearer ss_live_xxxxxxxxxxxxxxxxSave. The connector appears in your tools tray in any new chat. Ask “list my SteadyShot characters” to confirm it's wired up.
X-Steadyshot-Workspace header from the connector config; otherwise it defaults to your personal workspace.Option B · Claude Desktop (stdio)
For Claude Desktop, the local stdio server is still the simplest path — fewer round trips, no internet required for tool dispatch (the tool handlers still hit the SteadyShot API).
- Grab an API key at steadyshot.ai/api-keys.
- Open Claude Desktop’s settings → Developer → Edit Config.
- Add the SteadyShot MCP block to
claude_desktop_config.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.
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_scenewith both ids - “Generate reference sheets for character X” →
generate_references
All tools
| Tool | What it does |
|---|---|
list_characters | List all your characters. |
get_character | Get one character + references. |
generate_scene | Generate a single-character (and/or brand) scene. |
vary_scene | Create 1-4 single-dimension variations of an existing scene. |
generate_multi_scene | Scene with 2-4 characters together. |
generate_storybook | Multi-page storybook with optional PDF export. |
generate_references | Generate reference sheet views for a character. |
list_brand_kits | List your brand kits. (beta) |
get_brand_kit | Get one brand kit + assets. (beta) |
generate_with_brand | Brand-only scene generation (no character). (beta) |
delete_character | Permanently 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
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
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_urlConversation 3 — brand kit + character together
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 obeyedBuild 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.mjsin the SteadyShot repo. Single file, ~370 lines, no build step. - Tools registered: see the table above. Each tool is declared in the
toolsarray and routed viaCallToolRequestSchema. - Transport: stdio (newline-delimited JSON-RPC). Wrap with your own MCP client SDK to call from a custom agent.