{ "name": "@backblaze-labs/b2-mcp", "version": "0.2.2", "mcpName": "io.github.backblaze-labs/b2-mcp", "description": "MCP server for Backblaze B2 with frozen Phase 1 B2 and S3-compatible tool profiles", "packageManager": "pnpm@11.20.0+sha256.34e198cb1e43237517ecedfd31f9ae26a6c0a3e5366ce58a2d05f4b21fb5f19a", "main": "dist/index.js", "types": "dist/index.d.ts", "exports": { ".": { "types": "./dist/index.d.ts", "require": "./dist/index.js", "default": "./dist/index.js" }, "./package.json": "./package.json" }, "bin": { "b2-mcp": "dist/index.js", "b2-mcp-server": "dist/index.js" }, "repository": { "type": "git", "url": "git+https://github.com/backblaze-labs/b2-mcp.git" }, "bugs": { "url": "https://github.com/backblaze-labs/b2-mcp/issues" }, "homepage": "https://github.com/backblaze-labs/b2-mcp#readme", "scripts": { "clean": "rm -rf dist", "build": "pnpm run clean && tsc", "build:mcpb": "node scripts/build-mcpb.mjs", "typecheck": "tsc --noEmit -p tsconfig.typecheck.json", "docs": "typedoc && pnpm run docs:privacy", "docs:privacy": "node scripts/write-privacy-page.mjs", "docs:watch": "pnpm run docs:privacy && typedoc --watch --cleanOutputDir false", "start": "node dist/index.js", "start:http": "node dist/http-server.js", "dev": "tsx src/index.ts", "test": "pnpm run typecheck && pnpm run test:unit", "test:unit": "node scripts/run-vitest-layer.mjs unit", "test:reliability": "node scripts/run-vitest-layer.mjs reliability", "test:contract": "node scripts/run-vitest-layer.mjs contract", "test:protocol:modern": "node scripts/run-vitest-layer.mjs protocol-modern", "test:protocol:legacy": "node scripts/run-vitest-layer.mjs protocol-legacy", "test:protocol": "pnpm run build && pnpm run test:protocol:modern && pnpm run test:protocol:legacy", "test:runtime-security": "node scripts/run-vitest-layer.mjs runtime-security", "test:observability": "pnpm run build && node scripts/run-vitest-layer.mjs observability", "test:slow": "node scripts/run-vitest-layer.mjs slow", "test:coverage": "pnpm run build && node scripts/run-vitest-layer.mjs coverage", "test:mutation": "node scripts/run-mutation.mjs", "test:diagnostics": "pnpm run build && node scripts/run-leak-diagnostics.mjs", "perf:baseline": "pnpm run build && node --expose-gc scripts/performance-baseline.mjs", "perf:baseline:enforce": "pnpm run build && node --expose-gc scripts/performance-baseline.mjs --enforce", "test:integration": "node scripts/reject-live-alias.mjs integration", "test:contract:live": "node scripts/reject-live-alias.mjs contract", "test:integration:live": "node scripts/reject-live-alias.mjs integration", "test:live:b2-contract": "node scripts/require-live-env.mjs contract && node scripts/run-vitest-layer.mjs contract-live", "test:live:b2-integration": "node scripts/require-live-env.mjs integration && node scripts/run-vitest-layer.mjs integration-live", "test:live:b2": "pnpm run test:live:b2-contract && pnpm run test:live:b2-integration", "test:package": "pnpm run build && node scripts/run-vitest-layer.mjs package", "evals": "pnpm run build && vitest run --config evals/vitest.config.mts", "evals:provider-comparison": "tsx evals/run-provider-comparison.ts", "verify": "pnpm run typecheck && pnpm run build && pnpm run check:doc-examples && pnpm run check:deployment-contracts && pnpm run lint && pnpm run lint:docs && pnpm run lint:links && pnpm run validate:skills && pnpm run format:check && pnpm run spell && pnpm run test:runtime-security && pnpm run test:diagnostics", "test:cross-platform": "node scripts/run-cross-platform-tests.mjs", "smoke": "node scripts/smoke-test.mjs", "smoke:local": "node scripts/local-mcp-smoke.mjs", "smoke:client": "node scripts/mcp-client-smoke.mjs", "smoke:inspector": "node scripts/mcp-inspector-smoke.mjs", "generate:tool-contract": "pnpm run build && node scripts/generate-tool-contract.mjs", "smoke:package": "pnpm run build && node scripts/packed-consumer-smoke.mjs", "check:runtime-policy": "node scripts/check-runtime-policy.mjs", "check:package-budget": "node scripts/check-package-budget.mjs", "check:vercel-bundle": "node scripts/check-vercel-bundle.mjs", "vercel-build": "node scripts/run-vercel-project-build.mjs", "prepare:vercel-local-build": "node scripts/prepare-vercel-local-build.mjs", "build:vercel-local": "node scripts/run-vercel-local-build.mjs", "check:vercel-build-output": "node scripts/check-vercel-build-output.mjs", "check:cloudflare-worker-bundle": "node scripts/check-cloudflare-worker-bundle.mjs", "check:doc-examples": "node scripts/check-doc-examples.mjs", "check:deployment-contracts": "node scripts/check-deployment-contracts.mjs", "audit:supply-chain": "pnpm run audit:supply-chain:denylist --packlist && node scripts/audit-supply-chain.mjs", "audit:supply-chain:denylist": "node scripts/check-supply-chain-denylist.mjs", "audit:production": "node scripts/production-security-gate.mjs", "release:verify": "node scripts/verify-release-input.mjs", "release:notes": "node scripts/extract-release-notes.mjs", "release:stamp": "node scripts/write-release-version.mjs", "release:sbom": "node scripts/production-security-gate.mjs --sbom publish-package/b2-mcp-production.cdx.json", "version": "node scripts/cut-changelog.mjs && node scripts/update-server-json-version.mjs && git add CHANGELOG.md server.json lhm.plugin.json mcpb/manifest.json", "prepublishOnly": "pnpm run build && node scripts/verify-release-input.mjs --tag \"v$(node -p 'require(\"./package.json\").version')\" && pnpm run release:stamp", "postpack": "node -e \"require('node:fs').rmSync('dist/release-version.json',{force:true})\"", "probe:500": "pnpm run build && node scripts/probe-b2-500s.mjs", "lint": "node scripts/run-biome.mjs lint src tests scripts evals test-support", "lint:fix": "node scripts/run-biome.mjs lint src tests scripts evals test-support --write", "lint:tsdoc": "node scripts/run-doc-lint.mjs --tsdoc-only", "lint:docs": "node scripts/run-doc-lint.mjs", "lint:docs:fix": "node scripts/run-doc-lint.mjs --fix", "lint:links": "node scripts/check-doc-links.mjs", "validate:skills": "node scripts/validate-pack.mjs", "format": "node scripts/run-biome.mjs format . --write", "format:check": "node scripts/run-biome.mjs format .", "spell": "cspell lint --no-progress --gitignore" }, "keywords": [ "mcp", "backblaze", "b2", "cloud-storage", "s3", "ai" ], "author": "Backblaze", "license": "MIT", "dependencies": { "@aws-sdk/client-s3": "3.1156.0", "@aws-sdk/s3-request-presigner": "3.1156.0", "@backblaze-labs/b2-sdk": "0.4.0", "@modelcontextprotocol/server": "2.4.0", "@smithy/types": "4.19.0", "jose": "6.2.12", "opossum": "10.0.0", "pino": "10.4.0", "zod": "4.6.7" }, "devDependencies": { "@anthropic-ai/mcpb": "2.1.2", "@biomejs/biome": "2.5.15", "@microsoft/tsdoc-config": "0.18.3", "@modelcontextprotocol/client": "2.4.0", "@modelcontextprotocol/inspector": "2.12.0", "@modelcontextprotocol/node": "2.1.2", "@toon-format/toon": "4.4.0", "@types/commonmark": "0.27.10", "@types/node": "22.20.4", "@types/opossum": "^8.1.9", "@vercel/node": "16.0.1", "@vitest/coverage-v8": "4.1.12", "commonmark": "0.31.2", "cspell": "^10.3.5", "eslint": "10.9.1", "eslint-plugin-jsdoc": "65.1.0", "eslint-plugin-tsdoc": "0.5.4", "fast-check": "4.10.2", "miniflare": "5.20261019.2-beta", "semver": "7.8.5", "tsx": "4.23.15", "typedoc": "0.28.20", "typescript": "~6.0.3", "typescript-eslint": "8.72.0", "vercel": "60.1.3", "vitest": "4.1.12", "wrangler": "4.152.0", "yaml": "^2.9.1" }, "engines": { "node": "^22.22.2 || ^24 || ^26" }, "files": [ ".dockerignore", "dist/**/*", "deploy/customer-hosted/.dockerignore", "deploy/customer-hosted/Dockerfile", "deploy/customer-hosted/README.md", "deploy/customer-hosted/b2-mcp.env.example", "deploy/customer-hosted/container-entrypoint.sh", "deploy/customer-hosted/docker-compose.yml", "deploy/customer-hosted/nginx.conf", "deploy/customer-hosted/pnpm-lock.yaml", "deploy/customer-hosted/pnpm-workspace.yaml", "docs/AUTHENTICATION.md", "docs/CLIENTS.md", "docs/product-specs/clients.md", "docs/DEPLOY.md", "docs/deployment/*.md", "docs/references/deployment/*.md", "docs/generated/tool-profile-contract.json", "docs/generated/tool-profiles.md", "skills/pack.json", "skills/b2-backup-restore/SKILL.md", "skills/b2-incident-response/SKILL.md", "skills/b2-least-privilege-keys/SKILL.md", "skills/b2-lifecycle-cost-hygiene/SKILL.md", "skills/b2-migration/SKILL.md", "skills/b2-object-lock/SKILL.md", "tests/fixtures/prompt-contract/*.json", "tests/fixtures/tool-contract/*.json", "README.md", "CHANGELOG.md", "PRIVACY.md", "SECURITY.md", "LICENSE" ] }