Tailscale MCP Server
Tailscale MCP Server
Сервер Model Context Protocol (ориентированный на Bun) для управления Tailscale через частный интерфейс с минимальными привилегиями.
Транспорт по умолчанию — stdio для локальных MCP-клиентов. Опциональный HTTP-транспорт по умолчанию привязывается к 127.0.0.1 и предназначен для частного доступа через Tailscale Serve или другой прокси-сервер внутри tailnet.
Установка
bun install
bun run buildRelated MCP server: ConnectWise API Gateway MCP Server
Локальное использование 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": "-"
}
}
}
}OAuth-клиенты предпочтительнее для автоматизации, так как они используют ограниченный доступ и краткосрочные токены. API-ключи по-прежнему поддерживаются для обеспечения совместимости:
TAILSCALE_API_KEY=tskey-... bun run src/index.tsHTTP-режим
HTTP-режим требует токен носителя (bearer token) и по умолчанию принимает только заголовки localhost или хоста tailnet.
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.1Откройте доступ в частном порядке через Tailscale Serve:
tailscale serve --bg 443 localhost:3000Не используйте Funnel для обычной работы MCP. Funnel делает сервис общедоступным, что требует отдельной проверки безопасности.
Конфигурация
Переменная | По умолчанию | Описание |
|
|
|
|
| Хост для привязки HTTP |
|
| Порт для привязки HTTP |
| Обязательно в HTTP-режиме | |
| Дополнительные разрешенные HTTP-хосты через запятую | |
|
| Имя tailnet или сокращение |
|
| Базовый URL API Tailscale |
| Предпочтительный метод аутентификации | |
| Предпочтительный метод аутентификации | |
| Метод аутентификации для совместимости | |
|
|
|
|
| Путь к локальному CLI |
|
|
|
| Опциональный путь к файлу логов |
Уровни риска:
read: инструменты и ресурсы только для чтения.write: операции записи, такие как обновление ACL/DNS/маршрутов.admin: деструктивные или влияющие на хост действия, такие как удаление, отзыв авторизации, подключение, отключение и изменение ключей аутентификации.
Инструменты
Стабильные имена инструментов:
list_devicesdevice_actionmanage_routesget_network_statusconnect_networkdisconnect_networkping_peerget_versionget_tailnet_infomanage_aclmanage_dnsmanage_keysmanage_policy_filemanage_file_sharingmanage_exit_nodesmanage_webhooksmanage_device_tags
Ресурсы
tailscale://tailnet/summarytailscale://devicestailscale://devices/{deviceId}tailscale://acl/current
Промпты
diagnose_tailnet_connectivityreview_acl_change
Разработка
bun install
bun test
bun run typecheck
bun run lint
bun run buildПолный локальный шлюз:
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-serverДержите опубликованный порт привязанным к localhost и открывайте его для других устройств с помощью Tailscale Serve.
Для развертывания в виде sidecar-контейнера, который запускает MCP-сервер за частной конечной точкой Tailscale Serve, см. 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