Netbird MCP Server について
Netbird MCP Server は Netbird ネットワーク向けの MCP サーバーで、ピア、グループ、ポリシーなどの設定と状態を LLM が参照できるようにします。現在は開発中で、読み取り専用のアクセスを提供します。
主な機能
- 01Netbird API への読み取り専用アクセス
- 02ピア、グループ、ポリシーの照会
- 03API ホストの設定(既定値は api.netbird.io)
- 04API トークンによる認証
活用シーン
- 01LLM に現在の Netbird ピアとポリシーを説明させる
- 02ポート割り当て、ネットワーク、ネームサーバーグループの確認
- 03MCP 対応デスクトップクライアントからの Netbird 状態の確認
MCP 対応
MCP サーバーとして、Netbird API の一部の読み取り専用リソースを MCP クライアントにツールとして公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Netbird MCP サーバー
Netbird 用の Model Context Protocol(MCP)サーバーです。
このプロジェクトは、Grafana Labs による Grafana 用 MCP サーバーをベースにしており、同じ Apache License 2.0 の下でライセンスされています。
また、Mark III Labs による MCP Go も使用しています。
注:このプロジェクトは現在も開発中です。
インストール
ソースからインストール
リポジトリをクローン
git clone https://github.com/aantti/mcp-netbird
ビルドしてインストール
cd mcp-netbird && \
make install
GitHub からインストール
go install github.com/aantti/mcp-netbird/cmd/mcp-netbird@latest
Smithery 経由でインストール
Smithery 経由で Claude Desktop 用の Netbird MCP Server を自動的にインストールするには:
npx -y @smithery/cli install @aantti/mcp-netbird --client claude
設定
サーバーには次の環境変数が必要です。
NETBIRD_API_TOKEN:Netbird API トークンNETBIRD_HOST(任意):Netbird API ホスト(デフォルトはapi.netbird.io)
機能
このサーバーは Netbird API を使用して、LLM に Netbird ネットワークの情報を提供します。現在は、選択した読み取り専用の Netbird API リソースをツールに 1 対 1 で対応させています。
- Netbird API を使用して設定とステータスにアクセス
- API エンドポイントを設定可能
- Netbird API のトークンベースのセキュアな認証
ツール
| ツール | 説明 | Netbird API |
|---|---|---|
list_netbird_peers | すべてのピア | すべてのピアを一覧表示 |
list_netbird_port_allocations | peerId のすべてのイングレスポート | すべてのポート割り当てを一覧表示 |
list_netbird_groups | すべてのグループ | すべてのグループを一覧表示 |
list_netbird_policies | すべてのポリシー | すべてのポリシーを一覧表示 |
list_netbird_posture_checks | すべてのポスチャーチェック | すべてのポスチャーチェックを一覧表示 |
list_netbird_networks | すべてのネットワーク | すべてのネットワークを一覧表示 |
list_netbird_nameservers | すべてのネームサーバーグループ | すべてのネームサーバーグループを一覧表示 |
ツールの追加
新しいツールを追加するには:
toolsに新しいファイルを作成します(例:tools/users.go)。既存のコードをテンプレートとして使用できます- API ルートとレスポンスの詳細を新しいファイルに追加します
cmd/main.goのfunc newServer()にツールを追加します
使い方
-
Netbird 管理コンソールから Netbird API トークンを取得します。
-
上記のインストール方法のいずれかを使用して、
mcp-netbirdバイナリをインストールします。バイナリが PATH に含まれていることを確認してください。 -
サーバー設定をクライアント設定ファイルに追加します。たとえば、Codeium Windsurf の場合は、
~/.codeium/windsurf/mcp_config.jsonに次の設定を追加します。{ "mcpServers": { "netbird": { "command": "mcp-netbird", "args": [], "env": { "NETBIRD_API_TOKEN": "<your-api-token>" } } } }
Claude Desktop に同様の設定を追加する方法については、こちらをご覧ください。
注:Claude Desktop のログに
[netbird] [error] spawn mcp-netbird ENOENTのようなメッセージが表示される場合は、mcp-netbirdのフルパスを指定する必要があります。macOS の Claude Logs は~/Library/Logs/Claudeにあります。
- 「Netbird のピア、グループ、ポリシーについて説明してもらえますか?」のような質問をしてみてください。
Docker
イメージをビルドしてタグ付けします:
docker build -t mcp-netbird-sse:v1 -f Dockerfile.sse .
イメージを実行します:
docker run --name mcp-netbird -p 8001:8001 -e NETBIRD_API_TOKEN=<your-api-token> mcp-netbird-sse:v1
ToolHive
ToolHive(thv)は、MCP サーバーのデプロイと管理を簡素化するために設計された軽量ユーティリティです。
ToolHive を使用して、以下のように Netbird MCP をデプロイして実行できます。
-
ToolHive README の説明に従って
thvをインストールします。 -
thvのシークレットに Netbird API トークンを追加します。
thv secret set netbird
-
上記の Docker セクション(#docker)の説明に従って SSE イメージをビルドします。
-
thv runを使用してポート 8080 で Netbird MCP を起動します。
thv run --secret netbird,target=NETBIRD_API_TOKEN --transport sse --name thv-mcp-netbird --port 8080 --target-port 8001 mcp-netbird-sse:v1
- サーバーを停止するときは、以下を使用します。
thv stop thv-mcp-netbird
開発
コントリビューションを歓迎します。ご提案や改善点があれば、issue を作成するか、プルリクエストを送信してください。
このプロジェクトは Go で記述されています。ご利用のプラットフォーム向けの手順に従って Go をインストールしてください。
サーバーを手動で実行するには、以下を使用します。
export NETBIRD_API_TOKEN=your-token && \
go run cmd/mcp-netbird/main.go
または、SSE モードの場合:
export NETBIRD_API_TOKEN=your-token && \
go run cmd/mcp-netbird/main.go --transport sse --sse-address :8001
デバッグ
MCP Inspector は、MCP サーバーのテストとデバッグに使用できるインタラクティブな開発者向けツールです。詳しくはこちらをご覧ください。
MCP Inspector を起動する方法は以下のとおりです。
export NETBIRD_API_TOKEN=your-token && \
npx @modelcontextprotocol/inspector
その後、Netbird MCP Server は stdio または SSE のいずれかのトランスポートタイプでテストできます。stdio の場合は、UI で mcp-netbird のフルパスを指定してください。
テスト
TODO:テストを追加する
Lint
コードを lint するには、以下を実行します。
make lint
ライセンス
このプロジェクトはApache License, Version 2.0の下でライセンスされています。
このプロジェクトには、Grafana Labs(https://grafana.com/)で開発されたソフトウェアが含まれています。
このプロジェクトには、Mark III Labs(https://github.com/mark3labs/mcp-go)で開発されたソフトウェアが含まれています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。