SpendSignoffSpendSignoff
Tutorial8 min read··SpendSignoff

Run Meta Ads from Claude Code: a working setup guide

Claude Code is a terminal-first AI coding agent. Most people use it to write software. A growing number use it to manage ad accounts — and for good reason. The same tool-calling architecture that lets it edit files and run tests also lets it query Meta campaigns and propose budget changes. SpendSignoff is the server that makes the second workflow possible.

Step 1 — Connect SpendSignoff in your Claude Code config

Claude Code reads MCP server definitions from ~/.claude/settings.json. Add SpendSignoff under the mcpServers key:

~/.claude/settings.json

{
  "mcpServers": {
    "spendsignoff": {
      "type": "http",
      "url": "https://mcp.spendsignoff.com/mcp"
    }
  }
}

Step 2 — Authenticate your Meta ad account

On first use, Claude Code will open the SpendSignoff OAuth flow in your browser. Sign in with your SpendSignoff account, then connect your Meta Business Manager. The server stores a KMS-encrypted refresh token — Claude Code never sees the raw credential.

Once the OAuth flow completes, come back to the terminal. The connection is live.

Token scope is read + draft only

SpendSignoff requests the Meta Marketing API scopes needed to read campaigns and queue write operations. The approval that pushes a change live happens in the SpendSignoff dashboard, not in the terminal.

Step 3 — Verify the connection

In Claude Code, type a plain-English account query to confirm the integration is working:

Claude Code prompt

List my Meta ad accounts and show the daily spend for each one today.

Four patterns that work well in Claude Code

  • Account audit: "Find every ad set with a CPM above $40 and less than 500 impressions this week." Claude Code pulls the data, ranks the results, and explains the likely causes.
  • Bulk draft creation: "Duplicate the three best-performing ad sets from last month into a new campaign with a $50 daily budget." SpendSignoff stages all three as a single batch draft for your approval.
  • Anomaly triage: "Did anything spike in spend between 2am and 6am today?" Useful for catching runaway delivery before you reach the office.
  • Copy revision: "Rewrite the primary text on the top-spend ad for a 45-year-old B2B buyer. Stage the updated creative for review." The draft shows the before/after text so you can compare before approving.

What the approval step looks like

Every change the model proposes lands in the SpendSignoff Approval Queue. You see the before state, the proposed after state, and the reasoning the model attached. Click Approve to push it live, or Reject to discard it. Nothing happens to your account until you click Approve.

You can approve from the dashboard on any device. Claude Code does the drafting work in the background; the decision stays yours.

FAQ

Can I use Claude Code for Meta Ads without a separate SpendSignoff account?
No. Claude Code itself does not have access to the Meta Marketing API. SpendSignoff is the server that holds the authenticated connection and enforces the draft/approve safety gate. You need both.
Does this work with Meta Business Manager accounts that have multiple ad accounts?
Yes. SpendSignoff supports multi-account connections under one Business Manager. You can query across accounts or target a specific one by name in your prompt.

Connect an account read-only and watch the operator work.

Reads are free on every plan. Nothing spends without your two-step approval.

Book a demo

Related reading

    Run Meta Ads from Claude Code: a working setup guide — SpendSignoff · SpendSignoff