Skip to content

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 23 Aug 17:30
· 81 commits to main since this release
v0.1.2
d9f7e9a

@backblaze-labs/b2-mcp v0.1.2

Changed

  • Renamed the outbound User-Agent product token from backblaze-b2-mcp to
    b2-mcp (b2-mcp/<version> on a published release, b2-mcp/dev otherwise)
    across every SDK that talks to the B2 API. Operators must sequence this
    with the analytics side:
    expand any Backblaze-side dashboards, alerts, and
    token-keyed rate-limiting to accept BOTH backblaze-b2-mcp and b2-mcp
    before rolling the fleet, then retire the old token only after every pod has
    cycled onto b2-mcp. During a rolling deploy both tokens are emitted
    simultaneously, so a dashboard keyed solely on the old token would otherwise
    decay toward zero and page as a false partial outage. (#236)

Fixed

  • s3_put_bucket_lifecycle now clears the bucket's S3 lifecycle configuration
    when passed an empty rules array, routing the clear through the destructive
    gate and AWS DeleteBucketLifecycle. (#214)
  • Scope b2_list_buckets to authorized bucket IDs for bucket-scoped keys when
    no bucketId/bucketName filter is supplied, and reject out-of-scope explicit
    bucket filters before calling B2 (fixes #211).
  • Resolve b2_largest_files and b2_unfinished_uploads through the authorized
    bucket scope instead of an unfiltered listBuckets(), so bucket-scoped keys
    no longer receive HTTP 401; out-of-scope input is reported clearly without
    enumerating the key's bucket namespace. (#212)
  • Return a stable 400 bad_request instead of HTTP 500 when s3_get_presigned_url
    PutObject (or inline s3_put_object) is called without a valid signed
    contentType. (#213)
  • Validate and document the reserved bucketInfo key and corsRuleName naming
    constraints so invalid inputs are rejected with a clear message. (#215)
  • Align the server-issued skills instructions with the shipped skills pack so
    clients are pointed at the tools that are actually available. (#205)
  • Classify destructive confirmation/policy refusals as stable non-500 tool
    outcomes: destructive_confirmation_required and
    destructive_confirmation_refused as HTTP 409, and
    destructive_policy_blocked as HTTP 403, with tool.call audit logs
    recording those codes/statuses instead of internal_error/500.
  • S3-compatible and report tools now derive their endpoint/signing region from
    the authorized b2_authorize_account s3ApiUrl; B2_REGION is only a
    fallback/default for pre-authorization paths or temporary authorize failures.
  • Aligned the package engines.node range with the supported Node.js 22.3+,
    24, and 26 lines so it matches the runtime policy and opossum 10 support,
    with drift guards for workflow and deployment documentation claims.
  • Publish npm releases from a staged package directory so registry metadata does
    not retain the release runner's local tarball path, with a bounded
    post-publish verification retry and legacy rerun allowance for immutable
    0.1.0 and 0.1.1 metadata.