{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.0.1","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.0.1","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.0.1","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-05T05:05:01.392222Z","publishedAt":"2026-09-05T05:05:01.392222Z","updatedAt":"2026-09-05T05:05:01.392222Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.0.2","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.0.2","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.0.2","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-05T08:02:57.995023Z","publishedAt":"2026-09-05T08:02:57.995023Z","updatedAt":"2026-09-05T08:02:57.995023Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.0.3","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.0.3","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.0.3","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-05T16:05:24.363584Z","publishedAt":"2026-09-05T16:05:24.363584Z","updatedAt":"2026-09-05T16:05:24.363584Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.0.4","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.0.4","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.0.4","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-05T22:22:08.860692Z","publishedAt":"2026-09-05T22:22:08.860692Z","updatedAt":"2026-09-05T22:22:08.860692Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.1.0","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.1.0","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.1.0","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-06T02:58:32.965505Z","publishedAt":"2026-09-06T02:58:32.965505Z","updatedAt":"2026-09-06T02:58:32.965505Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.2.0","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.2.0","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.2.0","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-06T09:03:59.603848Z","publishedAt":"2026-09-06T09:03:59.603848Z","updatedAt":"2026-09-06T09:03:59.603848Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.2.1","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.2.1","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.2.1","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-06T12:55:18.868082Z","publishedAt":"2026-09-06T12:55:18.868082Z","updatedAt":"2026-09-06T12:55:18.868082Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.2.2","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.2.2","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.2.2","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-07T01:00:11.922981Z","publishedAt":"2026-09-07T01:00:11.922981Z","updatedAt":"2026-09-07T01:00:11.922981Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.3.0","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.3.0","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.3.0","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-07T10:44:16.747699Z","publishedAt":"2026-09-07T10:44:16.747699Z","updatedAt":"2026-09-07T10:44:16.747699Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.tailscale-mcp/tailscale-mcp","description":"Drive a Tailscale node and its tailnet through the CLI and the control-plane API","title":"Tailscale","repository":{"url":"https://github.com/tailscale-mcp/tailscale-mcp","source":"github"},"version":"1.3.1","websiteUrl":"https://github.com/tailscale-mcp/tailscale-mcp","packages":[{"registryType":"npm","identifier":"@tailscale-mcp/tailscale-mcp","version":"1.3.1","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]},{"registryType":"oci","identifier":"ghcr.io/tailscale-mcp/tailscale-mcp:1.3.1","transport":{"type":"stdio"},"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"},{"description":"Which tools are offered: minimal, core or full.","default":"core","choices":["minimal","core","full"],"name":"TAILSCALE_MCP_PRESET"},{"description":"Offer the tools that change something. Read-only without it.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_WRITE"},{"description":"Offer the tools that remove or sever something. Implies the write tier.","default":"false","choices":["true","false"],"name":"TAILSCALE_MCP_ALLOW_DESTRUCTIVE"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-07T13:51:40.355074Z","publishedAt":"2026-09-07T13:51:40.355074Z","updatedAt":"2026-09-07T13:51:40.355074Z","isLatest":true}}}],"metadata":{"count":10}}
