MCP Nomad Go

A Go-based MCP server for managing HashiCorp Nomad resources, including jobs, deployments, nodes, and cluster operations.

<h4 align="center">Golang-based MCP server connecting to Nomad</h4> <h1 align="center"> <img src="https://github.com/user-attachments/assets/77e291ef-11ae-4b12-94b1-3409f4356ceb" alt="nomad-futuristic-logo" style="width:200px;"/> <br/> MCP Nomad Go </h1> <p align="center"> <a href="#features">Features</a> ⚙ <a href="#browse-with-inspector">Browse With Inspector</a> ⚙ <a href="#use-with-claude">Use With Claude</a> ⚙ <a href="https://github.com/kocierik/mcp-nomad/blob/main/CONTRIBUTING.md">Contributing ↗</a> ⚙ <a href="https://modelcontextprotocol.io">About MCP ↗</a> </p> <p align="center"> <a href="https://goreportcard.com/report/github.com/kocierik/mcp-nomad"><img src="https://goreportcard.com/badge/github.com/kocierik/mcp-nomad" alt="Go Report"></a> <a href="https://github.com/kocierik/mcp-nomad/releases/latest"><img src="https://img.shields.io/github/v/release/kocierik/mcp-nomad?logo=github&color=22ff22" alt="latest release badge"></a> <a href="https://github.com/kocierik/mcp-nomad/blob/main/LICENSE"><img src="https://img.shields.io/github/license/kocierik/mcp-nomad" alt="license badge"></a> </p>

Browse With Inspector

To use the latest published version with Inspector:

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

Options Available

  -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")

Environment Variables

  • NOMAD_ADDR: Nomad HTTP API address (default: http://localhost:4646)
  • NOMAD_TOKEN: Nomad ACL token (optional)

Use With Claude

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

Installation Options

<a href="#using-smithery">Smithery</a><a href="#using-mcp-get">mcp-get</a><a href="#prebuilt-from-npm">Pre-built NPM</a><a href="#from-github-releases">Pre-built in Github</a><a href="#building-from-source">From sources</a><a href="#using-docker">Using Docker</a>
Claude SetupAutoAutoManualManualManualManual
PrerequisiteNode.jsNode.jsNode.jsNoneGolangDocker

Using Smithery

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

Using mcp-get

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

Prebuilt from npm

npm install -g @kocierik/mcp-nomad

Update your claude_desktop_config.json:

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

From GitHub Releases

Download the binary and configure Claude Desktop like so:

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

Building from Source

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

Using Docker linux

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

Using Docker macos/windows

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

For Claude macos/windows:

{
  "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"
      ]
    }
  }
}

For Claude linux:

{
  "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"
      ]
    }
  }
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Related Servers