LeashIndex Get the report

Index / messaging

Tailscale MCP Server

io-github-yawlabs-tailscale-mcp declares 98 capabilities across 98 tools, with 2 critical issues.

100/100 exposureHigh exposure

Manifest recorded 2026-10-14 from tools/list answered by the npm package @yawlabs/tailscale-mcp@0.23.0 (published to npm as @yawlabs/tailscale-mcp, listed in the official MCP registry as io.github.YawLabs/tailscale-mcp 0.23.0), run in an isolated container with no network access and no credentials. The date changes only when the manifest does. Not verified by a maintainer.

Issues

These describe what this server's manifest declares. A product can provide controls that MCP has no way to express — token revocation, an admin console, audit logs — and this page cannot see them. The absence of a declaration is not evidence that a control is absent.

critical · no-revocation · All 98 tools

98 of 98 tools declare no way for the customer to switch them off once granted. This applies to every tool because MCP has no field in which to declare a revocation mechanism; the product may provide one outside MCP that a manifest cannot show.

critical · irreversible-uncapped · 27 of 98 tools

27 tools are classified as irreversible and declare no limit.

high · no-expiry · All 98 tools

98 of 98 tools declare no expiry. This applies to every tool because MCP has no field in which to declare an expiry; the product may provide one outside MCP that a manifest cannot show.

high · no-audit-trail · All 98 tools

98 of 98 tools declare no record of their actions that the customer can read. This applies to every tool because MCP has no field in which to declare an audit requirement; the product may provide one outside MCP that a manifest cannot show.

high · uncapped-write · 29 of 98 tools

29 tools can modify data and declare no limit.

low · uncapped-read · 42 of 98 tools

42 tools can read data and declare no limit.

Declared capabilities

How each tool was read. declared means the server's own annotation said so — self-reported and unverified. inferred is from the tool's name. assumed means nothing indicated either way.

ToolRead asBasis
tailscale_tool_groupsread declared
tailscale_statusread declared
tailscale_list_devicesread declared
tailscale_get_deviceread declared
tailscale_authorize_devicewrite assumed
tailscale_deauthorize_devicedestructive declared
tailscale_delete_devicedestructive declared
tailscale_rename_devicewrite inferred
tailscale_expire_devicedestructive declared
tailscale_get_device_routesread declared
tailscale_set_device_routesdestructive declared
tailscale_get_device_posture_attributesread declared
tailscale_set_device_posture_attributewrite inferred
tailscale_delete_device_posture_attributedestructive declared
tailscale_set_device_tagsdestructive declared
tailscale_set_device_ipwrite inferred
tailscale_update_device_keywrite inferred
tailscale_set_devices_authorizeddestructive declared
tailscale_batch_update_posture_attributeswrite inferred
tailscale_get_aclread declared
tailscale_update_acldestructive declared
tailscale_validate_aclread declared
tailscale_preview_aclread declared
tailscale_diff_acl_accessread declared
tailscale_get_nameserversread declared
tailscale_set_nameserversdestructive declared
tailscale_get_search_pathsread declared
tailscale_set_search_pathsdestructive declared
tailscale_get_split_dnsread declared
tailscale_set_split_dnsdestructive declared
tailscale_get_dns_preferencesread declared
tailscale_set_dns_preferenceswrite inferred
tailscale_update_split_dnswrite inferred
tailscale_get_dns_configurationread declared
tailscale_set_dns_configurationdestructive declared
tailscale_list_keysread declared
tailscale_get_keyread declared
tailscale_create_keywrite inferred
tailscale_delete_keydestructive declared
tailscale_update_keywrite inferred
tailscale_create_oauth_appwrite inferred
tailscale_get_oauth_appread declared
tailscale_list_oauth_appsread declared
tailscale_delete_oauth_appdestructive declared
tailscale_list_usersread declared
tailscale_get_userread declared
tailscale_approve_userwrite inferred
tailscale_suspend_userdestructive declared
tailscale_restore_userwrite assumed
tailscale_update_user_rolewrite inferred
tailscale_delete_userdestructive declared
tailscale_get_tailnet_settingsread declared
tailscale_update_tailnet_settingswrite inferred
tailscale_get_contactsread declared
tailscale_set_contactswrite inferred
tailscale_resend_contact_verificationsend inferred
tailscale_list_org_tailnetsread declared
tailscale_create_org_tailnetwrite inferred
tailscale_delete_tailnetdestructive declared
tailscale_list_webhooksread declared
tailscale_get_webhookread declared
tailscale_create_webhookwrite inferred
tailscale_update_webhookwrite inferred
tailscale_delete_webhookdestructive declared
tailscale_rotate_webhook_secretwrite assumed
tailscale_test_webhooksend inferred
tailscale_list_posture_integrationsread declared
tailscale_get_posture_integrationread declared
tailscale_create_posture_integrationwrite inferred
tailscale_update_posture_integrationwrite inferred
tailscale_delete_posture_integrationdestructive declared
tailscale_get_audit_logread declared
tailscale_get_network_flow_logsread declared
tailscale_list_device_invitesread declared
tailscale_create_device_invitewrite inferred
tailscale_get_device_inviteread declared
tailscale_delete_device_invitedestructive declared
tailscale_accept_device_invitewrite assumed
tailscale_list_user_invitesread declared
tailscale_create_user_invitewrite inferred
tailscale_get_user_inviteread declared
tailscale_delete_user_invitedestructive declared
tailscale_resend_device_invitesend inferred
tailscale_resend_user_invitesend inferred
tailscale_list_servicesread declared
tailscale_get_serviceread declared
tailscale_update_servicewrite inferred
tailscale_delete_servicedestructive declared
tailscale_list_service_hostsread declared
tailscale_get_service_device_approvalread declared
tailscale_set_service_device_approvalwrite inferred
tailscale_list_log_stream_configsread declared
tailscale_get_log_stream_configread declared
tailscale_set_log_stream_configwrite inferred
tailscale_delete_log_stream_configdestructive declared
tailscale_get_log_stream_statusread declared
tailscale_create_aws_external_idwrite inferred
tailscale_validate_aws_trust_policyread declared
Answering this question about your own agent? The self-serve stack report applies the same reading to your own stack or server and gives you a dated document you can hand to a customer's security review. It is generated in your browser, with nobody to wait for. Buying one does not change this page, its score or its place in the index — see Independence.
Maintain this server? If this page misreads your manifest, or your server has changed, submit its current tools/list response and it will be re-scored and dated. Corrections are published alongside the original, not in place of it.