Skip to content
Agentmart
Submit a tool

Tailscale MCP Server

Tailscale MCP server for managing your tailnet from AI assistants

Connector by YawLabs · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 34
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/yawlabs-tailscale-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Tailscale MCP server for managing your tailnet from AI assistants

Use cases: identity-access, cloud-management

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
48 read · 33 write · 23 delete
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 104

Read from the source code; the running server may list different tools.

Read 48 · Look things up without changing anything.

  • tailscale_diff_acl_access
  • tailscale_get_acl
  • tailscale_get_audit_log
  • tailscale_get_contacts
  • tailscale_get_device
  • tailscale_get_device_invite
  • tailscale_get_device_posture_attributes
  • tailscale_get_device_routes
  • tailscale_get_dns_configuration
  • tailscale_get_dns_preferences
  • tailscale_get_key
  • tailscale_get_log_stream_config
Show 36 more tools
  • tailscale_get_log_stream_status
  • tailscale_get_nameservers
  • tailscale_get_network_flow_logs
  • tailscale_get_oauth_app
  • tailscale_get_posture_integration
  • tailscale_get_search_paths
  • tailscale_get_service
  • tailscale_get_service_device_approval
  • tailscale_get_split_dns
  • tailscale_get_tailnet_settings
  • tailscale_get_user
  • tailscale_get_user_invite
  • tailscale_get_webhook
  • tailscale_list_device_invites
  • tailscale_list_devices
  • tailscale_list_keys
  • tailscale_list_log_stream_configs
  • tailscale_list_oauth_apps
  • tailscale_list_org_tailnets
  • tailscale_list_posture_integrations
  • tailscale_list_service_hosts
  • tailscale_list_services
  • tailscale_list_user_invites
  • tailscale_list_users
  • tailscale_list_webhooks
  • tailscale_local_service_list
  • tailscale_local_status
  • tailscale_local_version
  • tailscale_local_whoami
  • tailscale_netcheck
  • tailscale_ping
  • tailscale_preview_acl
  • tailscale_status
  • tailscale_tool_groups
  • tailscale_validate_acl
  • tailscale_validate_aws_trust_policy

Write 33 · Create, change, send or run things.

  • tailscale_accept_device_invite
  • tailscale_approve_user
  • tailscale_authorize_device
  • tailscale_batch_update_posture_attributes
  • tailscale_create_aws_external_id
  • tailscale_create_device_invite
  • tailscale_create_key
  • tailscale_create_oauth_app
  • tailscale_create_org_tailnet
  • tailscale_create_posture_integration
  • tailscale_create_user_invite
  • tailscale_create_webhook
Show 21 more tools
  • tailscale_rename_device
  • tailscale_resend_contact_verification
  • tailscale_resend_device_invite
  • tailscale_resend_user_invite
  • tailscale_restore_user
  • tailscale_rotate_webhook_secret
  • tailscale_set_contacts
  • tailscale_set_device_ip
  • tailscale_set_device_posture_attribute
  • tailscale_set_dns_preferences
  • tailscale_set_log_stream_config
  • tailscale_set_service_device_approval
  • tailscale_test_webhook
  • tailscale_update_device_key
  • tailscale_update_key
  • tailscale_update_posture_integration
  • tailscale_update_service
  • tailscale_update_split_dns
  • tailscale_update_tailnet_settings
  • tailscale_update_user_role
  • tailscale_update_webhook

Delete 23 · Delete, drop, revoke or wipe things.

  • tailscale_deauthorize_device
  • tailscale_delete_device
  • tailscale_delete_device_invite
  • tailscale_delete_device_posture_attribute
  • tailscale_delete_key
  • tailscale_delete_log_stream_config
  • tailscale_delete_oauth_app
  • tailscale_delete_posture_integration
  • tailscale_delete_service
  • tailscale_delete_tailnet
  • tailscale_delete_user
  • tailscale_delete_user_invite
Show 11 more tools
  • tailscale_delete_webhook
  • tailscale_expire_device
  • tailscale_set_device_routes
  • tailscale_set_device_tags
  • tailscale_set_devices_authorized
  • tailscale_set_dns_configuration
  • tailscale_set_nameservers
  • tailscale_set_search_paths
  • tailscale_set_split_dns
  • tailscale_suspend_user
  • tailscale_update_acl

Network hosts it talks to 9

  • api.github.com · found in code
  • api.tailscale.com · found in code
  • biomejs.dev · found in code
  • console.tailscale.com · found in code
  • github.com · found in code
  • oamjs.org · found in code
  • tailscale.com · found in code
  • token.actions.githubusercontent.com · found in code
  • yaw.sh · found in code

Files it touches

  • /opt/homebrew/bin/tailscale
  • /proc/version
  • Your home directory (~)
  • ~/yaw/homebrew-yaw
  • ~/yaw/scoop-yaw
  • C:\\Windows

Tools (104)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • tailscale_accept_device_inviteAccept device invite

    Accept a device share invitation using the invite URL or code.

  • tailscale_approve_userApprove user

    Approve a pending user, granting them access to the tailnet.

  • tailscale_authorize_deviceAuthorize device

    Authorize a device that is pending authorization.

  • tailscale_batch_update_posture_attributesBatch update posture attributes

    Batch update custom posture attributes across multiple devices. Each attribute key must start with 'custom:'. Uses JSON Merge Patch semantics -- pass null as the attribute config to delete.

  • tailscale_create_aws_external_idCreate AWS external ID

    Create or get the AWS external ID Tailscale presents when assuming your IAM role for S3 log streaming. Put it in the role trust policy's sts:ExternalId condition, then check it with tailscale_validate_aws_trust_policy.

  • tailscale_create_device_inviteCreate device invite

    Create a device share invitation that allows an external user to access a specific device in your tailnet.

  • tailscale_create_keyCreate key

    Create a new key in your tailnet. Supports auth keys (for adding devices), OAuth clients (for programmatic API access), and federated identities (for OIDC-based CI/CD access). Returns the key value -- save it immediately, as it cannot be retrieved again. SECURITY: the response body contains a long-lived credential verbatim. MCP clients commonly persist tool responses to logs and conversation transcripts; treat this response as sensitive (do not commit it, avoid re-sharing it in unrelated chat history). Examples: - Auth key: {keyType:'auth', reusable:true, tags:['tag:ci']} - OAuth client: {ke…

  • tailscale_create_oauth_appCreate OAuth app

    Create an OAuth App for device provisioning (Tailscale alpha). Lets a third-party application enroll a device into your tailnet via the authorization-code flow, after a user consents. Returns the app's client secret -- save it immediately, it cannot be retrieved again. SECURITY: the response body contains a long-lived credential verbatim. MCP clients commonly persist tool responses to logs and conversation transcripts; treat this response as sensitive. Use scope 'auth_keys:create:once' (one auth key per authorization, no refresh token) -- the scope Tailscale's device-provisioning guide docum…

  • tailscale_create_org_tailnetCreate organization tailnet

    Create a new API-only tailnet in your organization. Returns the tailnet (id, displayName, orgId, dnsName, createdAt) AND a freshly-minted OAuth client for it. SECURITY: the response body contains that OAuth client's secret verbatim, and it cannot be retrieved again. MCP clients commonly persist tool responses to logs and conversation transcripts; treat this response as sensitive. Requires an OAuth client with the 'tailnets' scope -- an API key will not work. To then operate on the new tailnet, set TAILSCALE_OAUTH_TAILNET to its id and use an OAuth client with the 'all' scope. Organizations …

  • tailscale_create_posture_integrationCreate posture integration

    Create a new device posture integration.

  • tailscale_create_user_inviteCreate user invite

    Create a new user invite that allows someone to join your tailnet.

  • tailscale_create_webhookCreate webhook

    Create a new webhook. The response includes the webhook's signing secret -- this is the only opportunity to capture it; save it immediately. Set providerType when the endpoint is a Slack, Mattermost, Google Chat or Discord incoming-webhook URL, so the events arrive in the format that provider renders. SECURITY: the response body contains the secret verbatim. MCP clients commonly persist tool responses to logs and conversation transcripts; treat this response as sensitive.

  • tailscale_deauthorize_deviceDeauthorize devicecan change or delete data

    Deauthorize a device, immediately removing its access to the tailnet. The device will need to be re-authorized to reconnect.

  • tailscale_delete_deviceDelete devicecan change or delete data

    Permanently remove a device from the tailnet. This is irreversible -- the device must re-authenticate to rejoin.

  • tailscale_delete_device_inviteDelete device invitecan change or delete data

    Delete a device invite. This is irreversible -- the invite link will stop working.

Show 89 more tools
  • tailscale_delete_device_posture_attributeDelete device posture attributecan change or delete data

    Delete a custom posture attribute from a device. This is irreversible.

  • tailscale_delete_keyDelete keycan change or delete data

    Delete a key (auth key, API access token, OAuth client, or federated identity). This is irreversible. For auth keys, devices already authenticated are unaffected but no new devices can use it. For OAuth clients and federated identities, any integrations using them lose access immediately. API access tokens are deletable here too: if keyId is the token this server authenticates with -- it shows up in tailscale_list_keys under API-key auth -- the server revokes its own credential and every later call fails with 401 until it is reconfigured.

  • tailscale_delete_log_stream_configDelete log stream configcan change or delete data

    Delete a log streaming configuration. Logs will stop being sent to the configured destination.

  • tailscale_delete_oauth_appDelete OAuth appcan change or delete data

    Delete an OAuth App (Tailscale alpha). This is irreversible: the app's client secret stops working immediately and any integration using it loses its device-enrollment path, so no further device can be authorized through it. Devices already enrolled stay in the tailnet, exactly as they do when the auth key that added them is deleted. Use tailscale_list_oauth_apps to find the id.

  • tailscale_delete_posture_integrationDelete posture integrationcan change or delete data

    Delete a posture integration. This is irreversible.

  • tailscale_delete_serviceDelete servicecan change or delete data

    Delete a Tailscale Service. This is irreversible -- the service's MagicDNS name and virtual IP will be released.

  • tailscale_delete_tailnetDelete tailnetcan change or delete data

    Permanently delete a tailnet. This is IRREVERSIBLE and removes every device, user, ACL, and key in it. By default it acts on the tailnet the current credentials point at (TAILSCALE_TAILNET, or TAILSCALE_OAUTH_TAILNET when targeting an API-only tailnet). Pass `tailnet` to name a different one -- e.g. an id returned by tailscale_list_org_tailnets -- which requires credentials scoped to reach it; UNVERIFIED against a live tailnet, so expect a 403/404 if your token cannot. You must always pass `confirmTailnet` matching the effective target exactly; the call is refused locally otherwise. That chec…

  • tailscale_delete_userDelete usercan change or delete data

    Delete a user from the tailnet. This is irreversible -- the user and all their devices will be removed.

  • tailscale_delete_user_inviteDelete user invitecan change or delete data

    Delete a user invite. This is irreversible -- the invite link will stop working.

  • tailscale_delete_webhookDelete webhookcan change or delete data

    Delete a webhook. This is irreversible -- the webhook secret cannot be recovered.

  • tailscale_diff_acl_accessDiff ACL accessread-only

    Answer 'who loses access?' before applying an ACL change. Compares the CURRENT policy against a proposed one and reports, per user, which destinations they gain and lose. Run this before tailscale_update_acl -- validate_acl only checks syntax and the policy's own tests block, so a policy with no tests validates clean while revoking everyone. LIMITS, all reported in the response rather than left to be discovered. It compares USER principals only, so a revocation that runs through a tag or group can show a clean diff, and an empty result is never proof a change is safe. Posture DEFINITION change…

  • tailscale_expire_deviceExpire device keycan change or delete data

    Expire a device's key, forcing it to re-authenticate.

  • tailscale_get_aclGet ACL policyread-only

    Get the current ACL policy for your tailnet. Returns the raw policy text with original formatting preserved, including comments and trailing commas (HuJSON). Also returns an ETag -- you must pass it to tailscale_update_acl to safely update the policy.

  • tailscale_get_audit_logGet audit logread-only

    Get the tailnet audit/configuration log. Shows who changed what and when -- useful for troubleshooting and compliance. Optional actor, target and event filters narrow the query server-side, so a targeted question doesn't have to pull the whole window.

  • tailscale_get_contactsGet contactsread-only

    Get the tailnet contact information (security, support, admin emails).

  • tailscale_get_deviceGet deviceread-only

    Get detailed information about a specific device by its ID. Returns the default field subset unless fields: 'all'. 'lastSeen' is omitted while a device is connected (connectedToControl: true) and for devices that have never been online -- on a connected device a missing lastSeen means online now, not never seen.

  • tailscale_get_device_inviteGet device inviteread-only

    Get details for a specific device invite.

  • tailscale_get_device_posture_attributesGet device posture attributesread-only

    Get all posture attributes for a device, including custom and system-managed attributes.

  • tailscale_get_device_routesGet device routesread-only

    Get the subnet routes a device advertises and which are enabled.

  • tailscale_get_dns_configurationGet DNS configuration (unified)read-only

    Get the unified DNS configuration for your tailnet, including nameservers, search paths, split DNS, and MagicDNS preference in a single call.

  • tailscale_get_dns_preferencesGet DNS preferencesread-only

    Get DNS preferences for your tailnet, including whether MagicDNS is enabled.

  • tailscale_get_keyGet keyread-only

    Get details for a specific key (auth key, API access token, OAuth client, or federated identity). A revoked or expired key is still returned, with `invalid: true`.

  • tailscale_get_log_stream_configGet log stream configread-only

    Get the log streaming configuration for a specific log type.

  • tailscale_get_log_stream_statusGet log stream statusread-only

    Get the status of log streaming for a specific log type. Shows whether logs are being delivered successfully.

  • tailscale_get_nameserversGet nameserversread-only

    Get the DNS nameservers configured for your tailnet.

  • tailscale_get_network_flow_logsGet network flow logsread-only

    Get network traffic flow logs showing connections between devices. Shows source/destination nodes, timestamps, and traffic metadata -- useful for security monitoring and debugging connectivity.

  • tailscale_get_oauth_appGet OAuth appread-only

    Get an OAuth App's configuration (name, redirect URIs, scopes) by its app ID. Use this to verify an app was registered as intended. The client secret is not returned -- it is only available at creation time.

  • tailscale_get_posture_integrationGet posture integrationread-only

    Get details for a specific device posture integration.

  • tailscale_get_search_pathsGet DNS search pathsread-only

    Get the DNS search paths configured for your tailnet.

  • tailscale_get_serviceGet serviceread-only

    Get details for a specific Tailscale Service, including its MagicDNS name, virtual IP, and configuration.

  • tailscale_get_service_device_approvalGet service device approvalread-only

    Get the approval status of a specific device for a Tailscale Service.

  • tailscale_get_split_dnsGet split DNSread-only

    Get the split DNS configuration for your tailnet.

  • tailscale_get_tailnet_settingsGet tailnet settingsread-only

    Get your tailnet settings (device approval, key expiry, HTTPS certificates, etc.).

  • tailscale_get_userGet userread-only

    Get details for a specific user.

  • tailscale_get_user_inviteGet user inviteread-only

    Get details for a specific user invite.

  • tailscale_get_webhookGet webhookread-only

    Get details for a specific webhook.

  • tailscale_list_device_invitesList device invitesread-only

    List all device invites for a specific device.

  • tailscale_list_devicesList devicesread-only

    List all devices in your tailnet with their status, IP addresses, OS, and last seen time. 'lastSeen' is omitted while a device is connected (connectedToControl: true) and for devices that have never been online -- on a connected device a missing lastSeen means online now, not never seen.

  • tailscale_list_keysList keysread-only

    List keys in your tailnet: auth keys, API access tokens, OAuth clients and federated identities. Without 'all', what comes back depends on the credential this server runs on -- a user-owned API key sees only that user's keys (including the API access token the server itself is using, keyType 'api'); an OAuth-client token sees the tailnet's OAuth clients; a federated-identity token sees its federated identities. Set 'all' to true for the tailnet-wide list (needs the matching :read scopes; only 'all:read' and 'all' return every API access token).

  • tailscale_list_log_stream_configsList log stream configsread-only

    List all log streaming configurations for your tailnet. Fetches both 'configuration' (audit) and 'network' (flow) log stream configs. Log streaming sends logs to external destinations like Axiom, Datadog, Splunk, Elasticsearch, or S3.

  • tailscale_list_oauth_appsList OAuth appsread-only

    List the OAuth Apps registered in your tailnet (Tailscale alpha). Returns an `oauthApps` array describing each app (id, name, redirect URIs, scopes). Client secrets are NOT included -- a secret is only returned once, by tailscale_create_oauth_app at creation time. This is how you recover the id of an app you did not record; pass that id to tailscale_delete_oauth_app to revoke it.

  • tailscale_list_org_tailnetsList organization tailnetsread-only

    List the tailnets in your organization, including API-only tailnets created via the API. Paginated: returns at most `limit` results (Tailscale defaults to 100) plus a `cursor`. Pass that cursor back to fetch the next page; an empty cursor in the response means you have reached the end. Requires OAuth authentication.

  • tailscale_list_posture_integrationsList posture integrationsread-only

    List all device posture integrations configured for your tailnet.

  • tailscale_list_service_hostsList service hostsread-only

    List devices hosting a specific Tailscale Service.

  • tailscale_list_servicesList servicesread-only

    List all Tailscale Services in your tailnet. Services provide stable MagicDNS names and virtual IPs, decoupled from individual devices. Note: this MCP has no create-service tool. The API documents its Service PUT as create-or-update, but tailscale_update_service sends only the fields you pass, so do not use it to create one. Use the update/delete/approval tools here once the service exists.

  • tailscale_list_user_invitesList user invitesread-only

    List the open (not yet accepted) user invites for your tailnet. Accepted invites are not returned.

  • tailscale_list_usersList usersread-only

    List all users in your tailnet.

  • tailscale_list_webhooksList webhooksread-only

    List all webhooks configured for your tailnet.

  • tailscale_local_service_listTailscale service list (local)read-only

    List the Tailscale Services visible to THIS node. Complements the admin-side service tools (tailscale_list_services etc.), which report what the tailnet has configured -- this reports what this machine can actually see and reach, which is the difference that matters when debugging a service that 'exists' but is unreachable. Requires tailscale >= 1.102.1; returns the CLI's text output verbatim.

  • tailscale_local_statusLocal tailscale statusread-only

    Get this machine's view of its tailnet -- own connection state, peers it can see, DERP region, MagicDNS suffix, etc. Shells out to the local `tailscale` binary; distinct from `tailscale_status`, which queries the admin API for tailnet-wide info. Read a peer's path in decision order: direct when `CurAddr` is set, peer-relayed when `PeerRelay` is set, otherwise DERP via the region named in `Relay`. `Relay` is the peer's home DERP region and is populated either way, so a non-empty `Relay` on its own does not mean the traffic is relayed. The `Peer` map is what makes this response scale with the ta…

  • tailscale_local_versionTailscale CLI versionread-only

    Get the version of the local `tailscale` binary. Different from the control plane / admin API version. Use this when filing a bug to report the client version actually in use.

  • tailscale_local_whoamiTailscale whoamiread-only

    Show which Tailscale user and device this machine is currently authenticated as. Useful for confirming an agent host is enrolled under the identity you expect before trusting its access. Requires tailscale >= 1.102.1; returns the CLI's text output verbatim.

  • tailscale_netcheckTailscale netcheckread-only

    Run Tailscale's network connectivity diagnostics from this machine: NAT type, DERP region latency map, IPv4/IPv6 support, UPnP/PMP/PCP status. Equivalent to `tailscale netcheck --format=json`. Useful when an agent reports flaky connectivity and you want to know whether to point fingers at the NAT, the upstream, or DERP.

  • tailscale_pingTailscale pingread-only

    Probe latency to another tailnet node from this machine. Useful for connectivity debugging -- shows whether the path is direct or DERP-relayed, plus RTT. Returns the CLI's text output verbatim.

  • tailscale_preview_aclPreview ACL rulesread-only

    Preview the ACL rules that would apply to a specific user or IP address if a proposed policy were applied.

  • tailscale_rename_deviceRename device

    Set the name of a device in the tailnet, or reset it to its OS hostname.

  • tailscale_resend_contact_verificationResend contact verification

    Resend the verification email for a tailnet contact.

  • tailscale_resend_device_inviteResend device invite

    Resend a device invite email.

  • tailscale_resend_user_inviteResend user invite

    Resend a user invite email.

  • tailscale_restore_userRestore user

    Restore a previously suspended user, re-granting them access to the tailnet.

  • tailscale_rotate_webhook_secretRotate webhook secret

    Rotate a webhook's secret. Returns the new secret -- save it immediately, as it cannot be retrieved again. The old secret is immediately invalidated. SECURITY: the response body contains the secret verbatim. MCP clients commonly persist tool responses to logs and conversation transcripts; treat this response as sensitive.

  • tailscale_set_contactsSet contacts

    Update tailnet contact information. Each provided contact type (account/support/security) is PATCHed in parallel; per-type errors are returned alongside the successes so a partial failure doesn't lose the work that succeeded. On partial failure the response is data: { applied, failed } -- inspect data.failed for per-type error details.

  • tailscale_set_device_ipSet device IP

    Set the Tailscale IPv4 address for a device.

  • tailscale_set_device_posture_attributeSet device posture attribute

    Set a custom posture attribute on a device. Creates or updates the attribute. Attribute keys must start with 'custom:'. Useful for compliance tracking, JIT access, and custom security policies.

  • tailscale_set_device_routesSet device routescan change or delete data

    Set the enabled subnet routes for a device. Replaces all currently enabled routes -- pass the full list of routes you want enabled.

  • tailscale_set_device_tagsSet device tagscan change or delete data

    Set ACL tags on a device. Replaces all existing tags -- pass the full list of tags you want applied.

  • tailscale_set_devices_authorizedSet devices authorized (bulk)can change or delete data

    Authorize or deauthorize multiple devices in one call. Each device's POST runs in parallel; per-device errors are returned alongside the successes so a partial failure doesn't lose the work that succeeded. On partial failure the call still returns success (ok) with data: { authorized, succeeded, failed } -- inspect data.failed for the per-device errors. POSTs are never retried, so on a large batch a rate-limited device lands in data.failed with status 429: re-call with just those ids, or set TAILSCALE_MAX_CONCURRENT to cap requests in flight. Common use: authorize a batch of newly-enrolled CI …

  • tailscale_set_dns_configurationSet DNS configuration (unified)can change or delete data

    Set the unified DNS configuration for your tailnet in a single call. Replaces all DNS settings (nameservers, search paths, split DNS, MagicDNS preference). This is a replace-all endpoint: pass every top-level field you want to keep, because a field you omit may be cleared rather than left alone.

  • tailscale_set_dns_preferencesSet DNS preferences

    Set DNS preferences for your tailnet, such as enabling or disabling MagicDNS. The API reference says enabling can fail when the tailnet has no nameservers; if it does, add one with tailscale_set_nameservers first.

  • tailscale_set_log_stream_configSet log stream config

    Set the log streaming configuration for a specific log type. Configures where logs are sent (e.g. Axiom, Datadog, Splunk, Elasticsearch, S3). Per-destination required fields: - splunk / elastic / panther / cribl / datadog / axiom: url + token (user optional) - s3: s3Bucket + s3Region + s3AuthenticationType, plus either (s3AccessKeyId + s3SecretAccessKey) for 'accesskey' auth or s3RoleArn for 'rolearn' auth. Call tailscale_create_aws_external_id first when using 'rolearn'.

  • tailscale_set_nameserversSet nameserverscan change or delete data

    Set the DNS nameservers for your tailnet. Replaces all existing nameservers. Removing every nameserver may also change MagicDNS: the API reference says it is switched off, while Tailscale's current MagicDNS docs say a nameserver is no longer required -- check `magicDNS` in the response.

  • tailscale_set_search_pathsSet DNS search pathscan change or delete data

    Set the DNS search paths for your tailnet. Replaces all existing search paths.

  • tailscale_set_service_device_approvalSet service device approval

    Approve or reject a device to host a Tailscale Service.

  • tailscale_set_split_dnsSet split DNScan change or delete data

    Set split DNS configuration. Maps domains to specific nameservers. Replaces the entire split DNS configuration: a domain you leave out is removed, and an empty object clears every domain. Per the API reference, setting a domain to null clears that domain's nameservers.

  • tailscale_statusCheck API statusread-only

    Check that the Tailscale API connection is working. Returns your tailnet name, device count, and confirms authentication is valid. Use this to verify setup.

  • tailscale_suspend_userSuspend usercan change or delete data

    Suspend a user, immediately revoking their access to the tailnet. Their devices will be disconnected. Can be reversed with tailscale_restore_user.

  • tailscale_test_webhookTest webhook

    Send a test event to a webhook endpoint to verify it is configured correctly and receiving events.

  • tailscale_tool_groupsExplain available toolsread-only

    Explain which of this server's tools are available and why. Call this FIRST when a Tailscale tool you expected is missing, instead of assuming the capability does not exist -- tools can be withheld by configuration, and the fix is usually one environment variable. Pass `toolName` to ask about one specific tool (e.g. 'tailscale_delete_device'): the answer distinguishes 'no such tool exists' -- where you should find another approach -- from 'it exists but its group is not loaded' and 'it exists and loaded but writes are withheld there', both of which the operator can enable and neither of which …

  • tailscale_update_aclUpdate ACL policycan change or delete data

    Update the ACL policy for your tailnet. Accepts the full policy as a string to preserve formatting, comments, and trailing commas (HuJSON). You MUST pass the ETag from tailscale_get_acl to prevent overwriting concurrent changes, or `ts-default` for the first write to a tailnet nobody has edited yet. Always get the current ACL first, make targeted edits to the text, and pass the full modified text back.

  • tailscale_update_device_keyUpdate device key

    Update a device's key settings, such as disabling key expiry. Useful for servers that should never need to re-authenticate.

  • tailscale_update_keyUpdate key

    Update an existing key. Supported fields depend on the key type: all key types accept 'description'; OAuth clients and federated identities additionally accept 'scopes' and 'tags'; federated identities additionally accept 'issuer', 'subject', 'audience', and 'customClaimRules'. For auth keys, pass only 'description' -- the Tailscale API will reject other fields.

  • tailscale_update_posture_integrationUpdate posture integration

    Update an existing posture integration's credentials or configuration.

  • tailscale_update_serviceUpdate service

    Update a Tailscale Service's configuration.

  • tailscale_update_split_dnsUpdate split DNS (partial)

    Partially update split DNS configuration. Merges the provided domains with the existing config -- only the specified domains are changed, others are untouched. To remove a domain, set it to null: that is the idiom the API reference documents. An empty array is also accepted and forwarded as-is -- it is what Tailscale's Terraform provider sends.

  • tailscale_update_tailnet_settingsUpdate tailnet settings

    Update tailnet settings (device approval, auto-updates, key expiry, HTTPS certificates, network flow logging, regional routing, posture identity collection).

  • tailscale_update_user_roleUpdate user role

    Update a user's role in the tailnet.

  • tailscale_update_webhookUpdate webhook

    Update an existing webhook's endpoint URL and/or subscriptions.

  • tailscale_validate_aclValidate ACL policyread-only

    Validate an ACL policy without applying it. Returns any errors found, or confirms the policy is valid.

  • tailscale_validate_aws_trust_policyValidate AWS trust policyread-only

    Validate that an AWS IAM role trust policy is correctly configured with the Tailscale external ID. Use this after setting up the IAM role for S3 log streaming.

Signals

Stars
34
Forks
4
Open issues
0
Contributors
3
Last commit
Oct 22, 2026 (6 days ago)
Last release
Oct 9, 2026 (19 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.YawLabs/tailscale-mcp
Version
0.23.0
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from YawLabs

Cite this page

Tailscale MCP Server. Agent Mart. https://agentmart.dev/connectors/yawlabs-tailscale-mcp (last updated 2026-10-24)