Join the waitlistSign in
Guides / By Variafy team / Updated 15 October 2026

Meta Ads MCP not working: is_ads_mcp_enabled false, no tools, sign-in errors

When Meta’s official ads MCP server isn’t working, the error is almost always one of three kinds. is_ads_mcp_enabled: false means Meta hasn’t switched that ad account on yet: it is a gradual rollout, not a ban, and no setting on your side changes it. Sign-in errors such as Dynamic registration is not available for this client mean Meta’s server doesn’t accept your AI client, so use ChatGPT or Claude, or connect with your own Meta developer app. And “connected, but no tools” or timeouts usually come from an outdated client or an expired session.

A chat window and an ad dashboard joined through a locked garden gate, with a magnifier over a checklist.

Find your error

Start with the exact text you see. Most messages come either from Meta’s server or from your AI client, and the fix depends on which side said it.

What it meansWhat to do
is_ads_mcp_enabled: false or Ads MCP is gradually being rolled outMeta has not enabled this ad account for its MCP server yetWait, or use a connector that works through the Marketing API (see below)
Dynamic registration is not available for this client.Meta’s server does not accept your AI clientUse ChatGPT or Claude, or sign in with your own Meta app ID
The provided redirect_uris are not registered for this client.Claude Code’s local callback is not on Meta’s listAdd the server with --client-id and your own Meta app
Couldn’t register with Meta’s login service.claude.ai could not register the connectorAdd an OAuth Client ID in the connector’s advanced settings, or remove and re-add the connector
connection timed out after 30000ms, OAuth session expired and could not be refreshedAn old Claude Code version or an expired sign-inUpdate Claude Code to 2.1.270+, then sign in again with /mcp
Signed in, but zero toolsThe client connected but did not load the server’s tool listUpdate the client; in Codex this is an open issue
“Ads MCP server” missing in Business Suite settingsAgent rules are not available to your business yetNothing to fix: the connector works without rules
A request to create a campaign or change a budget is deniedAn agent rule in Business Suite blocks itCheck Settings → Integrations → Ads MCP server for that ad account

is_ads_mcp_enabled: false is not a ban

When an assistant lists your ad accounts through Meta’s server, each account comes back with fields such as is_ads_mcp_enabled, is_queryable and not_queryable_reason. If the first one is false, the server will not read or change that account, and assistants often relay a message like Ads MCP is gradually being rolled out. Please check back at a later date to use Ads MCP with this Ad Account.

Meta does not document the flag itself, but it says plainly that access is staged. Its Business Help Center page opens with You may not have access to all of these tools and features yet, and its developer blog says Meta is gradually rolling out access to tools available to ad accounts through this integration method. Meta publishes no list of which accounts come first.

It is not a sign that your ad account is restricted. Meta’s help page says it is unlikely that an account would be banned simply for using the server, and that bans come from breaking advertising policies. What does not help, by every report we found: removing and re-adding the connector, granting permissions again, or switching to another assistant. The flag lives on Meta’s side.

If you need the account working now, the alternative is a connector that talks to Meta’s Marketing API directly rather than through Meta’s MCP server. Those don’t depend on this rollout; see the last section.

Sign-in errors by AI client

Meta’s server lets an AI client register itself only if Meta recognises it. Testers found that callbacks of ChatGPT and Claude register, while Cursor and local callbacks get an HTTP 400. That is why the same Meta account connects in one assistant and fails in another.

Status on 15 October 2026What works
ChatGPTListed by Meta; connectsAdd a custom MCP server with https://mcp.facebook.com/ads and sign in with Facebook
Claude and Claude DesktopListed by Meta; connectsIf you see Couldn’t register with Meta’s login service, enter an OAuth Client ID in the connector’s advanced settings or re-add the connector (one open report)
Claude CodeListed by Meta, but its local callback is refused (issue #59026, closed without a fix)Your own Meta app: --client-id (next section); update to 2.1.270+ for the timeout fix (#89528)
PerplexityListed by MetaFollow Perplexity’s connector instructions
Codex (CLI and app)Not listed; Dynamic registration is not available for this client (issue #24103, open since May)No official fix. Using your own Meta app has its own open reports
CursorNot listed; same registration error (Cursor forum)Cursor says there is no client-side workaround and has raised it with Meta

Codex also produced Authorization server issuer mismatch in August. When we checked Meta’s published server metadata on 15 October 2026, the issuer matched, so that particular error may be gone after an update.

Connect with your own Meta app

Owning a Meta app is not required for the assistants Meta lists. For the others, and for Claude Code, Meta’s developer guide describes connecting through your own developer app:

  1. Create or open an app

    At developers.facebook.com/apps, add the use case Create & manage ads with ads MCP server.

  2. Set the redirect URL

    In the Facebook Login for Business settings, add the redirect URL your AI client uses. A mismatch here is the most common reason the Facebook window refuses the sign-in.

  3. Connect the client with your app ID

    For Claude Code, Meta gives this command:

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

    For ChatGPT, choose OAuth and enter the app ID as the OAuth Client ID in the advanced settings.

  4. Approve the permissions

    At a minimum the sign-in must grant ads_mcp_management and ads_read or ads_management. More permissions, such as catalog_management or business_management, unlock more tools.

Two limits from Meta’s documentation: a system user token works only if the system user has the Employee role (Admin-role tokens can’t access the server), and an agency managing ad accounts of other businesses needs Advanced Access to ads_mcp_management, which means Meta’s App Review.

Test the server without an AI client

To tell a Meta problem from a client problem, call the server directly with a user access token from the Graph API Explorer that has the permissions above:

curl -i -X POST "https://mcp.facebook.com/ads" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  --data-raw '{"jsonrpc":"2.0","method":"tools/list","id":1}'

A list of tools means the server, the token and its permissions are fine, and the problem is in your AI client. An HTTP 401 means the token is missing, expired or lacks ads_mcp_management. If tools load here but an account still shows is_ads_mcp_enabled: false, it is the rollout.

Connected, but nothing happens

  • Zero tools after a successful sign-in. The client failed to load the tool list. In Claude Code, run /mcp to see the server’s state and update; in Codex it is an open issue.
  • Not all ad accounts are listed. The server only sees ad accounts your Facebook user has a role on. Ask the assistant to name the account you mean, and check your role in Business Settings.
  • It worked, then stopped. People report the sign-in lasting about 60 days without a refresh token. Sign in again (/mcp in Claude Code, reconnect the connector elsewhere).
  • A change is refused. Rules in Meta Business Suite (Settings → Integrations → Ads MCP server) can block campaign creation, budget changes over a limit and more, per ad account. Meta notes that if you don’t see that page, your business doesn’t have rules yet.
  • An odd error from a single tool, such as OTID is a required input and cannot be empty or malformed, is a server-side bug at Meta; retry later.

When you can’t wait for Meta

Third-party MCP connectors don’t use Meta’s MCP server: they call the Marketing API with the access you grant in a normal Facebook sign-in, so is_ads_mcp_enabled doesn’t apply to them, and they register with your AI client on their own terms. The trade-off is trust: you give that company access to your ad account, so check what it can change and whether it shows a preview first. We compared them in Meta Ads MCP servers in 2026: official vs third-party.

Variafy is one of them. ChatGPT and Claude sign in with Variafy itself, without a key; every change comes back as a preview that names the ad account and says whether spend can go up, and is applied only on a second, confirming call. It also reads your payments next to the ads, which Meta’s server does not. Variafy is in private beta: join the waitlist.

How we checked

Checked on 15 October 2026 against Meta’s Business Help Center article on ads AI connectors, Meta’s developer documentation and developer blog for the ads MCP server, the GitHub issues of Codex, Claude Code and the Claude connector directory, the Cursor forum, and Meta’s published OAuth metadata for https://mcp.facebook.com/ads. Error texts are quoted from those reports. We did not sign in to Meta’s server from Codex or Cursor ourselves. Variafy is our product.

Questions

What does is_ads_mcp_enabled false mean?

It means Meta has not yet enabled that ad account for its ads MCP server. Meta is rolling access out gradually; the flag is not a restriction of your account, and reconnecting does not change it.

Can I turn on Meta Ads MCP for my ad account myself?

No. There is no setting for it: the flag is on Meta’s side. You can wait, or use a connector that works through the Marketing API instead of Meta’s MCP server.

Why does Meta Ads MCP say “Dynamic registration is not available for this client”?

Meta’s server only lets clients it recognises register themselves. ChatGPT and Claude work; Codex and Cursor were refused as of 15 October 2026. Connecting with your own Meta developer app ID is the documented alternative.

How do I connect Meta Ads MCP to Claude Code?

Create a Meta developer app with the “Create & manage ads with ads MCP server” use case, then run: claude mcp add --transport http --client-id <META_APP_ID> meta-ads https://mcp.facebook.com/ads, and sign in with /mcp. Use Claude Code 2.1.270 or later.

Can using Meta’s ads MCP server get my account banned?

Meta says it is unlikely that an account would be banned simply for using its ads MCP server; bans come from breaking advertising policies.

Related guides