You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support EU-jurisdiction R2 buckets in Cloudflare MCP #278
The Cloudflare MCP connector currently does not expose a way to send the cf-r2-jurisdiction: eu header when accessing an R2 bucket located in the European Union.
As a result, we cannot read the bucket configuration or verify data residency and isolation for a staging environment.
This blocks our pre-production security validation, even though Cloudflare authentication is working. No permission-denied response has been observed; the required jurisdiction header cannot be supplied through the available connector action.
Proposed Solution
Please add support for EU-jurisdiction R2 operations in the Cloudflare MCP connector.
Ideally, the connector should automatically pass cf-r2-jurisdiction: eu for EU-jurisdiction buckets, or expose an optional jurisdiction parameter supporting eu.
The solution should allow read-only access to bucket metadata and configuration with the existing Workers R2 Storage Read permission, without requiring additional write permissions.
Alternatives Considered
Using the Cloudflare REST API directly with the cf-r2-jurisdiction: eu header, or using a separate Cloudflare-compatible client.
These alternatives require an additional authentication workflow outside the existing MCP connector.
Additional Context
Use case: validating an isolated European staging environment before enabling application-level testing.
Cloudflare authentication and basic resource discovery already work through MCP. The remaining limitation is the inability to query the EU-jurisdiction R2 bucket using the required header.
We hit this too. Both of our R2 buckets are in the EU jurisdiction, so through the MCP server’s execute tool the account looks like it has no R2 at all: GET /accounts/{id}/r2/buckets returns {"buckets": []}, and GET …/r2/buckets/ returns 10006: The specified bucket does not exist. Tunnels, DNS and the other reads work fine on the same connection.
We use R2 for backups under bucket locks, and reading those buckets over MCP is how we check them, so for now we fall back to the dashboard. cloudflare/mcp#279 looks like the right fix (a headers/jurisdiction option on cloudflare.request()). A review would be much appreciated.
Activity
feat(r2): support EU-jurisdiction R2 buckets
feat(r2): support EU-jurisdiction R2 buckets
niXtou commentedon Oct 15, 2026
We hit this too. Both of our R2 buckets are in the EU jurisdiction, so through the MCP server’s execute tool the account looks like it has no R2 at all: GET /accounts/{id}/r2/buckets returns {"buckets": []}, and GET …/r2/buckets/ returns 10006: The specified bucket does not exist. Tunnels, DNS and the other reads work fine on the same connection.
We use R2 for backups under bucket locks, and reading those buckets over MCP is how we check them, so for now we fall back to the dashboard. cloudflare/mcp#279 looks like the right fix (a headers/jurisdiction option on cloudflare.request()). A review would be much appreciated.