> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interchange.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Creative Engines

> Discover creative capabilities and connect an engine through V3 MCP tools.

<Note>
  This V3 MCP preview is available only to enrolled Buyer Accounts. It adds
  discovery and connection setup for registered Creative Engines. The Creative
  Engines Page and v3 generation-session tools are not included in this preview.
</Note>

An engine is a creative service you can discover and connect. A connection is your authorization
grant to that service. One engine can have several connections, each with its
own credential and provider accounts.

## Discover an engine

Call `search` with `kind: "creative_engine"`. Use `query` to match an engine or
provider name, `filter.ids` for up to 50 exact engine IDs, and `limit` plus the
returned `cursor` to page results. IDs are positive integer strings.

```json theme={null}
{ "kind": "creative_engine", "limit": 20 }
```

Results contain one record per engine, including its name, description,
provider, authentication modes and your existing grants. The `capabilities`
declaration lists modalities, transformer IDs, supported format IDs and
build/preview support when the registered adapter supplies them. `get` with
the same kind and an engine `id` returns one record.

Declarations describe support; they are not a live provider health check or
proof of access to every model. Grant status describes your connection state.
`pricing: null` means this read has not obtained a quote, not that generation
is free. The current `supportedFormatIds` are adapter format identifiers, not
canonical AdCP format declarations or executable capability IDs.

Discovery currently covers registered Creative Engines visible to the active
buyer. Arbitrary external MCP endpoints cannot be added through this preview.

## Authorize and manage a connection

Call `save_connection` with exactly one change. To begin authorization:

```json theme={null}
{
  "target": { "kind": "creative_engine", "id": "90" },
  "authorization": {}
}
```

The result contains a secure authorization handoff. Open it to complete OAuth
or enter a bearer credential, according to the engine's supported modes. Never
put a provider token into tool arguments. The tool does not return token values.

To list your creative grants:

```json theme={null}
{ "kind": "connection", "filter": { "targetKind": "creative_engine" } }
```

Read a grant with `get({"kind":"connection","id":"77"})`. It includes safe
credential status, selected account, advertiser mappings and a bounded account list. Use
`connectionAccountsOffset` with the returned `accountsPage.nextOffset` for
another account page. Provider metadata and secrets are omitted.

Use the existing `save_connection` fields with `connectionId` to reconnect
(`authorization`), refresh accounts (`refreshAccounts: true`), select a provider
account (`selectedAccountId`), map an advertiser (`advertiserMapping`), or disconnect (`state: "removed"`). A connection
cannot change its target. Disconnect retries remain available for owned grants
after catalog delisting or preview enrollment is removed.

Creative connections do not accept seller selection, advertiser activation,
media billing, buying policy or Enhanced Reporting.
Signup-restricted credentials cannot use the creative preview.

AudioStack and ElevenLabs require an advertiser mapping before generation. This
selects the provider organization or workspace that pays for the request. Use
`advertiserMapping: {state: "mapped", advertiserId: "42", accountId: "88"}`
with the connection ID. Read `accountMappings` to find the link ID for unmapping;
use `connectionMappingsOffset` with `accountMappingsPage.nextOffset` for another
mapping page. Replacing the provider key requires remapping the advertiser.

## Generation and funding

This preview provides discovery and setup. It does not start a generation job,
provide a request estimate, or expose V3 creative-session tools. For accounts
and clients with the existing V2 generation tools, use the
[generative creative workflow](/v2/buyer/creatives/generative-creative).
Keep the chosen engine, provider account and advertiser explicit when moving
from setup into a session. A connection alone does not authorize spending.

Use the generation workflow's applicable funding and price information before
requesting paid work. The current catalog's `pricing: null` cannot be used as a
quote. Customer-key eligibility and provider account requirements still apply;
see [provider setup](/v2/buyer/creatives/generative-creative). A failed
customer-key request does not authorize switching to a platform-funded request.

During iteration, preserve the brief, reference assets, target format and
parent variant. Retain returned session and task IDs so an interrupted request
can resume without submitting another build. Review the exact output that will
be finalized, then read back the saved creative. Content acceptance remains
separate from [seller review](/v2/buyer/creatives/approval) and campaign launch.

## Existing seller integrations

`search({"kind":"connection"})` continues to list seller grants by default.
Seller grants gain `target: {kind: "seller", id: "..."}` and retain `sellerId`.
Existing `save_connection` calls using `sellerId` continue to work; new callers
can use a seller target instead. Supplying conflicting fields fails validation.

You can continue making creative directly with a provider and
[bring that creative into Interchange](/v2/buyer/creatives/bring-your-own-creative).
This preview does not change that workflow or start generation jobs.
