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.
관련 서버
Unsplash MCP Server
An MCP server for accessing the Unsplash API to search for and retrieve photos.
Joe Sandbox
Analyze files and extract Indicators of Compromise (IOCs) by interacting with the Joe Sandbox Cloud service.
Google Ads MCP
Manage Google Ads campaigns and reporting using the Google Ads API.
Cloudflare MCP Server
A self-hostable MCP server for deployment on Cloudflare Workers using Durable Objects.
GPT-SoVITS MCP Server
An MCP server for GPT-SoVITS, providing text-to-speech synthesis, voice cloning, and multi-language support.
Amazon Nova Reel 1.1
An MCP server for generating videos using Amazon Nova Reel 1.1 via AWS Bedrock.
Remote MCP Server (Authless)
An authentication-free, remote MCP server designed for deployment on Cloudflare Workers.
GDPR Compliance Toolkit
Generate GDPR-compliant privacy policies, data processing agreements, cookie consent text, and DPIA templates for EU businesses.
MCP Doppler Server
Securely access secrets from Doppler's secret management platform using a Doppler API token.
PayPal Account Updater Subscription Connector
Integrates with PayPal's Account Updater service to maintain fresh payment card information in e-commerce systems.