Skip to main content
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.
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.
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:
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:
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. 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. 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 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. This preview does not change that workflow or start generation jobs.