Talos Linux MCP Server
talos-mcp
MCP-сервер, который предоставляет AI-агентам (Claude Code, OpenAI Codex и любым MCP-совместимым клиентам) возможности управления кластером Talos Linux. Вместо того чтобы копировать вывод talosctl в чат, агент вызывает структурированные инструменты, которые возвращают машиночитаемый JSON напрямую из gRPC API Talos — нулевые затраты токенов на промежуточный вывод.
Подключается к вашему кластеру через нативный gRPC API Talos, используя те же учетные данные mTLS, что и talosctl (~/.talos/config).
Установка
Через npm (Go не требуется, Linux/macOS, amd64/arm64):
npx talos-mcpСкачать бинарный файл (Linux/macOS, amd64/arm64):
Скачайте последний релиз с GitHub Releases, распакуйте и поместите бинарный файл в ваш $PATH.
Сборка из исходного кода (требуется Go 1.21+):
git clone https://github.com/Nosmoht/talos-mcp-server
cd talos-mcp
go build -o talos-mcp .Конфигурация
По умолчанию считывает ~/.talos/config (тот же файл, который использует talosctl). Переопределяется через переменные окружения:
Переменная | По умолчанию | Описание |
|
| Путь к файлу talosconfig |
| активный контекст | Имя используемого контекста |
| из конфига | Переопределение эндпоинтов через запятую |
|
| Установите |
| (все) | Префиксы путей через запятую, разрешенные для |
|
| Установите |
Совместимость
Этот сервер протестирован с Talos Linux версий от v1.9.x до v1.12.x.
talos-mcp | Talos Linux | machinery SDK |
v0.x (текущая) | v1.9.0 – v1.12.x | v1.12.6 |
Сервер записывает предупреждение при запуске, если версия Talos подключенного кластера выходит за пределы протестированного диапазона. Все 19 используемых методов gRPC остаются стабильными начиная с Talos v1.9.
Проверка пути обновления
Инструмент talos_upgrade проверяет, соответствует ли целевая версия поддерживаемому пути обновления Talos — не более одной минорной версии за раз (например, v1.11.x → v1.12.x). Обновления, пропускающие минорные версии, отклоняются с ошибкой.
Если ваш образ использует пользовательский или заводской тег (например, factory.talos.dev/... или :latest), тег не может быть проанализирован, и проверка автоматически пропускается. Чтобы явно пропустить проверку, установите TALOS_MCP_SKIP_VERSION_CHECK=true.
Настройка клиента
Claude Code
Добавьте в .mcp.json вашего проекта:
{
"mcpServers": {
"talos": {
"command": "npx",
"args": ["-y", "talos-mcp"]
}
}
}Или глобально в ~/.claude.json в разделе "mcpServers". Если вы предпочитаете локальный бинарный файл, замените "command": "npx" на путь к файлу.
Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"talos": {
"command": "npx",
"args": ["-y", "talos-mcp"]
}
}
}OpenAI Codex
Добавьте в .codex/config.toml (проект) или ~/.codex/config.toml (глобально):
[mcp_servers.talos]
command = "npx"
args = ["-y", "talos-mcp"]
[mcp_servers.talos.env]
TALOSCONFIG = "/path/to/talosconfig"Универсальный MCP-клиент
Сервер использует протокол MCP через stdio:
./talos-mcpИнструменты
Только для чтения
Инструмент | Описание |
| Список всех доступных типов ресурсов и их псевдонимов. Вызывайте первым, чтобы узнать, что можно запрашивать. |
| Получение или список любого ресурса COSI по типу (например, |
| Получение информации о версии Talos с целевых узлов. |
| Список всех служб Talos и их текущего состояния (запущена, остановлена, работоспособность). |
| Список контейнеров в пространстве имен (по умолчанию: |
| Список запущенных процессов на целевых узлах. |
| Проверка работоспособности кластера (etcd, Kubernetes API, готовность узлов). Поддерживает переопределение |
| Получение последних логов службы (последние N строк, без слежения). |
| Чтение сообщений кольцевого буфера ядра. |
| Получение последних событий среды выполнения Talos (изменения служб, изменения конфигурации). |
| Запрос к кластеру etcd: |
| Список файлов и директорий в файловой системе узла. |
| Чтение содержимого файла из файловой системы узла. |
Изменяющие состояние
Эти инструменты изменяют состояние кластера и имеют явные механизмы защиты.
Инструмент | Описание | Защита |
| Запуск, остановка или перезапуск службы Talos (примечание: перезапуск | — |
| Перезагрузка целевых узлов. Поддерживает | требуется |
| Обновление Talos на целевых узлах. Поддерживает | требуется |
| Откат последнего обновления на целевых узлах. | требуется |
| Применение патча конфигурации машины (JSON или YAML strategic merge). |
|
Все инструменты принимают необязательное поле nodes (список IP-адресов или имен хостов узлов). Если оно опущено, используется активный контекст из talosconfig.
Модель безопасности
Границы доверия
MCP Client (Claude Code / Codex)
│ stdio / JSON-RPC
▼
talos-mcp ◄── reads TALOSCONFIG (~/.talos/config)
│ gRPC + mTLS
▼
Talos API (each node)
│
▼
Node OSПредупреждение о потоке данных: Ответы инструментов попадают непосредственно в контекстное окно LLM и отправляются провайдеру LLM. Все, что возвращает инструмент — IP-адреса узлов, имена хостов, конфигурации служб, логи ядра, содержимое файлов — становится частью промпта, отправляемого по сети. Не используйте этот сервер с кластерами, содержащими данные, которые вы не хотели бы отправлять провайдеру LLM.
RBAC Talos принудительно применяется на стороне сервера. Учетные данные в вашем talosconfig определяют, какие операции разрешены на каждом узле. talos-mcp не может обойти RBAC Talos — запрос, который отклоняет API, завершится ошибкой, а не выполнится молча.
Классификация инструментов и минимально необходимая роль RBAC
Инструмент | Минимальный RBAC |
|
|
|
|
|
|
Механизмы безопасности
Механизм | Как это работает |
Режим только для чтения |
|
Белый список путей |
|
Подтверждение действий |
|
Сохранение по умолчанию |
|
Dry-run по умолчанию |
|
Аудит логирования | Все вызовы изменяющих инструментов ( |
Что не входит в модель угроз
Сама LLM — промпт-инъекции, галлюцинации аргументов инструментов и хранение данных провайдером LLM находятся вне области ответственности этого сервера
MCP-клиент — безопасность Claude Code, Codex или других MCP-клиентов является ответственностью этих проектов
Сетевой путь между talos-mcp и узлами Talos — защищен взаимным TLS с использованием учетных данных из вашего talosconfig
Настройка учетных данных с минимальными привилегиями
Создайте выделенный talosconfig с минимальными разрешениями для использования с этим сервером:
Доступ только для чтения (рекомендуется для большинства случаев):
# Generate a reader-only talosconfig
talosctl config new --roles=os:reader talosconfig-readonlyЗатем установите TALOSCONFIG=/path/to/talosconfig-readonly и TALOS_MCP_READ_ONLY=true для максимального ограничения. При такой настройке сервер предоставляет только инструменты для чтения, и учетные данные не могут выполнять никаких изменяющих операций, даже если инструмент будет каким-то образом обойден.
Доступ оператора (для управления службами, перезагрузки, обновления):
talosctl config new --roles=os:operator talosconfig-operatorЭто охватывает все инструменты, кроме talos_patch_config (который требует os:admin).
Полный доступ (требуется для патчинга конфигурации):
Используйте ваш стандартный talosconfig или создайте новый с os:admin. Оставьте это для настроек, где явно требуется возможность патчинга конфигурации.
Проверка загрузок
Контрольные суммы (целостность)
Каждый релиз включает файл talos-mcp_<version>_checksums.txt с хешами SHA-256 всех архивов. Проверьте бинарный файл после скачивания:
# Download archive and checksums
curl -LO https://github.com/Nosmoht/talos-mcp-server/releases/download/v<version>/talos-mcp_<version>_linux_amd64.tar.gz
curl -LO https://github.com/Nosmoht/talos-mcp-server/releases/download/v<version>/talos-mcp_<version>_checksums.txt
# Verify
sha256sum --check --ignore-missing talos-mcp_<version>_checksums.txtЭто обнаруживает повреждение или неполную загрузку. Это не защищает от скомпрометированного конвейера выпуска.
Аттестации артефактов GitHub (происхождение SLSA L2)
Каждый релиз включает аттестацию происхождения сборки, встроенную в GitHub, которая криптографически связывает бинарный файл с конкретным коммитом и запуском рабочего процесса, который его создал:
gh attestation verify talos-mcp_<version>_linux_amd64.tar.gz \
--repo Nosmoht/talos-mcp-serverЭто требует GitHub CLI. Успешная проверка означает, что артефакт был создан официальным рабочим процессом выпуска в этом репозитории, а не сторонней сборкой.
Происхождение пакета npm
Пакет npm публикуется с аттестацией происхождения:
npm audit signaturesУспешный результат означает, что пакет был опубликован официальным рабочим процессом выпуска GitHub Actions через доверенную публикацию OIDC.
Разработка
# Build
go build -o talos-mcp .
# Test
go test -race ./...
# Lint (requires golangci-lint v2)
golangci-lint run
# Format check
gofmt -l .Лицензия
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/Nosmoht/talos-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server