Agent overview
SpendSignoff Performance Marketing Agent
A packaged AI agent you run inside any supported AI client to read, analyze, and draft changes across your linked Google Ads and Meta accounts. All writes are drafts. You approve spend.
What the agent is
The SpendSignoff Performance Marketing Agent is a set of MCP tools exposed by the SpendSignoff server at https://mcp.spendsignoff.com/mcp. When you connect a supported AI client — Claude Desktop, ChatGPT, Cursor, or others — those tools appear inside the client, and you manage ad accounts by typing in plain English.
The agent holds two OAuth scopes: mcp.read for reading account data and mcp.draft for proposing changes. The mcp.approve scope does not exist in the client. Spend-affecting operations land as structured Draft objects in the SpendSignoff approval queue, where you confirm them with a two-step control before anything touches the live account.
The V1 agent covers Google Ads and Meta accounts. LinkedIn and TikTok are on the roadmap. Every action the agent takes — reads and drafts alike — produces a signed entry in the KMS-backed audit log.
How the draft-before-live gate works
When you ask the agent to "shift budget from the top-of-funnel campaign to the retargeting set," it calls propose_change with a typed payload — campaign IDs, field names, before-value, after-value — and returns a diff for your review.
That diff sits in the Approval Queue in the SpendSignoff app. You open the queue, read the before-and-after, and click Approve and push live. A second confirmation dialog appears. Only after you click Confirm does the write go to the Google Ads or Meta API.
The gate applies to every spend-affecting operation: budget changes, bid adjustments, pause and resume, and anything the autonomy loop proposes. It is enforced server-side by the FastAPI policy kernel, not by the AI client. The client cannot bypass it.
What the agent can do
- Read campaigns, ad sets, ads, budgets, bids, and performance metrics across linked Google Ads and Meta accounts.
- Summarize pacing, wasted spend, top performers, and anomalies in plain English.
- Draft budget reallocations, bid adjustments, pacing changes, and pause/resume operations as reviewable diffs.
- Run the propose-only autonomy loop: one enabled rule drafts one change per 24-hour envelope and waits for approval.
- Produce cross-platform spend and ROAS breakdowns from the normalized attribution substrate.
- Surface the KMS-signed audit log entries for any change made in the current session.
What the agent cannot do
- Push a change live without human approval in the SpendSignoff app.
- Create new ad creatives or upload image assets (V1 out of scope).
- Access LinkedIn or TikTok accounts (roadmap; Google Ads and Meta are live).
- Approve its own drafts or modify the approval queue state.
- Read accounts that have not been linked via the OAuth flow in the SpendSignoff dashboard.
- Execute more than one autonomy-loop change per 24-hour window per account, even in propose-only mode.
Read and draft only — the agent cannot spend your budget
mcp.read and mcp.draft scopes only. It reads account data and produces change drafts. It cannot push a change live. Every live change requires a two-step Approve and Confirm in the SpendSignoff app and is recorded in a KMS-signed append-only audit log.Autonomy loop — propose-only in V1
The agent can run a background optimization loop: you define one rule (for example, "if a campaign CPA exceeds the target by 20%, propose reducing its daily budget by 10%"), enable it, and the loop checks the condition on each evaluation cycle.
In V1, the loop is propose-only. When the condition fires, it writes one Draft and halts for 24 hours. The draft waits in the approval queue. You approve or reject it. The loop does not chain changes or act without a human confirmation for every live write.
The 24-hour envelope is a per-account hard limit enforced server-side. No client instruction can make the loop produce a second change within the window.
Supported platforms
- Google Ads — live: campaigns, ad groups, ads, keywords, budgets, bids, and performance data.
- Meta (Facebook and Instagram Ads) — live: ad accounts, campaigns, ad sets, ads, and performance data.
- LinkedIn Ads — roadmap: not available in V1.
- TikTok Ads — roadmap: not available in V1.
Audit log and rollback
Every Draft approval is written to an append-only audit log. Each entry is KMS-signed and records the operator identity, the before and after values, the ad platform API response status, and the timestamp.
Approved changes that the ad platform accepted can be rolled back from the SpendSignoff app by re-applying the before-state as a new Draft. Rollback goes through the same approval gate as the original change.
Next
Run in Claude Code
Register the MCP server with one CLI command and connect your first ad account.