---
title: 'Self-hosted Meta Ads MCP: what you must maintain'
description: 'Compare self-hosted and hosted Meta Ads MCP by app setup, token custody, updates and write controls, using dated provider documentation.'
canonical: 'https://plainrouter.com/library/self-hosted-meta-ads-mcp'
format: Comparison
published_at: '2026-10-21'
last_updated: '2026-10-21'
---

# Can I self-host a Meta Ads MCP server, and what does it take?

Yes: open-source servers can run under your control, but you then own their runtime, Meta credentials, updates and write-access boundaries. A hosted server moves some of that work to its provider; it does not remove your responsibility for the accounts and operations you authorize.

## What changes when you own the server?

Local execution, credential ownership and owning a Meta developer app are separate choices. A locally installed server may still use a provider-assisted token flow; a server using your own Meta app makes you responsible for that app's setup and required access approvals.

| Option and source | Hosting | Authentication | Your own Meta app needed? | Write controls documented | Checked |
| --- | --- | --- | --- | --- | --- |
| [GoMarble open-source server](<https://github.com/gomarble-ai/facebook-ads-mcp-server>) | Local Python process | Your Meta token, or its optional provider-assisted token setup; README says the token is stored locally | Depends on the token path; provider-assisted setup is not the same as an independently owned app | README lists account, reporting and activity reads; a per-write approval workflow is not established there | 21 Oct 2026 |
| [byadsco open-source server](<https://github.com/byadsco/meta-ads-mcp>) | Your infrastructure; README describes Cloud Run and Firestore | Your configured Facebook Login or system-user/token setup | Its documented OAuth deployment uses your Meta app | Broad management tools; a per-write human approval queue is not established by the README | 21 Oct 2026 |
| [Meta's official server](<https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-get-started>) | Meta-hosted | Facebook Login for Business or supported user/system-user token | Not for the supported connector path; own-app integration is a separate route | Paused creation, client activation confirmation and available server rules | 21 Oct 2026 |
| [Pipeboard hosted server](<https://github.com/pipeboard-co/meta-ads-mcp>) | Provider-hosted | Provider account/OAuth or Pipeboard token | Not in the documented hosted setup | Provider documents explicit write confirmation; not tested by us | 21 Oct 2026 |
| [Plainrouter](<https://plainrouter.com/docs/mcp/setup>) | Provider-hosted | Workspace bearer key or OAuth | Not for connecting through Plainrouter's Meta connection | Read tier, Ask/Full policy and protected approvals | 21 Oct 2026 |

This is a documentation check, not a deployed test of these servers or a ranking. “Not established” means the reviewed source did not confirm that workflow, not that it cannot exist. For the wider vendor comparison, use [Meta's official Ads MCP versus alternatives](</library/meta-ads-mcp-options>).

## Do I need a developer app and App Review?

If you choose your own-app route, you own the app configuration, permissions and access requirements. Meta's [Marketing API access documentation](<https://developers.facebook.com/docs/marketing-api/access/>) distinguishes development access from the reviewed access needed for applicable production use; do not assume a token that works for your app's developers authorizes a service for other advertisers.

GoMarble's README offers provider-assisted token creation as well as a manually supplied token. That is a dependency to record, not evidence that all self-hosted setups need no app or review. Meta's own hosted MCP also documents a supported connector route without owning an app. See the [Meta Ads API access guide](</library/meta-ads-api>) for the developer-access details.

## Who stores and replaces the tokens?

With self-hosting, decide where credentials live, who can read them, how they are rotated or revoked, and what happens when authorization stops working. Meta's [token documentation](<https://developers.facebook.com/docs/facebook-login/guides/access-tokens/>) distinguishes token types; do not assume every user or system-user credential has the same lifecycle.

GoMarble documents a local token. The byadsco README documents server-side token storage and encryption for its deployment. Those are provider statements, not a security audit performed here. Keep tokens out of source control, request logs and published examples, and test your recovery procedure without advertising writes.

## Who maintains the API and write boundary?

The person operating a self-hosted server must track repository updates and changes in Meta's supported API surface. Pin the version you deploy, review its documented tools and permissions, and validate upgrades before allowing it to act on live accounts. Installing a new package does not prove an existing integration remains compatible.

For writes, identify the actual enforcement point: the Meta token's permissions, the server's tools, any policy/approval layer and the client's confirmation behavior. A repository being open source does not by itself make it read-only. The [Meta ad-account access guide](</library/meta-ad-account-access-for-tools>) explains those separate layers.

## Where Plainrouter fits

Plainrouter is a hosted option with account reads and supported governed changes; it does not provide a self-hosted server distribution. Sign up and connect the intended Meta account before authorizing an agent; Read access and Ask mode address different parts of the workflow.

## Frequently asked questions

### Is Meta's official Ads MCP self-hosted?

No. The documented endpoint is hosted by Meta. Using your own app or token to authenticate to it does not move that endpoint to your infrastructure.

### Does self-hosting mean no third party handles authentication?

Not automatically. Check the README's actual authentication path: a local server can still rely on provider-assisted token creation. An independently operated app and token flow is a different deployment choice.

### Can I keep a self-hosted Meta Ads MCP read-only?

Use a supported read-only permission and restrict exposed tools where the implementation allows it. Inspect the server's documentation and effective access rather than relying on a prompt to avoid writes; the [agent safety guide](</library/ai-agent-meta-ads-safety>) covers the wider safeguards.

## Sources

Checked 21 October 2026: the [GoMarble README](<https://github.com/gomarble-ai/facebook-ads-mcp-server>), [byadsco README](<https://github.com/byadsco/meta-ads-mcp>), [Pipeboard README](<https://github.com/pipeboard-co/meta-ads-mcp>), Meta's [MCP setup](<https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-get-started>), [creation tools](<https://developers.facebook.com/documentation/ads-commerce/ads-ai-connectors/ads-mcp-server/ads-mcp-server-tools-ad-creation-and-management>), [access requirements](<https://developers.facebook.com/docs/marketing-api/access/>), [token guide](<https://developers.facebook.com/docs/facebook-login/guides/access-tokens/>) and Plainrouter's [setup](<https://plainrouter.com/docs/mcp/setup>) and [policy controls](<https://plainrouter.com/docs/actions/policies-and-safety>).
