Enoch

io.github.alias8818Published by GitHub account alias8818v0.1.1Updated Oct 24, 2026

Operate an Enoch control plane through MCP tools

Overview

AI-generated overview

Local MCP server that lets an assistant inspect and operate a configured Enoch control plane through typed API tools.

What you can do
Registers MCP tools that wrap Enoch control-plane, Dashboard V1, and core endpoints, sending requests to a configured Enoch API URL with a bearer token and returning the API responses to the client. Read-only tools are annotated as such, while mutating tools are marked non-read-only with approval metadata and dry-run defaults. Optionally, when worker probes are configured, it exposes named diagnostics for CPU/GPU workers such as API health, dashboard status, process markers, bounded log tails, disk space, and artifact presence.
When to use it
Use it when you run an Enoch control plane and want an MCP client to query and operate it without a raw shell or reimplementing Enoch logic. It suits operators who need status and diagnostics, including optional worker health checks, from an assistant.
Requirements
Python 3.11 or newer, run from PyPI with uvx, plus a running Enoch API (normally at and an Enoch API bearer token supplied via ENOCH_API_TOKEN. An MCP client that can run local stdio servers is needed; ENOCH_API_URL sets the base URL. Optional worker probes need ENOCH_WORKER_PROBES_JSON or ENOCH_WORKER_PROBES_FILE.
Before you install
ENOCH_API_TOKEN is a required secret and tool calls fail without it; keep it out of shared configs. Mutating tools are marked non-read-only and carry approval metadata, so review before allowing writes. Optional worker probes may include worker API tokens and SSH targets, and SSH diagnostics should use a read-only user or forced-command policy. Examples must not contain private hostnames, LAN IPs, operator paths, or live tokens.

Installation

In SourceWeft

  1. Open Enoch in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

enoch-mcp

[enoch-mcp bridge diagram]

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

What it does

  • Registers MCP tools for Enoch control-plane, Dashboard V1, and core endpoints.
  • Sends requests to a configured Enoch API URL.
  • Adds Authorization: Bearer <token> to API requests using the configured token.
  • Returns Enoch API responses to the MCP client.
  • Marks read-only tools with MCP read-only annotations.
  • Marks mutating tools as non-read-only and adds approval metadata.
  • Keeps safe defaults for dry-run operations.
  • Optionally probes configured CPU/GPU workers directly through worker APIs or allowlisted SSH diagnostics.

What it does not do

  • It does not expose a raw shell tool.
  • It does not accept arbitrary SSH commands.
  • It does not read or write local artifact files directly.
  • It does not call language models.
  • It does not cache, retry, queue, or schedule work.
  • It does not bypass Enoch authentication or authorization.

Requirements

  • Python 3.11 or newer
  • A running Enoch API, normally at http://localhost:8787
  • An Enoch API bearer token
  • An MCP client that can run local stdio servers

Installation

Run from PyPI with uvx:

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

Or configure with environment variables:

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

For local development from a checkout:

bash
git clone https://github.com/alias8818/enoch-mcp.gitcd enoch-mcpuv sync --devuv run enoch-mcp --api-url http://localhost:8787 --api-token '<token>'

Configuration

OptionEnvironment variableDefaultDescription
--api-urlENOCH_API_URLhttp://localhost:8787Base URL for the Enoch API.
--api-tokenENOCH_API_TOKENnoneBearer token for the Enoch API.
--worker-probes-jsonENOCH_WORKER_PROBES_JSONnoneOptional JSON map for direct worker diagnostics.
--worker-probes-fileENOCH_WORKER_PROBES_FILEnoneOptional 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.

Optional worker probes

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:

json
{  "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.

MCP client setup

Claude Desktop

json
{  "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:

json
{  "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.

Development

bash
uv sync --devuv run pytest -qgitleaks detect --no-git --redact

Public-safety note

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.

Source: README.md at commit 57c923f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.1LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts