关于 Backblaze B2 MCP server
Backblaze B2 MCP 服务用于操作 Backblaze B2 云存储,提供 40 个工具,涵盖原生 B2 SDK、S3 兼容数据操作及分析功能。适合希望让 MCP 兼容 AI 客户端管理存储桶与对象的用户,目前在 Backblaze-Labs 中孵化。
主要功能
- 0140 个 B2 存储工具
- 02基于 S3 的对象上传、下载与列表
- 03存储桶、应用密钥与 Object Lock 管理
- 04破坏性操作受控,密钥不暴露给模型
适用场景
- 01列出密钥可访问的存储桶
- 02上传文件并生成临时下载链接
- 03分析存储增长与大文件
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 B2 工具与 b2://server-config、b2://capabilities、b2://bucket/{bucketName} 等只读资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @backblaze-labs/b2-mcpB2_APPLICATION_KEY_ID密钥Backblaze B2 application key ID for native B2 and S3-compatible tools.B2_APPLICATION_KEY密钥Backblaze B2 application key secret.B2_REGIONOptional fallback S3-compatible region used before authorization.B2_MASTER_KEY_ID密钥Optional master key ID for Partner/Groups API tools.B2_MASTER_KEY密钥Optional master key secret for Partner/Groups API tools.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
40收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
Backblaze B2 MCP 服务
一个适用于 Backblaze B2 Cloud Storage 的 Model Context Protocol 服务。它让任何兼容 MCP 的 AI 客户端(Claude 等)都能通过一组精简、安全的工具操作 B2,目前正由 Backblaze-Labs 孵化。
这是 Backblaze 官方的 B2 MCP 服务 —
backblaze-labs/b2-mcp,在 npm 上以@backblaze-labs/b2-mcp发布,并以io.github.backblaze-labs/b2-mcp列入官方 MCP Registry。Backblaze 不维护社区分支和第三方封装。
40 个工具,按底层类别分配:
- 原生 B2 SDK(
@backblaze-labs/b2-sdk)(17 个) — S3 API 中没有对应功能的 B2 控制平面操作:存储桶、应用程序密钥、Object Lock、事件通知以及 Partner/Groups 操作。 - AWS S3 SDK(
@aws-sdk/client-s3)(19 个) — 兼容 S3 的数据平面:对象上传/下载/复制/列举/删除、分段上传、存储桶可达性、生命周期以及预签名 URL 路径。 - 均不使用 SDK(自定义 MCP 代码)(4 个) — 基于 B2 报告的仓库自有分析和有界实时列表:存储增长、流量流出量领先者、最大文件和未完成的上传。
破坏性操作受到门控;在默认、文件和关闭模式下,持久化的 B2 密钥不会进入模型的上下文;注册会感知能力,因此密钥只会看到自己能够使用的工具。该服务还会公开只读 MCP 资源:
b2://server-config(非机密信息,即使在无凭据发现期间也会注册),以及受能力限制的b2://capabilities和b2://bucket/{bucketName}。
目录
快速开始
**前提条件:**受支持的 Node.js 运行时和 Backblaze B2 应用程序密钥。只需一个非主密钥即可。软件包引擎版本范围为 ^22.22.2 || ^24 || ^26;CI 在 Node.js 22.23.1、24 和 26 上运行。一个非主应用程序密钥即可满足常规存储操作(B2 原生、S3 和密钥管理)的需求;Partner/Groups 工具还需要 B2_MASTER_KEY_ID / B2_MASTER_KEY。
选项 A — npx(Claude Desktop 配置)
编辑 claude_desktop_config.json(macOS:~/Library/Application Support/Claude/,Windows:%APPDATA%\Claude\,Linux:~/.config/Claude/)并添加:
{
"mcpServers": {
"backblaze-b2": {
"command": "npx",
"args": ["-y", "@backblaze-labs/b2-mcp"],
"env": {
"B2_APPLICATION_KEY_ID": "your-application-key-id",
"B2_APPLICATION_KEY": "your-application-key-secret"
}
}
}
}
重启 Claude Desktop,即可看到 B2 工具。如果授权前需要显式指定备用区域,请将 B2_REGION 添加到同一 env 块中(否则,S3/报告工具会从已授权的 B2 账户响应中推导区域):
{
"B2_APPLICATION_KEY_ID": "your-application-key-id",
"B2_APPLICATION_KEY": "your-application-key-secret",
"B2_REGION": "us-east-005"
}
规范的软件包名称为 @backblaze-labs/b2-mcp,规范的二进制文件为 b2-mcp(b2-mcp-server 是过渡别名);npx -y @backblaze-labs/b2-mcp 可直接运行该服务。完整变量列表请参阅配置,有关源代码检出后的设置以及适用于 Cursor、VS Code、Cline、Windsurf、Zed、Continue、Goose、Claude.ai 和托管式(Streamable HTTP)环境的可直接复制粘贴的配置,请参阅 docs/product-specs/clients.md。
选项 B — Claude Desktop 扩展(MCPB)
等到某个版本发布
b2-mcp.mcpb资源后即可使用(从 0.2.1 起);更早的版本不包含扩展包,因此请在发布页面出现该资源之前使用选项 A。
不想编辑 JSON?请从最新版本下载 b2-mcp.mcpb,然后在 Claude Desktop 中打开 Settings → Extensions → Advanced settings → Extension Developer → Install Extension… 并选择下载的文件。Claude Desktop 会提示你输入应用程序密钥 ID 和应用程序密钥(区域和主密钥为可选项),无需手动编辑配置文件。该扩展包会启动固定版本的 npx -y @backblaze-labs/b2-mcp@<version>(npm 会在首次运行时解析该服务),因此始终运行确切的已发布版本。单击即可使用的 Claude Connectors Directory 列表正在筹备中。
然后只需询问:
“列出此密钥可以访问的存储桶。” · “将
./data.csv上传到reports/may-2026.csv。” · “给我一个有效期为 1 小时的下载链接,用于下载backups/latest.tar.gz。” · “列出logs/2026/下的文件。”
**为什么你的客户端显示的工具少于 40 个:**注册会感知能力。使用非主密钥且未配置主密钥时,需要主密钥的三个 Partner/Groups 工具不会公开,因此
tools/list会报告 37 个工具;对于具备 Partner 权限的账户,添加B2_MASTER_KEY_ID/B2_MASTER_KEY即可获得全部 40 个工具。只读密钥会进一步缩减可用工具范围。无凭据扫描器会看到完整的已公布工具集,但在提供有效 B2 凭据之前,每次tools/call都会返回missing_credentials。
Docker
已发布的镜像默认使用 HTTP 传输,并且仅从环境变量读取配置(没有可变的 latest 标签——请固定发布版本):
B2_MCP_VERSION=VERSION # replace with the release version you want
B2_MCP_IMAGE="ghcr.io/backblaze-labs/b2-mcp:${B2_MCP_VERSION}"
docker run --rm --name b2-mcp \
--stop-timeout 20 \
-p 127.0.0.1:3000:3000 \
-e B2_HTTP_CREDENTIAL_MODE=server \
-e B2_APPLICATION_KEY_ID=your-application-key-id \
-e B2_APPLICATION_KEY=your-application-key-secret \
-e B2_ALLOWED_HOSTS=localhost,127.0.0.1 \
-e B2_DESTRUCTIVE_POLICY=block \
-e B2_REGISTER_ALL_TOOLS=false \
-e B2_SECRET_SINK=off \
-e B2_ALLOW_INLINE_SECRETS=false \
-e B2_ALLOW_LOCAL_FILES=false \
"$B2_MCP_IMAGE"
对于容器内使用 stdio 的客户端,请显式传递传输方式并保持 stdin 打开:
B2_MCP_VERSION=VERSION # replace with the release version you want
B2_MCP_IMAGE="ghcr.io/backblaze-labs/b2-mcp:${B2_MCP_VERSION}"
docker run --rm -i \
--no-healthcheck \
-e B2_APPLICATION_KEY_ID=your-application-key-id \
-e B2_APPLICATION_KEY=your-application-key-secret \
"$B2_MCP_IMAGE" stdio
要部署到托管式 HTTP 环境? 请参阅部署矩阵和安全与自托管中链接的提供商指南(Docker、Vercel、Cloudflare、AWS、GCP、Azure、Render、Railway、Fly.io),以及 docs/references/deployment/docker.md 中经过安全加固的 HTTP 示例。
B2 Skills pack
此仓库在 skills/ 下打包了一个客户端侧的 Backblaze B2 skills pack(清单:skills/pack.json)——其中包含适用于常见工作流(备份/恢复、最小权限密钥、Object Lock、生命周期和成本管理、迁移、事件响应)的 Markdown 操作指南。MCP 服务是操作层;这些指南则是专业知识层。它们不会添加端点或权限——只会对现有工具进行编排,并强化服务端执行的相同字节路径和破坏性操作防护措施。
对于支持 Markdown 技能的客户端,此功能为可选,但建议使用。将每个 skills/b2-*/ 目录放在 ~/.claude/skills/ 下(Claude Code),或通过 Settings → Capabilities → Skills 上传每项技能对应的 ZIP 文件(Claude.ai / Claude Desktop)。在本地验证该技能包:
pnpm run validate:skills
配置
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
B2_APPLICATION_KEY_ID | stdio / HTTP server | — | 应用密钥 ID(非主密钥)——原生 B2 和 S3 兼容工具的主要凭据 |
B2_APPLICATION_KEY | stdio / HTTP server | — | 应用密钥密文 |
B2_MASTER_KEY_ID / B2_MASTER_KEY | — | 回退为应用密钥 | 由 SDK 支持的 Partner/Groups 工具所用的主凭据;执行这些操作时,必须具备 Partner API 权限 |
B2_REGION | — | us-west-004 | S3 兼容端点区域的回退值/默认值;已授权的 B2 响应会为 S3/报告工具覆盖此值 |
B2_MCP_UA_SUFFIX | — | — | 可选的运维方令牌,会追加在出站 User-Agent 内置的 b2-mcp/<version> 产品令牌之后(用于标记部署) |
B2_MCP_OUTPUT_FORMAT | — | json | 面向大模型的结构化成功结果 TextContent.text 格式:紧凑型 json 或选择启用的 toon |
B2_ENABLE_MCP_PROMPTS | — | false | 默认关闭 MCP 工作流提示词(prompts/list、prompts/get);待所有副本都运行支持提示词的代码后,设为 true。该选项会同时控制注册和通告,因此请在整个集群中原子地切换(或使用粘性路由) |
B2_MCP_TRANSPORT | — | stdio | 未传入 stdio / http 参数或 --transport 标志时的 CLI 默认传输方式;Docker 镜像会将其设为 http |
B2_HTTP_HOST | 仅限 HTTP | Node 监听默认值 | 独立 Node HTTP 监听主机;在同主机反向代理后绑定时,设为 127.0.0.1 |
B2_LOG_FILE | — | stderr | 用于写入已脱敏结构化 JSON 日志的可选绝对路径(仅限 POSIX)。设置后,该文件会取代 stderr;stdout 从不用于日志。关于重命名/创建和 SIGHUP 轮换,请参阅 docs/product-specs/clients.md |
B2_SECRET_SINK | — | stdio:file;HTTP:off | 持久化密钥输出模式:file、inline 或 off。文件模式支持 b2_create_key 和 b2_create_group_member;b2_reserve_trial_create_account 没有文件模式恢复路径,因此必须显式启用 inline 模式 |
B2_SECRET_SINK_FILE | file 覆盖值 | stdio 下为 ~/.b2-mcp/secrets.jsonl | 文件接收模式下仅追加的明文 JSONL 凭据台账。HTTP/无服务器文件模式需要此显式绝对路径,并要求 B2_ALLOW_LOCAL_FILES=true |
B2_ALLOW_INLINE_SECRETS | 仅限 HTTP inline | false | 在 B2_SECRET_SINK=inline 能够通过 MCP 响应返回持久化密钥之前,必须显式启用此 HTTP/无服务器专用选项 |
B2_HTTP_CREDENTIAL_MODE | 仅限 HTTP | headers | headers、server 或 principal;未设置时保留现有的基于请求头的客户端行为。托管部署时请显式设置 |
B2_PRINCIPAL_CREDENTIAL_MAP | HTTP principal | — | 将经过验证的 MCP principal 映射到客户管理凭据引用的 JSON 映射 |
B2_CREDENTIAL_<REF>_APPLICATION_KEY_ID / _APPLICATION_KEY | HTTP principal | — | 为映射引用提供的基于环境变量的密钥代理材料 |
| 安全/策略(安全默认值;可按需覆盖): |
| 变量 | 默认值 | 说明 |
|---|---|---|
B2_DESTRUCTIVE_POLICY | stdio:confirm;HTTP:block | 对破坏性工具进行限制:confirm 要求在兼容的 2026 客户端上通过 MCP 表单征求批准;如果无法使用或已禁用表单征求,则要求 confirm: true;elicit 要求人为批准,并在无法提示任何人时拒绝;block 在征求批准前拒绝;allow 跳过这两项限制 |
B2_DESTRUCTIVE_ELICITATION | on | 设置为 off、false 或 0,即可禁用 MCP 表单征求,仅依赖 B2_DESTRUCTIVE_POLICY |
B2_MAX_KEY_DURATION_SECONDS | — | b2_create_key 的可选最长期限;设置后,将在任何 B2 创建调用前拒绝无过期时间的密钥和超出期限的密钥 |
B2_ALLOW_KEY_MGMT_GRANTS / B2_ALLOW_UNSCOPED_KEYS | false | 明确允许 b2_create_key 创建具有密钥管理能力的密钥,或不受范围限制的写入/删除密钥 |
B2_ALLOWED_HOSTS / B2_ALLOWED_ORIGINS | 无 | HTTP 传输:Host/Origin 允许列表(防止 DNS 重绑定)——任何面向互联网的 HTTP 部署都必须设置这些值 |
B2_HTTP_REQUEST_TIMEOUT_MS / B2_HTTP_HEADERS_TIMEOUT_MS | 30000 / 10000 | 独立 Node HTTP 传输的请求超时和标头超时 |
B2_TRUST_PROXY_HEADERS | false | HTTP 传输:仅在可信代理后面,对未经身份验证的准入密钥信任 X-Forwarded-For / X-Real-IP |
B2_MCP_RATE_LIMIT_RPS / B2_MCP_RATE_LIMIT_BURST | 60 / 120 | HTTP 传输:按凭据限制请求速率 |
B2_MAX_SESSIONS / B2_MAX_SESSIONS_PER_KEY | 1000 / 20 | HTTP 传输:全局及每个凭据的并发进行中请求上限 |
B2_STDIO_CAPABILITY_TIMEOUT_MS | 10000 | Stdio 启动时的能力发现期限;本地超时后将启用默认拒绝的工具界面 |
B2_CAPABILITY_CACHE_TTL_MS / B2_CAPABILITY_CACHE_MAX_ENTRIES | 300000 / 10000 | 有界能力发现缓存的 TTL 和大小;缓存身份与密钥绑定,日志标签使用非密钥指纹 |
B2_S3_SAVE_TO_PATH_IDLE_TIMEOUT_MS | 60000 | 将 s3_get_object 结果流式传输到 saveToPath 时的空闲超时 |
可直接复制的 .env.example 列出了本地变量,而 deploy/customer-hosted/b2-mcp.env.example 列出了托管容器基线。仅适用于 HTTP 的文件访问变量(B2_ALLOW_LOCAL_FILES、B2_FILE_ROOT)见 docs/DEPLOY.md;上述能力/缓存调优项在此处内联说明。
工具
此服务公开 40 个工具(注册过程会识别能力,因此每个密钥只能看到其可用的子集)。**总计 40 个——17 个原生 B2 SDK 工具 + 19 个 AWS S3 SDK 工具 + 4 个非 SDK/自定义 MCP 工具。**前缀数量仍为 21 个原生 b2_* 名称 + 19 个数据面 s3_* 名称。在 stdio 默认的 confirm 策略下,十五个具有破坏性、会生成持久密钥或会削弱保护的工具,执行前必须确认;HTTP 的默认策略为 block。按配置文件区分并标注可用性的工具列表(按能力集划分)见生成的 docs/generated/tool-profiles.md;破坏性操作门控策略和持久密钥处理(密钥接收端、幂等键、POSIX 与 Windows 行为)见 docs/AUTHENTICATION.md。
原生 B2 SDK(17 个):
b2_authorize_account— 验证凭据并返回账户信息b2_list_buckets— 列出存储桶(可选筛选条件)b2_create_bucket— 创建存储桶并设置初始策略b2_delete_bucket— 删除空存储桶b2_update_bucket— 更新持久存储桶设置;风险更高的更改受门控b2_get_bucket_notification_rules— 读取 webhook 通知规则,并对密钥进行脱敏b2_set_bucket_notification_rules— 替换 webhook 通知规则;仅允许公开的 HTTPS 目标b2_list_keys— 列出应用密钥b2_delete_key— 永久撤销应用密钥b2_create_key— 通过已配置的密钥接收端创建受限应用密钥b2_update_file_legal_hold— 设置/清除对象的法律保留b2_update_file_retention— 设置/清除对象的保留期限b2_list_groups— 列出合作伙伴组(需要 Partner API 凭据)b2_eject_group_member— 从合作伙伴组中移除成员(需要 Partner API 凭据)b2_list_group_members— 列出组成员(需要 Partner API 凭据)b2_create_group_member— 创建 Partner 组成员(需要 Partner API 凭据)b2_reserve_trial_create_account— 预留试用账户(需要 Partner API 凭据)
AWS S3 SDK — 数据面(19 个):
s3_put_object— 内联上传小型(≤1 MiB)控制面对象s3_get_object— 内联下载小型(≤1 MiB)控制面对象s3_delete_object— 删除当前对象或指定版本;适用破坏性操作门控s3_delete_objects— 批量删除对象s3_head_object— 获取对象元数据s3_copy_object— 服务端复制s3_list_objects_v2— 列出对象s3_list_object_versions— 列出对象版本和删除标记(分页)s3_create_multipart_upload— 开始分段上传s3_get_presigned_upload_part_url— 为一个分段生成预签名 PUT URLs3_complete_multipart_upload— 根据有序分段 ETag 完成分段上传s3_abort_multipart_upload— 中止分段上传s3_list_parts— 列出已上传的分段s3_list_multipart_uploads— 列出进行中的分段上传(分页)s3_upload_part_copy— 服务端复制一个分段s3_get_presigned_url— 短时有效的预签名 PUT/GET 持有者 URLs3_head_bucket— 检查存储桶能否通过 S3 端点访问s3_get_bucket_location— 获取存储桶区域/位置约束s3_put_bucket_lifecycle— 设置 S3 生命周期规则
自定义 MCP 分析工具(4 个):
b2_report_usage_growth— 按两个日期之间的存储数据增长量为账户排名b2_rank_egress_leaders— 按账户或存储桶统计一段时间内的出口流量排名b2_list_largest_files— 通过有界实时列表获取存储桶中最大的对象b2_unfinished_uploads— 查找占用存储空间的废弃分段上传 **MCP 工作流提示词(选择启用):**默认关闭;设置B2_ENABLE_MCP_PROMPTS=true,即可通过prompts/list/prompts/get提供五个引导式工作流。这些提示词是参数化消息模板,不会执行工具或批准破坏性操作,并且会根据与工具相同的工具面和能力映射进行筛选。请在整个服务集群中原子性地切换此标志(它会同时控制注册和公告)。
Package API 表面
npm 包有意仅支持根 CommonJS 入口
(require("@backblaze-labs/b2-mcp")),该入口公开
startStdio(): Promise<void>,以及用于获取元数据的 ./package.json。TypeScript
使用者可以针对同一根 CommonJS 表面进行编译:
import b2Mcp = require("@backblaze-labs/b2-mcp");
const start: () => Promise<void> = b2Mcp.startStdio;
超出该根入口的编程式 TypeScript 导入不属于受支持的公共 API。ESM 命名导入不在契约范围内。诸如
@backblaze-labs/b2-mcp/dist/server.js 这样的深层导入属于私有实现细节,已由包的 exports 映射表封闭。
请改用 CLI/bin 入口或根目录的 startStdio
导出。
CLI 参考
源入口点和已安装的软件包二进制文件使用相同的 CLI:
Usage: b2-mcp [stdio|http] [options]
Options:
--transport <stdio|http> Transport to serve (default: B2_MCP_TRANSPORT or stdio)
--port <port> HTTP listen port (default: PORT or 3000)
--host <host> HTTP listen host (default: Node listen default)
--version Print the package version
--help Show this help
工具结果会在 structuredContent 中携带无损值;面向大模型的
文本块由 B2_MCP_OUTPUT_FORMAT 选择(默认为 json,也可选择启用
toon)。有关输出格式契约,请参阅 docs/design-docs/tool-contract.md#structured-result-text-contract。
资源
只读 MCP 资源无需调用工具即可公开稳定的控制平面状态:
b2://server-config— 非机密服务器配置(传输方式、凭据模式、破坏性策略、密钥接收端模式、公共 URL、版本)。b2://capabilities— 当前凭据的 B2 能力集合和活动工具配置文件。b2://bucket/{bucketName}— 调用者有权读取时公开存储桶类型/可见性、生命周期、Object Lock、保留策略、加密、CORS、复制和通知规则(Webhook 密钥已隐藏)。
resources/list 最多列出 100 个具体存储桶资源;对于已知且获得授权的存储桶,请直接使用模板 URI。存储桶读取不会提供客户端缓存提示,因为写入后,可见性和通知目标与安全相关。
安全与自托管
内置防护措施(默认启用):破坏性操作门控(B2_DESTRUCTIVE_POLICY)、面向支持 2026 功能的客户端为破坏性工具提供 MCP 表单征询、为本地 stdio 创建由接收端支持的持久密钥,并在托管 HTTP 中默认失败关闭、集中递归清理响应、明确的凭据提供方模式、具备能力感知且失败关闭的注册机制、速率限制,以及值已脱敏的审计日志(仅记录非机密凭据指纹)。服务绝不会主动联系外部。
- 本地使用 → stdio。 凭据保存在客户端配置/环境中;默认的
confirm策略会在执行破坏性操作前询问。 - 面向互联网的 HTTP →
B2_DESTRUCTIVE_POLICY=block是必需的防护措施(HTTP 默认值)。征询由客户端转发,因此它只是人在回路中的一道阻碍,并非独立的授权边界。 - 选择凭据模式。
headers(默认,兼容模式)、server(在进程或密钥管理器中持有一个 B2 凭据),或principal(将经过验证的 MCPauthInfo映射到客户持有的凭据)。无需凭据的发现操作(initialize、tools/list、resources/list、prompts/list、server/discover、ping)无需密钥即可运行,方便扫描器枚举;实际的tools/call仍需凭据。 - 使用遵循最小权限原则的密钥。 普通存储应使用非主密钥。
b2_create_key会拒绝密钥管理授权、未限定范围的写入/删除授权,以及过长或永不过期的密钥,除非设置了对应的覆盖选项。 - 预签名 URL 不是持久密钥。
s3_get_presigned_url/s3_get_presigned_upload_part_url返回短期有效的承载令牌权限(expiresIn/expiresAt)——它们在过期前属于敏感信息,但并非长期有效的 B2 密钥。 - 切勿提交凭据——请使用环境变量/密钥管理器。
.env*已加入 gitignore。
支持的部署方式:deploy/customer-hosted(可移植容器、compose、nginx/OAuth 边缘层)和 deploy/vercel(OAuth 保护的适配器)。服务提供商指南:Docker/OCI、Vercel、Cloudflare Workers、Cloudflare Containers、Google Cloud Run、AWS ECS Fargate、Azure Container Apps、Render、Railway 和 Fly.io——均遵循安全与凭据规范。
完整的托管部署手册(nginx、Let's Encrypt、加固后的 systemd、fail2ban、监控和安全基线检查清单):deploy/customer-hosted/README.md(已列入 docs/DEPLOY.md 矩阵)。身份验证、凭据保管和 OAuth 详情见 docs/AUTHENTICATION.md。
隐私
b2-mcp 通过 stdio 在本地运行,或部署在由用户或运营方控制的自托管 HTTP 环境中。正常使用时,发布方不会收到运行时 B2 凭据、对象数据、提示词、日志或遥测数据。处理对象字节的工作流应使用预签名 URL,使字节在客户端或工作进程与 Backblaze B2 之间直接传输;日志则采用带密钥脱敏的结构化格式。
请阅读规范的 PRIVACY.md 源文件,或查看由 GitHub Pages 发布的托管隐私政策。
开发
从全新检出的源码开始,请先启用固定版本的包管理器并安装 依赖,然后运行以下任一脚本:
corepack enable pnpm
corepack prepare '[email protected]+sha256.34e198cb1e43237517ecedfd31f9ae26a6c0a3e5366ce58a2d05f4b21fb5f19a' --activate
pnpm install --frozen-lockfile
pnpm run build # clean + compile to dist/
pnpm run typecheck # type-check src + tests (no emit)
pnpm test # typecheck, then fast unit tests
pnpm run test:contract # deterministic MCP/package/schema contracts
pnpm run test:protocol # modern + legacy MCP protocol behavior
pnpm run test:coverage # deterministic source-covering suites + coverage summary
pnpm run test:package # packed-package installation test
pnpm run verify # fast no-credential quality gate
pnpm run test:live:b2 # both protected live B2 suites; requires B2 credentials
pnpm run evals # deterministic LLM eval harness; live provider cases skip by default
pnpm run docs # TypeDoc API docs plus hosted privacy page
pnpm start # stdio transport
pnpm run start:http --port 3000 # MCP 2026-07-28 HTTP transport
pnpm run smoke:local # deterministic local MCP smoke; no endpoint or B2 credentials
完整脚本列表(诊断、耗时较长的测试、提供方对比评估、Inspector 冒烟测试)见 docs/TESTING.md。兼容的 MCP Inspector:@modelcontextprotocol/[email protected](Node.js 22.19.0+),通过 pnpm run smoke:inspector 运行。
文档
- API 参考 — 面向公开
src接口生成的 TypeDoc 文档 - 隐私政策 /
PRIVACY.md— 运行时数据处理政策 docs/product-specs/clients.md— 各客户端的设置说明和兼容性矩阵docs/AUTHENTICATION.md— OAuth、凭据保管和认证边界docs/DEPLOY.md— 部署矩阵和受支持主机的链接docs/references/deployment/security-and-credentials.md— 通用托管安全约定docs/generated/tool-profiles.md— 按工具生成的可用性参考docs/design-docs/index.md— 列明负责人和状态的公开约定目录docs/design-docs/tool-contract.md— 工具约定和命名规范政策docs/TESTING.md/docs/EVALS.md— 测试门禁和 LLM 评估运行手册docs/references/discoverability.md— 注册表/目录列表运行手册RELEASE.md·CHANGELOG.md·SECURITY.md
Backblaze Labs 生态系统
属于 Backblaze Labs:
- Genblaze — Python SDK,用于 协调跨视频、音频和图像提供方的生成式 AI 媒体工作流,并为每项输出 内置来源追溯功能。
- b2-sdk-typescript —
Backblaze 维护的 B2 Cloud Storage TypeScript / JavaScript SDK
(以
@backblaze-labs/b2-sdk发布,本服务基于此 SDK 构建)。 - b2-action — Backblaze 维护的 B2 Cloud Storage GitHub Action。
许可证
MIT — © 2026 Backblaze, Inc.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。