关于 Nomad MCP Server
Nomad MCP Server 是用 Golang 编写的 MCP 服务,用于连接 HashiCorp Nomad 集群。它通过 Nomad 的 /v1/ HTTP API 操作集群,适合需要借助 AI 助手管理 Nomad 环境的用户。
主要功能
- 01通过 Nomad HTTP API 连接集群
- 02支持 stdio、sse 和 streamable-http 传输
- 03支持 NOMAD_TOKEN 进行 ACL 认证
- 04支持多 region 与默认 namespace 配置
- 05支持 TLS 相关环境变量
适用场景
- 01在 Claude Desktop 中查询 Nomad 集群状态
- 02通过 MCP 客户端停止指定分配(allocation)
- 03在多 region 的 Nomad 集群中指定 region 进行操作
MCP 相关
该项目是 MCP 服务,通过 MCP 工具向客户端暴露 Nomad 集群的操作能力。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
基于 Golang、连接到 Nomad 的 MCP 服务
MCP Nomad Go
与 Claude 配合使用 ⚙ 服务选项 ⚙ MCP Inspector(测试) ⚙ 参与贡献 ↗ ⚙ 关于 MCP ↗
与 Claude 配合使用
https://github.com/user-attachments/assets/731621d7-0acf-4045-bacc-7b34a7d83648
安装选项
| 预构建的 NPM 包 | GitHub 上的预构建版本 | 从源代码构建 | |
|---|---|---|---|
| Claude 配置 | 手动 | 手动 | 手动 |
| 前置条件 | Node.js | 无 | Golang |
从 npm 预构建
此软件包提供 mcp-nomad CLI。最简单的零安装选项(下载到 npm 缓存;需要 Node/npm):
npx -y @kocierik/mcp-nomad
或者全局安装,以便将 mcp-nomad 添加到你的 PATH:
npm install -g @kocierik/mcp-nomad
使用 npx 的 claude_desktop_config.json(推荐):
{
"mcpServers": {
"mcp_nomad": {
"command": "npx",
"args": ["-y", "@kocierik/mcp-nomad"],
"env": {
"NOMAD_TOKEN": "${NOMAD_TOKEN}",
"NOMAD_ADDR": "${NOMAD_ADDR}"
}
}
}
}
如果使用了 npm install -g,请将 command / args 保留为直接调用二进制文件:
{
"mcpServers": {
"mcp_nomad": {
"command": "mcp-nomad",
"args": [],
"env": {
"NOMAD_TOKEN": "${NOMAD_TOKEN}",
"NOMAD_ADDR": "${NOMAD_ADDR}"
}
}
}
}
从 GitHub Releases 获取
下载二进制文件,并按以下方式配置 Claude Desktop:
{
"mcpServers": {
"mcp_nomad": {
"command": "mcp-nomad",
"args": [],
"env": {
"NOMAD_TOKEN": "${NOMAD_TOKEN}",
"NOMAD_ADDR": "${NOMAD_ADDR}"
}
}
}
}
从源代码构建
go get github.com/kocierik/mcp-nomad
go install github.com/kocierik/mcp-nomad
服务选项
命令行标志(手动启动二进制文件并与 MCP Inspector 配合使用时也适用):
-nomad-addr string
Nomad server address (default "http://localhost:4646")
-port string
Port for HTTP server (default "8080")
-transport string
Transport type (stdio, sse, or streamable-http) (default "stdio")
环境变量
NOMAD_ADDR:Nomad HTTP API 地址(默认值:http://localhost:4646)NOMAD_TOKEN:Nomad ACL 令牌(可选)NOMAD_REGION:调用方未覆盖时,将其作为 RESTregion查询参数传递(多区域集群)NOMAD_NAMESPACE:当工具未提供命名空间时,为接受可选命名空间的工具设置默认命名空间- TLS:
NOMAD_CACERT、NOMAD_SKIP_VERIFY、NOMAD_TLS_SERVER_NAME(参见utils/client.go/buildTLSConfig)
HTTP 客户端遵循官方 /v1/ API,并拆分在 utils/client_*.go 中;MCP 工具依赖 utils/nomad_tool_interfaces.go 中定义的精简接口。
NomadClient.MakeRequest(仅用于少数集群/旧版调用位置)会拒绝内部允许列表以外的路径——建议使用 StopAllocation 等类型化辅助函数。
使用 MCP Inspector 浏览
用于本地测试和调试——Claude Desktop 日常使用无需此操作。
要在 MCP Inspector 下运行最新发布的 npm 构建版本:
npx @modelcontextprotocol/inspector npx @kocierik/mcp-nomad
使用本地 HTTP 服务的 Inspector(可选)
默认传输方式为 stdio。若要将 Inspector 作为 Streamable HTTP 接入,请先在另一个终端中启动二进制文件:
go run . -transport=streamable-http -port=8080
然后在 Inspector 中打开 http://localhost:8080/mcp。对于 -transport=sse,请使用 http://localhost:8080/sse。
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。