About Tailscale MCP by usefulapi
A hosted MCP server for reading and managing a Tailscale tailnet from MCP clients. It covers devices, users, keys, policy, and DNS, with tools for device, route, and auth-key changes.
Key features
- 01List and inspect devices
- 02Read users and tailnet settings
- 03Inspect keys and policy files
- 04Read DNS configuration
- 05Authorize and update devices
- 06Manage routes and auth keys
Use cases
- 01Review devices and users in a tailnet
- 02Inspect DNS settings or policy files
- 03Authorize a device or change its tags
- 04Set device routes or manage auth keys
MCP support
Exposes Tailscale tailnet information and management operations as tools for MCP clients through a hosted endpoint. Users provide a Tailscale API access token during setup; it is stored per user.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://tailscale.usefulapi.io/mcpclaude mcp add --transport http io-usefulapi-tailscale https://tailscale.usefulapi.io/mcp{"mcpServers":{"io-usefulapi-tailscale":{"type":"http","url":"https://tailscale.usefulapi.io/mcp"}}}Open in Cursor{"servers":{"io-usefulapi-tailscale":{"type":"http","url":"https://tailscale.usefulapi.io/mcp"}}}Open in VS Code{"mcpServers":{"io-usefulapi-tailscale":{"type":"http","url":"https://tailscale.usefulapi.io/mcp"}}}{"mcpServers":{"io-usefulapi-tailscale":{"serverUrl":"https://tailscale.usefulapi.io/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
22| Parameter | Type | Required | Description |
|---|---|---|---|
| fields | enum | No | Field set — 'all' returns all fields incl. posture attributes and routes; 'default' is the standard subset.default | all |
Details
From the project READMETailscale 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/mcpto log in. - VS Code: Add to VS Code.
- Cursor and other clients: add the URL as a remote MCP server:
{
"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
| Tool | Type | What it does |
|---|---|---|
tailscale_list_devices | read | List devices |
tailscale_get_device | read | Get device |
tailscale_list_device_routes | read | List device routes |
tailscale_list_keys | read | List keys |
tailscale_get_key | read | Get key |
tailscale_get_policy_file | read | Get policy file |
tailscale_list_dns_nameservers | read | List DNS nameservers |
tailscale_get_dns_preferences | read | Get DNS preferences |
tailscale_list_dns_searchpaths | read | List DNS search paths |
tailscale_get_split_dns | read | Get split DNS |
tailscale_list_users | read | List users |
tailscale_get_user | read | Get user |
tailscale_list_webhooks | read | List webhooks |
tailscale_get_tailnet_settings | read | Get tailnet settings |
tailscale_authorize_device | write | Authorize device |
tailscale_set_device_name | write | Set device name |
tailscale_set_device_tags | write | Set device tags |
tailscale_expire_device_key | write | Expire device key |
tailscale_set_device_routes | write | Set device routes |
tailscale_create_auth_key | write | Create auth key |
tailscale_delete_key | write | Delete key |
tailscale_delete_device | write | Delete device |
tailscale_usage_status | meta | Usage status (free-tier meter) |
tailscale_request_feature | meta | Request a missing feature |
tailscale_upgrade | meta | Upgrade to Pro (unlimited*) |
tailscale_cancel_subscription | meta | Cancel 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
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 50 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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.