Run claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp, then type /mcp and sign in with your PaidSync login. Claude Code then has 630+ tools across 14 platforms, including Google Ads, Meta Ads, TikTok Ads and LinkedIn Ads. It can pull reports, audit accounts, and change budgets, bids and campaigns. Claude Code asks before it runs each tool, most creates preview as a dry run, and destructive changes need an explicit confirm.
One command. OAuth sign-in, no key pasted. Free plan, 15 tasks a month, no card.
Claude Code talks to remote MCP servers over Streamable HTTP. PaidSync is one of them. Add it once and the same terminal that edits your code can read and change your ad accounts.
claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcpBy default that registers the server for the current project only. Add --scope user to make it available in every project on your machine. Run claude mcp list to confirm it is there, then start a session and type /mcp to sign in.
The plugin installs the same PaidSync server entry plus six ads skills. Use it instead of the command above. In a Claude Code session, run:
/plugin marketplace add https://paidsync.ai/.claude-plugin/marketplace.json
/plugin install paidsync@paidsyncThen type /mcp, pick the PaidSync server and sign in with your PaidSync login. From a shell, the same two steps are claude plugin marketplace add https://paidsync.ai/.claude-plugin/marketplace.json and claude plugin install paidsync@paidsync. The plugin needs Claude Code 2.1.224 or later, so run claude update first on an older version.
The six skills, each one also a slash command, with the full detail of each on the skills page:
/paidsync:wasted-spend-hunter. Blocks Google Ads search terms that spend and never convert./paidsync:negative-keyword-triage. Weekly search term triage into block, watch and harvest./paidsync:meta-ads-audit. Eight-check Meta audit that composes read tools, one check at a time./paidsync:creative-fatigue-scan. Finds tired Meta ads, then pauses or rebalances them./paidsync:linkedin-campaign-qa. Launch checklist for every live LinkedIn campaign./paidsync:tracking-health. Finds broken conversion tracking and reads tag consent settings.Already added PaidSync with claude mcp add? Keep it. Claude Code matches the plugin's server by its URL and connects once. Update the plugin with /plugin marketplace update paidsync and remove it with /plugin uninstall paidsync@paidsync.
Takes 10 seconds. Google or email sign-in. The free plan is 15 tasks a month at $0, no card.
Click Connect on each platform you run. Google Ads authorizes via Google OAuth. Meta Ads authorizes via Facebook OAuth. LinkedIn Ads authorizes via LinkedIn OAuth. TikTok Ads authorizes via TikTok OAuth. Merchant Center, Google Analytics 4 and Search Console use the same Google sign-in. Each one takes about a minute. PaidSync stores the tokens encrypted at rest with AES-256-GCM and never sees your platform password.
After each sign-in, PaidSync lists the ad accounts that login can reach. Tick the ones that belong in this workspace. Claude Code only ever sees the accounts you pick, so a client account you did not tick stays invisible.
In your terminal, run:
claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcpStart a session, type /mcp, pick paidsync, and sign in with your PaidSync login in the browser window that opens. Claude Code stores the OAuth token for you. No key is pasted anywhere.
Setting this up for a team? Commit a .mcp.json at the repo root so every engineer gets the same connector:
{
"mcpServers": {
"paidsync": { "type": "http", "url": "https://mcp.paidsync.ai/mcp" }
}
}Prefer an API key, for example for headless runs? Send it in a header, never in the URL, where it would end up in logs:
claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp --header "Authorization: Bearer $PAIDSYNC_API_KEY"In a committed .mcp.json, add "headers": { "Authorization": "Bearer ${PAIDSYNC_API_KEY}" } so the key stays in each engineer's environment and never enters git. Applying a change to Google Ads still requires the OAuth sign-in. On other platforms a key can apply changes too, so treat it like a password and prefer OAuth.
In a Claude Code session ask: "List my ad accounts"
Claude Code returns the account names and IDs across every platform you connected. Then try a live query: "Show me last 7 days spend by platform"
Each guide below covers the same one-command setup, then the prompts, tool names, read and write split, and limits for one platform.
Claude Code reads a CLAUDE.md at the root of the project at the start of every session. For an ads workspace it is the place to pin the accounts, the currency, the naming rules, and the lines Claude Code must not cross on its own. A starting point:
# Ads workspace
## Accounts
- Google Ads: Acme (123-456-7890), EUR
- Meta Ads: Acme Retail, EUR
- LinkedIn Ads: Acme B2B, USD
- TikTok Ads: Acme Shop, EUR
## How to work
- Call paidsync_context first in every session, then use the account named above.
- Default date range is last_30_days unless I name one.
- Report spend in the account currency. Never convert.
- Before any budget, bid or status change, run the tool with dry_run: true and show me the preview.
- Never pass confirm_destructive unless I say "confirm delete" in the same message.
- Weekly audit: run the official account-audit workflow, then find-waste, and write the summary to reports/YYYY-MM-DD.md.
## Naming
- Campaigns: {market}_{objective}_{product}_{yyyymm}
- Negative keyword lists: neg_{theme}Keep it short. Claude Code follows what is there, and a long file gets skimmed the way a long brief gets skimmed.
The -p flag runs Claude Code without the interactive session. Sign in once through /mcp and the stored OAuth token carries over. A morning audit that lands in a file looks like this:
claude -p "Run the account-audit workflow on the Acme Google Ads account, \
then list the three highest-impact fixes with the numbers behind each." \
--allowedTools "mcp__paidsync" \
--output-format json > reports/audit-$(date +%F).jsonReads run straight through, and so do writes. --allowedTools "mcp__paidsync" allows every PaidSync tool, writes included, with no prompt, and PaidSync writes no approval card over MCP. For a scheduled job, allow only the read tools it needs, each by name as mcp__paidsync__tool_name. Put the same line in a scheduled task and you have a daily audit across Google Ads, Meta Ads, TikTok Ads and LinkedIn Ads with no dashboard open. To call the same tools from an agent you write yourself, see how to call PaidSync from your own agent.
Two layers sit between a prompt and a live change, and only one of them asks a person.
--allowedTools or in your settings. That gate decides whether the call leaves your terminal at all. Over MCP it is the only approval step.dry_run returns a preview of most creates instead of applying anything. Delete, remove, pause, disable and revert tools, update tools with budget in their name, and the raw Google mutate call need confirm_destructive, and a pre-write rule check blocks unsafe arguments. Applied changes are logged, on a best-effort basis, with a 7-day before-and-after outcome. Approval cards, and Undo on an applied card whose change has a safe inverse, apply only in the PaidSync workspace.Skipping Claude Code’s prompt skips the only approval step on this path. A script that runs with every PaidSync tool allowed can change a budget with no person in the loop, as long as the call carries confirm_destructive. Anything scheduled should allow read tools only.
The same server entry covers all 14 platforms. Counts below come from the current PaidSync tool registry. Build means Claude Code can create campaigns. Manage means pause, enable, budget and settings on existing campaigns. Configure means it writes tracking or feed configuration. Watch means read only.
152 tools, build tier. Campaigns, ad groups, keywords, negatives, bidding, audiences, RSAs, reports. See the Google Ads MCP pillar and the Google Ads to Claude setup.
83 tools, build tier. Campaigns, ad sets, ads, audiences, creative fatigue, reports. See the Meta Ads MCP pillar and the Meta Ads to Claude setup.
13 tools, manage tier. Pause, enable, budget and settings on existing campaigns, plus reports. See the TikTok Ads MCP pillar and the TikTok Ads to Claude setup.
34 tools, build tier. Campaign groups, campaigns, creatives, reports. See the LinkedIn Ads MCP pillar and the LinkedIn Ads to Claude setup.
16 tools, configure tier. Product and feed operations, disapproval checks, never campaigns. See the Merchant Center MCP pillar and the Merchant Center to Claude setup.
26 tools, configure tier. Reports plus writes to tracking configuration such as events and conversions. See the GA4 MCP pillar and the GA4 to Claude setup.
6 tools, watch tier. Read only. Search analytics, query and page performance, index coverage, useful for paid plus organic reports in one prompt. See the Search Console to Claude setup.
Microsoft Ads, Snapchat Ads, Reddit Ads, Pinterest Ads, X Ads, ChatGPT Ads and Google Tag Manager ride on the same connector. The full list is on the MCP server page.
Google ships its own MCP server for Google Ads. It is a good fit if you only need to query one platform and are happy to run the server yourself. The two are built for different jobs.
| Google Ads official MCP server | PaidSync | |
|---|---|---|
| Access | Strictly read-only | Read and write, dry run on most creates, confirm on destructive changes |
| Tools | 3 | 630+ |
| Platforms | Google Ads only | 14, including Meta Ads, TikTok Ads and LinkedIn Ads |
| Hosting | Self-hosted, you run it | Hosted at https://mcp.paidsync.ai/mcp |
| Sign-in from Claude Code | Your own Google Ads API credentials | OAuth 2.0 through /mcp with your PaidSync login |
| Saved workflows | None | Five official workflows plus your own |
| Price | Free, plus your hosting | Free plan, 15 tasks a month, then from $99 |
Sources, checked 2026-09-01: developers.google.com/google-ads/api/docs/developer-toolkit/mcp-server and github.com/googleads/google-ads-mcp. Meta runs an open beta of its own read and write server at mcp.facebook.com/ads since April 29 2026, gated per ad account. TikTok has an official Ads MCP since May 13 2026. LinkedIn has no official server as of September 2026.
Same endpoint and the same sign-in on every one of them.
Sign up at paidsync.ai, connect Google Ads via Google OAuth in the dashboard, then run claude mcp add --transport http paidsync https://mcp.paidsync.ai/mcp in your terminal. Type /mcp inside a session, pick paidsync, and sign in with your PaidSync login. The same connector covers Meta Ads, TikTok Ads, LinkedIn Ads and ten more platforms.
No. The OAuth sign-in through /mcp is the primary path. An API key also works if you send it in a header: add --header "Authorization: Bearer $PAIDSYNC_API_KEY" to the claude mcp add command. On Google Ads a key allows reads and dry runs only, so applying a Google Ads change needs the OAuth sign-in. On the other platforms a key can apply changes too, so treat it like a password. Never put the key in the URL, where it lands in shell history and logs, and prefer OAuth.
Both. Claude Code can pause campaigns, change budgets and bids, add negative keywords, and create campaigns on Google Ads, Meta Ads and LinkedIn Ads. Over MCP the human check is Claude Code’s own prompt, which asks before it runs a tool unless you allowed it. On the PaidSync side, dry_run previews most creates, and destructive tools such as pause and delete tools, and update tools with budget in their name, need confirm_destructive. Search Console is read only.
Yes. Once you have signed in through /mcp, claude -p reuses the stored OAuth token. Pass the PaidSync tools with --allowedTools and write the output to a file. Reads run straight through, and so do writes. No one is there to answer the Claude Code prompt, and PaidSync writes no approval card over MCP, so any write tool you allowed can run. For an unattended job, allow only the read tools it needs, each by name as mcp__paidsync__tool_name.
Google's official server is strictly read-only, ships 3 tools, covers Google Ads only, and you host it yourself. PaidSync is hosted at https://mcp.paidsync.ai/mcp, covers 14 platforms with 630+ tools, and can apply changes, with a dry run before most creates and an explicit confirm on destructive ones. Details at developers.google.com/google-ads/api/docs/developer-toolkit/mcp-server.
Yes. Commit a .mcp.json at the repo root with a paidsync entry of type http and url https://mcp.paidsync.ai/mcp. Every engineer who opens the project gets the connector and signs in with their own PaidSync login. Add --scope user to the claude mcp add command if you want it in every project on your machine instead.
Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, Microsoft Ads, Snapchat Ads, Reddit Ads, Pinterest Ads, X Ads, ChatGPT Ads, Google Tag Manager, Google Analytics 4, Google Search Console and Google Merchant Center. Fourteen platforms, one endpoint, one sign-in.
Yes. The free plan is $0 for 15 tasks a month with no card. Pro starts at $99 a month and Team at $249 a month. Claude Code itself needs an Anthropic plan that includes it.
630+ tools. 14 platforms. One command in Claude Code.