Tailscale MCP Server
Tailscale MCP-Server
Ein Bun-basierter Model Context Protocol-Server für den Betrieb von Tailscale über eine private Schnittstelle mit minimalen Berechtigungen.
Der Standard-Transport ist stdio für lokale MCP-Clients. Der optionale HTTP-Transport bindet standardmäßig an 127.0.0.1 und ist dafür konzipiert, privat über Tailscale Serve oder einen anderen Tailnet-only-Proxy bereitgestellt zu werden.
Installation
bun install
bun run buildRelated MCP server: ConnectWise API Gateway MCP Server
Lokale MCP-Nutzung
{
"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 werden für die Automatisierung bevorzugt, da sie bereichsbezogene Zugriffe und kurzlebige Tokens verwenden. API-Schlüssel werden aus Kompatibilitätsgründen weiterhin unterstützt:
TAILSCALE_API_KEY=tskey-... bun run src/index.tsHTTP-Modus
Der HTTP-Modus erfordert ein Bearer-Token und akzeptiert standardmäßig nur Localhost- oder Tailnet-Host-Header.
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.1Stellen Sie ihn privat über Tailscale Serve bereit:
tailscale serve --bg 443 localhost:3000Verwenden Sie Funnel nicht für den normalen MCP-Betrieb. Funnel macht den Dienst öffentlich erreichbar und sollte eine separate Sicherheitsüberprüfung erfordern.
Konfiguration
Variable | Standard | Beschreibung |
|
|
|
|
| HTTP-Bind-Host |
|
| HTTP-Bind-Port |
| Erforderlich im HTTP-Modus | |
| Kommagetrennte zusätzliche erlaubte HTTP-Hosts | |
|
| Tailnet-Name oder |
|
| Tailscale API-Basis-URL |
| Bevorzugte Authentifizierungsmethode | |
| Bevorzugte Authentifizierungsmethode | |
| Kompatibilitäts-Authentifizierungsmethode | |
|
|
|
|
| Lokaler CLI-Pfad |
|
|
|
| Optionaler Pfad zur Log-Datei |
Risikostufen:
read: Nur-Lese-Tools und Ressourcen.write: Schreiboperationen wie ACL/DNS/Routen-Updates.admin: Destruktive oder host-beeinflussende Aktionen wie Löschen, Deautorisieren, Verbinden, Trennen und Mutation von Auth-Schlüsseln.
Tools
Stabile Tool-Namen:
list_devicesdevice_actionmanage_routesget_network_statusconnect_networkdisconnect_networkping_peerget_versionget_tailnet_infomanage_aclmanage_dnsmanage_keysmanage_policy_filemanage_file_sharingmanage_exit_nodesmanage_webhooksmanage_device_tags
Ressourcen
tailscale://tailnet/summarytailscale://devicestailscale://devices/{deviceId}tailscale://acl/current
Prompts
diagnose_tailnet_connectivityreview_acl_change
Entwicklung
bun install
bun test
bun run typecheck
bun run lint
bun run buildVollständiger lokaler Gate:
bun run qaDocker
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-serverHalten Sie den veröffentlichten Port an Localhost gebunden und stellen Sie ihn anderen Geräten über Tailscale Serve bereit.
Für eine Sidecar-Bereitstellung, die den MCP-Server hinter einem privaten Tailscale Serve-Endpunkt ausführt, siehe deploy/README.md.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HexSleeves/tailscale-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server