Tailscale MCP Server
Servidor MCP de Tailscale
Un servidor del Protocolo de Contexto de Modelo (MCP) basado en Bun para operar Tailscale a través de una interfaz privada y de privilegios mínimos.
El transporte predeterminado es stdio para clientes MCP locales. El transporte HTTP opcional se vincula a 127.0.0.1 por defecto y está diseñado para exponerse de forma privada con Tailscale Serve u otro proxy exclusivo de tailnet.
Instalación
bun install
bun run buildRelated MCP server: ConnectWise API Gateway MCP Server
Uso local de MCP
{
"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": "-"
}
}
}
}Los clientes OAuth son preferibles para la automatización porque utilizan acceso con alcance limitado y tokens de corta duración. Las claves de API siguen siendo compatibles por motivos de compatibilidad:
TAILSCALE_API_KEY=tskey-... bun run src/index.tsModo HTTP
El modo HTTP requiere un token de portador (bearer token) y solo acepta encabezados de host de localhost o tailnet por defecto.
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.1Exponlo de forma privada a través de Tailscale Serve:
tailscale serve --bg 443 localhost:3000No utilices Funnel para la operación normal de MCP. Funnel hace que el servicio sea accesible públicamente y debería requerir una revisión de amenazas por separado.
Configuración
Variable | Predeterminado | Descripción |
|
|
|
|
| Host de enlace HTTP |
|
| Puerto de enlace HTTP |
| Requerido en modo HTTP | |
| Hosts HTTP adicionales permitidos separados por comas | |
|
| Nombre de la tailnet o abreviatura |
|
| URL base de la API de Tailscale |
| Método de autenticación preferido | |
| Método de autenticación preferido | |
| Método de autenticación de compatibilidad | |
|
|
|
|
| Ruta local de la CLI |
|
|
|
| Ruta opcional del archivo de registro |
Niveles de riesgo:
read: herramientas y recursos de solo lectura.write: operaciones de escritura como actualizaciones de ACL/DNS/rutas.admin: acciones destructivas o que afectan al host como eliminar, desautorizar, conectar, desconectar y mutación de claves de autenticación.
Herramientas
Nombres de herramientas estables:
list_devicesdevice_actionmanage_routesget_network_statusconnect_networkdisconnect_networkping_peerget_versionget_tailnet_infomanage_aclmanage_dnsmanage_keysmanage_policy_filemanage_file_sharingmanage_exit_nodesmanage_webhooksmanage_device_tags
Recursos
tailscale://tailnet/summarytailscale://devicestailscale://devices/{deviceId}tailscale://acl/current
Prompts
diagnose_tailnet_connectivityreview_acl_change
Desarrollo
bun install
bun test
bun run typecheck
bun run lint
bun run buildPuerta local completa:
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-serverMantén el puerto publicado vinculado a localhost y exponlo a otros dispositivos con Tailscale Serve.
Para una implementación sidecar que ejecute el servidor MCP detrás de un punto final privado de Tailscale Serve, consulta 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