Nomad MCP Server について
Nomad MCP Server は Golang で書かれた MCP サーバーで、公式の /v1/ HTTP API を通じて HashiCorp Nomad クラスターに接続します。AI アシスタントから Nomad 環境を操作したい利用者に向いています。
主な機能
- 01Nomad HTTP API による接続
- 02stdio、sse、streamable-http のトランスポート対応
- 03NOMAD_TOKEN による ACL トークン認証
- 04リージョンと既定の namespace の設定
- 05環境変数による TLS 設定
活用シーン
- 01Claude Desktop から Nomad クラスターの状態を照会
- 02MCP クライアントから特定のアロケーションを停止
- 03マルチリージョン構成でのリージョン指定操作
MCP 対応
MCP サーバーとして、Nomad クラスターの操作を MCP クライアントへツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Nomad に接続する Go 製 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:呼び出し側で指定されていない場合、REST のregionクエリパラメーターとして渡されます(マルチリージョンクラスター)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 を日常的に使ううえで必要なものではありません。
公開されている最新の npm ビルドを MCP Inspector で実行するには:
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 のもとでライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。