使用说明
项目简介
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 交互模式,优化用户体验。
安装步骤
- 安装 Go 语言环境: 确保你的开发环境中已安装 Go 语言。
- 克隆仓库: 使用 git 命令克隆 nomad-mcp-server 仓库到本地:
git clone https://github.com/kocierik/nomad-mcp-server.git - 进入仓库目录: 切换到克隆下来的仓库目录:
cd nomad-mcp-server - 安装依赖: 使用 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 环境变量,并在此处引用 } }
基本使用方法
-
启动 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 服务器地址。
-
配置 MCP 客户端: 将上面提供的 Server Configuration JSON 代码添加到你的 MCP 客户端配置中。具体的配置方法请参考你使用的 MCP 客户端的文档。
-
与 Nomad 集群交互: 配置完成后,你就可以在 MCP 客户端中使用自然语言指令,通过 Nomad MCP Server 与你的 Nomad 集群进行交互了。例如,你可以询问集群中正在运行的作业列表,或者要求创建一个新的 Nomad 作业。
信息
分类
开发者工具