MCP server
Meta ads from your agent.
One server, one key. Your agent draws ads from your store, checks them without spending, and sends the one you pick to Meta’s review when the daily budget is typed back.














Concepts by our creative team. Not commissioned by the brands shown.
Add it
One line, for the clients that take one. The key stays in an environment variable, GREENSET_KEY, or in your editor’s prompt.
Claude Code
claude mcp add --transport http greenset --scope user https://app.greenset.ai/mcp --header "Authorization: Bearer $GREENSET_KEY"Codex
codex mcp add greenset --url https://app.greenset.ai/mcp --bearer-token-env-var GREENSET_KEYCursor
{
"mcpServers": {
"greenset": {
"url": "https://app.greenset.ai/mcp",
"headers": {
"Authorization": "Bearer ${env:GREENSET_KEY}"
}
}
}
}VS Code
{
"inputs": [
{
"type": "promptString",
"id": "greenset-key",
"description": "Greenset API key",
"password": true
}
],
"servers": {
"greenset": {
"type": "http",
"url": "https://app.greenset.ai/mcp",
"headers": {
"Authorization": "Bearer ${input:greenset-key}"
}
}
}
}What your agent gets
21 tools, one for each route of the REST API. A tool call is the same request: the same key check, scopes, rate limits, validation, audit row and spend cap. Nothing here can do what the API won’t.
| Tool | What it does | Scope | Moves money |
|---|---|---|---|
getOpenApi | This API's OpenAPI 3.1 document | none | No |
getAccount | Setup lamps, balance, caps and this key | read | No |
listStores | Connected stores | read | No |
addStore | Add a store by URL | stores | No |
drawConcepts | Draw up to six ads from a store | studio | No |
getConcept | One concept | read | No |
getConceptImage | A concept's rendered image | read | No |
listDrafts | Drafts, newest first | read | No |
createDraft | Draft an ad from a concept | drafts | No |
getDraft | One draft, with its planned the ad platform requests | read | No |
activateDraft | Start a live draft spending | activate | Yes |
stopAll | Pause every live campaign | stop | No |
listCampaigns | Campaigns with the ad platform's numbers | read | No |
listEvents | What the ad platform told Greenset, newest first | read | No |
getGuardrails | Spend cap, ROAS floor, CPA target and autonomy | autopilot | No |
tightenGuardrails | Tighten guardrails | autopilot | No |
listWebhooks | Webhook endpoints | webhooks | No |
createWebhook | Add a webhook endpoint | webhooks | No |
deleteWebhook | Delete a webhook endpoint | webhooks | No |
testWebhook | Send a test event now | webhooks | No |
listWebhookDeliveries | An endpoint's delivery log | webhooks | No |
What it won’t do
A draft never spends. Activation needs the activate scope and the daily budget repeated back as confirm_budget_usd, and passes the same checks as the console: a hard daily cap (Meta can deliver up to 2.1× a daily budget in one day), the ad balance, live writes on.
The API can lower limits. Raising one needs a person in the console.
Greenset’s server or Meta’s
Meta’s server manages the ad account you already run: reporting, catalogs, ads you build from your own images. Greenset’s starts from a store link and draws the ads. Use whichever fits. The full comparison.
Questions
Is this Meta’s official MCP server?
No. Meta runs its own at mcp.facebook.com/ads (Meta’s docs). Greenset’s server is at app.greenset.ai/mcp. How the two differ.
What does it need?
A Greenset API key, made under Developers in the console. Once, in the console: your ad account, Facebook page, pixel and ad balance. greenset whoami shows what’s left.
Can an agent spend my money on its own?
A draft never spends. Starting one needs the activate scope on the key and the daily budget repeated back, and the same hard daily cap, balance and live-writes checks as the console. Leave activate off the key and it can’t start anything.
What does it cost?
The same as Greenset: $0 to start, $99 or $299 a month, + 2% of the money that pays for your ads.
Greenset is not affiliated with Meta. Ads go to Meta’s review, and Meta decides.