
Nomad MCP Server

2025.04.22
1
Go集群管理作业调度开发效率数据库
Nomad MCP Server 是一个通过 MCP(Model Control Protocol)接口管理 Nomad 集群的服务器。它提供了一系列工具,用于管理 Nomad 集群中的作业、部署、命名空间、节点、分配、变量、卷和 ACL(访问控制列表)。该服务器支持实时监控(通过 SSE)和基于令牌的安全认证。
View on GitHub
Overview
基本能力
产品定位
Nomad MCP Server 是一个用于管理 Nomad 集群的工具服务器,通过 MCP 接口提供集群管理的各种功能。
核心功能
- 作业管理:列出、获取、运行、停止、重启和缩放作业。
- 部署管理:列出和获取部署。
- 命名空间管理:列出、创建和删除命名空间。
- 节点管理:列出、获取和排空节点。
- 分配管理:列出、获取和停止分配。
- 变量管理:列出、获取、创建和删除变量。
- 卷管理:列出、获取、创建和删除卷。
- ACL 管理:管理令牌、策略和角色。
- 作业模板访问:提供作业模板作为创建新作业的起点。
- 实时监控:通过 SSE 实现实时监控。
- 安全认证:基于令牌的安全认证。
适用场景
- 管理 Nomad 集群中的作业和部署。
- 管理集群中的命名空间、节点和分配。
- 管理集群中的变量和卷。
- 管理集群的访问控制(ACL)。
- 实时监控集群状态。
工具列表
- Job Tools:管理作业的工具,如
list_jobs
,get_job
,run_job
,stop_job
,restart_job
,scale_job
等。 - Deployment Tools:管理部署的工具,如
list_deployments
,get_deployment
。 - Namespace Tools:管理命名空间的工具,如
list_namespaces
,create_namespace
,delete_namespace
。 - Node Tools:管理节点的工具,如
list_nodes
,get_node
,drain_node
。 - Allocation Tools:管理分配的工具,如
list_allocations
,get_allocation
,stop_allocation
。 - Variable Tools:管理变量的工具,如
list_variables
,get_variable
,create_variable
,delete_variable
。 - Volume Tools:管理卷的工具,如
list_volumes
,get_volume
,create_volume
,delete_volume
。 - ACL Tools:管理 ACL 的工具,如
bootstrap_acl_token
,list_acl_tokens
,get_acl_token
,create_acl_token
,delete_acl_token
,list_acl_policies
,get_acl_policy
,create_acl_policy
,delete_acl_policy
,list_acl_roles
,get_acl_role
,create_acl_role
,delete_acl_role
。
常见问题解答
- 如何启动服务器? 使用
go run main.go
命令,并指定必要的参数和环境变量。 - 如何配置服务器? 通过命令行标志和环境变量进行配置。
- 如何管理 ACL? 使用提供的 ACL 工具进行令牌、策略和角色的管理。
使用教程
使用依赖
# Clone the repository
git clone https://github.com/kocierik/nomad-mcp-server.git
cd nomad-mcp-server
# install dependencies
go mod tidy
安装教程
# Start with custom configuration
NOMAD_TOKEN=your-token-here go run main.go \
-transport=sse \
-port=8080 \
-nomad-addr=http://localhost:4646
调试方式
# Using the MCP Inspector
NOMAD_TOKEN=your-token-here npx @modelcontextprotocol/inspector go run main.go -transport=stdio
配置
命令行标志
-transport
: 传输类型("stdio" 或 "sse",默认:"stdio")-port
: SSE 服务器的端口(默认:"8080")-nomad-addr
: Nomad 服务器地址(默认:"http://localhost:4646")
环境变量
NOMAD_TOKEN
: Nomad 的认证令牌(如果启用了 ACL,则为必需)
Claude 集成
将以下配置添加到您的 Claude 设置中:
{
"mcpServers": {
"nomad_mcp": {
"command": "/home/erik/Desktop/nomad-mcp-server/nomad-mcp-server",
"args": [
"-transport=stdio",
"-port=8080",
"-nomad-addr=http://localhost:4646"
],
"env": {
"NOMAD_TOKEN": "${NOMAD_TOKEN}"
}
}
}
}