---
title: Meta Ads MCP server for Claude and AI agents | Plainrouter
description: "Hosted Meta Ads MCP for Claude: read-only keys, one-workspace scope, Ask-mode approvals before changes, and conversion diagnostics. Try the free sandbox."
canonical: https://plainrouter.com/solutions/meta-ads-mcp
last_updated: 2026-10-01
---

[All solutions](/solutions)

# Meta Ads MCP server for Claude and AI agents.

Connect Claude or another MCP client to Meta ad workflows through Plainrouter’s hosted server. Start with a Read key for analysis, inspect conversion tracking, and use Ask mode when you want to approve each proposed change before it runs.

[Try the free sandbox](#connect) · [Read the MCP setup](https://plainrouter.com/docs/mcp/setup)

Hosted · Streamable HTTP · Free sandbox, no account needed

## From your workflow to Meta

1. **Connect your client** — Try synthetic tools first, then connect a workspace key.
2. **Read the evidence** — Inspect account context and stored Signals diagnostics.
3. **Review a proposal** — A Write key can propose changes. Ask mode waits for your approval.
4. **Check the outcome** — Follow execution and inspect the action’s decision receipt.

Ask mode holds policy-allowed proposals for approval. Full mode runs policy-allowed changes automatically. Changes that break a rule are blocked and appear in the Inbox.

## What Plainrouter adds

### Read without changing your ads

Choose a Read key explicitly for account, Signals, inventory and creative reads. It cannot preview or propose Actions. Feedback submission and the optional ingestion diagnostic remain available; the diagnostic writes one test event with no visitor data.

### Keep each key in one workspace

A workspace key cannot switch workspaces. Choose Read or Write access and a 30-, 90- or 365-day expiry. Account selection is checked within that scope; older account-bound keys also reject a different account.

### Keep tracking evidence beside actions

get_signal_health returns stored collection, delivery, matching and reconciliation checks. get_performance compares Plainrouter’s conversion counts with Meta’s stored counts. Neither fetches a fresh Meta performance report.

## Is this a fit for your setup?

For developers and marketing teams that want a hosted Meta Ads MCP server with workspace boundaries, conversion diagnostics and human approval in Ask mode. Use a Read key for analysis; enable Write access only when the client needs Actions tools.

[Explore governed AI actions](/product/actions)

### When your existing setup is enough

If you only need Meta’s own tools, start with Meta’s official Ads MCP server at mcp.facebook.com/ads. Plainrouter is an independent, hosted option for its workspace, Signals and approval workflows. If you need to run a server yourself, see the open-source options in our comparison.

[Compare Meta Ads MCP options](/library/meta-ads-mcp-options)

<a id="connect"></a>

## Connect Claude Code to Meta Ads MCP

Start in the sandbox without an account or token. It offers four synthetic tools, stores nothing and never contacts Meta. It demonstrates account and Signals reads plus event validation, not live ad management.

### 1. Try the sandbox

```bash
claude mcp add --transport http plainrouter-test https://plainrouter.com/mcp/sandbox
```

Run this in your terminal, then use /mcp in Claude Code to check the connection. Ask for the synthetic account state or signal health.

### 2. Connect your workspace

```json
{
  "mcpServers": {
    "plainrouter": {
      "type": "http",
      "url": "https://plainrouter.com/mcp",
      "headers": {
        "Authorization": "Bearer ${PLAINROUTER_WORKSPACE_TOKEN}"
      }
    }
  }
}
```

For production, create a workspace key and explicitly select Read for analysis. Set PLAINROUTER_WORKSPACE_TOKEN in the environment that launches Claude Code, then save this as .mcp.json in your project and approve the server connection. Keep the actual key out of source control and prompts.

Production uses Streamable HTTP at https://plainrouter.com/mcp with the workspace key as a bearer token. Other Claude and MCP clients have their own connection settings; follow the MCP setup guide for your client.

## How Meta Ads MCP works

### Start with a Read key

Inspect account context and stored conversion diagnostics before enabling changes. Signals tools use the workspace’s bound Meta destination; inventory reads require an explicit internal account ID.

### Preview and approve

With a Write key, dry_run_actions previews a supported change without writing to Meta. Pause, resume, budget and creative changes arrive as proposals. In Ask mode, a person approves each policy-allowed proposal before execution.

### Inspect the result

New ad copies are created paused; a separate resume can activate them under workspace policy. Use get_action_decision_receipt to inspect the decision record and current disposition. Actions reads, including receipts, require Write access.

## Frequently asked questions

### What is a Meta Ads MCP server?

A Meta Ads MCP server, also called a Facebook Ads MCP server, exposes advertising tools to AI clients through the Model Context Protocol. Plainrouter’s hosted server connects Claude and other MCP clients to workspace-scoped account reads, stored conversion diagnostics and governed proposals for supported Meta changes.

### How do I connect Claude to Meta ads?

For Claude Code, run the sandbox command above first. For live workspace access, use the production .mcp.json example with a workspace key supplied through your environment, then confirm the server in /mcp. The sandbox needs no account; production requires your Plainrouter workspace and Meta setup.

### Can an agent analyze Meta ads without making changes?

Yes. A Read key allows account, Signals, inventory and creative reads, but cannot preview or propose Actions. It does not mean zero side effects: feedback submission and an optional ingestion diagnostic are still available. That diagnostic writes one test event with no visitor data.

### How do I restrict which ad accounts an MCP client can access?

Each key is limited to one workspace. Signals reads use its bound Meta destination. Actions and creative tools need an explicit internal account ID when several accounts are eligible; inventory reads always need one. Older account-bound keys reject other accounts. A new workspace key is not an arbitrary per-account allowlist.

### Which Meta Ads MCP lets me approve changes before they run?

Plainrouter supports this through Ask mode: policy-allowed proposals wait for a person to approve them before execution. Full mode runs policy-allowed changes automatically. A Read key cannot propose changes, and proposals that violate policy are blocked and appear in the Inbox.

### Is Plainrouter’s Meta Ads MCP hosted or self-hosted?

It is hosted at https://plainrouter.com/mcp; Plainrouter does not offer a self-hosted server. For self-hosted choices, use the open-source options in the linked comparison. For Meta’s own tools, start with its official server at mcp.facebook.com/ads.

### Can an agent diagnose conversion tracking problems?

Yes, using stored Signals data. get_signal_health covers collection, delivery, matching and reconciliation checks; get_performance compares Plainrouter conversion counts with Meta’s stored counts. These tools help investigate measurement differences, but do not fetch a fresh Meta report or prove attribution.

### Is there an audit trail?

Each action has a decision receipt available through get_action_decision_receipt, including its decision record and current disposition. Actions reads require Write access. Workspace-key issuance and revocation are logged without plaintext credentials; revoking a key does not undo earlier ad changes.

### What does it cost?

MCP is included in every Plainrouter pricing band, and MCP calls are not metered. Plainrouter is free below €300 of observed ad spend in the previous calendar month. The synthetic sandbox needs no account. Your AI client’s own charges are separate; see pricing for the current spend bands.

## Implementation guides

- [Choose and manage workspace keys](https://plainrouter.com/docs/mcp/workspace-tokens)
- [Check MCP tools and permissions](https://plainrouter.com/docs/mcp/tools)
- [Understand Signals measurement](/product/signals)

## Reference documentation

- [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro)
- [Claude Code MCP setup](https://code.claude.com/docs/en/mcp)
- [Meta’s official Ads MCP setup](https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-get-started)
- [Plainrouter pricing](/pricing)

[Compare hosted and open-source Meta Ads MCP servers](/library/meta-ads-mcp-options)

## Try the tools before connecting an ad account.

Use the free sandbox above to inspect synthetic data. When you need live workspace access, create your workspace, connect Meta and start with a Read key. Choose Ask mode before allowing proposals that need your review.

[Get started](/register) · [See pricing](/pricing)
