使用说明

项目简介

Nomad MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供与 HashiCorp Nomad 集群交互的桥梁。通过标准化的 MCP 协议,它允许 LLM 客户端安全、可扩展地访问 Nomad 集群的上下文信息和操作功能。

主要功能点

  • 全面的 Nomad 集群管理: 支持管理 Nomad 集群中的作业 (Job)、部署 (Deployment)、命名空间 (Namespace)、节点 (Node)、分配 (Allocation)、变量 (Variable)、卷 (Volume) 和 ACL 策略。
  • 丰富的工具集: 提供一系列工具,允许 LLM 客户端执行诸如列出、获取、运行、停止、重启和伸缩作业等操作,以及管理节点、命名空间等。
  • 灵活的传输协议: 支持 SSE (Server-Sent Events) 和 Stdio (标准输入输出) 等多种传输协议,方便与各种 MCP 客户端集成。
  • 资源访问能力: 提供对项目文档、系统信息以及动态 Nomad 资源(如作业规范、节点状态、日志等)的访问,为 LLM 提供丰富的上下文信息。
  • Prompt 模板: 内置 Prompt 模板,可以根据用户需求定制 LLM 交互模式,优化用户体验。

安装步骤

  1. 安装 Go 语言环境: 确保你的开发环境中已安装 Go 语言。
  2. 克隆仓库: 使用 git 命令克隆 nomad-mcp-server 仓库到本地:
    git clone https://github.com/kocierik/nomad-mcp-server.git
  3. 进入仓库目录: 切换到克隆下来的仓库目录:
    cd nomad-mcp-server
  4. 安装依赖: 使用 Go Modules 管理依赖,执行以下命令安装项目依赖:
    go mod tidy

服务器配置

以下 JSON 配置信息用于 MCP 客户端连接 Nomad MCP Server。你需要将此配置添加到你的 MCP 客户端设置中,例如 Claude 的配置。 请注意,以下配置仅为示例,你需要根据你的 Nomad 环境和需求进行调整。

{
  "server_name": "nomad_mcp",  //  自定义的服务器名称,用于在 MCP 客户端中标识
  "command": "go",           //  启动 Nomad MCP Server 的命令,通常为 go
  "args": [                  //  启动命令的参数列表
    "run",
    "main.go",              //  执行 main.go 文件,启动服务器
    "-transport=sse",       //  设置传输协议为 SSE (Server-Sent Events),推荐使用 SSE 或 WebSocket
    "-port=8080",            //  设置 SSE 服务器监听的端口为 8080,可以根据需要修改
    "-nomad-addr=http://localhost:4646" //  Nomad 服务器的地址,请替换为你的 Nomad 服务器地址
  ],
  "env": {
    "NOMAD_TOKEN": "${NOMAD_TOKEN}" //  (可选) Nomad 访问令牌,如果你的 Nomad 集群启用了 ACL 鉴权,则需要设置 NOMAD_TOKEN 环境变量,并在此处引用
  }
}

基本使用方法

  1. 启动 Nomad MCP Server: 在仓库根目录下,根据你选择的传输协议(例如 SSE),使用命令行启动服务器。你需要设置 'NOMAD_TOKEN' 环境变量(如果 Nomad 启用了 ACL)和 Nomad 服务器地址。例如,使用 SSE 协议启动服务器的命令如下:

    NOMAD_TOKEN=your-nomad-token go run main.go -transport=sse -port=8080 -nomad-addr=http://localhost:4646

    请将 'your-nomad-token' 替换为你的 Nomad 访问令牌,'http://localhost:4646' 替换为你的 Nomad 服务器地址。

  2. 配置 MCP 客户端: 将上面提供的 Server Configuration JSON 代码添加到你的 MCP 客户端配置中。具体的配置方法请参考你使用的 MCP 客户端的文档。

  3. 与 Nomad 集群交互: 配置完成后,你就可以在 MCP 客户端中使用自然语言指令,通过 Nomad MCP Server 与你的 Nomad 集群进行交互了。例如,你可以询问集群中正在运行的作业列表,或者要求创建一个新的 Nomad 作业。

信息

分类

开发者工具