Enoch

Servidor MCP para el plano de control Enoch: compuertas de despacho, sincronización de evidencia, procedencia y compuertas de calidad para trabajo autónomo de IA de larga duración.

Documentación

enoch-mcp

enoch-mcp bridge diagram

enoch-mcp es un servidor local Model Context Protocol stdio para una API Enoch FastAPI control-plane configurada. Permite que los clientes MCP inspeccionen y operen Enoch mediante herramientas tipadas sin exponer un shell sin procesar ni reimplementar la lógica de negocio de Enoch.

Repositorio del sistema Enoch · Documentación · MCP

Qué hace

  • Registra herramientas MCP para el control-plane de Enoch, Dashboard V1 y endpoints principales.
  • Envía solicitudes a una URL configurada de la API de Enoch.
  • Añade Authorization: Bearer <token> a las solicitudes de API usando el token configurado.
  • Devuelve las respuestas de la API de Enoch al cliente MCP.
  • Marca las herramientas de solo lectura con anotaciones MCP de solo lectura.
  • Marca las herramientas de mutación como no solo lectura y añade metadatos de aprobación.
  • Mantiene valores predeterminados seguros para operaciones de prueba en seco.
  • Opcionalmente, sondea los workers CPU/GPU configurados directamente a través de las APIs de los workers o diagnósticos SSH permitidos.

Qué no hace

  • No expone una herramienta de shell sin procesar.
  • No acepta comandos SSH arbitrarios.
  • No lee ni escribe archivos de artefactos locales directamente.
  • No llama a modelos de lenguaje.
  • No almacena en caché, reintenta, pone en cola ni programa trabajo.
  • No omite la autenticación ni la autorización de Enoch.

Requisitos

  • Python 3.11 o superior
  • Una API de Enoch en ejecución, normalmente en http://localhost:8787
  • Un token bearer de la API de Enoch
  • Un cliente MCP que pueda ejecutar servidores stdio locales

Instalación

Ejecute desde PyPI con uvx:

uvx enoch-mcp --api-url http://localhost:8787 --api-token '<token>'

O configure con variables de entorno:

export ENOCH_API_URL='http://localhost:8787'
export ENOCH_API_TOKEN='<token>'
uvx enoch-mcp

Para desarrollo local desde un checkout:

git clone https://github.com/alias8818/enoch-mcp.git
cd enoch-mcp
uv sync --dev
uv run enoch-mcp --api-url http://localhost:8787 --api-token '<token>'

Configuración

OpciónVariable de entornoPredeterminadoDescripción
--api-urlENOCH_API_URLhttp://localhost:8787URL base para la API de Enoch.
--api-tokenENOCH_API_TOKENningunoToken bearer para la API de Enoch.
--worker-probes-jsonENOCH_WORKER_PROBES_JSONningunoMapa JSON opcional para diagnósticos directos de workers.
--worker-probes-fileENOCH_WORKER_PROBES_FILEningunoRuta opcional a un mapa JSON para diagnósticos directos de workers.

El token es obligatorio. Si falta, las llamadas a herramientas fallan antes de realizar una solicitud HTTP.

Sondeos opcionales de workers

Los sondeos de workers están deshabilitados a menos que se configure ENOCH_WORKER_PROBES_JSON o ENOCH_WORKER_PROBES_FILE. Esto mantiene el paquete predeterminado como un puente delgado de control-plane. Cuando se configura, el MCP expone diagnósticos nombrados para la verdad del worker: estado de salud de la API, estado del panel de worker-gate, marcadores de procesos activos, colas de registros limitadas, espacio en disco y presencia esperada de artefactos.

Ejemplo:

{
  "cpu": {
    "api_url": "http://127.0.0.1:18788",
    "api_token": "worker-api-token",
    "service_name": "enoch-control-plane",
    "project_root": "/srv/enoch/projects"
  },
  "gpu": {
    "api_url": "http://127.0.0.1:18789",
    "api_token": "worker-api-token",
    "ssh_host": "worker-gpu.example.internal",
    "ssh_user": "enoch",
    "service_name": "enoch-control-plane",
    "project_root": "/srv/enoch/projects",
    "log_paths": ["/var/log/enoch-control-plane.log"]
  }
}

Campos admitidos por carril:

  • api_url: URL base de worker-gate. Se usa primero para /healthz, /dashboard/api, /dashboard/api/run/{run_id} y /project-status/{project_id}.
  • api_token: token bearer del worker. Se trata como secreto.
  • ssh_host, ssh_user, ssh_port: destino opcional de respaldo/depuración SSH.
  • service_name: nombre de la unidad systemd para comprobaciones de servicios y colas de registros del diario.
  • project_root, state_dir: raíces fijas de workers utilizadas para comprobaciones de disco y artefactos.
  • log_paths: rutas fijas de registros de worker-gate que pueden consultarse.

Los sondeos SSH solo ejecutan comandos de diagnóstico fijos. No aceptan entrada de shell arbitraria del cliente MCP. Los IDs proporcionados por el usuario se limitan a caracteres seguros de identificadores de ejecución/proyecto, la salida de registros está limitada, SSH usa modo batch y sin stdin, y la implementación recomendada es un usuario de worker de solo lectura o una política de comandos forzados.

Configuración del cliente MCP

Claude Desktop

{
  "mcpServers": {
    "enoch": {
      "command": "uvx",
      "args": ["enoch-mcp"],
      "env": {
        "ENOCH_API_URL": "http://localhost:8787",
        "ENOCH_API_TOKEN": "replace-with-token"
      }
    }
  }
}

Para desarrollo local, apunte el cliente MCP al checkout:

{
  "mcpServers": {
    "enoch": {
      "command": "uv",
      "args": ["--directory", "/path/to/enoch-mcp", "run", "enoch-mcp"],
      "env": {
        "ENOCH_API_URL": "http://localhost:8787",
        "ENOCH_API_TOKEN": "replace-with-token"
      }
    }
  }
}

Use la configuración equivalente de servidor stdio local para Cursor, Copilot, Windsurf u otros clientes MCP.

Desarrollo

uv sync --dev
uv run pytest -q
gitleaks detect --no-git --redact

Nota de seguridad pública

Este paquete es público. Los ejemplos deben usar marcadores de posición y URLs locales únicamente. No publique nombres de host privados, IPs de LAN/Tailscale, rutas de operador ni tokens en vivo.