addrbookFor publishers
← The evidence ledger

Evidence row 45678

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.pete-builds/unifi
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
01b5f2eab075ac897f5c9b4db3411df2c2049c1cd9ba2113fff3dce27e9c15a8
Leaf
0xd3653392b0e29de238d0eaeada7eab890042e4f735f7c4ce3d96b5bed630d260

What was observed

{
  "endpoints": [
    [
      "web",
      "https://pete-builds.github.io/mcp-unifi/"
    ]
  ],
  "name": "UniFi Gateway",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-10-21T03:25:46.707326Z",
        "status": "active",
        "statusChangedAt": "2026-10-21T03:25:46.707326Z",
        "updatedAt": "2026-10-21T03:25:46.707326Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Safe-by-default UniFi MCP: Network + Protect + Access, multi-site, dry-run, audit log.",
      "name": "io.github.pete-builds/unifi",
      "packages": [
        {
          "environmentVariables": [
            {
              "choices": [
                "true",
                "false"
              ],
              "default": "true",
              "description": "When true, the server returns realistic mock data and requires no UniFi hardware. Defaults to true so the image is functional out of the box.",
              "format": "string",
              "name": "STUB_MODE"
            },
            {
              "description": "IP address or hostname of the UniFi OS gateway (UCG-Fiber, UDM Pro, etc). Required when STUB_MODE=false and MCP_UNIFI_CONTROLLERS_FILE is unset.",
              "format": "string",
              "name": "UNIFI_HOST"
            },
            {
              "description": "Local API key generated under Settings -> Control Plane -> Integrations on the gateway. Required when STUB_MODE=false and MCP_UNIFI_CONTROLLERS_FILE is unset.",
              "format": "string",
              "isSecret": true,
              "name": "UNIFI_API_KEY"
            },
            {
              "default": "default",
              "description": "UniFi controller site name. Defaults to 'default'.",
              "format": "string",
              "name": "UNIFI_SITE"
            },
            {
              "choices": [
                "true",
                "false"
              ],
              "default": "false",
              "description": "Whether to verify the gateway's TLS certificate. Defaults to false because most home gateways use a self-signed cert.",
              "format": "string",
              "name": "UNIFI_VERIFY_SSL"
            },
            {
              "description": "Path to a YAML file describing multiple named controllers for multi-site management. When set, the legacy UNIFI_HOST / UNIFI_API_KEY env vars are ignored. Each entry needs name, host, api_key, and optionally port, site, verify_ssl.",
              "format": "string",
              "name": "MCP_UNIFI_CONTROLLERS_FILE"
            },
            {
              "default": "network",
              "description": "Comma-separated list of modules to load. Known values: 'network', 'protect', 'access'. Defaults to 'network'. Set to 'network,protect,access' to enable Protect and Access tools alongside Network. Access currently ships read-only; door unlocks and credential issuance require session-token auth and are deferred.",
              "format": "string",
              "name": "MCP_UNIFI_MODULES_ENABLED"
            },
            {
              "description": "UniFi Access hub IP or hostname. Required when the access module is enabled and STUB_MODE=false. Often the same host as UNIFI_HOST.",
              "format": "string",
              "name": "UNIFI_ACCESS_HOST"
            },
            {
              "description": "UniFi Access API key. Separate from the Network API key; generated on the Access controller's developer settings. Required when the access module is enabled and STUB_MODE=false.",
              "format": "string",
              "isSecret": true,
              "name": "UNIFI_ACCESS_API_KEY"
            },
            {
              "default": "12445",
              "description": "HTTPS port for the Access hub. Defaults to 12445 (the direct Access app port).",
              "format": "string",
              "name": "UNIFI_ACCESS_PORT"
            },
            {
              "choices": [
                "file",
                "stdout",
                "syslog"
              ],
              "default": "file",
              "description": "Audit log sink. One of 'file' (default), 'stdout', or 'syslog'. Every tool call is recorded to a JSONL stream with secrets scrubbed.",
              "format": "string",
              "name": "MCP_UNIFI_AUDIT_SINK"
            },
            {
              "default": "audit.jsonl",
              "description": "Path for the audit log file when MCP_UNIFI_AUDIT_SINK=file. Defaults to audit.jsonl in the process CWD.",
              "format": "string",
              "name": "MCP_UNIFI_AUDIT_PATH"
            }
          ],
          "identifier": "ghcr.io/pete-builds/mcp-unifi:0.27.0",
          "registryType": "oci",
          "runtimeHint": "docker",
          "transport": {
            "type": "streamable-http",
            "url": "http://localhost:3714/mcp"
          }
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/pete-builds/mcp-unifi"
      },
      "title": "UniFi Gateway",
      "version": "0.27.0",
      "websiteUrl": "https://pete-builds.github.io/mcp-unifi/"
    }
  },
  "source": "mcp_registry",
  "summary": "Safe-by-default UniFi MCP: Network + Protect + Access, multi-site, dry-run, audit log."
}

What the leaf hashes

{"body":"01b5f2eab075ac897f5c9b4db3411df2c2049c1cd9ba2113fff3dce27e9c15a8","id":45678,"kind":"listing","method":"baseline/1","observed_us":1793025406862066,"prev":null,"subject":"mcp_registry:io.github.pete-builds/unifi","subject_kind":"source_record"}

Proof

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

  1. 0xd3651bac85e338cd78d6d2421de70a7e555b9a8bd1b245566e4f0a1099702c6e
  2. 0x86cffdc37fc9743a0b0645fa4c4841a57d5fe518c470b73bb55dcc95e1499616
  3. 0x60eef31093a408c97da69d9936b3d56e849a3326b8d16ff22c99d59eed0ada53
  4. 0xd75b9b24834c340a82e94ebeab8b0d6b12ac58280345c38600ab2ca856b6e4eb
  5. 0x03ae8f7d48c35b2e6fa223fca34b15cc55a2719e62e23ddb3fb6c30ae0c9374c
  6. 0x3aafdd79d00ce7c172a50a7a7b0b0037814ffd8518bf9affeb0f9c49e50bb2f8
  7. 0x535421c3fbef3e74e2e56f51e50a538bdfe75bd04f335b37ff6c9e5113440c6d
  8. 0x524cbae057f276a559c5440b5fd4f966ed8167d5321a9c6b5ac86d579ef6a8c2
  9. 0x42bbccbb422c591c5e9cc66f160ea72e0ff83629e23fd162fa4cb22d31530292
  10. 0x0834e939cfa9df57864320cb906e871c291dd8cc7aa8327c208c14867fb03a20
  11. 0x14362d8e1df4e5c0cf9c6949986f8f51c6a0b5605b593e145aade16c5f5c871a
  12. 0x9f6b360f1992898cb3f17e45d0bf5a96f946d7eaf9705a57af03c151a407d239
  13. 0x889eefefef2d4457fe6114f397df813a5cbb85011a6f40309b54ddcd4aba3bd1
  14. 0xefabf1105e09cf52c12c58e60cbb5048b9ac3f02631d1816a926e14bdd86fbdf
  15. 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON