addrbookFor publishers
← The evidence ledger

Evidence row 34625

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.cedricziel/truenas-mcp
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
30f29f101e9964c151a08e493877542f4042aaaba068842b059b701289d75774
Leaf
0xccf40f11ff8d95d9f23160e6fe3f635a90468e3aa374bc172a1f4890e3a93fac

What was observed

{
  "endpoints": [
    [
      "web",
      "https://github.com/cedricziel/truenas-mcp"
    ]
  ],
  "name": "TrueNAS SCALE",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-08-11T21:00:49.889067Z",
        "status": "active",
        "statusChangedAt": "2026-08-11T21:00:49.889067Z",
        "updatedAt": "2026-08-11T21:00:49.889067Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Inspect and manage TrueNAS SCALE storage, shares, apps and system state with your own API key",
      "name": "io.github.cedricziel/truenas-mcp",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "TrueNAS host to manage, optionally `host:port`. Requires TrueNAS SCALE 25.04 or later.",
              "isRequired": true,
              "name": "TRUENAS_MCP_TARGET",
              "placeholder": "nas.local"
            },
            {
              "description": "Serve MCP without TLS. Set here because the listener is published on loopback only; drop it and supply TRUENAS_MCP_TLS_CERT/KEY if the port is reachable from elsewhere.",
              "format": "boolean",
              "name": "TRUENAS_MCP_ALLOW_PLAINTEXT",
              "value": "true"
            },
            {
              "default": "false",
              "description": "Accept the TrueNAS certificate unverified while keeping the connection encrypted. TrueNAS ships a self-signed certificate for `CN=localhost`, so no address you can reach it by will validate.",
              "format": "boolean",
              "name": "TRUENAS_MCP_TARGET_INSECURE"
            },
            {
              "default": "false",
              "description": "Expose the mutating tools. Read-only by default; unrecoverable operations stay unreachable either way.",
              "format": "boolean",
              "name": "TRUENAS_MCP_ENABLE_WRITES"
            }
          ],
          "identifier": "ghcr.io/cedricziel/truenas-mcp:0.4.2",
          "registryType": "oci",
          "runtimeArguments": [
            {
              "description": "Bind the MCP listener to loopback only. Plaintext is enabled below on the assumption that nothing off-host can reach it.",
              "name": "--publish",
              "type": "named",
              "value": "127.0.0.1:8080:8080"
            }
          ],
          "runtimeHint": "docker",
          "transport": {
            "headers": [
              {
                "description": "Your own TrueNAS API key as `Bearer <key>`. Create it under Credentials -> API Keys. The server stores no credential; the session reaches exactly what this key permits.",
                "isRequired": true,
                "isSecret": true,
                "name": "Authorization"
              }
            ],
            "type": "streamable-http",
            "url": "http://localhost:8080/mcp"
          }
        }
      ],
      "repository": {
        "id": "1327728275",
        "source": "github",
        "url": "https://github.com/cedricziel/truenas-mcp"
      },
      "title": "TrueNAS SCALE",
      "version": "0.4.2",
      "websiteUrl": "https://github.com/cedricziel/truenas-mcp#deploying-as-a-truenas-app"
    }
  },
  "source": "mcp_registry",
  "summary": "Inspect and manage TrueNAS SCALE storage, shares, apps and system state with your own API key"
}

What the leaf hashes

{"body":"30f29f101e9964c151a08e493877542f4042aaaba068842b059b701289d75774","id":34625,"kind":"listing","method":"baseline/1","observed_us":1793025371043261,"prev":null,"subject":"mcp_registry:io.github.cedricziel/truenas-mcp","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. 0xccf4158737ee954d5c8d93a1c51a6102118268cc6584c3bca565beed8cc8199d
  2. 0x2c27dbaa9b37117d464aeee7bf3df97b3e797e7c7a60716a46ce154c22fce6fe
  3. 0xe32faaf29f3a381750c1ef0a0411a8eaf85b8be728ecda185238e8955e242f75
  4. 0x696e346dbe52d8d964e37297bb1aab397da7747544b654bcfdfbd9f1cb76bac0
  5. 0x48fae874ac7fae5a1af49c6de27ff430eae21acb8d483de17ddb7bad5b19a619
  6. 0xdee339aac78b7c27b09f16ac6302a4ca815d51db5bb9955b7ee31b0d4450fd4c
  7. 0x5ad84c93e5691ec7df2c1426c6869337a245c321ba3e292df955ca51e4493e08
  8. 0xc6c59994c85870a8cbfd814b9256512c8057337859214df9cb8d729228d74bbc
  9. 0x9a8251a74ddd027a62738e2ca514d7dcd982202c4ad1f5f0a4f81e89ceff0fa6
  10. 0x28f5e3a424e6df882445451ebbb98ea4799c643ef3231cda98518a826f880a47
  11. 0x1233e806ac6f264fea872a85785df4b3024b89e9788bb6dfa89e28944cb30400
  12. 0x85ea84dc356483b05e7ec8ed6e303988684070a1512dc756c8e64a7e3604feaf
  13. 0x985acd37cc044d5aa6ad959194da8e91c81045df83517891ed92f1763a9ab825
  14. 0x5b20d8aab05225a3497eadcce89d2e2a586a510fb31334793d3f46f88f0157c5
  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