How to connect Claude to your Meta and Google Ads accounts in 2026
Meta now hosts its own Ads MCP server that Claude can connect to in a few clicks, with write tools that create campaigns paused. Google's official Ads MCP server is open source, read-focused and runs in your own Google Cloud project, and Google retired developer tokens in September 2026. Step-by-step setup for claude.ai and Claude Code, what to ask, and how to keep it from spending money.
How do you connect Claude to your Meta and Google Ads accounts?
By Andrej Ruckij · November 5, 2026 · setup steps checked on Meta’s, Google’s and Anthropic’s own documentation the same day
TL;DR: Use each platform’s own MCP server. Meta hosts one at
https://mcp.facebook.com/ads: in claude.ai you add it as a custom connector and sign in with Facebook, and Claude can then report on your account and create or edit campaigns, which Meta creates paused until you approve turning them on. Google publishes an open-source Ads MCP server that you run yourself, against a Google Cloud project with Google Ads API access; Google’s docs call it read-only, and developer tokens are no longer needed since September 2026. In my estimate, Meta takes ten minutes and Google a developer’s afternoon. Either way, the connector gets every account your login can see, so check your permissions first.
What changed in 2026
Until this year, “connect Claude to my ad account” meant a third-party tool or a homemade script against the ads APIs. Now both platforms publish their own route.
- Meta runs “a Meta-hosted Model Context Protocol server that lets you manage Meta ads directly from an AI agent”, remote-hosted at
https://mcp.facebook.com/ads, and it works with any MCP-compatible agent (Meta for Developers). - Google publishes an official open-source server in the
googleadsGitHub organisation (GitHub) with setup docs on the Google Ads API site (Google for Developers). - Google’s developer tokens are gone. “Developer tokens were sunset on September 9, 2026,” and your API access level now comes from the Google Cloud project behind your OAuth credentials (Google for Developers). Most guides written before September still tell you to apply for one.
We use the Meta connector ourselves for reporting and audits on our own account, which is why I’d start there.
The routes side by side
| Route | Who runs it | What it can do | Setup |
|---|---|---|---|
| Meta Ads MCP server | Meta | Reporting, insights and benchmarks; create and edit campaigns, ad sets, ads and creatives; catalogs, audiences, A/B tests, activity logs (Meta) | Paste a URL, sign in with Facebook |
| Google Ads MCP server | Google, open source | Queries your accounts with GAQL; the docs call it read-only, while the repo also lists asset and label tools (Google, GitHub) | Google Cloud project with Ads API access, credentials, Python; hosting it on Cloud Run if you want it in claude.ai |
| Third-party hosted connectors | the vendor | Varies; for example, Adspirer’s listing in Claude’s directory covers Meta and TikTok with “full campaign read and write access” (Anthropic) | Usually one click; paid SaaS; your data passes through the vendor |
When I checked Claude’s connectors directory on November 5, I couldn’t find a first-party Meta or Google Ads listing, so both official servers are added as custom connectors (Anthropic).
How to connect Claude to Meta Ads
In claude.ai (no code)
- Open Customize > Connectors > Add > Custom > Web (Anthropic help).
- Give it a name such as “Meta Ads” and paste
https://mcp.facebook.com/ads. - Review the authentication settings Claude detects and click Add.
- Complete the Facebook sign-in and choose the accounts you allow.
- Test it: ask “Which ad accounts can I access?”. Claude should call
ads_get_ad_accountsand list them.
Plan notes: on Free you get one custom connector, and on Team and Enterprise plans owners control which connectors and tools members can use (Anthropic help). Each person still signs in with their own Facebook account.
Meta is rolling the server out gradually, and some advertisers report an “ad account is not enabled for the Ads MCP” error even after sign-in works. I found that only in practitioner write-ups, not on Meta’s pages, so if you hit it, wait and retry rather than reconfiguring.
In Claude Code
Meta documents a Claude Code route that uses your own Meta app with the “Create & manage ads with ads MCP server” use case added (Meta):
claude mcp add --transport http --client-id <META_APP_ID> meta-ads https://mcp.facebook.com/ads
Then run /mcp inside Claude Code and finish the sign-in in your browser (Claude Code docs). The minimum permissions are ads_mcp_management plus ads_read (reporting) or ads_management (changes), and Meta notes that admin-role system user tokens can’t use the server (Meta).
How to connect Claude to Google Ads
This is the harder one, and for a marketer without a developer, a hosted third-party connector is the realistic shortcut. If you want Google’s own server:
- Get API access for a Google Cloud project. Apply on the Google Ads API overview page in the Cloud Console. Test access can’t touch real accounts; Explorer access allows “up to 2,880 operations per day on production accounts”, with “automated review and approval in most cases” (Google).
- Create credentials with the
https://www.googleapis.com/auth/adwordsscope, as application default credentials or agoogle-ads.yamlfile (GitHub). - Claude Code: add the server with
claude mcp add, passing your project ID, credentials and manager account ID as environment variables and running the package from Google’s repository. The repo’s README has the exact configuration block (GitHub). - claude.ai: deploy the server to Cloud Run, create a web OAuth client with the adwords scope, register Claude’s callback URL as a redirect URI, then add
<your-cloud-run-url>/mcpas a custom connector with your client ID and secret (Google). Google warns against deploying it without authentication, because that exposes the container’s service account credentials. - Test it: ask “list my accessible accounts” (
list_accessible_customers), then “spend and conversions by campaign for the last 30 days”, which Claude turns into a GAQL query through thesearchtool.
Google’s repo adds a safety step for the write tools it has: they run as a validate-only proposal first and need a confirmed second call to commit (GitHub).
On write access more broadly: Google’s page says “This implementation is strictly read-only. It cannot modify bids, pause campaigns, or create new assets.” The repository now includes tools to create assets and manage labels, which you can switch off in its tools_config.yaml; neither source shows tools for bids, budgets or campaign status (Google, GitHub).
What to ask once it’s connected
The useful questions are the ones you’d otherwise answer with three exports and a spreadsheet. With Meta’s tool names (Meta):
- “Which ad sets had the best ROAS over the last 14 days, and what do they have in common?” (
ads_get_ad_entities) - “Why did CPM rise this week?” (
ads_insights_performance_trend,ads_insights_anomaly_signal) - “How does our CPM compare with similar advertisers?” (
ads_insights_industry_benchmark) - “What changed in the account yesterday, and who changed it?” (activity logs)
- “Show me active ads from [competitor] in the Ad Library” (
ads_library_search) - “Draft three new ads for this ad set using the best-performing hook” (
ads_create_ad, created paused)
In our own use, the reporting and change-log questions are where it pays off first: they replace manual exports, and nothing they do touches spend.
How to keep it from spending money
- Meta creates everything paused. “Write tools create entities in a paused state; your AI client asks for confirmation before activation,” and activating “starts spending budget” (Meta). The update tool can still change fields on live objects, including budgets, so read each change before you approve it.
- Start read-only. Grant
ads_readrather thanads_managementuntil you trust the workflow, and on Google leave the asset and label tools switched off. - Check what your login can see. The connector “inherits all your Facebook user’s account access”, which for an agency can include client accounts (Jon Loomer, who sells ads training). Use a login scoped to the accounts you intend.
- Set tool permissions on Team plans. Owners can set each connector tool to Always allow, Needs approval or Blocked, and that “never grants more access than the source system permits” (Anthropic help).
- Treat outside content as untrusted. Anthropic warns that servers that fetch external content can expose you to prompt injection (Claude Code docs); competitor ads pulled from the Ad Library are exactly that kind of content.
Who this is for, and who should wait
- Do it now: advertisers and small agencies on Meta who spend time on weekly reporting, audits and creative reviews.
- Do it with a developer: Google Ads, unless a hosted connector you trust already covers it.
- Wait: anyone whose ad login also controls client accounts they can’t risk, until permissions are separated.
Gaps in what I could check
Meta’s no-app setup page in its Business Help Center didn’t load for my tools, so the claude.ai steps come from Anthropic’s custom connector guide plus Meta’s developer docs. Meta’s pages don’t state a price or a beta label for the server. I couldn’t find Meta’s rollout criteria. Google’s docs and repository disagree on write tools, as described above.
Related: our comparison of ChatGPT Business and Claude as build stacks covers MCP more broadly, and wiki/tools/mcp explains the protocol.
Sources
- Meta for Developers: Ads MCP server overview
- Meta for Developers: get started
- Meta for Developers: ad creation and management tools
- Meta for Developers: reporting tools
- Google for Developers: Google Ads MCP server
- GitHub: googleads/google-ads-mcp
- Google for Developers: developer token sunset and access levels
- Anthropic: custom connectors
- Claude Code docs: MCP
- Anthropic: connectors directory
- Anthropic: Adspirer Social Ads listing
- Jon Loomer: Meta ads AI connectors and Claude