Cloudflare R2 MCP integration for AI agents.
Connect AI agents to Cloudflare R2 through 10 structured actions, including download object, create bucket, and delete bucket. Review authentication, inputs…
- ACTION CONTRACTS
- 10
- AUTHENTICATION
- Custom credentials + OAuth 2.0
- SOURCE STATUS
- Provider-backed
CATALOG SOURCE REVIEWED AUGUST 23, 2026 / ACTION NAMES AND SCHEMAS DERIVED FROM WORKING MACHINES PROVIDER SOURCE
CAPABILITY PROFILE
What the Cloudflare R2 integration exposes
The Cloudflare R2 Agent App exposes 10 provider-backed actions for storage and developer tools work. Its current contract lets an authorized agent download one r2 object into local transit file storage, create an r2 bucket in a cloudflare account, and delete an r2 bucket by name. These operations are called through Working Machines as typed capabilities rather than through browser navigation or copied UI steps.
A connection uses Custom credentials and OAuth 2.0. Before execution, the agent can inspect the selected action, its required fields, declared scopes, and expected output contract. Provider credentials remain inside the Working Machines runtime; the calling agent receives the capability and its structured result, not the underlying secret.
For reliable operation, start with the narrowest action that satisfies the task, resolve stable provider identifiers before changing state, and validate the returned object or status after execution. Availability still depends on the connected Cloudflare R2 account, granted provider permissions, workspace policy, region, plan, and upstream API behavior.
VERIFIED ACTION SAMPLE
Real Cloudflare R2 capabilities.
Showing 10 of 10 actions. Risk labels are conservative signals based on operation names, not substitutes for provider documentation or runtime policy.
download_objectREADDownload one R2 object into local transit file storage.
INPUTS: accountId / bucketName / objectKey / fileName / jurisdiction
create_bucketWRITECreate an R2 bucket in a Cloudflare account.
INPUTS: accountId / name / locationHint / storageClass / jurisdiction
delete_bucketHIGH IMPACTDelete an R2 bucket by name.
INPUTS: accountId / bucketName / jurisdiction
delete_bucket_cors_policyHIGH IMPACTDelete the bucket-level CORS policy for an R2 bucket.
INPUTS: accountId / bucketName / jurisdiction
get_bucketREADGet one R2 bucket by name.
INPUTS: accountId / bucketName / jurisdiction
get_bucket_cors_policyREADFetch the bucket-level CORS policy for an R2 bucket.
INPUTS: accountId / bucketName / jurisdiction
list_accountsREADList Cloudflare accounts visible to the current credential.
INPUTS: page / perPage
list_bucketsREADList the R2 buckets in a Cloudflare account.
INPUTS: accountId / cursor / direction / nameContains / order
update_bucketWRITEUpdate mutable R2 bucket properties such as default storage class or jurisdiction.
INPUTS: accountId / bucketName / storageClass / jurisdiction
update_bucket_cors_policyWRITEReplace the bucket-level CORS policy for an R2 bucket.
INPUTS: accountId / bucketName / rules / jurisdiction
INPUT CONTRACTS
Know what the action needs before it runs.
download_object
accountIdOPTIONAL- The Cloudflare account ID. Custom-credential connections reuse the connected account ID when this is omitted.
bucketNameREQUIRED- The R2 bucket name.
objectKeyREQUIRED- The complete R2 object key. Slashes are preserved as key delimiters.
fileNameOPTIONAL- An optional filename override for the local transit file.
jurisdictionOPTIONAL- The jurisdiction where objects in the bucket are guaranteed to be stored.
create_bucket
accountIdOPTIONAL- The Cloudflare account ID. Custom-credential connections reuse the connected account ID when this is omitted.
nameREQUIRED- The R2 bucket name.
locationHintOPTIONAL- The R2 bucket region hint.
storageClassOPTIONAL- The default storage class for newly uploaded objects.
jurisdictionOPTIONAL- The jurisdiction where objects in the bucket are guaranteed to be stored.
delete_bucket
accountIdOPTIONAL- The Cloudflare account ID. Custom-credential connections reuse the connected account ID when this is omitted.
bucketNameREQUIRED- The R2 bucket name.
jurisdictionOPTIONAL- The jurisdiction where objects in the bucket are guaranteed to be stored.
delete_bucket_cors_policy
accountIdOPTIONAL- The Cloudflare account ID. Custom-credential connections reuse the connected account ID when this is omitted.
bucketNameREQUIRED- The R2 bucket name.
jurisdictionOPTIONAL- The jurisdiction where objects in the bucket are guaranteed to be stored.
PROVIDER-SPECIFIC WORKFLOWS
Jobs this Agent App can support
Inspect Download Object
Download one R2 object into local transit file storage. Use this as a bounded discovery step, retain the returned identifier, and avoid expanding the read beyond the task's stated scope.
download_objectControl Create Bucket
Create an R2 bucket in a Cloudflare account. Resolve the target first, present material changes for confirmation, and make retries idempotent where the provider supports it.
create_bucketVerify with Get Bucket
Get one R2 bucket by name. Compare the returned provider state with the intended outcome and preserve stable IDs or canonical links in the run record.
get_bucketSAFETY BOUNDARY
Operate Cloudflare R2 with explicit limits
- Authorize Cloudflare R2 with Custom credentials and OAuth 2.0 and grant only the provider access required by the selected actions.
- 5 actions are change-capable by name. Confirm the target identity and material parameters before allowing a write.
- Treat `delete_bucket` and `delete_bucket_cors_policy` as high-impact operations and require an explicit approval boundary.
- The sampled contract declares provider scopes including `workers-r2.write` and `workers-r2.read`; verify the complete action contract before execution.
- After a call, inspect the structured result and execution record before reporting that the Cloudflare R2 task completed successfully.
CONNECTION MODEL
Custom credentials + OAuth 2.0
Cloudflare R2 uses Custom credentials and OAuth 2.0. Connection requirements and availability are determined by the provider and the Working Machines deployment.
Working Machines stores provider credentials behind the execution boundary. An agent can use an authorized connection identity, but catalog discovery alone does not reveal OAuth tokens, API keys, or provider secrets.
- READ SIGNALS
- 5
- WRITE SIGNALS
- 3
- HIGH IMPACT
- 2
- REVIEW SIGNALS
- 0
EVIDENCE AND AVAILABILITY
Provider reference
Action names, input fields, authentication types, and counts on this page are generated from the Working Machines provider catalog. Provider behavior, quotas, object semantics, account eligibility, and regional availability remain governed by Cloudflare R2.