← 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).
- 0xd3651bac85e338cd78d6d2421de70a7e555b9a8bd1b245566e4f0a1099702c6e
- 0x86cffdc37fc9743a0b0645fa4c4841a57d5fe518c470b73bb55dcc95e1499616
- 0x60eef31093a408c97da69d9936b3d56e849a3326b8d16ff22c99d59eed0ada53
- 0xd75b9b24834c340a82e94ebeab8b0d6b12ac58280345c38600ab2ca856b6e4eb
- 0x03ae8f7d48c35b2e6fa223fca34b15cc55a2719e62e23ddb3fb6c30ae0c9374c
- 0x3aafdd79d00ce7c172a50a7a7b0b0037814ffd8518bf9affeb0f9c49e50bb2f8
- 0x535421c3fbef3e74e2e56f51e50a538bdfe75bd04f335b37ff6c9e5113440c6d
- 0x524cbae057f276a559c5440b5fd4f966ed8167d5321a9c6b5ac86d579ef6a8c2
- 0x42bbccbb422c591c5e9cc66f160ea72e0ff83629e23fd162fa4cb22d31530292
- 0x0834e939cfa9df57864320cb906e871c291dd8cc7aa8327c208c14867fb03a20
- 0x14362d8e1df4e5c0cf9c6949986f8f51c6a0b5605b593e145aade16c5f5c871a
- 0x9f6b360f1992898cb3f17e45d0bf5a96f946d7eaf9705a57af03c151a407d239
- 0x889eefefef2d4457fe6114f397df813a5cbb85011a6f40309b54ddcd4aba3bd1
- 0xefabf1105e09cf52c12c58e60cbb5048b9ac3f02631d1816a926e14bdd86fbdf
- 0xe94ca5b798e9899ad611e57835af42266e20f53f44977e487d81365e30972beb
- 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
- 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae