Model Context Protocol · Ad creatives
An MCP server that generates ad creatives — image, video and audio narration — using the provider keys you already have: OpenAI, Seedance, Gemini, ElevenLabs (BYOK). No mysterious credits: you pay the provider directly, MCP Creatives handles orchestration, tenant isolation and secure delivery. Status: LIVE.
MCP Creatives is a Model Context Protocol server that gives Claude real access to image, video and audio ad-creative generation — not generic credits, but orchestrated calls into your own provider accounts.
Register your OpenAI, Seedance, Gemini or ElevenLabs key once with creatives_register_key — it stays under your control and revocable at any time with creatives_revoke_key. No mysterious credits: every generation bills directly to your provider account.
creatives_generate_image, creatives_generate_video and creatives_generate_audio run on asynchronous submit — a single creatives_get_generation polls any of the three, always the same flow.
TypeScript service on Vercel Functions, tenant isolation via Row-Level Security on Supabase Postgres, and private assets on Cloudflare R2 delivered through a signed URL.
10 tools grouped by function — from keys to delivery, from image to audio. Everything below is implemented and live.
openai:gpt-image-2.seedance2ai:default or gemini:default → Veo 3.1; up to 15s, with optional image-to-video.From registration to finished asset: creatives_register_key → creatives_generate_image (or _video, or _audio) → creatives_get_generation until status=ready — with creatives_refresh_url to renew delivery without spending a new generation.
A private media bucket and third-party provider keys demand real isolation — not by convention, by design.
Tenant isolation via Row-Level Security
RLS on Postgres guarantees your account never sees another user's keys or generations.
BYOK — your keys, your call
Your provider keys (OpenAI, Seedance, Gemini, ElevenLabs) stay under your control; revoke them anytime with creatives_revoke_key.
Private bucket on Cloudflare R2
Generated assets are never public by default — they live in a dedicated private bucket.
Delivery via signed URL
7-day expiry, renewable with creatives_refresh_url without needing to regenerate the media.
OAuth 2.1 + PKCE or isolated PAT
claude.ai uses OAuth 2.1 with PKCE; other MCP clients use an isolated Personal Access Token.
Always asynchronous, never blocks your session
Every generation runs submit → poll with a single tool — your session never sits waiting for the result.
Hosted server, zero setup: add the connector, log in with your purchase email and Claude is already registering keys and generating creatives for you.
Add the connector in Claude and log in with the email used for your Claude Code Architect purchase. Nothing to install.
# Connector URL https://mcp-creatives.vercel.app/mcp
For clients without native OAuth, generate a Personal Access Token on the dashboard (mcp-creatives.vercel.app) and add the server with the Authorization: Bearer <PAT> header.
# you, in the chat: "Register my OpenAI key to generate images" # → creatives_register_key
"Generate a 1080×1080 ad image
for [product], minimalist style"
# → creatives_generate_image → creatives_get_generation"Narrate this script in audio with a
voice from my ElevenLabs account"
# → creatives_list_voices → creatives_generate_audioStill have a question? Write to bruno@b2tech.io.
creatives_register_key and it stays available — and revocable at any time — for all your future generations.Authorization: Bearer header.Image, video or audio — always asynchronous, always tenant-isolated, always with your own provider keys under your control.
10 tools · BYOK · multi-tenant on Vercel