Tailscale MCP by usefulapi

io.usefulapi/tailscale

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

Yes, your AI can use this right now.Answered a live MCP handshake in 251 ms with no sign-in needed and exposes 22 tools.

Connect it

Settings → Connectors → Add custom connector
URL: https://tailscale.usefulapi.io/mcp

22 tools, verified live

Pulled straight from the server with tools/list on 2026-10-17.
tailscale_list_devicesread-only

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

tailscale_get_deviceread-only

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

tailscale_list_device_routesread-only

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

tailscale_list_keysread-only

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

tailscale_get_keyread-only

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

tailscale_get_policy_fileread-only

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

tailscale_list_dns_nameserversread-only

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

tailscale_get_dns_preferencesread-only

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

tailscale_list_dns_searchpathsread-only

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

tailscale_get_split_dnsread-only

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

tailscale_list_usersread-only

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

tailscale_get_userread-only

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

tailscale_list_webhooksread-only

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

tailscale_get_tailnet_settingsread-only

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

tailscale_authorize_devicecan modify

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

tailscale_set_device_namecan modify

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

tailscale_set_device_tagscan modify

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

tailscale_expire_device_keycan modify

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.

tailscale_set_device_routescan modify

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

tailscale_create_auth_keycan modify

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

tailscale_delete_keycan modify

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

tailscale_delete_devicecan modify

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

Alternatives in Security

Compare →
Try “Notion”, “Stripe”, “create invoice”, “browser”