MCP HTTP OAuth fails with Meta MCP (mcp.facebook.com/ads): redirect_uris not registered

Resolved 💬 3 comments Opened May 11, 2026 by monjodav Closed May 15, 2026

Summary

Adding the official Meta Ads MCP server (https://mcp.facebook.com/ads) to ~/.claude.json and running /mcp → Authenticate fails consistently with:

SDK auth failed: The provided redirect_uris are not registered for this client.

Environment

  • Claude Code on macOS (Darwin 25.4.0)
  • MCP config:

``json
"meta-ads": {
"type": "http",
"url": "https://mcp.facebook.com/ads"
}
``

Root cause analysis

The Meta MCP exposes RFC 7591 Dynamic Client Registration at https://mcp.facebook.com/.well-known/register/ads. I tested the endpoint directly:

| redirect_uris sent | Meta response |
|---|---|
| https://claude.ai/api/mcp/auth_callback | 200 OK (client created) |
| https://claude.com/api/mcp/auth_callback | 200 OK (client created) |
| http://localhost:3000/callback | 400 invalid_redirect_uri |

Meta only accepts HTTPS callbacks on claude.ai / claude.com. The error message "redirect_uris are not registered for this client" suggests Claude Code's MCP SDK is registering with a localhost redirect_uri that Meta rejects (or is using a previously-cached client_id created with localhost during dev).

Expected

When using type: "http" MCP servers, the SDK should register with the cloud Claude redirect URI (https://claude.ai/api/mcp/auth_callback or equivalent), not localhost.

Repro

  1. Add the config above to ~/.claude.json under your project's mcpServers.
  2. Restart Claude Code.
  3. Run /mcp → select meta-ads → Authenticate.
  4. Observe the error.

Workaround

Use a stdio-based community MCP (e.g. pipeboard-co/meta-ads-mcp with a manual access token) until the OAuth flow is fixed.

Related Meta MCP docs

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗