mcpField
M
MCP Server Junos (Juniper Devices)

MCP Server Junos (Juniper Devices)

リモート
github.com/dpajinクラウド・インフラ1175 週間前に更新
リポジトリ

MCP Server Junos (Juniper Devices) について

MCP Server Junosは、Junos搭載のJuniper Networksデバイスを調査、設定するツールを提供します。ネットワーク運用者はデバイス情報やコマンド出力の取得、設定変更の適用、ローカル設定済みデバイスの一覧取得を行えます。

主な機能

  1. 01デバイス基本情報の取得
  2. 02showコマンドの実行
  3. 03設定の読み込みとコミット
  4. 04ローカル設定済みデバイスの一覧
  5. 05SSEとStreamable HTTPのトランスポート

活用シーン

  1. 01デバイスのモデルとOSバージョンの確認
  2. 02設定やコマンド出力の調査
  3. 03Junos設定変更の適用
  4. 04設定済みデバイス名とアドレスの確認

MCP 対応

get_fact、show_command、apply_config、list_devicesなどのデバイス操作をMCPツールとして公開します。MCPクライアントは設定されたSSEまたはStreamable HTTPエンドポイントに接続します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttp://127.0.0.1:10008/sse
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npmsupergateway

ツール

詳細

Junos MCP サーバー(mcp-server-junos)

概要

mcp-server-junos プロジェクトは、Junos オペレーティングシステムを搭載した Juniper Networks デバイスの運用状態の確認と設定変更を行うための MCP ツールを提供します。 Juniper の junos-eznc Python SDK と FastMCP を使用します。

ツール

  • get_fact:OS バージョンやモデルなど、デバイスの基本情報を取得します。
  • show_command:指定した show コマンドをデバイス上で実行し、出力を返します。デバイスの設定の取得や ping コマンドの実行に使用できます。
  • apply_config:set 形式と junos(中括弧)形式のどちらにも対応し、設定変更をデバイスに読み込んでコミットします。
  • list_devices:MCP サーバー上でローカルに設定されたデバイスの一覧を取得します。一覧には、リモートアクセス用のデバイス名とIP アドレスが含まれます。

インストール

  1. リポジトリをクローンします:
    git clone <repository-url>
    cd mcp-server-junos
    
スタンドアロンアプリケーションとして実行する
  1. 必要な依存関係をインストールします:

    pip install -r requirements.txt
    
  2. 設定ファイルのサンプル config.example.yml を config.yml に名前変更します

    mv config.example.yml config.yml
    
Docker コンテナとして実行する

注記: 設定ファイルを Docker イメージに含める場合は、コンテナイメージをビルドする前に設定してください。それ以外の場合は、環境変数を使用してコンテナにグローバルアクセスパラメーターを渡すことができます(例は「使用方法」セクションを参照)。

  1. 設定ファイルのサンプル config.example.yml を config.yml に名前変更し、設定してください。

    mv config.example.yml config.yml
    
  2. Docker コンテナイメージをビルドします

    docker build -t mcp-server-junos .
    

設定

想定される設定ファイル名は config.yml で、ルートディレクトリに配置してください。 付属の設定ファイルのサンプル config.example.yml を出発点として使用できます。

mv config.example.yml config.yml

環境変数を使用する場合、設定ファイルのパラメーターよりも優先されます。

サーバーのグローバル設定

設定ファイルを使用する場合:

global:
  # To listen on all available interfaces use "0.0.0.0"
  server_host: 127.0.0.1
  server_port: 10008
  # Possible values: "sse" or "streamable-http"
  server_transport: "streamable-http"

環境変数を使用する場合:

MCP_SERVER_JUNOS_HOST="127.0.0.1"
MCP_SERVER_JUNOS_PORT=10008
MCP_SERVER_JUNOS_TRANSPORT="streamable-http"
LOG_LEVEL="INFO"
デバイス一覧

設定ファイルを使用する場合:

設定ファイルのキー devices には、デバイス名とそれぞれのアクセス設定の辞書が含まれます。

  • device_name:デバイス名
    • host:アクセス先の IP アドレス
    • user:アクセス用のユーザー名
    • passwd:アクセス用のパスワード
    • port:NETCONF/SSH アクセス用の TCP ポート

例:

access: 

  default:
    user: "admin"
    passwd: "admin@123"
    port: 830

  test: &test
    user: "admin"
    passwd: "admin@123"
    port: 830

devices:

  r1:
    host: 172.20.20.2
    user: "admin"
    passwd: "admin@123"
    port: 830

  r2:
    host: 172.20.20.3
    <<: *test

設定ファイルで明示的に設定されていないデバイスには、デフォルトのアクセスパラメーターを指定できます。 これらのパラメーターは、host 引数に IP アドレスを指定することで、公開されている MCP ツールから使用できます。

  • 優先順位が最も高いのは環境変数です:

    MCP_SERVER_JUNOS_ACCESS_DEFAULT_USER="admin"
    MCP_SERVER_JUNOS_ACCESS_DEFAULT_PASSWD="admin"
    MCP_SERVER_JUNOS_ACCESS_DEFAULT_PORT=830
    
  • 次に優先されるのは設定ファイルです:

    access:
      default:
        user: "admin"
        passwd: "admin"
        port: 830
    

使用方法

スタンドアロンアプリケーションとして実行する

MCP サーバーを使用するには、ファイルを実行します:

python mcp_server_junos.py
  • MCP サーバーは、設定可能なポート(デフォルトは 10008)と IP アドレスで HTTP SSE インターフェイスを公開します。
  • SSE トランスポートを使用してローカルから MCP サーバーに接続する URL は http://127.0.0.1:10008/sse です。
  • Streamable HTTP トランスポートを使用してローカルから MCP サーバーに接続する URL は http://127.0.0.1:10008/mcp/ です。
Docker コンテナとして実行する

Docker コンテナとして実行する場合、ユーザーは環境変数でグローバル設定を指定でき、設定ファイルは不要です。すべてのデバイスへのアクセスには、指定したアクセス認証情報が使用されます。

別の方法として、設定ファイル config.yml を含めて Docker イメージをビルドするか、/mcp-server-junos/config.yml のパスにボリュームとしてマウントできます。

docker run -d \
  --net=host \
  --name mcp-server-junos \
  -e MCP_SERVER_JUNOS_ACCESS_DEFAULT_USER="admin" \
  -e MCP_SERVER_JUNOS_ACCESS_DEFAULT_PASSWD="admin@123" \
  -e MCP_SERVER_JUNOS_ACCESS_DEFAULT_PORT=830 \
  -e MCP_SERVER_JUNOS_HOST="127.0.0.1" \
  -e MCP_SERVER_JUNOS_PORT=10008 \
  -e MCP_SERVER_JUNOS_TRANSPORT="streamable-http" \
  mcp-server-junos:latest

テスト

GitHub Copilot と VS Code(v1.100.2)を MCP クライアントとして使用し、Streamable HTTP と SSE でテストしました。

  • さまざまな show コマンド
  • 基本的なデバイス設定
  • デバイス間の ping

注記:VS Code では、MCP サーバーの Streamable HTTP トランスポートは v1.100 以降でサポートされています。以前のバージョンでは SSE トランスポートがサポートされています。

ライセンス

このプロジェクトは MIT ライセンスのもとで公開されています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。