k

kocierik

virtualizationcloud-platformsci-cd

319 查看 · 2026-07-07 更新

基于 Golang 的 MCP 服务器连接到 Nomad

nomad-futuristic-logo
MCP Nomad Go

功能使用 Inspector 浏览与 Claude 一起使用贡献 ↗关于 MCP ↗

Go 报告 最新版本徽章 许可证徽章

功能

作业管理
  • 列出作业
  • 获取作业详情
  • 运行作业
  • 停止作业
  • 获取作业版本
  • 获取作业提交
  • 列出作业分配
  • 列出作业评估
  • 列出作业部署
  • 获取作业部署
  • 获取作业摘要
  • 更新作业
  • 派遣参数化作业
  • 回滚作业
  • 设置作业稳定性
  • 创建作业评估
  • 创建作业计划
  • 强制新的周期性实例
  • 获取作业缩放状态
  • 缩放任务组
  • 列出作业服务
部署管理
  • 列出部署
  • 获取部署详情
命名空间管理
  • 列出命名空间
  • 创建命名空间
  • 删除命名空间
节点管理
  • 列出节点
  • 获取节点详情
  • 排空节点
  • 设置节点资格
分配管理
  • 列出分配
  • 获取分配详情
  • 获取分配日志
  • 获取任务日志
变量管理
  • 列出带有过滤和分页的变量
  • 获取变量详情
  • 创建支持命名空间的变量
  • 删除支持 CAS 的变量

示例变量操作: bash

列出命名空间中的变量

list_variables namespace="my-namespace" prefix="my/path" per_page=10

获取特定变量

get_variable path="my/path" namespace="my-namespace"

创建变量

create_variable path="my/path" key="username" value="john" namespace="my-namespace"

删除变量

delete_variable path="my/path" namespace="my-namespace"

卷管理
  • 列出卷
  • 获取卷详情
  • 删除卷
  • 列出卷声明
  • 删除卷声明
ACL 管理
  • 列出 ACL 令牌
  • 获取 ACL 令牌详情
  • 创建 ACL 令牌
  • 删除 ACL 令牌
  • 列出 ACL 策略
  • 获取 ACL 策略详情
  • 创建 ACL 策略
  • 删除 ACL 策略
  • 列出 ACL 角色
  • 获取 ACL 角色详情
  • 创建 ACL 角色
  • 删除 ACL 角色
  • 初始化 ACL 系统
Sentinel 策略管理
  • 列出 Sentinel 策略
  • 获取 Sentinel 策略详情
  • 创建 Sentinel 策略
  • 删除 Sentinel 策略
集群管理
  • 获取集群领导者
  • 列出集群对等体
  • 列出区域

使用 Inspector 浏览

要使用最新发布的版本与 Inspector:

bash npx @modelcontextprotocol/inspector npx @kocierik/mcp-nomad

可用选项

-nomad-addr string Nomad 服务器地址 (默认 "http://localhost:4646") -port string SSE 服务器端口 (默认 "8080") -transport string 传输类型 (stdio 或 sse) (默认 "stdio")

环境变量- NOMAD_ADDR: Nomad HTTP API 地址(默认:http://localhost:4646)

  • NOMAD_TOKEN: Nomad ACL 令牌(可选)

与 Claude 一起使用

https://github.com/user-attachments/assets/731621d7-0acf-4045-bacc-7b34a7d83648

安装选项

Smitherymcp-get预构建的 NPMGitHub 上的预构建版本从源代码构建使用 Docker
Claude 设置自动自动手动手动手动手动
前提条件Node.jsNode.jsNode.jsGolangDocker

使用 Smithery

bash npx -y @smithery/cli install @kocierik/mcp-nomad --client claude

使用 mcp-get

bash npx @michaellatman/mcp-get@latest install @kocierik/mcp-nomad

预构建的 NPM

bash npm install -g @kocierik/mcp-nomad

更新您的 claude_desktop_config.json

json { "mcpServers": { "mcp_nomad": { "command": "mcp-nomad", "args": [], "env": { "NOMAD_TOKEN": "${NOMAD_TOKEN}", "NOMAD_ADDR": "${NOMAD_ADDR}" } } } }

从 GitHub 发布版下载

下载二进制文件并像这样配置 Claude Desktop:

json { "mcpServers": { "mcp_nomad": { "command": "mcp-nomad", "args": [], "env": { "NOMAD_TOKEN": "${NOMAD_TOKEN}", "NOMAD_ADDR": "${NOMAD_ADDR}" } } } }

从源代码构建

bash go get github.com/kocierik/mcp-nomad go install github.com/kocierik/mcp-nomad

在 Linux 上使用 Docker

bash docker run -i --rm --network=host kocierik/mcpnomad-server:latest

在 macOS/Windows 上使用 Docker

bash docker run -i --rm -e NOMAD_ADDR=http://host.docker.internal:4646 kocierik/mcpnomad-server:latest

对于 macOS/Windows 的 Claude:

json { "mcpServers": { "mcp_nomad": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "NOMAD_TOKEN=secret-token-acl-optional", "-e", "NOMAD_ADDR=http://host.docker.internal:4646", "mcpnomad/server:latest" ] } } }

对于 Linux 的 Claude:

json { "mcpServers": { "mcp_nomad": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "NOMAD_ADDR=http://172.17.0.1:4646", "-e", "NOMAD_TOKEN=secret-token-acl-optional", "kocierik/mcpnomad-server:latest" ] } } }

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

服务配置

[{'mcpServers': {'mcp_nomad': {'args': ['run', '-i', '--rm', '-e', 'NOMAD_TOKEN=secret-token-acl-optional', '-e', 'NOMAD_ADDR=http://host.docker.internal:4646', 'mcpnomad/server:latest'], 'command': 'docker'}}}, {'mcpServers': {'mcp_nomad': {'args': ['run', '-i', '--rm', '-e', 'NOMAD_ADDR=http://172.17.0.1:4646', '-e', 'NOMAD_TOKEN=secret-token-acl-optional', 'kocierik/mcpnomad-server:latest'], 'command': 'docker'}}}]

来源