Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade Tailscale con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
Resumen
Administración de una tailnet de Tailscale mediante la API v2: dispositivos con rutas, etiquetas, aprobación y atributos de posture, usuarios y roles, auth keys, el policy file (leer, validar, previsualizar), DNS y MagicDNS, ajustes de la tailnet, registros de auditoría de configuración y network flow logs, streaming de logs, webhooks, Services e integraciones de posture. Accede con un cliente OAuth, sin inicio de sesión en el navegador.
Prueba a pedir
Prompts de ejemplo para Tailscale
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → Tailscale, pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
Tailscale + Meta Muse
Administración de una tailnet de Tailscale mediante la API v2: dispositivos con rutas, etiquetas, aprobación y atributos de posture, usuarios y roles, auth keys, el policy file (leer, validar, previsualizar), DNS y MagicDNS, ajustes de la tailnet, registros de auditoría de configuración y network flow logs, streaming de logs, webhooks, Services e integraciones de posture. Accede con un cliente OAuth, sin inicio de sesión en el navegador.
Requisitos previos
Las instrucciones de configuración completas están incluidas en el conector (visibles en el store al seleccionarlo). Las variables de entorno requeridas:
TAILSCALE_OAUTH_CLIENT_ID, TAILSCALE_OAUTH_CLIENT_SECRET
Paso 1 — Obtener credenciales
La configuración lleva unos 5 minutos y necesita un usuario de la tailnet con el rol Owner, Admin, Network admin o IT admin. El conector accede con un cliente OAuth de Tailscale (OAuth2 client credentials): no hay inicio de sesión en el navegador ni una cuenta de usuario detrás.
- Abre https://login.tailscale.com/admin/settings/trust-credentials (Settings, Trust credentials; consolas antiguas: Settings, OAuth clients) y pulsa Credential y luego OAuth.
- Elige los scopes. Para solo lectura basta con
all:read. Para las herramientas de escritura añade los scopes correspondientes:devices:core(necesita una o más etiquetas, por ejemplotag:server),devices:routes,users,auth_keys(también necesita etiquetas),policy_file,dns,feature_settings,webhooks.alllo concede todo. - Copia el Client ID (por ejemplo
kAbCdEf1CNTRL) enTAILSCALE_OAUTH_CLIENT_IDy el Client secret (tskey-client-..., se muestra una sola vez) enTAILSCALE_OAUTH_CLIENT_SECRET. Un API access token (tskey-api-...) no sirve aquí. - Instala el conector y ejecuta
tailscale_list_devices: lista los dispositivos de la tailnet y confirma el cliente.
El conector cambia el cliente por un access token de una hora en https://api.tailscale.com/api/v2/oauth/token y lo renueva solo. A diferencia de los API access tokens, que duran como mucho 90 días, un cliente OAuth no caduca. Cada llamada va a la tailnet propietaria del cliente (- en la ruta). Una escritura para la que el cliente no tiene scope responde 403.
Secretos en las respuestas: la IA ve todo lo que devuelve una herramienta. tailscale_create_auth_key devuelve una auth key nueva (tskey-auth-...) y tailscale_create_webhook un signing secret del webhook, cada uno visible solo esta vez; ambos acaban en la conversación y en el proveedor de IA. La IA solo se los da a quien los pidió, nunca a otras herramientas, archivos o mensajes. tailscale_list_user_invites muestra enlaces de invitación con los que puede unirse cualquiera que los tenga. tailscale_list_keys y tailscale_get_key nunca devuelven los valores de las claves, y en tailscale_list_webhooks, tailscale_get_webhook y tailscale_get_log_streaming_configuration se eliminan signing secrets, tokens y credenciales de nube.
Dispositivos: tailscale_list_devices con filter (por ejemplo hostname=web-1, tags=tag:prod, authorized=false) y fields=all para rutas y conectividad; tailscale_get_device, tailscale_get_device_routes y tailscale_get_device_posture_attributes. Cambios: tailscale_authorize_device (aprobar un dispositivo o retirar la aprobación), tailscale_set_device_routes (aprobar subnet routes y exit nodes), tailscale_set_device_tags, tailscale_set_device_name (el nombre nuevo pasa a ser al instante el nombre MagicDNS) y tailscale_set_device_key_expiry (caducidad de la clave desactivada, para servidores más que para portátiles).
Usuarios: tailscale_list_users por rol o tipo, tailscale_get_user, tailscale_list_user_invites; tailscale_update_user_role, tailscale_approve_user, y tailscale_suspend_user y tailscale_restore_user (una suspensión se deshace restaurando).
Claves: tailscale_list_keys (all=true añade auth keys y API access tokens), tailscale_get_key y tailscale_create_auth_key para añadir servidores, contenedores o runners de CI: reutilizable o de un solo uso, efímera, preautorizada, válida como mucho 90 días. Con el cliente OAuth de este conector la clave debe llevar etiquetas, las del cliente o etiquetas que les pertenezcan.
Reglas de acceso: tailscale_get_policy_file lee el policy file (grants y acls, groups, hosts, tagOwners, autoApprovers, ssh, nodeAttrs, postures, tests) con su etag. tailscale_preview_policy_rules muestra qué reglas afectan a un usuario o a una IP:puerto, y tailscale_validate_policy_file comprueba un borrador y ejecuta sus tests; ninguna de las dos cambia nada.
DNS y ajustes: tailscale_get_dns_configuration muestra nameservers, split DNS, dominios de búsqueda y MagicDNS en una llamada. Los cambios pasan por tailscale_set_dns_nameservers, tailscale_set_dns_preferences (MagicDNS activado o no; activarlo requiere un nameserver global), tailscale_set_dns_search_paths y tailscale_update_split_dns (solo cambian los dominios indicados). tailscale_get_tailnet_settings y tailscale_update_tailnet_settings cubren la aprobación de dispositivos y usuarios, la caducidad de claves, las actualizaciones automáticas, el network flow logging, los certificados HTTPS y más; tailscale_get_contacts muestra los contactos de cuenta, soporte y seguridad.
Logs e integraciones: tailscale_list_configuration_audit_logs (quién cambió qué, se guarda 90 días, filtrable por autor, objetivo o evento), tailscale_list_network_flow_logs (tráfico entre dispositivos, en los planes Premium y Enterprise con flow logging activado; la IA pide minutos, no días, porque las respuestas crecen rápido), tailscale_get_log_streaming_status y tailscale_get_log_streaming_configuration para el streaming a un SIEM, webhooks (tailscale_list_webhooks, tailscale_get_webhook, tailscale_create_webhook), Tailscale Services (tailscale_list_services, tailscale_get_service, tailscale_list_service_hosts) e integraciones de posture (tailscale_list_posture_integrations).
Los cambios sustituyen listas: rutas, etiquetas, nameservers y dominios de búsqueda se envían como lista completa. La IA lee primero el valor actual y envía las entradas existentes más la nueva; una ruta que se omite queda desactivada.
Desactivadas al instalar: tailscale_expire_device_key, tailscale_delete_device, tailscale_delete_user y tailscale_delete_key, porque no se pueden deshacer, y tailscale_set_policy_file, porque sustituye en una sola llamada toda la política de acceso de la tailnet y una regla equivocada deja fuera a usuarios y dispositivos. Un administrador del espacio de trabajo las activa a conciencia cuando el equipo las necesita.
Formatos de datos: el nodeId de un dispositivo (por ejemplo nAbCdEf1CNTRL) es el id preferido; el id numérico también sirve. name es el nombre MagicDNS (web-1.tailnet-name.ts.net), addresses son las IP de Tailscale (100.x.y.z y fd7a:115c:a1e0::/48). Las horas son RFC 3339 en UTC; lastSeen está vacío mientras un dispositivo está conectado (connectedToControl: true). Un expires de 0001-01-01 significa que la caducidad de la clave está desactivada. Las etiquetas tienen la forma tag:name.
Paginación: las listas llegan en una respuesta, sin paginación. Las herramientas de logs aceptan en su lugar una hora start y end.
Errores comunes: 401 significa que el cliente OAuth se borró o que el secreto es incorrecto. 403 significa que al cliente le falta el scope o las etiquetas para esta llamada, o que el plan no incluye la función. 404 significa que el id no existe en esta tailnet. 400 llega con un message para entradas no válidas, incluidos policy files cuyos tests fallan. 412 significa que la política cambió desde tu etag. 429 significa límite de peticiones: espera un minuto y reintenta.
El conector no crea clientes OAuth ni API access tokens, no anuncia rutas ni registra dispositivos (eso ocurre en el dispositivo), y con las herramientas activas al instalar no borra dispositivos, usuarios ni claves ni sustituye el policy file.
Paso 2 — Instalar el adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Paso 3 — Añadir el conector en Muse
La URL de tu servidor: en AnythingMCP abre MCP Servers → el servidor donde está este conector y copia su URL (
https://cloud.anythingmcp.com/mcp/…). Úsala donde esta guía muestraYOUR_SERVER_ID.
Muse añade los servidores MCP remotos como conectores personalizados e inicia sesión en ellos con OAuth.
- En Muse, abre Settings → Connectors y elige Add custom connector.
- Pega la URL del servidor MCP
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. - Muse abre la página de inicio de sesión de AnythingMCP: inicia sesión y aprueba el acceso.
- En un chat, pídele a Muse algo que necesite las herramientas de
Tailscale.
También puedes configurarlo desde un chat, en la web, en las apps de iOS y Android o en WhatsApp. Envía a Muse este mensaje:
Create a Custom Connector for a new remote MCP server, then connect to it:
Name: AnythingMCP
Transport: remote streamable HTTP
URL: https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID
Auth: OAuth
¿Lo alojas tú mismo? Usa la dirección HTTPS pública de tu instancia en lugar de https://cloud.anythingmcp.com. Muse se conecta desde la nube de Meta, así que localhost no funciona.
Herramientas disponibles
| Tool | What it does |
|---|---|
tailscale_list_devices | List the devices (machines) of the tailnet: nodeId, numeric id, name (MagicDNS name), hostname, user, OS, client version, Tailscale IP… |
tailscale_get_device | One device with its details: name, hostname, user, OS, addresses, tags, authorized, key expiry, lastSeen, connectedToControl and, with… |
tailscale_get_device_routes | The subnet routes a device advertises (advertisedRoutes) and the ones that are approved for it (enabledRoutes) |
tailscale_set_device_routes | Replace the list of approved (enabled) subnet routes of a device |
tailscale_authorize_device | Approve a device that waits for device approval (authorized=true), or take the approval back (authorized=false), which cuts it off from the… |
tailscale_set_device_name | Rename a device: the new name becomes its MagicDNS name at once, so links and scripts that use the old name stop working |
tailscale_set_device_tags | Replace the tags of a device |
tailscale_set_device_key_expiry | Switch key expiry off (key_expiry_disabled=true) or back on for a device |
tailscale_expire_device_key | Expire the node key of a device now |
tailscale_delete_device | Remove a device from the tailnet |
tailscale_get_device_posture_attributes | The posture attributes of a device as key-value pairs: those Tailscale collects (node:os, node:tsVersion, ...), those from posture… |
tailscale_list_users | List the users of the tailnet: id, displayName, loginName (e-mail), role, status (active, idle, suspended, needs-approval… |
tailscale_get_user | One user: displayName, loginName, role, status, type, created, lastSeen, deviceCount |
tailscale_update_user_role | Change the role of a user |
tailscale_approve_user | Approve a user whose status is needs-approval (when user approval is on in the tailnet settings) |
tailscale_suspend_user | Suspend a user: their devices lose access to the tailnet until the user is restored with tailscale_restore_user |
tailscale_restore_user | Restore a suspended user, giving their devices access to the tailnet again |
tailscale_delete_user | Delete a user from the tailnet, together with their devices |
tailscale_list_user_invites | Open (not yet accepted) invitations to join the tailnet: id, e-mail, role, inviter and when the e-mail was last sent. inviteUrl lets… |
tailscale_list_keys | List the keys of the tailnet: auth keys, API access tokens, OAuth clients and federated identities, with id, keyType, description, created… |
tailscale_get_key | One key by id: keyType, description, created, expires, revoked, invalid, capabilities (reusable, ephemeral, preauthorized, tags for auth… |
tailscale_create_auth_key | Create an auth key to add devices to the tailnet |
tailscale_delete_key | Revoke a key by id: an auth key, an API access token or a trust credential |
tailscale_get_policy_file | The tailnet policy file (access rules) as JSON: grants and acls, groups, hosts, tagOwners, autoApprovers, ssh, nodeAttrs, postures and… |
tailscale_validate_policy_file | Check a policy file without saving it: Tailscale parses it and runs its tests (and sshTests) |
tailscale_preview_policy_rules | Which rules of a policy file would apply to one user or one IP:port, without saving it |
tailscale_set_policy_file | Replace the whole tailnet policy file |
tailscale_get_dns_configuration | The full DNS setup of the tailnet in one call: global nameservers, split DNS routes (domain to nameservers), search paths and preferences… |
tailscale_set_dns_nameservers | Replace the global DNS nameservers of the tailnet |
tailscale_set_dns_preferences | Switch MagicDNS on or off for the tailnet |
tailscale_set_dns_search_paths | Replace the DNS search domains of the tailnet |
tailscale_update_split_dns | Change split DNS for some domains: only the domains you pass are changed, the others stay |
tailscale_get_tailnet_settings | The tailnet settings: device approval, device auto-updates, key expiry in days, user approval, who may join external tailnets, network flow… |
tailscale_update_tailnet_settings | Change one or more tailnet settings; fields you leave out keep their value |
tailscale_get_contacts | The account, support and security contact e-mails of the tailnet, each with its fallback and whether it still needs verification |
tailscale_list_configuration_audit_logs | Configuration audit log: who changed what in the tailnet (devices, users, keys, policy file, DNS, settings) between start and end, in time… |
tailscale_list_network_flow_logs | Network flow logs between start and end: which devices talked to which addresses and ports, with packet and byte counts per sample period… |
tailscale_get_log_streaming_status | Whether streaming of a log type to a SIEM works: last activity, last error, bytes and entries sent, rate |
tailscale_get_log_streaming_configuration | Where a log type is streamed: destination type (splunk, elastic, datadog, s3, ...), URL, upload period, compression, S3 bucket and region |
tailscale_list_webhooks | The webhook endpoints of the tailnet: endpointId, URL, provider type, the events they receive and who created them |
tailscale_get_webhook | One webhook endpoint by id: URL, provider type, subscribed events, creator, created and lastModified |
tailscale_create_webhook | Create a webhook that sends tailnet events to a URL |
tailscale_list_services | Tailscale Services of the tailnet (virtual services hosted by one or more devices): name (svc:...), addresses, ports, tags and comment |
tailscale_get_service | One Tailscale Service by name: its addresses, ports, tags and comment |
tailscale_list_service_hosts | The devices that host a Tailscale Service, with whether each one is approved to serve it |
tailscale_list_posture_integrations | The device posture integrations of the tailnet (CrowdStrike Falcon, Intune, Jamf Pro, Kandji, Kolide, SentinelOne): provider, cloud id… |
Ejemplos de prompts
- "¿Qué dispositivos llevan más de 30 días sin verse? Muestra nombre, usuario y última conexión."
- "¿Qué subnet routes anuncia router-1, y cuáles aún no están aprobadas?"
- "Crea una auth key reutilizable y preautorizada con la etiqueta tag:ci que caduque en 7 días."
- "¿Quién cambió el policy file o los ajustes de DNS durante la última semana?"
- "¿Qué reglas de nuestro policy file se aplican a [email protected]?"
FAQ
¿Dónde está disponible Muse? Por ahora Meta ofrece Muse en Estados Unidos y Canadá, en la web, en las apps de iOS y Android y en WhatsApp.
¿Meta revisa este conector? No. Meta no revisa los conectores personalizados. Muse solo ve las herramientas que activaste para este servidor MCP en AnythingMCP, y puedes desconectarlo cuando quieras en Settings → Connectors.
Siguientes pasos
- Página del conector
- Conectar a Claude
- Conectar a ChatGPT
- Conectar a Cursor
- Conectar a Gemini
- Conectar a Microsoft Copilot
¿Te ha sido útil esta guía?