Skip to content
VS Code

Tailscale for VS Code

io.github.tailscale-mcp/tailscale-mcp

Drive a Tailscale node and its tailnet through the CLI and the control-plane API

client:VS Code transport:stdio runtime:npm

Install Tailscale in VS Code

.vscode/mcp.json

{
  "inputs": [
    {
      "type": "promptString",
      "id": "tailscale-api-key",
      "description": "TAILSCALE_API_KEY",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tailscale-oauth-client-id",
      "description": "TAILSCALE_OAUTH_CLIENT_ID",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tailscale-oauth-client-secret",
      "description": "TAILSCALE_OAUTH_CLIENT_SECRET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tailscale-tailnet",
      "description": "TAILSCALE_TAILNET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tailscale-mcp-preset",
      "description": "TAILSCALE_MCP_PRESET",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tailscale-mcp-allow-write",
      "description": "TAILSCALE_MCP_ALLOW_WRITE",
      "password": true
    },
    {
      "type": "promptString",
      "id": "tailscale-mcp-allow-destructive",
      "description": "TAILSCALE_MCP_ALLOW_DESTRUCTIVE",
      "password": true
    }
  ],
  "servers": {
    "tailscale-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@tailscale-mcp/tailscale-mcp"
      ],
      "env": {
        "TAILSCALE_API_KEY": "${input:tailscale-api-key}",
        "TAILSCALE_OAUTH_CLIENT_ID": "${input:tailscale-oauth-client-id}",
        "TAILSCALE_OAUTH_CLIENT_SECRET": "${input:tailscale-oauth-client-secret}",
        "TAILSCALE_TAILNET": "${input:tailscale-tailnet}",
        "TAILSCALE_MCP_PRESET": "${input:tailscale-mcp-preset}",
        "TAILSCALE_MCP_ALLOW_WRITE": "${input:tailscale-mcp-allow-write}",
        "TAILSCALE_MCP_ALLOW_DESTRUCTIVE": "${input:tailscale-mcp-allow-destructive}"
      }
    }
  }
}

VS Code prompts for each input the first time the server starts, so no secret is written to the file. VS Code docs

Tailscale in other clients