mcpField
E

Enoch

本地服务
github.com云与基础设施017 周前更新

关于 Enoch

enoch-mcp 是供 MCP 客户端检查和操作已配置 Enoch 控制平面的本地 stdio MCP 服务。它将类型化工具调用转发至 Enoch API,并使用身份验证和操作元数据,不开放原始 Shell。

主要功能

  1. 01控制平面与仪表板端点的类型化工具
  2. 02Bearer 令牌 API 身份验证
  3. 03只读标注与审批元数据
  4. 04可选 CPU/GPU Worker 诊断
  5. 05不提供原始 Shell 或任意 SSH 命令

适用场景

  1. 01通过 MCP 客户端查看 Enoch 控制平面状态
  2. 02使用类型化 API 工具操作 Enoch
  3. 03检查已配置 Worker 的运行状况与诊断信息

MCP 相关

它通过本地 stdio 将 Enoch 控制平面、Dashboard V1 和核心 API 操作作为 MCP 工具提供。客户端可接收 API 响应;可选的 Worker 探测会提供指定诊断信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"alias8818-enoch": {
"command": "uvx",
"args": [
"enoch-mcp"
],
"env": {
"ENOCH_API_URL": "<ENOCH_API_URL>",
"ENOCH_API_TOKEN": "<ENOCH_API_TOKEN>"
}
}
}
}
启动命令uvx enoch-mcp
需要配置的环境变量
ENOCH_API_URLBase URL for the Enoch API.
ENOCH_API_TOKEN密钥Bearer token for the Enoch API.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypienoch-mcp0.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

enoch-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-urlENOCH_API_URLhttp://localhost:8787Enoch API 的基础 URL。
--api-tokenENOCH_API_TOKEN无Enoch API 的持有者令牌。
--worker-probes-jsonENOCH_WORKER_PROBES_JSON无用于直接诊断工作器的可选 JSON 映射。
--worker-probes-fileENOCH_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、操作员路径或有效令牌。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。