Backblaze B2 MCP Server
Provides tools for interacting with Backblaze B2 Cloud Storage, including bucket management, file upload/download and deletion, file versioning, application key management, lifecycle and CORS rules, copy operations, download authorizations, and presigned URLs, plus an S3-compatible subset for interoperability.
Click on "Deploy 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., "@Backblaze B2 MCP ServerUpload the file ./report.pdf to my bucket and give me a shareable link."
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.
Backblaze B2 MCP Server
A local MCP server that exposes Backblaze B2 Cloud Storage to MCP clients (Claude Desktop, Claude Code, etc.) — via the native B2 API (b2_* tools, the full feature set) and a B2 S3-compatible tool set (s3_* tools, for interoperability).
This is an unofficial, community project. It is not affiliated with or endorsed by Backblaze.
Developed by Muhammed Ehab, for the dev community. 🤝
Requirements
Node.js ≥ 20
A Backblaze B2 account (a free tier is available) and an application key (see below)
Related MCP server: S3 MCP Server
Installation
git clone https://github.com/muhammedehab35/backblaz_b2_mcp.git
cd backblaz_b2_mcp
npm install
npm run buildGetting a Backblaze B2 application key
Each user of this server needs their own B2 application key — never share a key or commit one to source control.
Sign in to the Backblaze B2 dashboard.
Go to Account → App Keys.
Click Add a New Application Key.
Give it a name.
For safety, restrict it to a single bucket if you can (rather than granting account-wide access), and only grant the capabilities you actually need (e.g.
listBuckets,readFiles,writeFiles,deleteFilesfor typical use).
Backblaze shows the
keyIDandapplicationKeyonce, at creation time. Copy both immediately — theapplicationKeycannot be retrieved again later.
Configuration
Copy .env.example to .env and fill in your own credentials:
cp .env.example .envVariable | Required | Description |
| Yes | Your B2 application key ID |
| Yes | Your B2 application key secret |
| No (default | File size above which |
Configure in Claude Desktop / Claude Code
Add to your MCP client config (e.g. claude_desktop_config.json):
{
"mcpServers": {
"backblaze-b2": {
"command": "node",
"args": ["/absolute/path/to/backblaze-b2-mcp/dist/server.js"],
"env": {
"B2_APPLICATION_KEY_ID": "your_key_id",
"B2_APPLICATION_KEY": "your_application_key"
}
}
}
}Use an absolute path to dist/server.js. Restart your MCP client after editing its config.
Available tools
Native B2 (b2_*)
Tool | Description |
| Account id, capabilities, estimated storage usage |
| List buckets |
| Create a bucket |
| Update a bucket's type, lifecycle rules, or CORS rules |
| Permanently delete an empty bucket |
| List current file versions in a bucket |
| List every version of every file in a bucket |
| Get metadata for a file version |
| Upload a local file (auto multipart for large files) |
| Download a file to a local path |
| Permanently delete one specific file version |
| Copy a file server-side, without re-uploading it |
| Create a temporary token to download from a private bucket |
| Build a ready-to-use temporary download URL |
| List application keys |
| Create a new, optionally scoped, application key |
| Delete (revoke) an application key |
S3-compatible (s3_*) — a smaller interoperability subset:
Tool | Description |
| List buckets |
| List objects in a bucket |
| Upload a local file as an object |
| Download an object to a local path |
| Delete an object |
| Create a presigned GET or PUT URL |
Notes & caveats
Backblaze does not expose a billing/invoices API, so
b2_get_account_info's usage figures are an estimate (capped at the first 1000 files per bucket) — check the B2 web dashboard for exact costs.On a bucket with the default "keep all versions" lifecycle,
s3_delete_object(like a real S3 client'sDeleteObject) only hides the object — it does not free the underlying storage or let you delete the bucket. Useb2_delete_file_versionfor a true, permanent delete, or configure bucket lifecycle rules to expire hidden versions automatically.b2_delete_bucket,b2_delete_file_version,b2_delete_key, ands3_delete_objectare irreversible.
Development
npm run dev— run the server directly withtsxnpm test— run the unit test suite (mocked network, no live B2 account required)npm run build— compile todist/
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed MCP gateway: one endpoint for your tools, with credential custody and audit log.
MCP commerce surface for compute credits, API keys, GPU instances, and cloud storage.
Managed MCP gateway with OAuth, per-agent permissions, shared accounts and activity logs.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables 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.5 npm2MIT
- AlicenseNot gradedqualityFmaintenanceEnables interaction with AWS S3 through MCP, supporting bucket and object management, lifecycle configurations, tagging, policies, CORS settings, presigned URLs, and file uploads/downloads.3MIT
- FlicenseAqualityDmaintenanceProvides tools for interacting with MinIO and S3-compatible object storage through MCP clients like Claude. It enables comprehensive bucket and object management, including listing, creating, uploading, and generating presigned URLs.132-
- AlicenseAqualityDmaintenanceEnables MCP clients to connect to AWS S3 buckets, list, upload, and read objects in various formats, supporting public and private buckets with multiple transport modes.4MIT