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 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ón | Variable de entorno | Predeterminado | Descripción |
|---|---|---|---|
--api-url | ENOCH_API_URL | http://localhost:8787 | URL base para la API de Enoch. |
--api-token | ENOCH_API_TOKEN | ninguno | Token bearer para la API de Enoch. |
--worker-probes-json | ENOCH_WORKER_PROBES_JSON | ninguno | Mapa JSON opcional para diagnósticos directos de workers. |
--worker-probes-file | ENOCH_WORKER_PROBES_FILE | ninguno | Ruta 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.