# Tailscale MCP Server

MCP-сервер, который даёт агенту доступ к admin API Tailscale: устройства, ACL, DNS, ключи, пользователи. Пригодится, когда нужно спросить про tailnet и сразу что-то поменять.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 35
- Автор: YawLabs
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/YawLabs/tailscale-mcp
- Обновлён: 2026-10-22
- HTML: https://affpapa.org/nevibecode/mcp/tailscale-mcp-server

## Что делает

Сервер оборачивает Tailscale v2 API в типизированные инструменты: 97 инструментов для admin API, 6 необязательных диагностических через локальный CLI, один инструмент-каталог и 4 ресурса. Охвачены устройства, ACL, DNS, ключи и trust credentials, пользователи, приглашения, вебхуки, log streaming, posture, services и organization tailnets. У каждого инструмента схема входа на Zod и структурированный ответ, поэтому разбирать вывод `tailscale status --json | jq` не придётся.

Смысл не в замене `curl`. Агент собирает цепочку из нескольких эндпоинтов за один ход: находит устройства без подключения и с отключённым сроком ключа, поднимает audit log и объясняет, кто менял DNS ночью, готовит минимальный diff для ACL с сохранением комментариев. Записи помечены `destructiveHint` или `idempotentHint`, так что клиент может требовать подтверждения на изменения и пропускать его на чтение.

Для работы нужен ключ API tailnet. Часть инструментов диагностики опирается на локальный CLI, а интеграционный набор включается переменной `RUN_INTEGRATION_TESTS=1` вместе с ключом. Сервер общается по stdio — если ваш клиент умеет только URL-адресуемые Streamable-HTTP или SSE, подключить его так не выйдет. Если задача — один эндпоинт в CI, проще взять `curl`: интерактивная работа с неясной ещё целью — вот где этот сервер себя оправдывает.

## Требования
- Нужно: Node.js (команды через npx)

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add tailscale-mcp -- npx -y @yawlabs/tailscale-mcp
```

### Codex

**Командой платформы**
```bash
codex mcp add tailscale-mcp-server -- npx -y @yawlabs/tailscale-mcp
```

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "tailscale-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@yawlabs/tailscale-mcp"
            ]
        }
    }
}
```

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "tailscale-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@yawlabs/tailscale-mcp"
            ]
        }
    }
}
```

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add tailscale-mcp-server npx -y @yawlabs/tailscale-mcp
```

## Когда брать
- найти устройства, которые давно не выходили на связь и с отключённым сроком ключа
- разобрать audit log и понять, кто менял DNS ночью
- подготовить diff для ACL с сохранением комментариев в HuJSON
- выпустить OAuth-клиент для CI с ограниченными правами
- отозвать старые auth-ключи и напечатать новые

## Примеры запросов агенту
- Покажи устройства, которые не выходили на связь 30 дней и у которых отключён срок действия ключа
- Кто менял DNS за последние 24 часа? Собери изменения из audit log и объясни
- Предложи изменение ACL: `tag:mobile` видит `tag:dashboard`, но не `tag:db`, комментарии сохрани

## Похожие
- [GitHub](https://affpapa.org/nevibecode/mcp/github.md) — MCP-сервер · ★ 33918
- [Netdata](https://affpapa.org/nevibecode/mcp/netdata.md) — MCP-сервер · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/nevibecode/mcp/oh-my-posh-validator.md) — MCP-сервер · ★ 23643
- [Keploy](https://affpapa.org/nevibecode/mcp/keploy.md) — MCP-сервер · ★ 18727
- [Coder](https://affpapa.org/nevibecode/mcp/coder.md) — MCP-сервер · ★ 17160
- [mcp](https://affpapa.org/nevibecode/mcp/kubeshark-mcp.md) — MCP-сервер · ★ 12109

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
