LabNetworkPython

Claude CodeにMCP経由でNetBoxを接続する【自然言語でネットワーク管理データを照会する】

スポンサーラベル
Claude Code から MCP 経由で NetBox を照会する構成。Claude CodeからMCPでNetBox MCPサーバー(stdio/ローカルプロセス、読み取り専用ツールを公開)へ、そこからREST APIでNetBoxへ接続する。MCPサーバーの実行場所は手元のPC・踏み台サーバーいずれも可で、NetBoxのAPIトークンはMCPサーバーの環境変数として渡しリポジトリには含めない Lab

当サイトはアフィリエイト広告を利用しています。

社内のIPアドレスや機器情報をNetBoxで管理していても、確認のたびに管理画面を開いてフィルタをかけるのは手間です。Claude Codeには外部システムと接続するためのMCP(Model Context Protocol)という仕組みがあり、これを使うとNetBoxのデータを自然言語のまま問い合わせられるようになります。本記事では、コミュニティ製のNetBox向けMCPサーバーをClaude Codeに登録し、手元で動かすまでの手順を整理します。

1. MCPとNetBoxを組み合わせると何ができるか

MCPはAIツールと外部システムを繋ぐオープンな規格で、Claude Codeからはclaude mcp addコマンドで外部のMCPサーバーを登録できます。登録したサーバーが公開する「ツール」をClaude Codeが呼び出すことで、チャットの中から直接データを読み書きできるようになります。

NetBoxは以前の記事(「Netbox」をDockerで簡単構築するNetboxで自宅ネットワークのIPアドレス一覧を管理してみる)で構築・利用方法を扱ったIPAM/DCIMツールです。この記事は、それらの手順ですでにNetBoxが動いていることを前提にしています。NetBox向けのMCPサーバーを挟むと、「このVLANを使っている機器を教えて」「未割り当てのIPアドレスは何個ある?」といった質問を、NetBoxの画面を開かずにClaude Codeとの会話だけで済ませられます。

2. NetBox MCPサーバーの選定

2026年8月時点でGitHub上を検索すると、NetBox向けのMCPサーバーはコミュニティ製のものが複数公開されており、実装によって性格が大きく異なります。読み取り専用のものと、オブジェクトの作成・更新・削除まで行える読み書き対応のものが混在している点には注意が必要です。

本記事では、読み取り専用でシンプルな構成のardecode/netbox-mcp-serverを例に手順を進めます。NetBoxのデータはネットワーク構成の正となる情報であり、まだ実績の浅いコミュニティ製サーバーに書き込み権限を与えるのはリスクが大きいためです。Claude Code自身のドキュメントでも、接続するMCPサーバーは信頼できるものかどうかを確認するよう案内されています。書き込み対応のサーバーを検討する場合は、変更内容がNetBoxの監査ログに残ること、誤操作時の影響範囲を必ず確認してください。

Claude Code から MCP 経由で NetBox を照会する構成。Claude CodeからMCPでNetBox MCPサーバー(stdio/ローカルプロセス、読み取り専用ツールを公開)へ、そこからREST APIでNetBoxへ接続する。MCPサーバーの実行場所は手元のPC・踏み台サーバーいずれも可で、NetBoxのAPIトークンはMCPサーバーの環境変数として渡しリポジトリには含めない

3. NetBox側の準備(APIトークンの発行)

NetBoxの管理画面から、MCPサーバー専用のAPIトークンを発行します。既存のトークンを使い回さず、用途ごとに分けておくと、不要になった際に無効化しやすくなります。

  1. NetBox管理画面 → 右上のユーザーメニュー → 「API Tokens」
  2. 「Add a token」で新規発行。「Write enabled」のチェックを外し、読み取り専用のトークンにする
  3. 発行されたトークン文字列を控える(再表示できない場合があるため、その場でメモする)

APIトークンはコード中に直接書かず、環境変数として渡すことをおすすめします。読み取り専用のMCPサーバーを使う場合でも、トークン自体が漏えいすればNetBox全体の情報を読み取られてしまうためです。

4. Claude Codeへの登録

まず、MCPサーバーの実行に必要なPython環境を用意します。

# 作業用ディレクトリを作り、MCPサーバーをクローンする
git clone https://github.com/ardecode/netbox-mcp-server.git
cd netbox-mcp-server

# 仮想環境を作成し、必要なパッケージを導入する
python -m venv .venv
source .venv/bin/activate
pip install mcp httpx

続いて、Claude Codeにclaude mcp addコマンドでこのサーバーを登録します。--より後ろがそのままサーバーの起動コマンドとして渡される点がポイントです。

# NetBoxのURL・トークンを環境変数として渡し、stdio方式でサーバーを登録する
claude mcp add --env NETBOX_URL=https://netbox.example.local \
  --env NETBOX_TOKEN=your-read-only-token \
  --transport stdio --scope project \
  netbox -- python /path/to/netbox-mcp-server/netbox_server.py

--scope projectを指定すると設定はプロジェクト直下の.mcp.jsonに書き込まれ、チームで共有できます。トークンのようにリポジトリへ含めたくない値は、.mcp.jsonの中で${NETBOX_TOKEN}のように環境変数展開の記法を使い、各メンバーが自分の環境でトークンを設定する形にすると安全です。個人の手元だけで試すなら、既定の--scope local~/.claude.jsonに保存され、他プロジェクトからは見えない)のままで構いません。

5. 動作確認

登録が終わったら、サーバーが認識されているかを確認します。

# 登録済みのMCPサーバー一覧を確認する
claude mcp list

# netboxサーバーの詳細(起動コマンド・環境変数など)を確認する
claude mcp get netbox

Claude Codeのセッション内で/mcpを実行すると、接続状態と公開されているツール数が表示されます。問題なければ、チャットから次のように自然言語で問い合わせられます。

NetBoxに登録されているデバイスの一覧を教えてください
203.0.113.0/24のサブネットで未割り当てのIPアドレスは何個ありますか

エラーで接続できない場合は、まず単体でサーバーを起動し、標準出力にエラーメッセージが出ていないかを確認します。

# MCPサーバー単体で起動し、環境変数の設定漏れなどを切り分ける
NETBOX_URL=https://netbox.example.local NETBOX_TOKEN=your-read-only-token \
  python /path/to/netbox-mcp-server/netbox_server.py

6. 注意点

この記事の手順は、公開リポジトリのドキュメントをもとに整理したものであり、実際のNetBox環境でMCPサーバーを接続して動作を確認したものではありません。 本番のNetBoxに接続する前に、検証用のNetBoxインスタンスで一通りの問い合わせが期待どおりに動くことを確認してください。

そのほか、運用にあたって意識しておきたい点は次のとおりです。

  • NetBox向けのMCPサーバーはこの分野ではまだ日が浅く、実装によって公開しているツールの範囲や対応バージョンが異なります。導入前に対象リポジトリのREADMEで、手元のNetBoxのバージョンに対応しているかを確認してください
  • 読み取り専用のサーバーであっても、NetBoxが保持するIPアドレスやホスト名の情報は社内ネットワークの構成情報そのものです。MCPサーバーを社外からアクセス可能な場所に置かない、APIトークンを使い回さない、といった基本的な扱いは通常のAPI利用と同様に徹底してください
  • 書き込み対応のMCPサーバーを試す場合は、まず検証環境で削除・更新の挙動を確認し、意図しない一括変更が起きないことを確かめてから本番のNetBoxに向けてください

7. まとめ

コミュニティ製のNetBox向けMCPサーバーを使うことで、Claude CodeからNetBoxのデータを自然言語のまま照会できるようになります。要点は次のとおりです。

  • MCPサーバーには読み取り専用と読み書き対応のものが混在しており、社内の構成情報を扱う用途ではまず読み取り専用を選ぶのが安全です
  • NetBox側では専用のAPIトークンを発行し、「Write enabled」を外して読み取り専用に絞っておきます
  • claude mcp add--envにトークンを渡してstdioサーバーとして登録し、--scope projectにすればチームで設定を共有できます
  • 本記事の手順は未検証のため、検証環境で疎通確認をしたうえで社内のNetBoxに適用してください

BookStackやRedmineなど、社内で使っている他のOSSツールについても同様の考え方でMCPサーバーを探すことができます。今後、そうした構成についても機会があれば取り上げる予定です。

コメント

タイトルとURLをコピーしました