MCP HTTP OAuth fails with Meta MCP (mcp.facebook.com/ads): redirect_uris not registered
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
- Add the config above to
~/.claude.jsonunder your project'smcpServers. - Restart Claude Code.
- Run
/mcp→ selectmeta-ads→ Authenticate. - 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
- https://www.facebook.com/business/help/1456422242197840 (Meta AI ad connectors)
- OAuth metadata:
https://mcp.facebook.com/.well-known/oauth-authorization-server/ads
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗