addrbookFor publishers
← The evidence ledger

Evidence row 535635

Observed , by sync.mcp_registry/1.

Kind
listing
About
source_record mcp_registry:io.github.mguttmann/the-real-unifi-mcp
Recorded
Previous row
#512360
Body SHA-256
bca40812f8b1a7065f72d99ccb3b797f0bdacc92c8258ed827570885c14e80dc
Leaf
0x4d464bd4206a33ac9577bb476edfccb299b748ab83fb47220c00b2833445c85d

What was observed

{
  "endpoints": [
    [
      "web",
      "https://github.com/mguttmann/the-real-unifi-mcp"
    ]
  ],
  "name": "UniFi Site Manager and Network (unofficial)",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-10-27T18:55:19.633202Z",
        "status": "active",
        "statusChangedAt": "2026-10-27T18:55:19.633202Z",
        "updatedAt": "2026-10-27T18:55:19.633202Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Unofficial MCP server for the UniFi Site Manager and Network cloud APIs, with a write-confirm guard.",
      "name": "io.github.mguttmann/the-real-unifi-mcp",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "UniFi Site Manager API key with Network scope (unifi.ui.com, Settings > API). It controls your whole network: treat it like an admin password.",
              "format": "string",
              "isRequired": true,
              "isSecret": true,
              "name": "UNIFI_API_KEY"
            },
            {
              "default": "true",
              "description": "Write confirmation: destructive tools return a preview and run only when called again with confirm \"YES\". Only false, 0, no or off turn it off.",
              "format": "boolean",
              "name": "UNIFI_CONFIRM_WRITES"
            },
            {
              "default": "https://api.ui.com",
              "description": "API base URL; this host receives the API key. https origin only (http only for loopback test stubs). Keep the default.",
              "format": "string",
              "name": "UNIFI_API_BASE"
            },
            {
              "default": "30000",
              "description": "Per-request timeout in milliseconds, covering response headers and body.",
              "format": "number",
              "name": "UNIFI_TIMEOUT_MS"
            },
            {
              "choices": [
                "debug",
                "info",
                "warn",
                "error"
              ],
              "default": "info",
              "description": "Log level on stderr: debug, info, warn or error.",
              "format": "string",
              "name": "UNIFI_LOG_LEVEL"
            },
            {
              "description": "Pins the UniFi console instead of discovering it (needed when the account has several consoles).",
              "format": "string",
              "name": "UNIFI_CONSOLE_ID"
            },
            {
              "description": "Pins the Network site instead of discovering it.",
              "format": "string",
              "name": "UNIFI_NETWORK_SITE_ID"
            },
            {
              "description": "Pins the Site Manager site instead of discovering it.",
              "format": "string",
              "name": "UNIFI_SITE_MANAGER_SITE_ID"
            },
            {
              "default": "false",
              "description": "Read-only mode: every write tool returns an error and sends no request; reads still work. Off by default.",
              "format": "boolean",
              "name": "UNIFI_READ_ONLY"
            },
            {
              "default": "false",
              "description": "Masks passwords, WiFi passphrases, pre-shared keys and other secret fields in every tool result with (redacted); write tools refuse a body that contains that placeholder. Off by default.",
              "format": "boolean",
              "name": "UNIFI_REDACT_SECRETS"
            },
            {
              "default": "100000",
              "description": "Cuts tool results longer than this many bytes and marks them as truncated. Unset or empty: 100000. 0, off or none: no cap.",
              "format": "string",
              "name": "UNIFI_MAX_RESULT_BYTES"
            }
          ],
          "identifier": "the-real-unifi-mcp",
          "registryType": "npm",
          "runtimeHint": "npx",
          "transport": {
            "type": "stdio"
          },
          "version": "0.4.0"
        },
        {
          "fileSha256": "2cbdd6b15dd402febb9fe4197eb216ff9a4c310db72cb56dd26b8af1f6d9be02",
          "identifier": "https://github.com/mguttmann/the-real-unifi-mcp/releases/download/v0.4.0/the-real-unifi-mcp-0.4.0.mcpb",
          "registryType": "mcpb",
          "transport": {
            "type": "stdio"
          },
          "version": "0.4.0"
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/mguttmann/the-real-unifi-mcp"
      },
      "title": "UniFi Site Manager and Network (unofficial)",
      "version": "0.4.0",
      "websiteUrl": "https://github.com/mguttmann/the-real-unifi-mcp#readme"
    }
  },
  "source": "mcp_registry",
  "summary": "Unofficial MCP server for the UniFi Site Manager and Network cloud APIs, with a write-confirm guard."
}

What the leaf hashes

{"body":"bca40812f8b1a7065f72d99ccb3b797f0bdacc92c8258ed827570885c14e80dc","id":535635,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793128343425155,"prev":512360,"subject":"mcp_registry:io.github.mguttmann/the-real-unifi-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. 0x4d4613d70f55649b633b846df01e5aae0d06a64c99b25328e67eba50afd3806c
  2. 0xd101df534fa88463b2390b82f449fcc8b33b39bf3fbe88a4256a16a953275a29
  3. 0xafbd9a80f96b2352047600810cba4a36e6b78b6c39921da239348f3088123687
  4. 0xb1916c256a6ce5e474364d2b5e1dcbb007409329ead48f43e1082c45484cafd3
  5. 0x6112017e3fdb558c727e789859dddf30c10c5ddc99a28a5d2f258526505a38bb
  6. 0xa1d6e6e47dacec7cc6552d69feedb95fb7dcff578cf3cc6c0391f8b0b439adfb
  7. 0xc1ff3719a88fa5418694f1900594bb0997208f28828b6e6012d48da5d57c0f82
  8. 0xe38a4009781ca6288fa0aa57579aedb23fe587ca0d63f0811367779be5c44396
  9. 0x3811164146559bfa0686efbe968aa5d5632791b5e52940b748f9faae3d9675e5
  10. 0x9305fa39c0bfbf15674949ab145ca0a40479400bedc3333826053de29a32e9ef
  11. 0x699e1831216ceb5d0324397f8f4f58989765f950328c8adcbcb3a202d688993c
  12. 0xf9b21ec258212225fc012a1ed6399d0ec608e930f4423d2badb8be79550861ef
  13. 0x797da99476c7ebaa971607ae725e5e240b79de9e49d28859b94de107c850aaab
  14. 0x9ea0c6a53f80a30b6f13671109f98a000cf98e581875129f4be4b57131d06364
  15. 0xb78ea6a255dd06e2f402a1a733bca392fa6243920bcba95e8b80bdfc6ce5f553
  16. 0x3ed50f053eca72dfd3a9d45a11935240bfe691e57835c367ddebe2cbc49efe9d
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON