OAuth Full Access grant returns error 10000 for Rulesets GET endpoints
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- typescript
- Domain
- api, authentication
Research direction
Reproduce the OAuth flow through the MCP server's execute entry point, comparing successful /user, /zones/{zone_id}, and settings calls with the failing Rulesets GET endpoints. Trace the authorization handling for those requests and verify that a fresh Full Access grant with Zone WAF Read allows all listed Rulesets calls without error 10000.
Written by the indexing model from the issue text.
Description
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}/rulesetsGET /zones/{zone_id}/rulesets/phases/http_request_firewall_custom/entrypointGET /zones/{zone_id}/rulesets/phases/http_request_firewall_managed/entrypointGET /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/mcpin GitHub Copilot desktop. - Authorize using OAuth and select Full Access, including Zone WAF Read.
- Call
GET /zones/{zone_id}throughexecute; 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/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.- No account IDs, zone IDs, tokens, or authorization URLs are included here.
- Dominant language
- TypeScript
- Stars
- 972
- Forks
- 143
- Avg merge
- 2d 5h
- Merged PRs (30d)
- 54
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cloudflare/mcp
-
[Connection guide] Claude CodePossibly taken @umeraamir69 claimed this 3 days ago. Openenhancement good first issue
Difficulty 1/5 Under an hour Newbie friendliness 72/100
cloudflare/mcp#39 · 6 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
ChatGPT Web OAuth fails: Client metadata is temporarily unavailable (503)Possibly taken @mattzcarey claimed this today. Openbug
cloudflare/mcp#329 · 1 assignee ·
Maintainers usually reply within 1 day
-
R2 JPEG GET returns lossy UTF-8 text instead of binary bytesPossibly taken @mattzcarey claimed this 2 days ago. Openbug
cloudflare/mcp#322 · 1 assignee ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 25/100
cloudflare/mcp#320 ·
Maintainers usually reply within 1 day
-
Track Codex and ChatGPT step-up: they need the challenge in the tool result, not the spec's 403Openenhancement
Difficulty 4/5 3-5 days Newbie friendliness 25/100
cloudflare/mcp#298 · 2 comments ·
Maintainers usually reply within 1 day
Similar issues
-
area:desktop bug documentation
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
anthropics/claude-code#104801 ·
Maintainers usually reply within 1 day
-
check:passed streams:add
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
spudly/design-system#110 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
Maintainers usually reply within 1 day
-
[Bug]: REST API URL starting with "http" but no scheme (e.g. httpbin.org/get) is not given an http:// prefixPossibly taken @ItsDeadlyProgrammer claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
appsmithorg/appsmith#42471 · 1 comment ·
Maintainers usually reply within 2 days