Connects Claude directly to a running Enoch control plane API via MCP tools. Exposes read-only status checks, queue health, automation readiness reports, and worker lane state alongside mutating operations for dispatching runs and managing the research pipeline. Acts as a thin HTTP bridge that forwards authenticated requests to your local Enoch instance without reimplementing business logic. Optionally probes worker APIs or runs bounded SSH diagnostics for direct worker truth when configured. Useful when you're operating an Enoch agentic research system and want Claude to inspect state, diagnose worker health, or trigger dispatch actions without leaving the conversation.
enoch-mcp is a local Model Context Protocol stdio server for a configured Enoch FastAPI control-plane API. It lets MCP clients inspect and operate Enoch through typed tools without exposing a raw shell or reimplementing Enoch business logic.
Enoch system repo · Docs · MCP
Authorization: Bearer <token> to API requests using the configured token.http://localhost:8787Run from PyPI with uvx:
uvx enoch-mcp --api-url http://localhost:8787 --api-token '<token>'
Or configure with environment variables:
export ENOCH_API_URL='http://localhost:8787'
export ENOCH_API_TOKEN='<token>'
uvx enoch-mcp
For local development from a 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>'
| Option | Environment variable | Default | Description |
|---|---|---|---|
--api-url | ENOCH_API_URL | http://localhost:8787 | Base URL for the Enoch API. |
--api-token | ENOCH_API_TOKEN | none | Bearer token for the Enoch API. |
--worker-probes-json | ENOCH_WORKER_PROBES_JSON | none | Optional JSON map for direct worker diagnostics. |
--worker-probes-file | ENOCH_WORKER_PROBES_FILE | none | Optional path to a JSON map for direct worker diagnostics. |
The token is required. If it is missing, tool calls fail before making an HTTP request.
Worker probes are disabled unless ENOCH_WORKER_PROBES_JSON or ENOCH_WORKER_PROBES_FILE is configured. This keeps the default package a thin control-plane bridge. When configured, the MCP exposes named diagnostics for worker truth: API health, worker-gate dashboard status, active process markers, bounded log tails, disk space, and expected artifact presence.
Example:
{
"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"]
}
}
Supported fields per lane:
api_url: worker-gate base URL. Used first for /healthz, /dashboard/api, /dashboard/api/run/{run_id}, and /project-status/{project_id}.api_token: worker bearer token. Treated as secret.ssh_host, ssh_user, ssh_port: optional SSH fallback/debug target.service_name: systemd unit name for service checks and journal tails.project_root, state_dir: fixed worker roots used for disk and artifact checks.log_paths: fixed worker-gate log paths that may be tailed.SSH probes only run fixed diagnostic commands. They do not accept arbitrary shell input from the MCP client. User-supplied IDs are limited to safe run/project identifier characters, log output is bounded, SSH uses batch mode and no stdin, and the recommended deployment is a read-only worker user or forced-command policy.
{
"mcpServers": {
"enoch": {
"command": "uvx",
"args": ["enoch-mcp"],
"env": {
"ENOCH_API_URL": "http://localhost:8787",
"ENOCH_API_TOKEN": "replace-with-token"
}
}
}
}
For local development, point the MCP client at the 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 the equivalent local stdio-server settings for Cursor, Copilot, Windsurf, or other MCP clients.
uv sync --dev
uv run pytest -q
gitleaks detect --no-git --redact
This package is public. Examples must use placeholders and local URLs only. Do not publish private hostnames, LAN/Tailscale IPs, operator paths, or live tokens.
ENOCH_API_URLdefault: http://localhost:8787Base URL for the Enoch API.
ENOCH_API_TOKEN*secretBearer token for the Enoch API.