- Endpoint:
https://api.creatorline.io/mcp - Transport: streamable HTTP (MCP revision
2026-07-28) - Auth:
Authorization: Bearer <CREATORLINE_API_KEY>on every request
Connect a harness
- Claude Code
- Codex CLI
- Cursor
- Windsurf
- VS Code / Copilot
- Zed
- Other (raw HTTP)
Add the server from the terminal:Or add it by hand to Verify with
~/.claude.json (user scope) or .mcp.json in your project root:claude mcp list, then /mcp inside a session to inspect tools.Tools
Discovery
list_models · list_voices · list_accounts · get_credit_balance · estimate_generation_costGeneration
create_generation · get_generation · list_assetsPublishing
create_post · publish_post · list_postscreate_generation takes a tool and the model schema comes from list_models — which returns each model’s full shape: every input slot with its cap, every parameter with its allowed values or numeric bounds, what opaque values mean, whether a prompt is required, and how long a take can be. list_voices covers the one thing the catalog cannot enumerate, the live voice list the audio tools take.
How an agent should use it
1
Find out what exists
list_models for the catalog, list_accounts for the creators. Never guess an id.2
Price it if the user asked
estimate_generation_cost is free and does not start anything. Give it the same inputs / source_url the real run will use: the source-billed tools (lipsync, motion-control, scene-video, change-voice, short-clip) charge per second of the source, so an estimate without the media is only a default-length guess.3
Start and poll
create_generation returns a job handle immediately and reports the credits it charged. Poll get_generation every few seconds — a video takes minutes, and holding the tool call open would hit the client’s idle timer.Beyond tool / prompt / inputs / params, it carries source_url (work from a video link, for a tool whose catalog entry has accepts_source_url) and include_account_avatar (set false when the creator must not appear in the output).4
Publish only on request
create_post puts a post in the review queue. publish_post makes it public — it is annotated as destructive so your client prompts first, and the tool description tells the model to confirm with the user.create_post carries the full composition: format, hashtags, draft, made_with_ai, auto_add_music, photo_cover_index and per-platform overrides in platform_settings. See Publishing for what each one does. A setting the platform cannot take comes back as a plain-English error the model can act on, rather than a post that publishes wrong.Multi-tenancy
The workspace comes from the API key, never from a tool argument. There is noworkspace_id parameter anywhere in the tool surface, so a model cannot be talked into reading another organization’s data.
A read-scope key gets a plain-English refusal from the writing tools rather than a protocol error, so the agent can explain the problem instead of retrying.
Stateless
The server implements the 2026-07-28 MCP revision: no session id, no handshake, no resumable streams. Every request builds a fresh server instance bound to the calling key. In practice that means it never gets into a bad session state, it scales horizontally, and reconnecting costs nothing.claude.ai connectors
claude.ai connectors
Custom connectors on claude.ai currently support OAuth only — there is no field for a custom header — so the API-key connection above works with Claude Code and Cursor today. OAuth support for claude.ai connectors is planned.