Tailscale MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.36.3Updated Nov 7, 2026

Read devices, users, keys, ACLs and DNS for a tailnet; manage devices, routes and auth keys.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableCloud & InfrastructureSecurity & Monitoring

Overview

AI-generated overview

Hosted MCP server for Tailscale that lets an assistant read devices, users, keys, ACLs and DNS in a tailnet and manage devices, routes and auth keys.

What you can do
  • List and inspect devices, their advertised and enabled subnet routes, and tailnet users
  • Read auth keys and API tokens, including capabilities, expiry and usage
  • Read the ACL policy file, DNS nameservers, search paths, split DNS, preferences and tailnet settings
  • List configured webhook endpoints
  • Authorize or de-authorize devices, rename them, replace their tags, enable routes, expire node keys and delete devices
  • Create and revoke auth keys, and check usage or manage the subscription plan
When to use it
Useful when you want to audit or administer a Tailscale tailnet from a chat client without installing anything: checking for stale devices, reviewing users and roles, finding keys near expiry, or performing device and key changes during incident response.
Requirements
Remote endpoint reached over streamable HTTP; no local install. Sign-in uses OAuth, and on first connect you supply your own Tailscale API access token from the admin console, optionally scoped to a tailnet. No API key or Authorization header goes in the client config. A free plan allows 50 tool calls per month; paid plans raise the limit.
Before you install
Several tools change or delete data: authorizing devices, renaming, replacing tags, replacing enabled routes, expiring node keys, creating and revoking auth keys, and deleting devices. Tag and route tools replace existing values rather than merging. Your Tailscale API token is stored per-user by the third-party host, which proxies all calls to Tailscale. Paid plans involve payment through a checkout link, and cancellation gives no refund for the current period.

Installation

In SourceWeft

  1. Open Tailscale MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Ftailscale/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "tailscale-by-usefulapi": {
      "type": "http",
      "url": "https://tailscale.usefulapi.io/mcp"
    }
  }
}

README

Tailscale MCP by usefulapi

Use your Tailscale account from Claude, Cursor, or any MCP client — read devices, users, keys, ACLs and DNS for a tailnet, and manage devices, routes and auth keys. Hosted, no local install: connect with your own credentials.

Live endpoint: https://tailscale.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://tailscale.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http tailscale https://tailscale.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "tailscale": {      "url": "https://tailscale.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Tailscale credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/tailscale/

On first connect you'll provide your Tailscale API access token (admin console → Settings → Keys), optionally scoped to a tailnet. It is validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
tailscale_list_devicesreadList devices
tailscale_get_devicereadGet device
tailscale_list_device_routesreadList device routes
tailscale_list_keysreadList keys
tailscale_get_keyreadGet key
tailscale_get_policy_filereadGet policy file
tailscale_list_dns_nameserversreadList DNS nameservers
tailscale_get_dns_preferencesreadGet DNS preferences
tailscale_list_dns_searchpathsreadList DNS search paths
tailscale_get_split_dnsreadGet split DNS
tailscale_list_usersreadList users
tailscale_get_userreadGet user
tailscale_list_webhooksreadList webhooks
tailscale_get_tailnet_settingsreadGet tailnet settings
tailscale_authorize_devicewriteAuthorize device
tailscale_set_device_namewriteSet device name
tailscale_set_device_tagswriteSet device tags
tailscale_expire_device_keywriteExpire device key
tailscale_set_device_routeswriteSet device routes
tailscale_create_auth_keywriteCreate auth key
tailscale_delete_keywriteDelete key
tailscale_delete_devicewriteDelete device
tailscale_usage_statusmetaUsage status (free-tier meter)
tailscale_request_featuremetaRequest a missing feature
tailscale_upgrademetaUpgrade to Pro or Pro+
tailscale_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with tailscale_upgrade (it returns a Stripe Checkout link). Cancel any time with tailscale_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running tailscale_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/tailscale/README.md at commit 4046075

Tools

22

tailscale_list_devices

List devices

List all devices in the tailnet (name, addresses, OS, last seen, tags, etc.). Tailscale REST: GET /tailnet/{tailnet}/devices.

Parametersfields

tailscale_get_device

Get device

Get a single device by id. Tailscale REST: GET /device/{deviceId}.

ParametersfieldsdeviceIdrequired

tailscale_list_device_routes

List device routes

List the subnet routes a device advertises and which are enabled. Tailscale REST: GET /device/{deviceId}/routes.

ParametersdeviceIdrequired

tailscale_list_keys

List keys

List auth keys and API access tokens for the tailnet. Tailscale REST: GET /tailnet/{tailnet}/keys.

Parametersall

tailscale_get_key

Get key

Get details of a single auth key / API access token by id (capabilities, expiry, usage). Tailscale REST: GET /tailnet/{tailnet}/keys/{keyId}.

ParameterskeyIdrequired

tailscale_get_policy_file

Get policy file

Get the tailnet's ACL / policy file (returned as JSON via the Accept header, not HuJSON). Tailscale REST: GET /tailnet/{tailnet}/acl.

Parametersdetails

tailscale_list_dns_nameservers

List DNS nameservers

List the global DNS nameservers configured for the tailnet. Tailscale REST: GET /tailnet/{tailnet}/dns/nameservers.

Takes no parameters.

tailscale_get_dns_preferences

Get DNS preferences

Get the tailnet's DNS preferences (e.g. whether MagicDNS is enabled). Tailscale REST: GET /tailnet/{tailnet}/dns/preferences.

Takes no parameters.

tailscale_list_dns_searchpaths

List DNS search paths

List the DNS search paths (search domains) configured for the tailnet. Tailscale REST: GET /tailnet/{tailnet}/dns/searchpaths.

Takes no parameters.

tailscale_get_split_dns

Get split DNS

Get the tailnet's split-DNS configuration — a map of domain → nameservers. Tailscale REST: GET /tailnet/{tailnet}/dns/split-dns.

Takes no parameters.

tailscale_list_users

List users

List users of the tailnet, optionally filtered by type, role or status. Tailscale REST: GET /tailnet/{tailnet}/users.

Parametersroletypestatus

tailscale_get_user

Get user

Get a single user by id. Tailscale REST: GET /users/{userId}.

ParametersuserIdrequired

tailscale_list_webhooks

List webhooks

List the webhook endpoints configured for the tailnet. Tailscale REST: GET /tailnet/{tailnet}/webhooks.

Takes no parameters.

tailscale_get_tailnet_settings

Get tailnet settings

Get the tailnet's settings (device approval, key expiry, posture, etc.). Tailscale REST: GET /tailnet/{tailnet}/settings.

Takes no parameters.

tailscale_authorize_device

Authorize device

Authorize or de-authorize a device (only relevant when device approval is enabled for the tailnet). Tailscale REST: POST /device/{deviceId}/authorized.

ParametersdeviceIdrequiredauthorizedrequired

tailscale_set_device_name

Set device name

Set (rename) a device's name. Tailscale REST: POST /device/{deviceId}/name.

ParametersnamerequireddeviceIdrequired

tailscale_set_device_tags

Set device tags

Set a device's ACL tags. REPLACES the device's existing tags. Tailscale REST: POST /device/{deviceId}/tags.

ParameterstagsrequireddeviceIdrequired

tailscale_expire_device_key

Expire device key

Expire a device's node key, forcing it to re-authenticate — a security response to a compromised or lost device. Tailscale REST: POST /device/{deviceId}/expire.

ParametersdeviceIdrequired

tailscale_set_device_routes

Set device routes

Set the subnet routes ENABLED for a device (from the routes it advertises). REPLACES the enabled set. Tailscale REST: POST /device/{deviceId}/routes.

ParametersroutesrequireddeviceIdrequired

tailscale_create_auth_key

Create auth key

Create a new auth key for the tailnet (used to register new devices). Tailscale REST: POST /tailnet/{tailnet}/keys.

ParameterstagsreusableephemeraldescriptionexpirySecondspreauthorized

tailscale_delete_key

Delete key

Delete (revoke) an auth key or API access token by id — a security response. Tailscale REST: DELETE /tailnet/{tailnet}/keys/{keyId}.

ParameterskeyIdrequired

tailscale_delete_device

Delete device

Delete a device, removing it from the tailnet. Tailscale REST: DELETE /device/{deviceId}.

ParametersdeviceIdrequired

Version history

21
  1. v1.36.3LatestNov 7, 2026
  2. v1.35.3Nov 5, 2026
  3. v1.35.2Nov 5, 2026
  4. v1.35.1Nov 4, 2026
  5. v1.35.0Nov 3, 2026
  6. v1.34.1Nov 3, 2026
  7. v1.33.0Nov 1, 2026
  8. v1.31.0Oct 31, 2026
  9. v1.30.0Oct 31, 2026
  10. v1.29.2Oct 30, 2026
  11. v1.29.0Oct 30, 2026
  12. v1.24.0Oct 26, 2026
  13. v1.21.3Oct 25, 2026
  14. v1.21.0Oct 25, 2026
  15. v1.20.0Oct 24, 2026
  16. v1.17.0Oct 23, 2026
  17. v1.16.4Oct 22, 2026
  18. v1.16.3Oct 21, 2026
  19. v1.11.1Oct 9, 2026
  20. v1.10.0Oct 9, 2026
  21. v1.0.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations