Nornir MCP Server

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 サーバー

NornirNAPALMを活用したネットワーク自動化ツールを提供するFastMCPサーバー。

このサーバーはブリッジとして機能し、Nornir/NAPALM ネットワーク操作を MCP (大規模同時処理) ツールとして公開し、互換性のある MCP クライアント (FastMCP Web UI など) から簡単にアクセスできるようにします。

✨ 主な特徴

  • Nornir を活用して、ネットワーク デバイスに対する在庫管理と同時タスク実行を行います。
  • 複数ベンダーのデバイス間の相互作用(情報収集、コマンド実行)に NAPALM を使用します。
  • さまざまなトランスポート (この構成では SSE) を使用して MCP クライアントとシームレスに統合できるように FastMCP を使用して構築されています。
  • セットアップとデプロイメントを簡単にするために、Docker 🐳 でコンテナ化されています。
  • コンテナ内の高速な Python 依存関係管理にはuvを使用します⚡。

🔧 前提条件

始める前に、以下がインストールされていることを確認してください。

⚙️ 構成

サーバーを実行する前に、ネットワーク インベントリとデバイスの資格情報を構成する必要があります

  1. プロジェクト内のconf/ディレクトリに移動します。
  2. hosts.yamlを編集します。ネットワークデバイスを定義します。管理IP/ホスト名、プラットフォーム(例: iosjunoseos )、認証情報(デフォルトを使用しない場合)を指定し、必要に応じてグループに割り当てます。
  3. groups.yamlを編集: プラットフォームや接続オプションなどの共通プロパティを持つデバイスグループを定義します。ここでの設定はデフォルトを上書きできます。
  4. defaults.yamlを編集します。デフォルトの資格情報 ( usernamepassword ) と接続オプション (有効なパスワードの NAPALM secretやデフォルトのplatformなど) を設定します。
    • ⚠️ 重要なセキュリティ上の注意:デフォルトの設定では、YAMLファイル内のプレーンテキストの認証情報を使用します。これはテスト環境やラボ環境に適しています。本番環境では、機密情報を設定ファイルに直接保存することを避けるため、Nornirの組み込みシークレット管理機能(環境変数、HashiCorp Vaultプラグインなど)の使用を強く検討してください。シークレットプロバイダーを実装する場合は、 nornir_ops.pyと設定を変更してください。
  5. config.yamlを確認します。インベントリファイルのパス ( host_filegroup_filedefaults_file ) conf/ディレクトリ内のファイルを正しく指していることを確認します (デフォルトでは正しく指しているはずです)。必要に応じて、ランナーオプション ( num_workers ) を調整します。

▶️ サーバーの実行

設定が完了したら、Docker Compose を使用してサーバーを簡単に実行できます。

  1. 上記の説明に従ってconf/ディレクトリが設定されていることを確認してください。
  2. プロジェクトのルート ディレクトリ ( Dockerfileおよびdocker-compose.ymlファイルと同じディレクトリ) でターミナルまたはコマンド プロンプトを開きます。
  3. 次のコマンドを実行します。
    docker-compose up --build -d
    • --buildフラグは、初めてDockerfileに基づいてイメージをビルドするか、プロジェクト ファイル ( .pyファイルやpyproject.tomlなど) が変更された場合に Docker Compose に指示します。
    • このコマンドは、Docker コンテナ内で Nornir MCP サーバーを起動します。
  4. サーバーログはターミナルに表示されます。デフォルトでは、ホストマシン(localhost)のポート8000でアクセスできるはずです。
  5. サーバーを停止するには、 docker-compose実行中のターミナルでCtrl+Cを押します。その後コンテナを削除するには、 docker-compose downを実行します。

🔌 MCPクライアントへの追加

このサーバーが提供するツールを MCP クライアント (公式のFastMCP Web UIやその他の互換性のあるクライアントなど) で使用するには:

  1. Nornir MCP サーバーが実行されていることを確認します ( docker-compose upを使用)。
  2. MCP クライアント アプリケーションを開きます。
  3. MCP サーバー接続を追加または管理するためのオプションを見つけます。
  4. 次の詳細を含む新しい接続を追加します。
    • サーバー URL : このサーバーは SSE (Server-Sent Events) トランスポートを使用し、デフォルトでポート 8000 で実行されるため、URL は次のようになります。
      • sse://localhost:8000
      • (Docker ホストにクライアントからアクセスできる別の IP アドレスがある場合は、 localhostその IP に置き換えます (例: sse://192.168.1.100:8000 ))
    • 接続名: Nornir Lab Serverなどのわかりやすい名前を付けます。
  5. 保存して、新しく追加されたサーバーに接続します。
  6. MCPクライアントはNornir_MCPサービスを検出し、利用可能なツール( get_factssend_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 ライセンスに基づいてライセンスされています。

🙌 貢献

貢献、問題、機能リクエストを歓迎します。プロジェクトのリポジトリからお気軽にご提出ください。

-
security - not tested
A
license - permissive license
-
quality - not tested

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 サーバー。

  1. ✨ 主な特徴
    1. 🔧 前提条件
      1. ⚙️ 構成
        1. ▶️ サーバーの実行
          1. 🔌 MCPクライアントへの追加
            1. 🛠️ 利用可能なツールとリソース
              1. 📄 ライセンス
                1. 🙌 貢献

                  Related MCP Servers

                  • -
                    security
                    F
                    license
                    -
                    quality
                    A 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,261
                    4
                    TypeScript
                  • -
                    security
                    A
                    license
                    -
                    quality
                    FastMCP 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 -
                    3
                    Python
                    MIT License
                  • A
                    security
                    F
                    license
                    A
                    quality
                    An 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 -
                    10
                    1
                    Python

                  View all related MCP servers

                  ID: jwzob45l35