SpendSignoffSpendSignoff
>_

The always-on operator for your ad accounts.

SpendSignoff plugs an operator into the AI client you already use. It connects over MCP, reads your ad accounts read-only, and drafts the changes worth making. You approve them in two steps. It never spends on its own.

Your AI can read and draft — it can never spend without your approval.

The flow, end to end

Three stages take you from a cold AI client to a live, audited change. You are read-only until you decide otherwise.

  1. Stage 1

    Connect your AI client

    OAuth 2.1

    Add the SpendSignoff MCP server to Claude, ChatGPT, or Cursor. It speaks Streamable HTTP and authenticates over OAuth 2.1 — no API keys pasted into a config file.

    One URL
    https://mcp.spendsignoff.com/mcp — the same endpoint for every client.
    Two scopes only
    mcp.read and mcp.draft. There is no mcp.approve scope to issue.
    No spend path
    The connection cannot move money — that authority never reaches the model.
  2. Stage 2

    Link an ad account — read-only

    Google Ads + Meta live

    OAuth into Google Ads or Meta. The first authorization grants read access only: the operator reads spend, structure, and performance so it can find money. Nothing in the account changes.

    Live today
    Google Ads and Meta. LinkedIn and TikTok are coming soon.
    Reads are free
    Reading is ungated on every plan, including Free — see what the operator would do first.
    Write stays dormant
    Write access is never granted on link; it is gated behind a specific approved draft.
  3. Stage 3

    Draft → two-step approve → audit

    Two-step + audit

    The operator stages every spend-affecting change as a draft with a before → after diff. Going live is a deliberate two-step control — Approve & push live, then Confirm — and only a signed-in human can run it.

    Arm, then confirm
    The first click arms the change; the second commits it. No one-tap toggle moves money.
    KMS-signed ledger
    Every read, draft, approval, push, and rollback is appended to a tamper-evident audit log.
    One-click rollback
    The prior state is captured in the diff, so an approved change reverts in a single click.

What the operator does between your prompts

You do not have to be in the chat for it to work. The autonomy loop runs on its own — and stops at the approval line every time.

It drafts, it does not spend

Between your prompts the operator keeps watching every linked account. When it spots a stalled budget, a pacing miss, or a bid that is leaving conversions on the table, it writes a draft and waits. The draft sits inert in your approval queue until you push it live.

A hard 24-hour spend envelope

Even the drafts the operator can produce are bounded. Each account carries a 24-hour spend envelope — a hard daily ceiling on the total change the operator may propose. It is a server-enforced limit, not a guideline, and it cannot draft past it.

A worked example

One prompt in. One reviewable draft out. Zero spend until you approve.

You type

> Find budget I'm wasting on Google Ads and fix the pacing.
The operator drafts a change and parks it in your approval queue:

The operator drafts

draft #4172  ·  google-ads  ·  status: AWAITING APPROVAL

  campaign        Brand — Search
  change          daily_budget  $120.00  →  $96.00   (−20%)
  reason          7-day pacing at 41% of cap; spend not
                  converting above target CPA

  campaign        Prospecting — Performance Max
  change          daily_budget  $80.00   →  $104.00  (+30%)
  reason          ROAS 3.4x over 14 days, budget-capped 6 of 7 days

  net daily spend   unchanged ($200.00 → $200.00)
  envelope used     12% of today's 24h limit

  → run "Approve & push live" then "Confirm" to apply
  → nothing changes in your account until you do

The draft is a proposal, not a pending action. It touches the live account only after you run the two-step Approve & push live → Confirm control, and every step lands in the audit log.

Read-only until approvedNet spend unchangedInside the 24h envelope

Connect a read-only account and watch it draft.

Free reads on every plan. Google Ads and Meta are live today. You see exactly what the operator would change before a cent moves.

    How it works — SpendSignoff · SpendSignoff