Tailscale MCP Server logo

Tailscale MCP Server

Manage Tailscale devices, ACL policies, DNS settings, posture data, and other tailnet administration tasks through MCP.

Install Tailscale MCP Server

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "tailscale-mcp-server-2": {
      "command": "npx",
      "args": [
        "-y",
        "@yawlabs/tailscale-mcp@latest"
      ],
      "env": {
        "TAILSCALE_API_KEY": "YOUR_VALUE_HERE",
        "TAILSCALE_MAX_CONCURRENT": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

Install not yet sandbox-tested— the server itself is confirmed live (we called its tools/list endpoint). The stdio install command is a separate, ongoing check.

Overview

Tailscale MCP Server exposes Tailscale's v2 administration API to MCP-compatible clients over stdio. It lets agents inspect and manage devices, routes, posture attributes, ACLs, DNS configuration, and related tailnet settings using structured tools. Reach for it when an agent needs to combine multiple Tailscale administration steps rather than run isolated CLI commands. Authentication uses a Tailscale API key supplied through the environment.

Use cases

  • List devices that have not checked in recently
  • Review and safely update tailnet ACL policies
  • Authorize or deauthorize groups of devices
  • Configure tailnet DNS and split DNS settings
  • Track device posture attributes for compliance workflows

Key features

  • Tailscale v2 administration API access over MCP
  • Device lifecycle, route, tag, key, and posture management
  • ACL validation, preview, access-diff, and update tools
  • Tailnet nameserver, search path, and split DNS controls
  • Batch device authorization and posture updates
  • Configurable tool groups with availability diagnostics

Tools98

What Tailscale MCP Server lets your agent do. Expand a tool for its parameters.

Verified live~16.2k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

9/9 checks healthy over the last 44d

What it can do

From the 98 tools this server returned when we ran it; 98 declare their own safety hints.

Can delete or modify data · 25Handles credentials · 15Makes network requests · 97Read-only tools · 73
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceNot published
Package age204 days
Maintainers1

Observed 2026-10-25 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 14d ago via OSV.dev · @yawlabs/tailscale-mcp@latest (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars35Stargazers on the source repository.
npm downloads2.1kPackage downloads in the last 30 days.
Last commit12d agoMost recent push to the default branch.
Tools exposed98Callable tools this server registers over MCP.

How Tailscale MCP Server works

What Tailscale MCP Server does

Tailscale MCP Server connects an MCP client to the Tailscale v2 administration API. Its tool surface covers tailnet operations such as device inventory, device authorization, key settings, subnet routes, ACL policies, DNS configuration, and device posture attributes.

Read operations can return device status, IP addresses, operating systems, connection details, ACL text, ETags, DNS settings, and posture data. Write operations can authorize, deauthorize, rename, expire, or delete devices; change tags and routes; update posture attributes; modify ACL policy text; and replace DNS settings.

The server is suited to interactive administration through an AI assistant. An agent can inspect the current state, make a targeted change, and use validation or preview tools before applying policy changes.

How it works

The server runs as a local stdio process started with npx. MCP clients send typed tool calls to that process, which authenticates to Tailscale with TAILSCALE_API_KEY and makes requests to the administration API.

tailscale_status verifies the connection and reports the tailnet name and device count. tailscale_tool_groups is always available and explains which tool groups are loaded, including environment changes that can restore withheld groups or write access.

ACL updates require a read-before-write workflow. Retrieve the current policy with tailscale_get_acl, preserve the returned HuJSON text, and pass its ETag to tailscale_update_acl. tailscale_validate_acl, tailscale_preview_acl, and tailscale_diff_acl_access provide checks before applying a change. The access-diff operation can be truncated and reports skipped or failed comparisons, so its result should be read together with those status fields.

Several mutation tools replace complete collections rather than merging them. Device tags, enabled subnet routes, nameservers, search paths, and split DNS configuration should therefore be sent as the full desired state.

Setup and configuration

Create a Tailscale API key in the Tailscale Admin Console and expose it to the MCP client as TAILSCALE_API_KEY. A project-level .mcp.json can launch the package with:

config.json
{
  "mcpServers": {
    "tailscale": {
      "command": "npx",
      "args": ["-y", "@yawlabs/tailscale-mcp@latest"]
    }
  }
}

On Windows, launch npx through cmd /c because npx is a .cmd executable. Restart the MCP client and approve the server when prompted. The server is intended for clients that support stdio MCP connections.

Tools and capabilities

  • Check API authentication and inspect tool-group availability.
  • List devices and retrieve detailed information by device ID.
  • Authorize, deauthorize, delete, rename, or expire devices.
  • Change device tags, IPv4 addresses, key settings, routes, and posture attributes.
  • Apply authorization or posture updates across multiple devices.
  • Read, validate, preview, compare, and update ACL policies.
  • Read and replace nameservers, search paths, and split DNS mappings.

ACL policy updates require the ETag returned by the corresponding read operation, or ts-default for an initial write to an unedited tailnet. Device deletion and posture-attribute deletion are irreversible actions.

Limitations and notes

The server speaks stdio rather than a URL-addressable Streamable HTTP or SSE transport. API access depends on the permissions and validity of the configured Tailscale API key. Device and DNS setters that replace collections can remove entries omitted from the request. Batch authorization runs requests in parallel and can return partial failures; inspect the failed-device data and retry only the unsuccessful items when appropriate.

A connected device may omit lastSeen; in that case, connectedToControl: true indicates that it is online. An omitted value can also represent a device that has never connected, so the surrounding device fields must be considered.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Tailscale MCP Server

Tailscale MCP Server is an MCP server that connects AI assistants to the Tailscale v2 administration API. Its main tools manage devices, routes, tags, keys, posture attributes, ACL policies, nameservers, search paths, and split DNS settings, while also providing status, validation, preview, and access-diff operations.

Install it by adding an MCP configuration that runs `npx -y @yawlabs/tailscale-mcp@latest`. Set `TAILSCALE_API_KEY` where the client can read it, restart the client, and approve the server. On Windows, invoke `npx` through `cmd /c`.

Set the key in the `TAILSCALE_API_KEY` environment variable. Create the key from Tailscale Admin Console under Settings and Keys, then expose it through the MCP client's environment configuration or your shell profile.

Read the current ACL first, then pass its ETag and the complete modified HuJSON policy to `tailscale_update_acl`. Use `tailscale_validate_acl`, `tailscale_preview_acl`, and `tailscale_diff_acl_access` before applying the change to check syntax, effective access, and user-level access changes.

Yes, Tailscale MCP Server works with Cursor because it uses the standard stdio MCP connection supported by the client. Add the server's `npx` command and `TAILSCALE_API_KEY` to the MCP configuration, then restart Cursor and approve the server.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewTailscale MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/tailscale-mcp-server-2?style=directory)](https://allmcps.com/mcp/tailscale-mcp-server-2)
HTML Embed
<a href="https://allmcps.com/mcp/tailscale-mcp-server-2"><img src="https://allmcps.com/api/badge/tailscale-mcp-server-2?style=directory" alt="Tailscale MCP Server on AllMCPs" /></a>