Skip to main content
Glama

🌐 Nornir MCP サーバー

ライセンス: MIT

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

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

✨ 主な特徴

  • Nornir を活用して、ネットワーク デバイスに対する在庫管理と同時タスク実行を行います。

  • 複数ベンダーのデバイス間の相互作用(情報収集、コマンド実行)に NAPALM を使用します。

  • さまざまなトランスポート (この構成では SSE) を使用して MCP クライアントとシームレスに統合できるように FastMCP を使用して構築されています。

  • セットアップとデプロイメントを簡単にするために、Docker 🐳 でコンテナ化されています。

  • コンテナ内の高速な Python 依存関係管理にはuvを使用します⚡。

Related MCP server: nornir-mcp-server

🔧 前提条件

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

⚙️ 構成

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

  1. プロジェクト内のconf/ディレクトリに移動します。

  2. hosts.yamlを編集します。ネットワークデバイスを定義します。管理IP/ホスト名、プラットフォーム(例: ios 、 junos 、 eos )、認証情報(デフォルトを使用しない場合)を指定し、必要に応じてグループに割り当てます。

  3. groups.yamlを編集: プラットフォームや接続オプションなどの共通プロパティを持つデバイスグループを定義します。ここでの設定はデフォルトを上書きできます。

  4. defaults.yamlを編集します。デフォルトの資格情報 ( username 、 password ) と接続オプション (有効なパスワードの NAPALM secretやデフォルトのplatformなど) を設定します。

    • ⚠️ 重要なセキュリティ上の注意:デフォルトの設定では、YAMLファイル内のプレーンテキストの認証情報を使用します。これはテスト環境やラボ環境に適しています。本番環境では、機密情報を設定ファイルに直接保存することを避けるため、Nornirの組み込みシークレット管理機能(環境変数、HashiCorp Vaultプラグインなど)の使用を強く検討してください。シークレットプロバイダーを実装する場合は、 nornir_ops.pyと設定を変更してください。

  5. config.yamlを確認します。インベントリファイルのパス ( host_file 、 group_file 、 defaults_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_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 ライセンスに基づいてライセンスされています。

🙌 貢献

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

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    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.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for network operations that lets AI assistants interact with Cisco/Juniper network devices through safe, well-defined tools like compliance audits and configuration backups.
    MIT