Works with every MCP-compatible agent
Three ways in
Pick whichever fits your workflow. All three speak to the same AdMakeAI account and the same credit pool.
MCP Server
Hosted, stateless, JSON-RPC over HTTP. Drop the URL into any MCP-compatible client and your agent gets 58 tools.
https://admakeai.com/api/mcpAgent Skill
A SKILL.md that teaches your agent which tool to pick, how credits work, and what good ad-image prompts look like.
npx skills add admakeai/agent-skillsREST API
Every MCP tool is also a plain REST endpoint. Curl-friendly, scriptable, CI-friendly.
GET /api/v1/adGeneration.listConnect in two minutes
Paste a snippet into your agent, or add AdMakeAI to Claude on the web as a connector — one URL, no API key.
One command. Runs from any terminal where Claude Code is installed.
claude mcp add --transport http admakeai https://admakeai.com/api/mcp --header "x-api-key: <YOUR_API_KEY>"Existing keys cannot be copied again. Create a new key to copy install snippets with the real secret, or replace <YOUR_API_KEY> manually.
What your agent can do
58 tools across brand projects, ad generation and editing, ad copy, ad-set batching, competitor research and Meta Ads Manager. Here is what each one actually returns.
A product photo goes in, a finished ad comes back
Your agent sends a source image and a brief, then polls until the render lands. What it gets back is a hosted URL for a real ad with a headline, a badge and a call-to-action baked into the pixels, not a lifestyle photo you still have to lay out. Same nano-banana-pro models the web app runs on.
adGeneration.createadGeneration.editadGeneration.getByIdupload.uploadImageBase64

your photo
adGeneration.create({ projectId, prompt })One brief in, ten variations out
Give it a shared brief plus a hook per variation and it queues every render as a background job in one call. The generation IDs come back immediately, so your agent can keep working and collect the images as they finish instead of blocking on ten round trips. Works the same whether you sell a product, a service or software.
adSet.generateBatchadSet.getGenerationsadGeneration.listPending



Ask what your live ads are actually doing
Spend, impressions, CTR, CPC, conversions and ROAS for any connected Meta ad account, with previous-period comparison, all the way down to a single ad and its day-by-day numbers. Every analytics tool is read-only, so it costs no credits and cannot touch a live campaign.
zernioAnalytics.accountOverviewzernioAnalytics.listCampaignszernioAnalytics.getAdAnalyticszernioAnalytics.treezernioAnalytics.accountOverviewreadPush the winner into Meta as a draft
Preflight checks the creative dimensions and copy length before anything leaves your account. The upload then lands as a paused draft under the campaign and ad set you named, so you review it in Ads Manager and decide when it spends. Nothing publishes itself.
facebookUpload.runPreflightfacebookUpload.requestfacebookCampaignDraft.pushDraftCampaignfacebookUpload.runPreflight + requestwrite

Lands paused as a draft. Nothing spends until you launch it in Ads Manager.
Everything it makes stays searchable
Uploads, generations and ad sets share one library with the web app. Your agent can full-text search old prompts, pull the hosted URL of something it made last week, and reuse it in a new campaign instead of burning credits regenerating it.
adGeneration.searchAlladGeneration.listupload.getUserImagesadGeneration.searchAllread







https://images.admakeai.com/gen/8f21c4.pngcopyAnd the rest of the toolbelt
The plumbing your agent calls between the big moves. Full reference
Account
user.meuser.getCreditsadResearch.listProjects
Meta accounts
facebookConnection.listfacebookUpload.getCampaignsfacebookUpload.getAdSets
Upload state
facebookUpload.listfacebookUpload.getfacebookCampaignDraft.sourceAssets
Audience signal
zernioAnalytics.getAdCommentszernioAnalytics.listAdszernioAnalytics.timeline
Things people actually ask
A real session: what you type, which tools fire, and what comes back in the thread.
Generate 4 ad variations for the Halden kettle launch, 4:5, one studio, one lifestyle, one flat lay, one side by side comparison. Queue them as a new ad set.
adSet.generateBatch{ variations: 4, aspectRatio: "4:5" }1.2sadGeneration.listPending{ adSetId: cm7x… }0.3s



4 renders finished in 48s. 20 credits spent, 480 left. Hosted URLs returned inline.
Before I spend on these, which of my live campaigns is decaying?
zernioAnalytics.listCampaigns{ range: "last_7_days" }0.9sLookalike 1% lost 34% of its CTR this week while still taking $2,940. Worth pausing it in Ads Manager before the new variations go live.
More prompts that work
“Generate 5 minimal-lifestyle ad variations for our matcha launch, 4:5 aspect, and queue them as a new ad set.”
adSet.generateBatch5 generation IDs, then 5 hosted image URLs as each render lands.“Which ads in my main account lost the most CTR over the last 7 days, and what did each one spend?”
zernioAnalytics.listAdsA ranked table of ads with spend, CTR and period-over-period delta.“Take my latest product-in-hand generation and stage it in the Black Friday campaign on my main ad account.”
facebookUpload.requestA preflight pass, then a paused draft ad waiting in Ads Manager.Scoped, revocable keys
Each key is bound to your account and your plan. Revoke it from the dashboard any time and every client using it stops in the same second.
Nothing goes live on its own
Meta tools are marked destructive so agents confirm first, uploads land as paused drafts, and deletes are not exposed at all.
Single credit pool
Agent-driven generations spend the same credits as your dashboard, and read-only calls spend none. No surprise billing.

