Пропустите установку. Заработает меньше чем за 2 минуты.
Начните бесплатный период на cloud.anythingmcp.com, добавьте Tailscale одним кликом и направьте свой ИИ-клиент (Claude, ChatGPT, Copilot или Cursor) на сгенерированный MCP-эндпоинт. Без Docker, без git clone, без опыта разработки.
Кратко
Администрирование tailnet в Tailscale через API v2: устройства с маршрутами, тегами, одобрением и атрибутами posture, пользователи и роли, auth-ключи, файл политики (чтение, проверка, предпросмотр), DNS и MagicDNS, настройки tailnet, журналы аудита конфигурации и network flow logs, стриминг логов, вебхуки, Services и интеграции posture. Вход через OAuth-клиент, без входа в браузере.
Попробуй спросить
Примеры промптов для Tailscale
Кликни по промпту — он скопируется. Вставь в Claude, ChatGPT, Cursor, Gemini, Copilot или OpenClaw и запусти через этот коннектор.
Claude — это AI, он может ошибаться. Проверяйте ответы.
💡 Без установки? Используйте cloud.anythingmcp.com напрямую. Войдите, нажмите Connectors → Tailscale, вставьте учётные данные, создайте MCP API key, и готово. Без Docker, без
git clone, без локального сервера.
Tailscale
Администрирование tailnet в Tailscale через API v2: устройства с маршрутами, тегами, одобрением и атрибутами posture, пользователи и роли, auth-ключи, файл политики (чтение, проверка, предпросмотр), DNS и MagicDNS, настройки tailnet, журналы аудита конфигурации и network flow logs, стриминг логов, вебхуки, Services и интеграции posture. Вход через OAuth-клиент, без входа в браузере.
Настройка
Настройка занимает около 5 минут, нужен пользователь tailnet с ролью Owner, Admin, Network admin или IT admin. Коннектор входит через OAuth-клиент Tailscale (OAuth2 client credentials): входа в браузере нет, и за ним не стоит учётная запись пользователя.
- Откройте https://login.tailscale.com/admin/settings/trust-credentials (Settings, Trust credentials; в старых консолях Settings, OAuth clients) и нажмите Credential, затем OAuth.
- Выберите scopes. Только для чтения достаточно
all:read. Для инструментов записи добавьте соответствующие scopes записи:devices:core(нужен один или несколько тегов, напримерtag:server),devices:routes,users,auth_keys(тоже нужны теги),policy_file,dns,feature_settings,webhooks.allдаёт всё. - Скопируйте Client ID (например,
kAbCdEf1CNTRL) вTAILSCALE_OAUTH_CLIENT_ID, а Client secret (tskey-client-..., показывается один раз) вTAILSCALE_OAUTH_CLIENT_SECRET. API access token (tskey-api-...) здесь не подходит. - Установите коннектор и запустите
tailscale_list_devices: он покажет устройства tailnet и подтвердит клиент.
Коннектор обменивает клиент на access token сроком на час через https://api.tailscale.com/api/v2/oauth/token и сам его обновляет. В отличие от API access tokens, которые живут не больше 90 дней, OAuth-клиент не истекает. Каждый вызов идёт в tailnet, которому принадлежит клиент (- в пути). Запись, на которую у клиента нет scope, получает ответ 403.
Секреты в ответах: ИИ видит всё, что возвращает инструмент. tailscale_create_auth_key возвращает новый auth-ключ (tskey-auth-...), а tailscale_create_webhook секрет подписи вебхука, и каждый показывается только этот один раз; оба попадают в диалог и к провайдеру ИИ. ИИ передаёт их только тому, кто их запросил, и никогда в другие инструменты, файлы или сообщения. tailscale_list_user_invites показывает ссылки-приглашения, по которым может войти любой, у кого они есть. tailscale_list_keys и tailscale_get_key никогда не возвращают значения ключей, а в tailscale_list_webhooks, tailscale_get_webhook и tailscale_get_log_streaming_configuration секреты подписи, токены и облачные учётные данные удалены.
Устройства: tailscale_list_devices с filter (например, hostname=web-1, tags=tag:prod, authorized=false) и fields=all для маршрутов и связности; tailscale_get_device, tailscale_get_device_routes и tailscale_get_device_posture_attributes. Изменения: tailscale_authorize_device (одобрить устройство или отозвать одобрение), tailscale_set_device_routes (одобрить subnet-маршруты и exit nodes), tailscale_set_device_tags, tailscale_set_device_name (новое имя сразу становится именем MagicDNS) и tailscale_set_device_key_expiry (отключить истечение ключа, скорее для серверов, чем для ноутбуков).
Пользователи: tailscale_list_users по роли или типу, tailscale_get_user, tailscale_list_user_invites; tailscale_update_user_role, tailscale_approve_user, а также tailscale_suspend_user и tailscale_restore_user (приостановка снимается восстановлением).
Ключи: tailscale_list_keys (all=true добавляет auth-ключи и API access tokens), tailscale_get_key и tailscale_create_auth_key для добавления серверов, контейнеров или CI-раннеров: многоразовый или одноразовый, эфемерный, предварительно одобренный, сроком не больше 90 дней. С OAuth-клиентом этого коннектора ключ должен нести теги: теги самого клиента или принадлежащие им.
Правила доступа: tailscale_get_policy_file читает файл политики (grants и acls, groups, hosts, tagOwners, autoApprovers, ssh, nodeAttrs, postures, tests) вместе с его etag. tailscale_preview_policy_rules показывает, какие правила действуют для пользователя или IP:порта, а tailscale_validate_policy_file проверяет черновик и запускает его тесты; оба ничего не меняют.
DNS и настройки: tailscale_get_dns_configuration показывает серверы имён, split DNS, домены поиска и MagicDNS за один вызов. Изменения идут через tailscale_set_dns_nameservers, tailscale_set_dns_preferences (MagicDNS вкл. или выкл.; для включения нужен глобальный сервер имён), tailscale_set_dns_search_paths и tailscale_update_split_dns (меняются только переданные домены). tailscale_get_tailnet_settings и tailscale_update_tailnet_settings охватывают одобрение устройств и пользователей, истечение ключей, автообновления, network flow logging, HTTPS-сертификаты и другое; tailscale_get_contacts показывает контакты аккаунта, поддержки и безопасности.
Логи и интеграции: tailscale_list_configuration_audit_logs (кто что изменил, хранится 90 дней, фильтры по автору, цели или событию), tailscale_list_network_flow_logs (трафик между устройствами, в тарифах Premium и Enterprise с включённым flow logging; ИИ запрашивает минуты, а не дни, потому что ответы быстро растут), tailscale_get_log_streaming_status и tailscale_get_log_streaming_configuration для стриминга в SIEM, вебхуки (tailscale_list_webhooks, tailscale_get_webhook, tailscale_create_webhook), Tailscale Services (tailscale_list_services, tailscale_get_service, tailscale_list_service_hosts) и интеграции posture (tailscale_list_posture_integrations).
Изменения заменяют списки: маршруты, теги, серверы имён и домены поиска отправляются полным списком. ИИ сначала читает текущее значение и отправляет старые записи плюс новую; пропущенный маршрут отключается.
Отключены при установке: tailscale_expire_device_key, tailscale_delete_device, tailscale_delete_user и tailscale_delete_key, потому что их нельзя отменить, и tailscale_set_policy_file, потому что он одним вызовом заменяет всю политику доступа tailnet, а одно неверное правило отрезает пользователей и устройства. Администратор рабочего пространства осознанно включает их, когда это нужно команде.
Форматы данных: nodeId устройства (например, nAbCdEf1CNTRL) это предпочтительный id устройства; числовой id тоже подходит. name это имя MagicDNS (web-1.tailnet-name.ts.net), addresses это IP-адреса Tailscale (100.x.y.z и fd7a:115c:a1e0::/48). Время в RFC 3339, UTC; lastSeen пуст, пока устройство подключено (connectedToControl: true). expires со значением 0001-01-01 означает, что истечение ключа отключено. Теги выглядят как tag:name.
Постраничный вывод: списки приходят одним ответом, без постраничного вывода. Инструменты логов вместо этого принимают время start и end.
Частые ошибки: 401 означает, что OAuth-клиент удалён или секрет неверен. 403 означает, что у клиента нет scope или тегов для этого вызова или тариф не включает функцию. 404 означает, что такого id в этом tailnet нет. 400 приходит с message при неверном вводе, в том числе для файлов политики с проваленными тестами. 412 означает, что политика изменилась после вашего etag. 429 означает ограничение частоты: подождите минуту и повторите.
Коннектор не создаёт OAuth-клиенты и API access tokens, не анонсирует маршруты и не регистрирует устройства (это делается на самом устройстве), а инструментами, включёнными при установке, не удаляет устройства, пользователей и ключи и не заменяет файл политики.
Предварительные требования: TAILSCALE_OAUTH_CLIENT_ID, TAILSCALE_OAUTH_CLIENT_SECRET
Локальная установка коннектора
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
Откройте http://localhost:3000/connectors/store, выберите Tailscale и введите переменные, перечисленные в Предварительных требованиях.
Доступные инструменты
| 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… |
Примеры запросов
- «Какие устройства не появлялись больше 30 дней? Покажи имя, пользователя и время последнего появления.»
- «Какие subnet-маршруты анонсирует router-1 и какие из них ещё не одобрены?»
- «Создай многоразовый предварительно одобренный auth-ключ с тегом tag:ci, который истекает через 7 дней.»
- «Кто менял файл политики или настройки DNS за последнюю неделю?»
- «Какие правила нашего файла политики действуют для [email protected]?»
Следующие шаги
Это руководство помогло?