Home / Token cost / Tailscale

The Tailscale MCP server costs 10,834 tokens before the first call.

Connect Tailscale and its 89 tool definitions are loaded into the model's context on every request — 5.4% of a 200k window spent before your agent does anything.

QUICK ANSWER The Tailscale MCP server's tool definitions consume 10,834 tokens — 5.7× the median MCP server (1,905 tokens). A scoped grant exposing only the tools you use cuts that roughly in proportion.

MEASURED FROM SCHEMAS 89 tools · 10,834 tokens · 5.4% of 200k · 1.1% of 1M Method →

What that buys before your agent starts working.

Tool definitions are overhead: they occupy context on every request and compete with your code, documents and conversation history for the same window.

200K WINDOW 5.4%
1M WINDOW 1.1%

Corpus context: Tailscale ranks #158 of 3,213 measured MCP servers by definition cost. The median is 1,905 tokens, p90 is 7,952, and the heaviest (Fusionauth) is 183,337 — 92% of a 200k window on its own.

Where the 10,834 tokens go.

Each row is one tool definition as a tools/list entry — name, description and input schema — counted with o200k_base. Average: 122 tokens per tool.

ToolCategoryTokens% of server
tailscale_set_log_stream_config Write 632 5.8%
tailscale_create_key Write 570 5.3%
tailscale_set_contacts Write 379 3.5%
tailscale_update_key Write 314 2.9%
tailscale_update_tailnet_settings Write 307 2.8%
tailscale_batch_update_posture_attributes Write 269 2.5%
tailscale_create_posture_integration Write 257 2.4%
tailscale_list_devices Read 238 2.2%
tailscale_create_device_invite Write 218 2.0%
tailscale_update_webhook Write 207 1.9%
tailscale_set_device_ip Write 204 1.9%
tailscale_set_device_posture_attribute Write 186 1.7%
tailscale_create_webhook Write 182 1.7%
tailscale_update_service Write 176 1.6%
tailscale_create_user_invite Write 175 1.6%
tailscale_set_dns_configuration Write 173 1.6%
tailscale_update_acl Write 171 1.6%
tailscale_preview_acl Read 158 1.5%
tailscale_update_posture_integration Write 158 1.5%
tailscale_set_devices_authorized Write 156 1.4%
tailscale_update_split_dns Write 151 1.4%
tailscale_set_device_routes Write 139 1.3%
tailscale_set_split_dns Write 137 1.3%
tailscale_get_network_flow_logs Read 130 1.2%
tailscale_list_users Read 123 1.1%
tailscale_get_audit_log Read 122 1.1%
tailscale_set_device_tags Write 121 1.1%
tailscale_delete_key Destructive 120 1.1%
tailscale_list_services Read 118 1.1%
tailscale_validate_aws_trust_policy Read 116 1.1%
tailscale_set_service_device_approval Write 112 1.0%
tailscale_update_device_key Write 104 1.0%
tailscale_set_nameservers Write 102 0.9%
tailscale_update_user_role Write 102 0.9%
tailscale_delete_device_posture_attribute Destructive 99 0.9%
tailscale_get_log_stream_status Read 98 0.9%
tailscale_rename_device Write 95 0.9%
tailscale_list_keys Read 94 0.9%
tailscale_set_search_paths Write 94 0.9%
tailscale_list_log_stream_configs Read 93 0.9%
tailscale_rotate_webhook_secret Write 92 0.8%
tailscale_delete_log_stream_config Destructive 90 0.8%
tailscale_get_log_stream_config Read 89 0.8%
tailscale_get_service_device_approval Read 89 0.8%
tailscale_get_acl Read 87 0.8%
tailscale_get_key Read 85 0.8%
tailscale_suspend_user Write 85 0.8%
tailscale_deauthorize_device Read 84 0.8%
tailscale_delete_device Destructive 81 0.7%
tailscale_resend_contact_verification Read 81 0.7%
tailscale_delete_service Destructive 80 0.7%
tailscale_delete_user Destructive 78 0.7%
tailscale_get_device Read 77 0.7%
tailscale_test_webhook Read 77 0.7%
tailscale_get_service Read 76 0.7%
tailscale_validate_acl Read 76 0.7%
tailscale_delete_device_invite Destructive 75 0.7%
tailscale_delete_user_invite Destructive 75 0.7%
tailscale_delete_webhook Destructive 74 0.7%
tailscale_create_aws_external_id Write 73 0.7%
tailscale_restore_user Write 73 0.7%
tailscale_set_dns_preferences Write 73 0.7%
tailscale_get_device_posture_attributes Read 72 0.7%
tailscale_expire_device Read 70 0.6%
tailscale_accept_device_invite Write 70 0.6%
tailscale_approve_user Write 70 0.6%
tailscale_delete_posture_integration Destructive 69 0.6%
tailscale_list_device_invites Read 69 0.6%
tailscale_get_device_routes Read 68 0.6%
tailscale_status Read 68 0.6%
tailscale_get_dns_configuration Read 67 0.6%
tailscale_get_posture_integration Read 67 0.6%
tailscale_resend_device_invite Write 67 0.6%
tailscale_resend_user_invite Write 67 0.6%
tailscale_authorize_device Read 65 0.6%
tailscale_get_device_invite Read 65 0.6%
tailscale_get_user_invite Read 65 0.6%
tailscale_list_service_hosts Read 65 0.6%
tailscale_get_webhook Read 64 0.6%
tailscale_get_user Read 61 0.6%
tailscale_get_tailnet_settings Read 57 0.5%
tailscale_get_dns_preferences Read 53 0.5%
tailscale_get_contacts Read 52 0.5%
tailscale_list_posture_integrations Read 51 0.5%
tailscale_get_nameservers Read 49 0.5%
tailscale_get_search_paths Read 49 0.5%
tailscale_get_split_dns Read 48 0.4%
tailscale_list_user_invites Read 48 0.4%
tailscale_list_webhooks Read 48 0.4%

Most agents use a handful of these tools. They pay for all 89.

A PolicyLayer grant exposes only the tools you allow — ungranted definitions are filtered out of the tool list, so they never enter the context window. Estimates below assume typical-weight tools (122 tokens each).

Grant scopeDefinition costReduction
All 89 tools (no gateway) 10,834 tokens
3 granted tools ~365 tokens −97%
5 granted tools ~609 tokens −94%
10 granted tools ~1,217 tokens −89%

Tailscale token-cost questions.

How many tokens does the Tailscale MCP server use?+

Its 89 tool definitions total 10,834 tokens — 5.4% of a 200k context window — measured with tiktoken o200k_base over the serialised tools/list payload. Exact counts vary slightly by client and model.

Why does Tailscale consume tokens before I send a message?+

MCP clients load every connected server's tool definitions — name, description, and input schema — into the model's context so it knows what it can call. That payload is charged against your context window on every request, whether or not a tool is used.

How do I reduce Tailscale's token usage?+

Expose fewer tools. A PolicyLayer grant scopes Tailscale to only the tools you allow — ungranted definitions are filtered out of the tool list, so they never enter the context window. A grant of 3 typical tools costs roughly 365 tokens, a 97% reduction.

Does deferred tool loading fix this?+

Partially, in some clients. Claude Code defers MCP tool schemas behind a tool-search step by default, and VS Code has experimental grouping — but you still pay tokens per search and reload, and Cursor, Windsurf and Gemini CLI load definitions upfront. Reducing the exposed tool set cuts the cost in every client.

How these numbers were measured.

01
Serialisation

Each tool is serialised as a tools/list entry — name, description, input schema — from the schemas in the PolicyLayer scan database. Clients differ slightly in framing, so treat counts as close estimates.

02
Tokeniser

tiktoken o200k_base (GPT-4o/o-series). Anthropic's current tokeniser isn't published, so Claude's exact counts will differ; for English text and JSON schemas the totals are close enough to treat these as estimates.

03
Deferred loading

Some clients now defer schema loading (Claude Code's tool search; VS Code experimental grouping). You still pay per search and reload — and Cursor, Windsurf and Gemini CLI load everything upfront.

Computed 07-06-2026 from the PolicyLayer scan database over all 89 catalogued Tailscale tools. Counts refresh with every site build.

Expose only the tools you use — the rest never enter your context.

A PolicyLayer grant scopes Tailscale to the tools you actually allow. Ungranted definitions never load, and every call that does run is checked against policy first.

Free to start. No card required.

4,600+ MCP servers and 31,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.