Skip to main content
Glama

GitOps Safe MCP

Un servidor MCP stdio deliberadamente limitado, extraído de spectrenet-mcp en el commit 2e63f009d8f4642e17398685baef0251811d6637. Expone únicamente:

  • repository_status: estado de Git y cinco commits recientes (solo lectura).

  • diff_summary: estadísticas de diff sin stage y nombres del árbol de trabajo (solo lectura).

  • tofu_validate: tofu fmt -check -recursive y tofu validate -no-color.

  • ansible_syntax: un playbook YAML contenido mediante un comando fijo/gestionado por el operador ansible-playbook --syntax-check.

No hay herramientas de escritura en Git, plan/apply de OpenTofu, ejecución de playbooks de Ansible, shell ni comandos arbitrarios.

Advertencia importante sobre Ansible

No se garantiza que la verificación de sintaxis de Ansible sea inerte: los plugins de búsqueda y parte de la carga de colecciones/plugins pueden ejecutar código al analizar un playbook. Trata el repositorio y las dependencias configurados como código de confianza. Ejecuta este servidor bajo una cuenta dedicada sin privilegios, con un entorno depurado, un montaje de repositorio de solo lectura, sin credenciales de producción y con acceso restringido a red/sistema de archivos. El ejecutable debe configurarse como una ruta absoluta gestionada por el operador (o un envoltorio absoluto propiedad del operador); nunca se acepta desde un argumento de herramienta.

Related MCP server: Gumi-MCP

Límites de seguridad

Todas las rutas secundarias configuradas y los playbooks solicitados se resuelven (incluidos los enlaces simbólicos), deben ser relativos, deben existir y deben permanecer estrictamente por debajo de su raíz resuelta permitida. Cada subproceso recibe la misma lista mínima explícita de permitidos (PATH, variables básicas de usuario/idioma/terminal/temp y XDG_*); solo Ansible recibe adicionalmente el ANSIBLE_CONFIG contenido. Las credenciales de procesos no relacionados, los tokens de nube y los secretos de proveedores no se heredan. Los subprocesos usan matrices argv, verbos/banderas fijos, tiempos de espera y stdout/stderr acotados. El registro de auditoría JSONL incluye marca de tiempo, ID de solicitud UUID, herramienta/objetivo, marcador de no mutación, código de salida, estado de tiempo de espera y duración, pero no la salida del comando ni los valores del entorno.

Esto es defensa en profundidad, no un sandbox. Consulta Seguridad y Arquitectura.

Instalación y ejecución

Se recomiendan Python 3.11+ y uv:

uv sync --extra test
cp .env.example .env.reference  # reference only; the package does not load dotenv files
uv run gitops-safe-mcp

Inyecta la configuración con un gestor de servicios o de secretos/configuración. Asegúrate de que el directorio de auditoría solo sea escribible por el servicio/operador.

Verificación

uv run --extra test pytest
uv run python -m compileall -q src tests
uv build

Las pruebas usan repositorios falsos temporales y ejecutables falsos. No ejecutan OpenTofu ni Ansible contra infraestructura real.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to safely inspect a local repository's code and metadata while blocking private data from leaving the machine, providing read-only tools for search, change tracking, and integrity verification.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI clients to securely inspect local source repositories with read-only tools for listing files, reading files, and searching text, while enforcing path traversal protection and sensitive-file filtering.
    3
    MIT