Integrations
Provides containerization for the server, enabling easy setup and deployment with Docker and Docker Compose.
Mentions integration with HashiCorp Vault for secrets management as an alternative to plaintext credentials in configuration files.
Uses Python-based frameworks like Nornir and NAPALM to provide network automation tools that can interact with multi-vendor network devices.
🌐 Nornir MCP サーバー
NornirとNAPALMを活用したネットワーク自動化ツールを提供するFastMCPサーバー。
このサーバーはブリッジとして機能し、Nornir/NAPALM ネットワーク操作を MCP (大規模同時処理) ツールとして公開し、互換性のある MCP クライアント (FastMCP Web UI など) から簡単にアクセスできるようにします。
✨ 主な特徴
- Nornir を活用して、ネットワーク デバイスに対する在庫管理と同時タスク実行を行います。
- 複数ベンダーのデバイス間の相互作用(情報収集、コマンド実行)に NAPALM を使用します。
- さまざまなトランスポート (この構成では SSE) を使用して MCP クライアントとシームレスに統合できるように FastMCP を使用して構築されています。
- セットアップとデプロイメントを簡単にするために、Docker 🐳 でコンテナ化されています。
- コンテナ内の高速な Python 依存関係管理には
uv
を使用します⚡。
🔧 前提条件
始める前に、以下がインストールされていることを確認してください。
- ドッカー
- Docker Compose (通常、Docker Desktop に含まれています)
⚙️ 構成
サーバーを実行する前に、ネットワーク インベントリとデバイスの資格情報を構成する必要があります。
- プロジェクト内の
conf/
ディレクトリに移動します。 hosts.yaml
を編集します。ネットワークデバイスを定義します。管理IP/ホスト名、プラットフォーム(例:ios
、junos
、eos
)、認証情報(デフォルトを使用しない場合)を指定し、必要に応じてグループに割り当てます。groups.yaml
を編集: プラットフォームや接続オプションなどの共通プロパティを持つデバイスグループを定義します。ここでの設定はデフォルトを上書きできます。defaults.yaml
を編集します。デフォルトの資格情報 (username
、password
) と接続オプション (有効なパスワードの NAPALMsecret
やデフォルトのplatform
など) を設定します。- ⚠️ 重要なセキュリティ上の注意:デフォルトの設定では、YAMLファイル内のプレーンテキストの認証情報を使用します。これはテスト環境やラボ環境に適しています。本番環境では、機密情報を設定ファイルに直接保存することを避けるため、Nornirの組み込みシークレット管理機能(環境変数、HashiCorp Vaultプラグインなど)の使用を強く検討してください。シークレットプロバイダーを実装する場合は、
nornir_ops.py
と設定を変更してください。
- ⚠️ 重要なセキュリティ上の注意:デフォルトの設定では、YAMLファイル内のプレーンテキストの認証情報を使用します。これはテスト環境やラボ環境に適しています。本番環境では、機密情報を設定ファイルに直接保存することを避けるため、Nornirの組み込みシークレット管理機能(環境変数、HashiCorp Vaultプラグインなど)の使用を強く検討してください。シークレットプロバイダーを実装する場合は、
config.yaml
を確認します。インベントリファイルのパス (host_file
、group_file
、defaults_file
)conf/
ディレクトリ内のファイルを正しく指していることを確認します (デフォルトでは正しく指しているはずです)。必要に応じて、ランナーオプション (num_workers
) を調整します。
▶️ サーバーの実行
設定が完了したら、Docker Compose を使用してサーバーを簡単に実行できます。
- 上記の説明に従って
conf/
ディレクトリが設定されていることを確認してください。 - プロジェクトのルート ディレクトリ (
Dockerfile
およびdocker-compose.yml
ファイルと同じディレクトリ) でターミナルまたはコマンド プロンプトを開きます。 - 次のコマンドを実行します。Copy
--build
フラグは、初めてDockerfile
に基づいてイメージをビルドするか、プロジェクト ファイル (.py
ファイルやpyproject.toml
など) が変更された場合に Docker Compose に指示します。- このコマンドは、Docker コンテナ内で Nornir MCP サーバーを起動します。
- サーバーログはターミナルに表示されます。デフォルトでは、ホストマシン(localhost)のポート
8000
でアクセスできるはずです。 - サーバーを停止するには、
docker-compose
実行中のターミナルでCtrl+C
を押します。その後コンテナを削除するには、docker-compose down
を実行します。
🔌 MCPクライアントへの追加
このサーバーが提供するツールを MCP クライアント (公式のFastMCP Web UIやその他の互換性のあるクライアントなど) で使用するには:
- Nornir MCP サーバーが実行されていることを確認します (
docker-compose up
を使用)。 - MCP クライアント アプリケーションを開きます。
- MCP サーバー接続を追加または管理するためのオプションを見つけます。
- 次の詳細を含む新しい接続を追加します。
- サーバー URL : このサーバーは SSE (Server-Sent Events) トランスポートを使用し、デフォルトでポート 8000 で実行されるため、URL は次のようになります。
sse://localhost:8000
- (Docker ホストにクライアントからアクセスできる別の IP アドレスがある場合は、
localhost
その IP に置き換えます (例:sse://192.168.1.100:8000
))
- 接続名:
Nornir Lab Server
などのわかりやすい名前を付けます。
- サーバー URL : このサーバーは SSE (Server-Sent Events) トランスポートを使用し、デフォルトでポート 8000 で実行されるため、URL は次のようになります。
- 保存して、新しく追加されたサーバーに接続します。
- MCPクライアントは
Nornir_MCP
サービスを検出し、利用可能なツール(get_facts
、send_command
など)をすべてリストします。これで、クライアントインターフェースからこれらのツールを使用できるようになりました!🎉
🛠️ 利用可能なツールとリソース
MCP クライアント経由で接続すると、通常、次のツール (「Nornir_MCP」サービス名の下) が利用できるようになります。
- 在庫:
list_all_hosts
: Nornir インベントリ (conf/hosts.yaml
) に設定されているデバイスを一覧表示します。
- ナパームゲッター: (情報を取得)
get_facts
get_interfaces
get_interfaces_ip
get_interfaces_counters
get_config
(retrieve
オプション: 実行中、起動中、候補)get_arp_table
get_mac_address_table
get_users
get_vlans
get_snmp_information
get_bgp_neighbors
- (利用可能かどうかはデバイス プラットフォームと NAPALM ドライバーのサポートによって異なります)
- 実行:
send_command
: 単一の読み取り専用コマンドをデバイスに送信し、出力を取得します。
- ストリーミングリソース:
sse://updates
: シンプルなハートビート イベント ストリームを提供します。(SSE リソースをサポートするクライアントがサブスクライブできます)。
📄 ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています。
🙌 貢献
貢献、問題、機能リクエストを歓迎します。プロジェクトのリポジトリからお気軽にご提出ください。
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Nornir および NAPALM 操作を MCP ツールとして公開することでネットワーク自動化ツールを提供し、ユーザーが互換性のある MCP クライアントを通じてネットワーク デバイスを管理および操作できるようにする FastMCP サーバー。
Related MCP Servers
- -securityAlicense-qualityThis MCP server allows you to connect MCP clients with Toolhouse's tools.Last updated -8PythonMIT License
- -securityFlicense-qualityA configurable MCP server that dynamically loads capabilities from a remote configuration to bridge MCP clients with remote APIs for executing actions, accessing resources, and utilizing prompt templates.Last updated -1,2614TypeScript
- -securityAlicense-qualityFastMCP is a comprehensive MCP server allowing secure and standardized data and functionality exposure to LLM applications, offering resources, tools, and prompt management for efficient LLM interactions.Last updated -3PythonMIT License
- AsecurityFlicenseAqualityAn MCP server that allows users to interact with YNAB data, enabling access to account balances, transactions, and the creation of new transactions through the Model Context Protocol.Last updated -101Python