Tailscale MCP Server
Integrate with Tailscale's CLI and API for automated network management and monitoring.
Tailscale MCP Server
A Bun-first Model Context Protocol server for operating Tailscale through a private, least-privilege interface.
The default transport is stdio for local MCP clients. Optional HTTP transport
binds to 127.0.0.1 by default and is designed to be exposed privately with
Tailscale Serve or another tailnet-only proxy.
Install
bun install
bun run build
Local MCP Usage
{
"mcpServers": {
"tailscale": {
"command": "bunx",
"args": ["@hexsleeves/tailscale-mcp-server"],
"env": {
"TAILSCALE_OAUTH_CLIENT_ID": "your-client-id",
"TAILSCALE_OAUTH_CLIENT_SECRET": "your-client-secret",
"TAILSCALE_TAILNET": "-"
}
}
}
}
OAuth clients are preferred for automation because they use scoped access and short-lived tokens. API keys remain supported for compatibility:
TAILSCALE_API_KEY=tskey-... bun run src/index.ts
HTTP Mode
HTTP mode requires a bearer token and only accepts localhost or tailnet host headers by default.
export MCP_TRANSPORT=http
export MCP_HTTP_BEARER_TOKEN="$(openssl rand -base64 32)"
export TAILSCALE_OAUTH_CLIENT_ID="your-client-id"
export TAILSCALE_OAUTH_CLIENT_SECRET="your-client-secret"
bun run src/index.ts --http --port 3000 --host 127.0.0.1
Expose it privately through Tailscale Serve:
tailscale serve --bg 443 localhost:3000
Do not use Funnel for normal MCP operation. Funnel makes the service publicly reachable and should require a separate threat review.
Configuration
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | stdio | stdio or http |
MCP_HTTP_BIND_HOST | 127.0.0.1 | HTTP bind host |
MCP_HTTP_PORT | 3000 | HTTP bind port |
MCP_HTTP_BEARER_TOKEN | Required in HTTP mode | |
MCP_ALLOWED_HOSTS | Comma-separated extra allowed HTTP hosts | |
TAILSCALE_TAILNET | - | Tailnet name or - shorthand |
TAILSCALE_API_BASE_URL | https://api.tailscale.com | Tailscale API base URL |
TAILSCALE_OAUTH_CLIENT_ID | Preferred auth method | |
TAILSCALE_OAUTH_CLIENT_SECRET | Preferred auth method | |
TAILSCALE_API_KEY | Compatibility auth method | |
TAILSCALE_ALLOWED_TOOL_RISK | read | read, write, or admin |
TAILSCALE_CLI_PATH | tailscale | Local CLI path |
LOG_LEVEL | info | debug, info, warn, or error |
MCP_SERVER_LOG_FILE | Optional file log path |
Risk levels:
read: read-only tools and resources.write: write operations such as ACL/DNS/route updates.admin: destructive or host-affecting actions such as delete, deauthorize, connect, disconnect, and auth key mutation.
Tools
Stable tool names:
list_devicesdevice_actionmanage_routesget_network_statusconnect_networkdisconnect_networkping_peerget_versionget_tailnet_infomanage_aclmanage_dnsmanage_keysmanage_policy_filemanage_file_sharingmanage_exit_nodesmanage_webhooksmanage_device_tags
Resources
tailscale://tailnet/summarytailscale://devicestailscale://devices/{deviceId}tailscale://acl/current
Prompts
diagnose_tailnet_connectivityreview_acl_change
Development
bun install
bun test
bun run typecheck
bun run lint
bun run build
Full local gate:
bun run qa
Docker
docker build -t tailscale-mcp-server .
docker run --rm \
-e MCP_HTTP_BEARER_TOKEN="$MCP_HTTP_BEARER_TOKEN" \
-e TAILSCALE_OAUTH_CLIENT_ID="$TAILSCALE_OAUTH_CLIENT_ID" \
-e TAILSCALE_OAUTH_CLIENT_SECRET="$TAILSCALE_OAUTH_CLIENT_SECRET" \
-p 127.0.0.1:3000:3000 \
tailscale-mcp-server
Keep the published port bound to localhost and expose it to other devices with Tailscale Serve.
For a sidecar deployment that runs the MCP server behind a private Tailscale
Serve endpoint, see deploy/README.md.
Server Terkait
MCP Weather Server
Provides hourly weather forecasts using the AccuWeather API.
Alpha Vantage
Access real-time and historical stock market data from the Alpha Vantage API.
DALL-E
Generate images using OpenAI's DALL-E API.
Vitally
Access customer data from the Vitally API.
Descope MCP Server
Interact with Descope's Management APIs to search and retrieve project information.
AWS MCP Servers
A suite of MCP servers providing AI applications with access to AWS documentation, contextual guidance, and best practices.
Datadog
Interact with the Datadog API to monitor your cloud infrastructure, applications, and logs.
Consul MCP Server
An MCP server providing access to Consul's service discovery and configuration features.
Google Sheets MCP
MCP server for Google Sheets — read, write, append, and clear data in any spreadsheet using OAuth. Works with Claude Desktop and any MCP client.
EdgeOne Pages MCP
An MCP service for deploying HTML content to EdgeOne Pages and obtaining a publicly accessible URL.