R2 Bucket MCP
Allows uploading, downloading, listing, and deleting files on Cloudflare R2 buckets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@R2 Bucket MCPupload vitalo APK v2.1.0"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
r2-bucket-mcp
Servidor MCP stdio para Cursor y otros clientes MCP. Sube archivos locales a Cloudflare R2 (S3-compatible) sin ejecutar scripts shell. Pensado para APKs de proyectos (vitalo, linkbox, nestle, …) y cualquier otro archivo.
Qué hace
Expone cinco tools MCP:
Tool | Uso |
| APKs con key |
| Cualquier archivo con key opcional |
| Descargar por key (URL o guardar local) |
| Listar objetos por prefijo |
| Borrar objeto por key |
La respuesta incluye downloadUrl (URL pública CDN si R2_PUBLIC_BASE_URL está configurada, o presigned URL temporal).
Related MCP server: S3 MCP Server
Instalación
cd /Users/samuelgerardocastrolopez/Desktop/r2-bucket-mcp
npm installCredenciales R2
Usa las mismas variables que opencode_whatsapp/.env (sin copiar secretos al repo):
Abre
opencode_whatsapp/.enven tu máquina.Copia los valores de
R2_ACCESS_KEY_ID,R2_SECRET_ACCESS_KEY,R2_BUCKET,R2_ENDPOINT(oR2_ACCOUNT_ID), y opcionalmenteR2_PUBLIC_BASE_URL.Para pruebas locales, crea
.enven este repo desde.env.example(nunca lo commitees).
Variable | Requerida | Descripción |
| sí | Access key R2 |
| sí | Secret key R2 |
| sí | Bucket (default: |
| sí* | Endpoint S3-compatible |
| sí* | Alternativa a endpoint explícito |
| no | Prefijo global opcional |
| no | CDN pública; si falta, presigned URL |
| no | Default: 604800 (7 días) |
| no | Límite validación MCP (default: 500 MB) |
* Al menos uno de R2_ENDPOINT o R2_ACCOUNT_ID.
Prueba manual
Arranque stdio (proceso queda esperando; Ctrl+C para salir):
node index.js
# stderr: [r2-bucket-mcp] ready (stdio)Smoke test con credenciales en .env local (sube un .smoke-test.txt temporal):
npm run smokeRegistrar en Cursor
Settings → MCP o edita ~/.cursor/mcp.json.
Usa la ruta absoluta de node (which node). Ejemplo:
{
"mcpServers": {
"r2-bucket": {
"type": "stdio",
"command": "/Users/samuelgerardocastrolopez/.nvm/versions/node/v22.17.0/bin/node",
"args": [
"/Users/samuelgerardocastrolopez/Desktop/r2-bucket-mcp/index.js"
],
"env": {
"R2_ACCESS_KEY_ID": "PEGAR_ACCESS_KEY",
"R2_SECRET_ACCESS_KEY": "PEGAR_SECRET_KEY",
"R2_BUCKET": "apks",
"R2_ENDPOINT": "https://<account-id>.r2.cloudflarestorage.com",
"R2_PUBLIC_BASE_URL": "https://cdn.tudominio.com"
}
}
}
}Reinicia Cursor o recarga servidores MCP tras cambiar mcp.json.
Uso desde agentes
APKs: preferir
upload_apkconproject,versionyfilePathabsoluto.Otros archivos:
upload_fileconfilePathy opcionalmentekey,prefix,contentType.Listar:
list_filesconprefixopcional (ej.vitalo/).Descargar:
get_fileconkey; opcionalfilePathabsoluto para guardar en disco.Borrar:
delete_fileconkeycompleta (ej.vitalo/2.1.0/app-release.apk).
Ejemplo de key generada por upload_apk:
vitalo/2.1.0/app-release.apkRespuesta JSON (campo principal para compartir el enlace):
{
"ok": true,
"bucket": "apks",
"key": "vitalo/2.1.0/app-release.apk",
"size": 12345678,
"contentType": "application/vnd.android.package-archive",
"downloadUrl": "https://cdn.tudominio.com/vitalo/2.1.0/app-release.apk",
"publicUrl": "https://cdn.tudominio.com/vitalo/2.1.0/app-release.apk",
"presignedUrl": null
}Si no hay R2_PUBLIC_BASE_URL, downloadUrl será una presigned URL y publicUrl será null.
Integración SDK
Con un agente SDK local y settingSources: ['user'], el agente carga el mismo MCP definido en ~/.cursor/mcp.json. También puedes pasar mcpServers inline en la config del agente con las mismas credenciales en env.
Tools
upload_file
Parámetro | Requerido | Descripción |
| sí | Ruta absoluta al archivo local |
| no | Clave en el bucket (default: basename) |
| no | Prefijo override (sin |
| no | MIME explícito |
upload_apk
Parámetro | Requerido | Descripción |
| sí | Ruta absoluta al APK |
| sí | Alias ( |
| sí | Versión ( |
| no | Default: |
get_file
Parámetro | Requerido | Descripción |
| sí | Clave del objeto (ej. |
| no | Ruta absoluta local para guardar; sin ella solo devuelve URLs |
list_files
Parámetro | Requerido | Descripción |
| no | Filtro de prefijo (ej. |
| no | Máximo por página (default: 100, max: 1000) |
| no | Token de paginación de una respuesta anterior |
delete_file
Parámetro | Requerido | Descripción |
| sí | Clave del objeto (ej. |
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to manage MinIO object storage through comprehensive bucket operations, file uploads/downloads, batch processing, permissions management, and URL generation. Supports both automatic and manual connection modes with flexible authentication options.Last updated19242MIT
- AlicenseAqualityDmaintenanceEnables interaction with S3-compatible storage services like AWS S3 and Cloudflare R2, supporting bucket management, object listing, reading, uploading, and deletion operations.Last updated5317ISC
- Alicense-qualityFmaintenanceEnables seamless integration with Backblaze B2 cloud storage for managing buckets, uploading/downloading files, handling large multipart uploads, and managing application keys through natural language interactions.Last updated221MIT
- Alicense-qualityDmaintenanceEnables interaction with AWS S3 storage through bucket operations (create, delete, list), object management (upload, download, delete, list), and bucket policy configuration using AWS credentials.Last updated152MIT
Related MCP Connectors
File uploads for AI agents. Upload, list, and manage files. No signup required.
Upload, organize, search, and transform images, videos, and files with AI-powered tools.
Artifact store for AI agents. Hosted OAuth at mcp.artifacta.io/mcp; local stdio via npm/PyPI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ingsamcas/r2_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server