Skip to main content
This gets you from nothing to a generated image. Pick the transport that matches how you work: an agent host with MCP, a shell with the CLI, or raw HTTP.

1. Get an API key

Create a key in the ContentHero app under Settings, API Keys. Keys are scope-gated; for generation, grant the generate scopes. Treat the key like a password.
Never paste an API key into an agent chat. The CLI and MCP handle keys for you. See Authentication.

2. Connect a transport

Add the hosted server to your agent host. It authenticates over OAuth, so there is no key to manage.
{
  "mcpServers": {
    "contenthero": {
      "url": "https://mcp.contenthero.ai"
    }
  }
}
Your host walks you through the OAuth consent once. After that, the ContentHero tools appear as mcp__contenthero__*. See MCP setup for per-host instructions.

3. Preview the cost

Every spend can be previewed for free before you commit.
Call generate_image with getCost: true. It returns the price and charges nothing.

4. Generate

Call generate_image with a prompt and a modelId. The available models are the modelId enum on the generate tools, resolved live from the registry. The call smart-waits about 50s, then returns the asset or an outputId to poll.

5. Poll if it is still rendering

If the render outlasts the smart-wait, you get an outputId. Poll it.
Call get_generation_status with the outputId for a snapshot, or wait_for_generation to block until it is done.

Next steps

Chain into video

Feed the image’s output id straight into generate_video as a start frame.

Run the full pipeline

Ground a post in your voice, produce the media, and schedule it.

Install the skills

Let your agent drive the whole surface with the official workflows.

Browse the recipes

End-to-end chains you can copy.