---
title: Hosted Plainrouter Meta Ads MCP server | Plainrouter
description: "Hosted Meta Ads MCP for Claude, ChatGPT and Cursor: read-only keys, one-workspace scope, approvals before changes, account authorization."
canonical: https://plainrouter.com/solutions/meta-ads-mcp
last_updated: 2026-10-30
---

[All solutions](/solutions)

# Plainrouter’s hosted Meta Ads MCP server.

Plainrouter’s hosted Meta Ads MCP server connects Claude, ChatGPT and Cursor to Meta ad reads, an approval queue and your own arrival and conversion counts beside Meta’s figures. Compare [Meta Ads MCP](/library/meta-ads-mcp-options) options if you are still choosing a server; you can connect Meta’s official server alongside Plainrouter, but its changes get no Plainrouter approval or receipt.

[Sign up free](/register) · [Read the MCP setup](https://plainrouter.com/docs/mcp/setup)

Hosted · Streamable HTTP · Account access with approval

## From your workflow to Meta

1. **Connect your client** — Sign up free, authorize access and connect with a workspace key or OAuth.
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 waits for your approval. In Custom, your switches decide which agent changes run on their own. Full runs agent changes that pass admission and workspace policy automatically. Changes that break a rule are blocked and appear in the Inbox.

## What Plainrouter adds

## How can I let an AI agent analyze Meta ads without letting it make changes?

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.

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

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. See [how to give an AI agent safe access to Meta ads](/library/ai-agent-meta-ads-safety).

## How can I use an AI agent to diagnose Meta conversion tracking problems?

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, [set up Meta’s official Ads MCP server](/library/meta-ads-mcp-setup) at mcp.facebook.com/ads. Plainrouter is an independent, hosted option for its workspace, Signals and approval workflows; see [what Meta’s Ads MCP doesn’t cover](/library/meta-ads-mcp-limitations). 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>

## How do I connect a Meta Ads MCP server?

Connect a remote HTTP MCP client to https://plainrouter.com/mcp with a workspace key or OAuth sign-in. For production, use OAuth sign-in or a workspace key. For key-based clients, explicitly select Read for analysis and load PLAINROUTER_WORKSPACE_TOKEN into the environment that launches your client. Keep the actual key out of configuration files and prompts.

| Fact | Value |
| --- | --- |
| MCP endpoint | [https://plainrouter.com/mcp · Streamable HTTP](https://plainrouter.com/mcp) |
| Account setup | [Sign up free and connect an ad account](/register) |
| Authentication | Workspace key as a bearer credential, or Plainrouter OAuth sign-in in a compatible client |
| Access tiers | Read: account, Signals, inventory, creative and Actions record reads with the required grant. Newly issued Read and Write keys include read-actions; older Read keys without read-actions or propose-actions need replacement or fresh authorization. Write adds Actions previews and proposals. Read still allows feedback and the optional identity-free ingestion diagnostic. |
| Approvals | Ask waits for your approval. In Custom, your switches decide which agent changes run on their own. Full runs agent changes that pass admission and workspace policy automatically. Rule violations are blocked; the kill switch stops further writes; each action has a decision receipt. |
| Clients | [Claude Code, ChatGPT and Cursor](https://plainrouter.com/docs/mcp/clients) |
| Pricing | [MCP included on every plan; calls are not metered. Free below $300 of observed ad spend in the previous calendar month. AI-client charges are separate.](/pricing) |
| Registry | [com.plainrouter/mcp · Official MCP Registry](https://registry.modelcontextprotocol.io/?q=com.plainrouter%2Fmcp) |

Facts checked on October 4, 2026.

Claude.ai and Claude Code OAuth steps checked on October 11, 2026.

### Claude.ai (web and Desktop)

1. Open **Customize**, then **Connectors**, then the **plus icon**, then **Add custom connector**.
2. Name it **Plainrouter**. Set the URL to **https://plainrouter.com/mcp**.
3. Set **Authentication** to **Sign in now** and **OAuth client** to **Register automatically**. Do not choose **Use Claude's published identity**; Plainrouter does not support it yet.
4. Click **Add**, then **Connect**, sign in, choose the workspace, and approve at a tier that matches your use.
5. Enable it in a chat with the **plus icon**, then **Connectors**.

If you added the connector before a new feature shipped, disconnect and reconnect so the grant includes it.

### [Claude Code](/agents/claude/meta)

Add Plainrouter to Claude Code, then run `/mcp` to sign in. Your browser opens to approve access over OAuth, so no key is copied anywhere:

```sh
claude mcp add --transport http plainrouter https://plainrouter.com/mcp
```

For scripted setups, keep a workspace key in the environment and use this production configuration:

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

Save this production configuration as .mcp.json in your project and approve the connection. Choose /mcp in Claude Code to check the connection.

### [ChatGPT](/agents/chatgpt/meta)

```text
Production URL: https://plainrouter.com/mcp
Authentication: OAuth

```

On a paid ChatGPT plan, enable developer mode and add the production URL with OAuth. Plainrouter's sign-in asks you to choose an active Meta ad account and Read or Write access.

### [Cursor](/docs/mcp/clients/cursor)

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

Save this production entry in .cursor/mcp.json or ~/.cursor/mcp.json. Make PLAINROUTER_WORKSPACE_TOKEN available to Cursor, then confirm a read returns the intended account.

Other clients that support remote Streamable HTTP with Authorization headers can connect to production at https://plainrouter.com/mcp using a workspace key. Follow each client’s settings format; a shared protocol does not mean identical configuration.

## 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, ChatGPT and Cursor to workspace-scoped account reads, stored conversion diagnostics and governed proposals for supported Meta changes.

### Does Meta have an official MCP?

Yes. Meta hosts its official Ads MCP server at https://mcp.facebook.com/ads for working with Meta advertising tools from an MCP client. Plainrouter is independent, with its own workspace scope and approval workflows; compare the [Meta Ads MCP options](/library/meta-ads-mcp-options).

### Is there an MCP for Facebook ads?

Yes. Meta’s official Ads MCP server and independent servers such as Plainrouter expose Facebook advertising tools through MCP. Compare [Meta Ads MCP options](/library/meta-ads-mcp-options) to choose the access model and workflow you need.

### What does “Meta MCP” mean?

Meta MCP can refer to an MCP server for working with Meta ads. Meta hosts its official Ads MCP server at mcp.facebook.com/ads; Plainrouter provides an independent hosted server with workspace-scoped access and its own policy and approval workflows. See the [Meta Ads MCP options comparison](/library/meta-ads-mcp-options).

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

For Claude.ai on the web or Desktop, follow the [connection steps above](#connect) and sign in with OAuth. For Claude Code, add Plainrouter with the OAuth command above, then run `/mcp` to sign in. Scripted setups can use the production `.mcp.json` example with a workspace key supplied through the environment. Your Plainrouter workspace requires a connected Meta ad account.

### Which AI clients can connect?

Clients that send a workspace key, such as Claude Code and Cursor, and clients that sign in with OAuth, such as ChatGPT developer mode. OAuth sign-in asks you to choose the Meta ad account and Read or Write access.

### Can I use it with ChatGPT?

Yes, on paid ChatGPT plans with developer mode. Add https://plainrouter.com/mcp with OAuth. Plainrouter's sign-in asks you to choose an active Meta ad account and Read or Write access.

### 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.

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

Plainrouter supports this through its agent modes. Ask waits for your approval. In Custom, your switches decide which agent changes run on their own. Full runs agent changes that pass admission and workspace policy 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. Your AI client’s own charges are separate; see pricing for the current spend bands.

## Implementation guides

- [Use your existing AI agent for Meta ads](/solutions/meta-ads-agent)
- [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)
- [Compare Google Ads MCP servers](/library/google-ads-mcp-options)
- [Understand Meta Marketing API access and limits](/library/meta-ads-api)

## Reference documentation

- [Model Context Protocol](https://modelcontextprotocol.io/docs/getting-started/intro)
- [Claude Code MCP setup](https://code.claude.com/docs/en/mcp)
- [Cursor MCP setup](https://cursor.com/docs/mcp)
- [ChatGPT developer mode](https://developers.openai.com/api/docs/guides/developer-mode)
- [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)

## Connect an account and preview a change.

Sign up free, authorize access and connect an ad account. Then `dry_run_actions` previews a change without writing. Choose Ask mode before allowing proposals that need your review.

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