← The evidence ledger
Evidence row 53027
Observed , by baseline/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.tailscale-mcp/tailscale-mcp
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- c62929db70f1739522f6d2232f302a249df541e0e9122713126b108551f00f93
- Leaf
- 0x32a8cdd9dc06d8bf91a97cbd6409d9b925123efce5753918119b26c90e3b5816
What was observed
{
"endpoints": [
[
"web",
"https://github.com/tailscale-mcp/tailscale-mcp"
]
],
"name": "Tailscale",
"owner_address": null,
"raw": {
"_meta": {
"io.modelcontextprotocol.registry/official": {
"isLatest": true,
"publishedAt": "2026-10-26T09:15:56.405652Z",
"status": "active",
"statusChangedAt": "2026-10-26T09:15:56.405652Z",
"updatedAt": "2026-10-26T09:15:56.405652Z"
}
},
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"description": "Drive a Tailscale node and its tailnet through the CLI and the control-plane API",
"name": "io.github.tailscale-mcp/tailscale-mcp",
"packages": [
{
"environmentVariables": [
{
"description": "A control-plane API access token. One of this, the OAuth client pair, or the OAuth JWT file is needed for the tailnet tools; without any of them only the local tools are offered.",
"isSecret": true,
"name": "TAILSCALE_API_KEY"
},
{
"description": "An OAuth client id, used with TAILSCALE_OAUTH_CLIENT_SECRET when there is no API access token.",
"name": "TAILSCALE_OAUTH_CLIENT_ID"
},
{
"description": "The OAuth client secret that goes with TAILSCALE_OAUTH_CLIENT_ID.",
"isSecret": true,
"name": "TAILSCALE_OAUTH_CLIENT_SECRET"
},
{
"description": "The tailnet the control-plane tools act on. Without it they act on the one the credential belongs to.",
"name": "TAILSCALE_TAILNET"
},
{
"choices": [
"minimal",
"core",
"full"
],
"default": "core",
"description": "Which tools are offered: minimal, core or full.",
"name": "TAILSCALE_MCP_PRESET"
},
{
"choices": [
"true",
"false"
],
"default": "false",
"description": "Offer the tools that change something. Read-only without it.",
"name": "TAILSCALE_MCP_ALLOW_WRITE"
},
{
"choices": [
"true",
"false"
],
"default": "false",
"description": "Offer the tools that remove or sever something. Implies the write tier.",
"name": "TAILSCALE_MCP_ALLOW_DESTRUCTIVE"
}
],
"identifier": "@tailscale-mcp/tailscale-mcp",
"registryType": "npm",
"transport": {
"type": "stdio"
},
"version": "2.0.5"
},
{
"environmentVariables": [
{
"description": "A control-plane API access token. One of this, the OAuth client pair, or the OAuth JWT file is needed for the tailnet tools; without any of them only the local tools are offered.",
"isSecret": true,
"name": "TAILSCALE_API_KEY"
},
{
"description": "An OAuth client id, used with TAILSCALE_OAUTH_CLIENT_SECRET when there is no API access token.",
"name": "TAILSCALE_OAUTH_CLIENT_ID"
},
{
"description": "The OAuth client secret that goes with TAILSCALE_OAUTH_CLIENT_ID.",
"isSecret": true,
"name": "TAILSCALE_OAUTH_CLIENT_SECRET"
},
{
"description": "The tailnet the control-plane tools act on. Without it they act on the one the credential belongs to.",
"name": "TAILSCALE_TAILNET"
},
{
"choices": [
"minimal",
"core",
"full"
],
"default": "core",
"description": "Which tools are offered: minimal, core or full.",
"name": "TAILSCALE_MCP_PRESET"
},
{
"choices": [
"true",
"false"
],
"default": "false",
"description": "Offer the tools that change something. Read-only without it.",
"name": "TAILSCALE_MCP_ALLOW_WRITE"
},
{
"choices": [
"true",
"false"
],
"default": "false",
"description": "Offer the tools that remove or sever something. Implies the write tier.",
"name": "TAILSCALE_MCP_ALLOW_DESTRUCTIVE"
}
],
"identifier": "ghcr.io/tailscale-mcp/tailscale-mcp:2.0.5",
"registryType": "oci",
"transport": {
"type": "stdio"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/tailscale-mcp/tailscale-mcp"
},
"title": "Tailscale",
"version": "2.0.5",
"websiteUrl": "https://github.com/tailscale-mcp/tailscale-mcp"
}
},
"source": "mcp_registry",
"summary": "Drive a Tailscale node and its tailnet through the CLI and the control-plane API"
}What the leaf hashes
{"body":"c62929db70f1739522f6d2232f302a249df541e0e9122713126b108551f00f93","id":53027,"kind":"listing","method":"baseline/1","observed_us":1793025422036355,"prev":null,"subject":"mcp_registry:io.github.tailscale-mcp/tailscale-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).
- 0x32a93aeadd6b07433ffff379c9b3db08d17c22a249f4444c76327b300eb1f0d3
- 0x167cdf8c30a533ddacd596737e416788bd81845d32fffa53a5c6721e752aaeee
- 0x723ae1da8ef983ce5626fa5e827c2a3e235f81c0b52aa7d93d72a24ed757d67b
- 0xe88516526066aacf2d5692653c09e4cfd8c1a3b8e6ca22451b09eda45ef00cb6
- 0x65fd58b132ce6db88f1d9c0bcf6e543e47b17ccd38012d9c5f6a84a8a56378de
- 0x1661004fae6df761458cc037cdbebeff1c50ccc144eae2a20e3d2c17a718661c
- 0xc433e82379d339ad4172ca1fcb66d1479d2239785e80c55e7fa6d80992746131
- 0x705a0353aa1c202ca092d0c69a1b98aac1e72ed092c7163fcdce9560cd8af9a9
- 0x0fb78d244a20004e04fbe01ec70f9831d44d86237b0382453ead0323c4df9ae8
- 0xa0ebaa287767d7a753bad9278ae53729c65e45e91f8c870e598e2a5eef743e57
- 0xc99ea26556ddad6b2fde7887de8c0190d3a7c645402227c5a281ba47e02a67e5
- 0x2f4617d7a962f32849050ad5649d9dc4f962fd8618073cfa8519e6f862dfcef8
- 0x08de74b7fb265ddb83e4c673da8a94e5f71829b2e6e7464c71c5138e450f2217
- 0x4338355a835617a26aa0bfcc971e84eb030d84e2aa840e3c8af958921dd080c7
- 0x610738e0c43687aded83c613c73de8b5226c73c375858a167436461c522ea213
- 0x06d71bfa7d8b41d62c8836efc2c601e1cc3772d9453596b2ae4950887f3310ca
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae