mcp-tailscale
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TAILSCALE_API_KEY | No | Tailscale API key (from admin console > Settings > Keys). Required if OAuth is not used. | |
| TAILSCALE_API_URL | No | API base URL (override for testing) | https://api.tailscale.com |
| TAILSCALE_TAILNET | No | Tailnet name (e.g., example.com or your org name) | |
| TAILSCALE_TIMEOUT | No | Request timeout in milliseconds | 30000 |
| TAILSCALE_MCP_HOST | No | Host for SSE transport server. | localhost |
| TAILSCALE_MCP_PORT | No | Port for SSE transport server. | 3000 |
| TAILSCALE_MCP_TRANSPORT | No | Transport mode (stdio or sse). Default is stdio. | stdio |
| TAILSCALE_MCP_AUTH_TOKEN | No | Secret token for SSE transport. The server will not start without this if transport is set to sse. | |
| TAILSCALE_OAUTH_CLIENT_ID | No | OAuth client ID (from admin console > Settings > OAuth). Required if API key is not used. | |
| TAILSCALE_OAUTH_CLIENT_SECRET | No | OAuth client secret. Required if API key is not used. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tailscale_device_listA | List all devices in the tailnet. Returns all registered devices with their IP addresses, hostname, OS, and connection status. |
| tailscale_device_getA | Get details of a specific device by its ID. |
| tailscale_device_deleteA | Delete a device from the tailnet. This removes the device and revokes its access. Requires confirm: true. |
| tailscale_device_authorizeA | Authorize a device that is pending approval. Sets the device's authorized status to true. |
| tailscale_device_routes_getB | Get the advertised and enabled subnet routes for a device. |
| tailscale_device_routes_setA | Set the enabled subnet routes for a device. Replaces the current set of enabled routes. |
| tailscale_device_tags_setA | Set ACL tags on a device. Replaces all existing tags. Use an empty array to remove all tags. |
| tailscale_device_posture_getA | Get custom posture attributes for a device. Returns all key-value posture attributes. |
| tailscale_device_posture_setA | Set a custom posture attribute on a device. Creates or updates a single attribute key-value pair. |
| tailscale_device_expireA | Expire a device's key, forcing it to re-authenticate. The device remains in the tailnet but loses connectivity until re-authenticated. This is one-directional — once expired, the device must re-auth. Requires confirm: true. |
| tailscale_device_renameA | Set a custom display name for a device. This changes the device's 'given name' in Tailscale, not the machine hostname. |
| tailscale_dns_nameservers_getA | Get the global DNS nameservers configured for the tailnet. Also returns whether MagicDNS is enabled. |
| tailscale_dns_nameservers_setA | Set the global DNS nameservers for the tailnet. Replaces all existing nameservers. |
| tailscale_dns_searchpaths_getB | Get the DNS search paths configured for the tailnet. |
| tailscale_dns_searchpaths_setA | Set the DNS search paths for the tailnet. Replaces all existing search paths. |
| tailscale_dns_splitdns_getA | Get the split DNS configuration for the tailnet. Returns a map of domain names to their resolver IP addresses. |
| tailscale_dns_splitdns_setB | Update split DNS configuration for the tailnet using a PATCH operation. Provide a map of domain names to resolver IP addresses. Use null values to remove a domain. |
| tailscale_dns_preferences_getA | Get DNS preferences for the tailnet, including MagicDNS status. |
| tailscale_dns_preferences_setA | Set DNS preferences for the tailnet. Toggle MagicDNS on or off. |
| tailscale_acl_getA | Get the current ACL policy for the tailnet as JSON. Returns the full policy including rules, groups, hosts, and tag owners. |
| tailscale_acl_setA | Set (replace) the ACL policy for the tailnet. Requires confirm: true. The entire policy is replaced — provide the complete policy. |
| tailscale_acl_previewA | Preview what the ACL policy would allow for a specific user or IP. Useful for testing before applying changes. |
| tailscale_acl_validateA | Validate an ACL policy without applying it. Returns any errors or warnings found in the policy. |
| tailscale_acl_testB | Run ACL tests defined in the policy's 'tests' field by validating the policy. Returns validation results including test pass/fail outcomes. |
| tailscale_key_listA | List all auth keys for the tailnet. Returns key metadata (but not the secret key values). |
| tailscale_key_getB | Get details of a specific auth key by its ID. |
| tailscale_key_createA | Create a new auth key for the tailnet. Returns the key value — store it securely as it cannot be retrieved again. |
| tailscale_key_deleteA | Delete (revoke) an auth key. Devices already authenticated with this key will not be affected. Requires confirm: true. |
| tailscale_tailnet_settings_getA | Get the tailnet settings including device approval, auto-updates, key expiry, and posture identity collection. |
| tailscale_tailnet_contacts_getA | Get the contact email addresses configured for the tailnet (account, support, and security contacts). |
| tailscale_tailnet_contacts_setA | Update contact email addresses for the tailnet. Requires confirm: true. Provide any combination of account, support, or security contacts. |
| tailscale_tailnet_lock_statusA | Get the Tailnet Lock status. Tailnet Lock allows requiring cryptographic signatures on all node key registrations. |
| tailscale_tailnet_settings_updateA | Update tailnet settings. Requires confirm: true. All settings fields are optional — only provided fields will be updated. |
| tailscale_statusA | Get a summary of the tailnet status including total device count, online/offline counts, and last-seen timestamps. |
| tailscale_api_verifyA | Verify API connectivity and authentication by making a lightweight request to the Tailscale API. |
| tailscale_log_stream_getA | Get the current log streaming configuration for the tailnet. Log types: 'configuration' or 'network'. |
| tailscale_log_stream_setB | Configure log streaming for the tailnet. Requires confirm: true. Streams logs to a specified URL endpoint. |
| tailscale_derp_mapA | Get the custom DERP relay map from the tailnet's ACL policy. Returns the derpMap field from the ACL, or a 'not configured' message if no custom DERP map exists. |
| tailscale_derp_map_setA | Set or update the custom DERP relay map in the tailnet's ACL policy. Requires confirm: true. Custom DERP regions use IDs 900-999. Set omitDefaultRegions: true to replace Tailscale's default relays entirely. |
| tailscale_user_listA | List all users in the tailnet. Optionally filter by type (member/shared) or role (owner/admin/member/auditor/it-admin/network-admin/billing-admin). |
| tailscale_user_getA | Get details for a specific user by their user ID. Returns display name, login, role, status, device count, and last seen. |
| tailscale_webhook_listA | List all webhook endpoints configured for the tailnet. |
| tailscale_webhook_createA | Create a new webhook endpoint. Returns the webhook including the signing secret (only shown once). Event types: nodeCreated, nodeApproved, nodeNeedsApproval, nodeKeyExpiringInOneDay, nodeKeyExpired, nodeDeleted, policyUpdate, userCreated, userDeleted, userApproved, userSuspended, userRestored, userRoleUpdated, subnetIPForwardingNotEnabled, exitNodeIPForwardingNotEnabled. |
| tailscale_webhook_getA | Get details for a specific webhook endpoint by ID. |
| tailscale_webhook_deleteA | Delete a webhook endpoint. Requires confirm: true. |
| tailscale_posture_integration_listA | List all configured third-party posture provider integrations for the tailnet (e.g., CrowdStrike, Intune, Jamf). |
| tailscale_posture_integration_getA | Get details for a specific posture provider integration by ID. |
| tailscale_posture_integration_createA | Create a new third-party posture provider integration. Supported providers: crowdstrike, falcon, intune, jamfPro, kandji, kolide, sentinelone. Required fields depend on the provider. |
| tailscale_posture_integration_deleteA | Delete a posture provider integration. Requires confirm: true. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/itunified-io/mcp-tailscale'
If you have feedback or need assistance with the MCP directory API, please join our Discord server