Filed by GPT-5.6 Sol on behalf of Reuben.
MCP Client
Other: GitHub Copilot desktop app 1.0.79-9
Authentication Type
OAuth
OAuth Scopes
Full Access selected during authorization; Zone WAF Read was visibly enabled.
MCP Server Configuration
{
"mcpServers": {
"cloudflare-api": {
"type": "http",
"url": "https://mcp.cloudflare.com/mcp"
}
}
}
Failing Endpoint / Tool
execute calling Rulesets endpoints, including:
GET /zones/{zone_id}/rulesets
GET /zones/{zone_id}/rulesets/phases/http_request_firewall_custom/entrypoint
GET /zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypoint
GET /accounts/{account_id}/rulesets
Bug Description
A freshly authorized Full Access OAuth grant can successfully read identity, zone details, analytics, and zone settings, but all tested modern Rulesets GET endpoints fail with Cloudflare API error 10000: Authentication error. Zone details report both #waf:read and #waf:edit, and the user is a Super Administrator.
This resembles #178, but affects read requests after the reported fix.
Steps to Reproduce
- Configure
https://mcp.cloudflare.com/mcp in GitHub Copilot desktop.
- Authorize using OAuth and select Full Access, including Zone WAF Read.
- Call
GET /zones/{zone_id} through execute; it succeeds and reports WAF read/edit permissions.
- Call
GET /zones/{zone_id}/settings/security_level; it succeeds.
- Call
GET /zones/{zone_id}/rulesets; it fails with error 10000.
- Call custom/managed Rulesets phase entrypoints or account Rulesets; they fail identically.
- Revoke the upstream authorization under Cloudflare Connected Applications, remove the MCP connection, reconnect, and authorize Full Access again. The failures persist.
Expected Behavior
Rulesets GET requests should succeed with a fresh OAuth grant containing Zone WAF Read (and Full Access).
Actual Behavior
Every tested Rulesets GET returns:
MCP server 'cloudflare': Error: Cloudflare API error: 10000: Authentication error
Additional Context
- The same OAuth connection successfully calls
/user, /zones/{zone_id}, GraphQL Analytics, and zone settings endpoints.
- Legacy WAF endpoint
/zones/{zone_id}/firewall/waf/overrides reaches the API and returns error 1040 stating legacy WAF is deprecated and Managed Rulesets should be used.
/user/tokens/verify returns Invalid API Token, as expected for an OAuth bearer rather than an API token.
- No account IDs, zone IDs, tokens, or authorization URLs are included here.
MCP Client
Other: GitHub Copilot desktop app 1.0.79-9
Authentication Type
OAuth
OAuth Scopes
Full Access selected during authorization; Zone WAF Read was visibly enabled.
MCP Server Configuration
{ "mcpServers": { "cloudflare-api": { "type": "http", "url": "https://mcp.cloudflare.com/mcp" } } }Failing Endpoint / Tool
executecalling Rulesets endpoints, including:GET /zones/{zone_id}/rulesetsGET /zones/{zone_id}/rulesets/phases/http_request_firewall_custom/entrypointGET /zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypointGET /accounts/{account_id}/rulesetsBug Description
A freshly authorized Full Access OAuth grant can successfully read identity, zone details, analytics, and zone settings, but all tested modern Rulesets GET endpoints fail with Cloudflare API error
10000: Authentication error. Zone details report both#waf:readand#waf:edit, and the user is a Super Administrator.This resembles #178, but affects read requests after the reported fix.
Steps to Reproduce
https://mcp.cloudflare.com/mcpin GitHub Copilot desktop.GET /zones/{zone_id}throughexecute; it succeeds and reports WAF read/edit permissions.GET /zones/{zone_id}/settings/security_level; it succeeds.GET /zones/{zone_id}/rulesets; it fails with error 10000.Expected Behavior
Rulesets GET requests should succeed with a fresh OAuth grant containing Zone WAF Read (and Full Access).
Actual Behavior
Every tested Rulesets GET returns:
Additional Context
/user,/zones/{zone_id}, GraphQL Analytics, and zone settings endpoints./zones/{zone_id}/firewall/waf/overridesreaches the API and returns error 1040 stating legacy WAF is deprecated and Managed Rulesets should be used./user/tokens/verifyreturns Invalid API Token, as expected for an OAuth bearer rather than an API token.