addrbookFor publishers
← The evidence ledger

Evidence row 519452

Observed , by sync.mcp_registry/1.

Kind
listing
About
source_record mcp_registry:io.github.mguttmann/the-real-bitwarden-mcp
Recorded
Previous row
#506099
Body SHA-256
9247e2f896d6f51d5aa5ddee5ee82992020e535762a883979ca4b2eb76cbde1f
Leaf
0xd9acc5661809e689c68dc0379930a2ab13d9af7d2d4f7bb3d99d96c41164504a

What was observed

{
  "endpoints": [
    [
      "web",
      "https://github.com/mguttmann/the-real-bitwarden-mcp"
    ]
  ],
  "name": "Bitwarden Public API and Secrets Manager (unofficial)",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-10-27T16:50:28.995316Z",
        "status": "active",
        "statusChangedAt": "2026-10-27T16:50:28.995316Z",
        "updatedAt": "2026-10-27T16:50:28.995316Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Unofficial MCP server for the Bitwarden Public API and Secrets Manager, self-hosted or cloud.",
      "name": "io.github.mguttmann/the-real-bitwarden-mcp",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "Self-hosted instance: API base URL, e.g. https://vault.example.com/api. Configure all four BITWARDEN_SELFHOST_* or all four BITWARDEN_CLOUD_* variables (or both); a partial set is fatal.",
              "format": "string",
              "name": "BITWARDEN_SELFHOST_API_BASE"
            },
            {
              "description": "Self-hosted instance: identity URL, e.g. https://vault.example.com/identity.",
              "format": "string",
              "name": "BITWARDEN_SELFHOST_IDENTITY_URL"
            },
            {
              "description": "Self-hosted instance: organization Public API client id (organization.<uuid>).",
              "format": "string",
              "name": "BITWARDEN_SELFHOST_CLIENT_ID"
            },
            {
              "description": "Self-hosted instance: organization Public API client secret. It can manage members, groups, collections and policies, including creating Owners.",
              "format": "string",
              "isSecret": true,
              "name": "BITWARDEN_SELFHOST_CLIENT_SECRET"
            },
            {
              "description": "Bitwarden Cloud: API base URL, e.g. https://api.bitwarden.com. Used for license and subscription tools.",
              "format": "string",
              "name": "BITWARDEN_CLOUD_API_BASE"
            },
            {
              "description": "Bitwarden Cloud: identity URL, e.g. https://identity.bitwarden.com.",
              "format": "string",
              "name": "BITWARDEN_CLOUD_IDENTITY_URL"
            },
            {
              "description": "Bitwarden Cloud: organization Public API client id (organization.<uuid>).",
              "format": "string",
              "name": "BITWARDEN_CLOUD_CLIENT_ID"
            },
            {
              "description": "Bitwarden Cloud: organization Public API client secret.",
              "format": "string",
              "isSecret": true,
              "name": "BITWARDEN_CLOUD_CLIENT_SECRET"
            },
            {
              "description": "Optional: Secrets Manager machine account access token; enables the bws_* tools. A malformed token is fatal at startup.",
              "format": "string",
              "isSecret": true,
              "name": "BWS_ACCESS_TOKEN"
            },
            {
              "description": "Optional: organization UUID for the Secrets Manager tools, used when a call passes no organizationId.",
              "format": "string",
              "name": "BWS_ORG_ID"
            },
            {
              "description": "Optional: Secrets Manager API base URL; defaults to BITWARDEN_SELFHOST_API_BASE.",
              "format": "string",
              "name": "BWS_API_BASE"
            },
            {
              "description": "Optional: Secrets Manager identity URL; defaults to BITWARDEN_SELFHOST_IDENTITY_URL.",
              "format": "string",
              "name": "BWS_IDENTITY_URL"
            },
            {
              "default": "true",
              "description": "true: write tools return a preview unless the call carries confirm \"YES\". The model sets confirm itself, so this is friction, not a security boundary.",
              "format": "boolean",
              "name": "BITWARDEN_CONFIRM_WRITES"
            },
            {
              "default": "false",
              "description": "true: write tools stay listed but refuse to run, and bw_raw_request allows GET only.",
              "format": "boolean",
              "name": "BITWARDEN_READ_ONLY"
            },
            {
              "choices": [
                "debug",
                "info",
                "warn",
                "error"
              ],
              "default": "warn",
              "description": "Log level of the JSON log lines on stderr.",
              "format": "string",
              "name": "LOG_LEVEL"
            }
          ],
          "identifier": "the-real-bitwarden-mcp",
          "registryType": "npm",
          "runtimeHint": "npx",
          "transport": {
            "type": "stdio"
          },
          "version": "0.2.1"
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/mguttmann/the-real-bitwarden-mcp"
      },
      "title": "Bitwarden Public API and Secrets Manager (unofficial)",
      "version": "0.2.1",
      "websiteUrl": "https://github.com/mguttmann/the-real-bitwarden-mcp#readme"
    }
  },
  "source": "mcp_registry",
  "summary": "Unofficial MCP server for the Bitwarden Public API and Secrets Manager, self-hosted or cloud."
}

What the leaf hashes

{"body":"9247e2f896d6f51d5aa5ddee5ee82992020e535762a883979ca4b2eb76cbde1f","id":519452,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793122147406927,"prev":506099,"subject":"mcp_registry:io.github.mguttmann/the-real-bitwarden-mcp","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0xd9adf3ed23a4f430ef45465252c8bd82f65f89a49cf0b2127d3e884af75c76ef
  2. 0x9114319e9ab8e9aeebb0ca740edd490c3d757de8318b10389cf3f0b66daf95d8
  3. 0xcf8af5d73fbab8492b10cc83c41326f956811702ed9b18abe03c8867b2d09684
  4. 0xbb4b761c285f5a591568cbf33ca1a63ffbb8b8a0769aa5d12a3e53f479582742
  5. 0xd85127658de3b339bffec8ea832943c57752e8492e80b26bdef5556688faf0ea
  6. 0xb36ec3b69db38bef7a6f5347f7d0a70901f6f24b891006ef8d1cd89cba496447
  7. 0xe8fbb2d719c45eb2860bc8243513ea093fcca870f93aea7771629b655967da41
  8. 0xef3a70b22c61dfdb6ee50b081cd1672886f30034ac87542484a4080ff5868c83
  9. 0xedded979d6c55b62b70a8518f149b62e3262fa16f5f67e7c8a367c7b31efd3fe
  10. 0xd47af22d1878eee6975af947e6e45935f573b005c0fe9efe5590def172016768
  11. 0x7f6de085812928d3d7f3b15191238d47e17ef53dc519c83f30704118bb423398
  12. 0x29ce226640d83db3bc63fef23427a7af561200d30ffde9b1b7a61b814b844a39
  13. 0x13692b463800846f580925c8ea49b43f92b7df3f9e8d32b8a18802640cca3780
  14. 0xd59f3e577867f5105dd7f75598f16da8286185e426dfcdafb84e733fde2b2492
  15. 0x24e3e2bb8ee1e8d20756de35f0e0c4ec8eb1f193bd2cf3f077ee1f92f211c34d
  16. 0x8745bd887f5ce9f7a49558fd2b04cdcd97a05ea9f8a23f62d0e80cb13d328b0f
  17. 0xdf1105afdc109de3c09a98fc8a3864159ad964e6f49b635c105a27a1e1f14310
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON