关于 Mcp Nomad
Mcp Nomad 是一个用 Go 编写的 MCP 服务,用于连接 HashiCorp Nomad 集群。它支持 stdio、SSE 和 Streamable HTTP 传输,并通过环境变量配置地址、令牌、区域和 TLS。适合需要通过 AI 客户端管理 Nomad 集群的运维人员。
主要功能
- 01使用 Go 编写,可通过 npm 或二进制安装
- 02支持 stdio、sse 和 streamable-http 传输
- 03通过环境变量配置 Nomad 地址、ACL 令牌和命名空间
- 04支持多区域集群与 TLS 配置
- 05提供 MCP Inspector 测试方式
适用场景
- 01在 Claude Desktop 中查询 Nomad 集群状态
- 02通过 MCP 客户端停止 Nomad 分配
- 03在 MCP Inspector 中调试 Nomad 服务
MCP 相关
Mcp Nomad 作为 MCP 服务运行,将 Nomad HTTP API 的操作以工具形式提供给 MCP 客户端,并支持 stdio、SSE 与 Streamable HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。