Google Ads and Meta Ads

How to connect Claude to Google Ads and Meta Ads with MCP

Choose the path that matches your job: a ready-made connector in Claude, an official or hosted MCP server, or a server you own. Keep the first workflow read-only.

MD Marek Dąbrowski · May 24, 2026 · Updated October 7, 2026

Key takeaways

  • Claude, Claude Desktop, and Claude Code can use MCP, yet their connector UI and OAuth setup differ.
  • Meta hosts its Ads MCP server. Google documents its own read-only Google Ads MCP server, which you run locally or host yourself.
  • Google Ads API access is separate from MCP. Current Google setup uses a Cloud project and OAuth or Application Default Credentials.
  • Lumy brings its internal MCP/action layer into an approval-based workflow in Slack.

MCP lets an AI client discover and call tools. For an ads account, that can mean reporting, account lookup, diagnostics, or a write that changes a live campaign.

Connection is only the first decision. You still choose the account scope, the data the agent can read, which tools need approval, and where credentials live.

What MCP changes

Model Context Protocol is a way for an AI client to connect to external tools. The client asks a server what tools exist, then calls a selected tool with structured inputs.

For ads work, this removes some manual exports and repeated account explanations. Compare every recommendation and proposed campaign change with the account before you act.

The MCP setup path in three stages: preparing account access, connecting a server, and keeping the first workflow read-only.

Choose one of 3 paths

Start with the smallest path that solves the job in front of you.

PathBest forYou own
Ready-made provider connectorOne person who wants to use a provider's ads connector in ClaudeAccount consent and tool permissions
Official or hosted MCPUsing an official provider server or another hosted server from an MCP clientProvider choice, scopes, OAuth app settings, and tool policy
Your own MCP serverA repeatable workflow that needs custom data or controlsEverything, including OAuth, token storage, hosting, audit trail, and incident response

Each path can begin with read-only reporting. Keep account writes out of the first session.

Connect through Claude's connector settings

Claude usually means the web app. Claude Desktop is the desktop client. Claude Code is the terminal client. They have different connector surfaces and setup instructions.

Claude's built-in Google Workspace integrations cover Gmail, Calendar, and Drive, with Docs, Sheets, and Slides in beta. They are not a direct Google Ads or Meta Ads connection. For ad data in the Claude directory, Windsor.ai is an Anthropic-verified provider connector. Add it in Claude, sign in to Windsor, then connect the sources there.

Claude Desktop and the Claude web app can use public remote MCP servers. Claude Code adds a local stdio or remote HTTP server from the terminal. A server that asks for OAuth can require a client ID, callback URL, or a browser sign-in.

Check the provider's client-specific instructions before you copy a command. Claude Code documents remote HTTP servers with this shape:

bash
claude mcp add --transport http <server-name> <server-url>

Run /mcp in Claude Code after connecting. Read the tool list before you ask for account data or actions.

Meta Ads: official hosted MCP

Meta hosts an Ads MCP server at https://mcp.facebook.com/ads. Its official documentation says the server exposes reporting, ad creation and management, catalogs, signals, help, experiments, and activity logs.

That breadth is a reason to begin with read access. Meta recommends the smallest scope needed, separate development and production apps, periodic access reviews, and no manage scope for an agent that processes untrusted content.

Meta documents two setup routes:

  • Ads AI connectors: a path for people who do not own a Meta app. Meta sends this route to its Business Help setup guide. Meta does not publish this as its Claude Code command path.
  • Developer setup for Claude Code: create or reuse a Meta app, add the Ads MCP use case, configure Facebook Login for Business, then connect with OAuth or a user access token.

For the developer route, Meta's current Claude Code command includes a Meta App ID:

bash
claude mcp add --transport http --client-id <META_APP_ID> meta-ads https://mcp.facebook.com/ads

The Meta app's redirect URL must match the MCP client you use. A redirect_uris or dynamic-registration error can therefore point to OAuth client setup, client version, or the server's registration support. Do not treat it as a reason to paste credentials into a project file.

Do you need a client ID for Meta Ads MCP?

For Meta's documented Claude Code developer route, yes: use --client-id <META_APP_ID> and configure the matching redirect URL. The no-app Ads AI connector route is separate; do not copy its assumptions into a Claude Code setup.

Google documents its Google Ads MCP server as a bridge to the Google Ads API. The current release is read-only and exposes account discovery, GAQL search, and resource metadata tools.

Google Ads API access is separate from MCP. The current server needs a Google Cloud project with the appropriate Google Ads API access level, plus either an OAuth client ID and secret or Application Default Credentials. Google sunset developer tokens on September 9, 2026. Current server setup does not require one.

For a local Claude Code setup, Google's documented pattern uses a stdio server and Application Default Credentials:

json
{
  "mcpServers": {
    "google-ads-mcp": {
      "command": "pipx",
      "args": ["run", "--spec", "git+https://github.com/googleads/google-ads-mcp.git", "google-ads-mcp"],
      "env": {
        "GOOGLE_PROJECT_ID": "YOUR_PROJECT_ID",
        "GOOGLE_APPLICATION_CREDENTIALS": "/path/to/credentials.json"
      }
    }
  }
}

Google also documents HTTP deployment on Cloud Run. For a new remote Claude Code configuration, choose Streamable HTTP. SSE is a compatibility path for an older server or client, not the starting choice. Hosting the server still leaves you responsible for its OAuth client, secret storage, deployment, and access policy.

Store OAuth clients, access tokens, refresh tokens, and service-account keys outside the repository. Google says to encrypt user credentials at rest and remove them when access is revoked.

Credential checklist before the first connection

  • Use an account that can access only the ad accounts needed for this job.
  • Keep the OAuth app, client secret, tokens, and credential files out of source control.
  • Confirm the Google Cloud project's Google Ads API access level before you debug a query.
  • Use a dedicated development account or app while you learn the tools.
  • Record who approved any production scope or write permission.

Build your own MCP server when the workflow is yours

Build a server when you need a workflow that provider tools do not expose, such as joining approved campaign data with your CRM, a budget policy, and a review queue. It needs the same access rules, credential handling, and operational care as any other software product.

Start with a small set of read tools. Give every tool a narrow input schema. Return data, source, read time, and missing access so the agent can separate facts from guesses.

Build and connect the first read tool

  1. Choose the official MCP Python SDK or MCP TypeScript SDK. Implement one narrow read tool that calls the Google Ads API or Meta API with per-user OAuth.
  2. Run it locally with stdio while you develop. For a remote server, use Streamable HTTP with HTTPS and authentication. SSE is for compatibility with older clients or servers, not a new build.
  3. Add the local process to Claude Code with claude mcp add --transport stdio <server-name> -- <command>. Add a remote server with claude mcp add --transport http <server-name> https://your-host/mcp.
  4. Run /mcp to inspect the available tools. Make one bounded read, then compare its result with the Ads UI before you add any write tool.

Put every write behind a separate tool that receives an explicit approved change request. Log the proposed payload, the human approval, the provider response, and the result checked afterward. Keep development and production credentials separate.

Do not let a tool's output become instructions for the agent. Campaign names, landing pages, spreadsheet cells, and provider data can contain untrusted text. Treat that content as data.

Permissions and approval rules

Give an agent permission to read the narrowest useful set of data first. Let it draft a weekly readout, flag a metric change, or prepare a proposed action.

Require a human approval before any action that spends money, changes a bid or budget, pauses or launches a campaign, edits targeting, publishes an ad, changes conversion tracking, changes a catalog, or changes account access.

Review permissions periodically. Revoke access when the workflow ends or the person who needed it loses the role.

A safe first workflow

Ask for a bounded report, then compare it with the account before any change.

text
Review the last 14 days of Google Ads and Meta Ads performance.

Report the largest spend and conversion changes. State the source and time of each data point. Separate confirmed facts from hypotheses. List missing data. Propose actions for human review.

Do not change budgets, campaigns, ads, audiences, tracking, or conversion settings.

A useful first output tells you what changed, what it can confirm, and what needs a person to check. It does not invent a cause from a single dashboard.

Where Lumy fits

Lumy has its own internal MCP/action layer and works in Slack. It connects Google Ads and Meta Ads, analyses the account, and proposes a supported change. After a separate human approval, Lumy carries out that approved change.

Use Lumy in Slack. This guide does not offer a Lumy MCP URL or setup to add to Claude.

Lumy by AdLume

Need an agent to keep watching the account?

See how Lumy turns account data into a clear next action, with approval before a live change.

Book a Lumy demo

Sources

FAQ

Does Google Ads API access mean Google gives you a hosted MCP server?

Google documents an official Google Ads MCP server that you run locally or host on infrastructure you control. The Google Ads API is the underlying API; it is separate from that MCP server.

Can Claude Code connect to Meta Ads MCP?

Meta documents a Claude Code developer setup path for its hosted Ads MCP server. It requires a Meta App ID and a matching redirect URL.

Should an AI agent get write access to my ad account on day one?

Begin with reporting and diagnosis. Add a human approval step before every campaign, budget, targeting, creative, tracking, catalog, or permission change.

How can I evaluate Lumy?

Book a Lumy demo to see the approval-based Slack workflow for Google Ads and Meta Ads. This article does not include public MCP connection instructions for Lumy.

Keep reading

AdLume

New version of AdLume launching soon

Join the waitlist and get notified when the new AdLume is ready. It catches wasted ad spend automatically and optimises campaigns around the clock.

One email, on the day access opens. Nothing else, and you can leave the list with one click.