Skip to main content
Glama
Nosmoht

Talos Linux MCP Server

by Nosmoht

talos-mcp

CI Release Go Reference codecov Go Report Card OpenSSF Scorecard License

Un servidor MCP que expone la gestión de clústeres de Talos Linux a agentes de IA (Claude Code, OpenAI Codex y cualquier cliente compatible con MCP). En lugar de pegar la salida de talosctl en el chat, el agente llama a herramientas estructuradas que devuelven JSON legible por máquina directamente desde la API gRPC de Talos, con coste cero de tokens por salida intermedia.

Se conecta a tu clúster a través de la API gRPC nativa de Talos utilizando las mismas credenciales mTLS que talosctl (~/.talos/config).

Instalación

Vía npm (no requiere Go, Linux/macOS, amd64/arm64):

npx talos-mcp

Descargar binario (Linux/macOS, amd64/arm64):

Descarga la última versión desde GitHub Releases, descomprime y coloca el binario en tu $PATH.

Compilar desde el código fuente (requiere Go 1.21+):

git clone https://github.com/Nosmoht/talos-mcp-server
cd talos-mcp
go build -o talos-mcp .

Configuración

Lee ~/.talos/config por defecto (el mismo archivo que usa talosctl). Se puede sobrescribir mediante variables de entorno:

Variable

Por defecto

Descripción

TALOSCONFIG

~/.talos/config

Ruta al archivo talosconfig

TALOS_CONTEXT

contexto activo

Nombre del contexto a utilizar

TALOS_ENDPOINTS

desde la configuración

Sobrescritura de endpoints separados por comas

TALOS_MCP_READ_ONLY

false

Establecer en true para deshabilitar todas las herramientas de mutación al inicio

TALOS_MCP_ALLOWED_PATHS

(todas)

Prefijos de ruta separados por comas permitidos para talos_read_file y talos_list_files (ej. /etc,/proc)

TALOS_MCP_SKIP_VERSION_CHECK

false

Establecer en true para omitir la validación de la ruta de actualización (ej. para imágenes de fábrica o etiquetas personalizadas)

Compatibilidad

Este servidor ha sido probado con Talos Linux desde la v1.9.x hasta la v1.12.x.

talos-mcp

Talos Linux

machinery SDK

v0.x (actual)

v1.9.0 – v1.12.x

v1.12.6

El servidor registra una advertencia de inicio si la versión de Talos del clúster conectado está fuera del rango probado. Los 19 métodos gRPC utilizados han sido estables desde Talos v1.9.

Validación de la ruta de actualización

La herramienta talos_upgrade valida que la versión de destino siga la ruta de actualización admitida por Talos: como máximo una versión menor a la vez (ej. v1.11.x → v1.12.x). Las actualizaciones que omiten versiones menores se rechazan con un error.

Si tu imagen utiliza una etiqueta personalizada o de fábrica (ej. factory.talos.dev/... o :latest), la etiqueta no se puede analizar y la validación se omite automáticamente. Para omitir la validación explícitamente, establece TALOS_MCP_SKIP_VERSION_CHECK=true.

Configuración del cliente

Claude Code

Añádelo al archivo .mcp.json de tu proyecto:

{
  "mcpServers": {
    "talos": {
      "command": "npx",
      "args": ["-y", "talos-mcp"]
    }
  }
}

O globalmente en ~/.claude.json bajo "mcpServers". Si prefieres un binario local, reemplaza "command": "npx" con la ruta al binario.

Claude Desktop

Añádelo a ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "talos": {
      "command": "npx",
      "args": ["-y", "talos-mcp"]
    }
  }
}

OpenAI Codex

Añádelo a .codex/config.toml (proyecto) o ~/.codex/config.toml (global):

[mcp_servers.talos]
command = "npx"
args = ["-y", "talos-mcp"]

[mcp_servers.talos.env]
TALOSCONFIG = "/path/to/talosconfig"

Cliente MCP genérico

El servidor habla el protocolo MCP a través de stdio:

./talos-mcp

Herramientas

Solo lectura

Herramienta

Descripción

talos_resource_definitions

Lista todos los tipos de recursos disponibles y sus alias. Llama a esto primero para descubrir qué se puede consultar.

talos_get

Obtiene o lista cualquier recurso COSI por tipo (ej. MachineStatus, Member, NodeAddress, Service).

talos_version

Obtiene información de la versión de Talos de los nodos de destino.

talos_services

Lista todos los servicios de Talos y su estado actual (en ejecución, detenido, salud).

talos_containers

Lista los contenedores en un espacio de nombres (por defecto: k8s.io para contenedores de Kubernetes).

talos_processes

Lista los procesos en ejecución en los nodos de destino.

talos_health

Comprueba la salud del clúster (etcd, API de Kubernetes, preparación del nodo). Admite la sobrescritura de control_plane_nodes / worker_nodes.

talos_logs

Obtiene registros recientes de servicios (últimas N líneas, sin seguimiento).

talos_dmesg

Lee los mensajes del búfer circular del kernel.

talos_events

Obtiene eventos recientes del tiempo de ejecución de Talos (cambios de servicio, cambios de configuración).

talos_etcd

Consulta el clúster etcd: members (por defecto) o status.

talos_list_files

Lista archivos y directorios en el sistema de archivos de un nodo.

talos_read_file

Lee el contenido de archivos del sistema de archivos de un nodo.

Mutación

Estas herramientas modifican el estado del clúster y tienen protecciones de seguridad explícitas.

Herramienta

Descripción

Protecciones

talos_service_action

Inicia, detiene o reinicia un servicio de Talos (nota: reiniciar etcd no es compatible con la API de Talos).

talos_reboot

Reinicia los nodos de destino. Admite mode: default, powercycle, force.

confirm=true requerido; nodes debe ser explícito

talos_upgrade

Actualiza Talos en los nodos de destino. Admite preserve (por defecto true), stage, force, reboot_mode.

confirm=true requerido; nodes e image requeridos

talos_rollback

Revierte la última actualización en los nodos de destino.

confirm=true requerido; nodes debe ser explícito

talos_patch_config

Aplica un parche de configuración de máquina (fusión estratégica JSON o YAML).

dry_run por defecto true; confirm=true requerido cuando dry_run=false

Todas las herramientas aceptan un campo opcional nodes (lista de IPs o nombres de host de los nodos). Cuando se omite, se utiliza el contexto activo de talosconfig.

Modelo de seguridad

Límites de confianza

MCP Client (Claude Code / Codex)
        │  stdio / JSON-RPC
        ▼
   talos-mcp  ◄── reads TALOSCONFIG (~/.talos/config)
        │  gRPC + mTLS
        ▼
  Talos API (each node)
        │
        ▼
    Node OS

Advertencia de flujo de datos: Las respuestas de las herramientas fluyen directamente a la ventana de contexto del LLM y se envían al proveedor del LLM. Todo lo que devuelve una herramienta (IPs de nodos, nombres de host, configuraciones de servicio, registros del kernel, contenido de archivos) se convierte en parte del prompt enviado a través de la red. No utilices este servidor con clústeres que contengan datos que no te sentirías cómodo enviando a tu proveedor de LLM.

El RBAC de Talos se aplica en el lado del servidor. Las credenciales en tu talosconfig determinan qué operaciones están permitidas en cada nodo. talos-mcp no puede omitir el RBAC de Talos: una solicitud que la API rechaza fallará con un error, no tendrá éxito silenciosamente.

Clasificación de herramientas y rol RBAC mínimo requerido

Herramienta

RBAC mínimo

talos_resource_definitions, talos_get, talos_version, talos_services, talos_containers, talos_processes, talos_health, talos_logs, talos_dmesg, talos_events, talos_list_files, talos_read_file

os:reader

talos_etcd, talos_service_action, talos_reboot, talos_upgrade, talos_rollback

os:operator

talos_patch_config

os:admin

Mecanismos de seguridad

Mecanismo

Cómo funciona

Modo solo lectura

TALOS_MCP_READ_ONLY=true registra solo herramientas de solo lectura al inicio; las herramientas de mutación nunca se exponen al LLM

Lista de permitidos de rutas

TALOS_MCP_ALLOWED_PATHS=/etc,/proc restringe talos_read_file y talos_list_files a los prefijos especificados

Puertas de confirmación

talos_reboot, talos_upgrade, talos_rollback y talos_patch_config (cuando dry_run=false) requieren confirm=true; aplicado en el lado del servidor

Preservar por defecto

talos_upgrade establece preserve por defecto en true (mantiene la partición EPHEMERAL) — difiere del valor por defecto de talosctl que es false

Dry-run por defecto

talos_patch_config establece por defecto dry_run=true; aplicar requiere tanto dry_run=false como confirm=true

Registro de auditoría

Todas las llamadas a herramientas de mutación (talos_service_action, talos_reboot, talos_upgrade, talos_rollback, talos_patch_config) emiten una línea de registro estructurada a stderr: AUDIT timestamp=<RFC3339> tool=<name> nodes=<list> args=<json> (el contenido del parche está redactado)

Lo que no está en el modelo de amenazas

  • El LLM en sí — la inyección de prompts, los argumentos de herramientas alucinados y la retención de datos del proveedor de LLM están fuera del alcance de este servidor

  • El cliente MCP — la seguridad de Claude Code, Codex u otros clientes MCP es responsabilidad de esos proyectos

  • Ruta de red entre talos-mcp y los nodos de Talos — protegida por TLS mutuo utilizando las credenciales en tu talosconfig

Configuración de credenciales de menor privilegio

Crea un talosconfig dedicado con permisos mínimos para usar con este servidor:

Acceso de solo lectura (recomendado para la mayoría de los casos de uso):

# Generate a reader-only talosconfig
talosctl config new --roles=os:reader talosconfig-readonly

Luego establece TALOSCONFIG=/ruta/a/talosconfig-readonly y TALOS_MCP_READ_ONLY=true para una restricción máxima. Con esta configuración, el servidor expone solo herramientas de solo lectura y las credenciales no pueden realizar ninguna operación de mutación, incluso si una herramienta fuera omitida de alguna manera.

Acceso de operador (para gestión de servicios, reinicio, actualización):

talosctl config new --roles=os:operator talosconfig-operator

Esto cubre todas las herramientas excepto talos_patch_config (que requiere os:admin).

Acceso completo (requerido para parches de configuración):

Usa tu talosconfig por defecto o genera uno con os:admin. Reserva esto para configuraciones donde se necesite explícitamente la capacidad de parchear la configuración.

Verificación de descargas

Sumas de verificación (integridad)

Cada versión incluye un archivo talos-mcp_<version>_checksums.txt con hashes SHA-256 de todos los archivos. Verifica el binario después de descargarlo:

# 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

Esto detecta la corrupción o descargas truncadas. No protege contra una tubería de lanzamiento comprometida.

Atestaciones de artefactos de GitHub (procedencia SLSA L2)

Cada versión incluye una atestación de procedencia de compilación nativa de GitHub que vincula criptográficamente el binario al commit específico y a la ejecución del flujo de trabajo que lo produjo:

gh attestation verify talos-mcp_<version>_linux_amd64.tar.gz \
  --repo Nosmoht/talos-mcp-server

Esto requiere la CLI de GitHub. Una verificación exitosa significa que el artefacto fue producido por el flujo de trabajo de lanzamiento oficial en este repositorio, no por una compilación de terceros.

Procedencia del paquete npm

El paquete npm se publica con atestación de procedencia:

npm audit signatures

Un resultado exitoso significa que el paquete fue publicado por el flujo de trabajo de lanzamiento oficial de GitHub Actions a través de publicación confiable OIDC.

Desarrollo

# Build
go build -o talos-mcp .

# Test
go test -race ./...

# Lint (requires golangci-lint v2)
golangci-lint run

# Format check
gofmt -l .

Licencia

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

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