关于 Enoch
enoch-mcp 是供 MCP 客户端检查和操作已配置 Enoch 控制平面的本地 stdio MCP 服务。它将类型化工具调用转发至 Enoch API,并使用身份验证和操作元数据,不开放原始 Shell。
主要功能
- 01控制平面与仪表板端点的类型化工具
- 02Bearer 令牌 API 身份验证
- 03只读标注与审批元数据
- 04可选 CPU/GPU Worker 诊断
- 05不提供原始 Shell 或任意 SSH 命令
适用场景
- 01通过 MCP 客户端查看 Enoch 控制平面状态
- 02使用类型化 API 工具操作 Enoch
- 03检查已配置 Worker 的运行状况与诊断信息
MCP 相关
它通过本地 stdio 将 Enoch 控制平面、Dashboard V1 和核心 API 操作作为 MCP 工具提供。客户端可接收 API 响应;可选的 Worker 探测会提供指定诊断信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
enoch-mcp
enoch-mcp 是一个本地 Model Context Protocol stdio 服务,面向已配置的 Enoch FastAPI 控制平面 API。 它让 MCP 客户端能够通过类型化工具检查和操作 Enoch,而无需暴露原始 shell 或重新实现 Enoch 业务逻辑。
Enoch 系统仓库 · 文档 · MCP
功能
- 为 Enoch 控制平面、Dashboard V1 和核心端点注册 MCP 工具。
- 向已配置的 Enoch API URL 发送请求。
- 使用已配置的令牌,为 API 请求添加
Authorization: Bearer <token>。 - 将 Enoch API 响应返回给 MCP 客户端。
- 为只读工具添加 MCP 只读注解。
- 将修改类工具标记为非只读,并添加审批元数据。
- 为试运行操作保留安全默认值。
- 可选地通过工作器 API 或允许列表中的 SSH 诊断直接探测已配置的 CPU/GPU 工作器。
不提供的功能
- 不提供原始 shell 工具。
- 不接受任意 SSH 命令。
- 不会直接读取或写入本地工件文件。
- 不会调用语言模型。
- 不会缓存、重试、排队或安排工作。
- 不会绕过 Enoch 身份验证或授权。
要求
- Python 3.11 或更高版本
- 正在运行的 Enoch API,通常位于
http://localhost:8787 - Enoch API 持有者令牌
- 能够运行本地 stdio 服务的 MCP 客户端
安装
通过 uvx 从 PyPI 运行:
uvx enoch-mcp --api-url http://localhost:8787 --api-token '<token>'
或使用环境变量进行配置:
export ENOCH_API_URL='http://localhost:8787'
export ENOCH_API_TOKEN='<token>'
uvx enoch-mcp
从代码检出目录进行本地开发:
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>'
配置
| 选项 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--api-url | ENOCH_API_URL | http://localhost:8787 | Enoch API 的基础 URL。 |
--api-token | ENOCH_API_TOKEN | 无 | Enoch API 的持有者令牌。 |
--worker-probes-json | ENOCH_WORKER_PROBES_JSON | 无 | 用于直接诊断工作器的可选 JSON 映射。 |
--worker-probes-file | ENOCH_WORKER_PROBES_FILE | 无 | 用于直接诊断工作器的 JSON 映射的可选路径。 |
令牌为必填项。如果缺少令牌,工具调用会在发出 HTTP 请求前失败。
可选的工作器探测
除非配置了 ENOCH_WORKER_PROBES_JSON 或 ENOCH_WORKER_PROBES_FILE,否则工作器探测处于禁用状态。这样可确保默认软件包只是一个轻量级控制平面桥接层。配置后,MCP 会公开用于核实工作器实际状态的命名诊断项:API 健康状态、worker-gate 仪表板状态、活动进程标记、有界日志尾部、磁盘空间以及预期工件是否存在。
示例:
{
"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"]
}
}
每个通道支持的字段:
api_url:worker-gate 基础 URL。首先用于/healthz、/dashboard/api、/dashboard/api/run/{run_id}和/project-status/{project_id}。api_token:工作器持有者令牌。视为机密。ssh_host、ssh_user、ssh_port:可选的 SSH 回退/调试目标。service_name:用于服务检查和 journal 尾部的 systemd 单元名称。project_root、state_dir:用于磁盘和工件检查的固定工作器根目录。log_paths:可读取尾部的固定 worker-gate 日志路径。
SSH 探测只会运行固定的诊断命令,不接受 MCP 客户端提供的任意 shell 输入。用户提供的 ID 仅限安全的运行/项目标识符字符,日志输出有长度限制,SSH 使用批处理模式且不接收标准输入;建议部署为只读工作器用户或强制命令策略。
MCP 客户端设置
Claude Desktop
{
"mcpServers": {
"enoch": {
"command": "uvx",
"args": ["enoch-mcp"],
"env": {
"ENOCH_API_URL": "http://localhost:8787",
"ENOCH_API_TOKEN": "replace-with-token"
}
}
}
}
进行本地开发时,将 MCP 客户端指向代码检出目录:
{
"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"
}
}
}
}
对于 Cursor、Copilot、Windsurf 或其他 MCP 客户端,请使用等效的本地 stdio 服务设置。
开发
uv sync --dev
uv run pytest -q
gitleaks detect --no-git --redact
公共安全说明
此软件包是公开的。示例必须仅使用占位符和本地 URL。请勿发布私有主机名、局域网/Tailscale IP、操作员路径或有效令牌。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。