Skip to main content
Glama

Nornir MCP Server

by yhvh-chen

🌐 Nornir MCP サーバー

ライセンス: MIT

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など) を設定します。

    • ⚠️ 重要なセキュリティ上の注意:ファイルに直接保存することを避けるため、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 アドレスがある場合は、

    • 接続名: 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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Nornir および NAPALM 操作を MCP ツールとして公開することでネットワーク自動化ツ��ルを提供し、ユーザーが互換性のある MCP クライアントを通じてネットワーク デバイスを管理および操作できるようにする FastMCP サーバー。

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

                  Related MCP Servers

                  • -
                    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
                    MIT License
                  • -
                    security
                    A
                    license
                    -
                    quality
                    A lightweight MCP server for managing DNS records, purging cache, and interacting with the Cloudflare API through natural language commands.
                    Last updated -
                    22
                    MIT License
                  • A
                    security
                    A
                    license
                    A
                    quality
                    A Model Control Protocol server that provides access to nmap network scanning functionality, allowing users to run customizable scans, store results, and analyze network security using AI prompts.
                    Last updated -
                    3
                    10
                    MIT License
                    • Linux
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A FastMCP server that enables browser automation through natural language commands, allowing Language Models to browse the web, fill out forms, click buttons, and perform other web-based tasks via a simple API.
                    Last updated -
                    3

                  View all related MCP servers

                  MCP directory API

                  We provide all the information about MCP servers via our MCP API.

                  curl -X GET 'https://glama.ai/api/mcp/v1/servers/yhvh-chen/nornir_mcp'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server