Juniper Routing Director MCP Server について
AI クライアントを Juniper Routing Director に接続し、ネットワーク運用と監視を可能にする MCP サーバーです。ベーシック認証またはトークン認証に対応し、HTTP と stdio で通信できます。
主な機能
- 01デバイス管理と監視
- 02設定テンプレートのデプロイ
- 03VPN サービス管理
- 04トポロジーと KPI の確認
- 05ベーシック認証とトークン認証
- 06HTTP と stdio のトランスポート
活用シーン
- 01デバイスとネットワーク KPI の監視
- 02設定テンプレートのデプロイ
- 03VPN サービスの管理
- 04ネットワークトポロジーの確認
MCP 対応
Routing Director の機能を MCP クライアントに公開し、コンポーネントを指定して利用可能なツールを絞り込めます。HTTP と stdio に対応し、HTTP ではファイルベースのトークンでクライアントを認証できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Routing Director MCP Server
Juniper の Routing Director プラットフォームと統合し、ネットワークのルーティング、保証、最適化、インテリジェンス機能にインテリジェントにアクセスできる MCP(Model Context Protocol)サーバーです。
機能
- 柔軟な認証:基本認証とトークンベース認証の両方に対応
- 複数のトランスポートオプション:HTTP および stdio トランスポートプロトコル
- デバイスの管理と監視
- 設定テンプレートのデプロイ
- VPN サービスの管理
- ネットワークトポロジーの可視化
- KPI の監視と可観測性
- 顧客と組織の管理
前提条件
- Python >= 3.10, <= 3.14
- Juniper Routing Director インスタンス
- Routing Director API へのネットワーク接続
- 有効な Routing Director 認証情報(ユーザー名/パスワードまたは API トークン)
インストール
ソースから
git clone https://github.com/Juniper/routing-director-mcp-server.git
cd routing-director-mcp-server
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements.txt
MCP Registry から
未定
設定
設定ファイル(config.json)
次の構造で config.json ファイルを作成します。
基本認証:
{
"http_url": "https://your-routing-director-host/",
"org_id": "your-organization-id",
"auth": {
"type": "basic",
"username": "[email protected]",
"password": "your-password"
}
}
トークン認証:
{
"http_url": "https://your-routing-director-host/",
"org_id": "your-organization-id",
"auth": {
"type": "token",
"token": "your-api-token"
}
}
注:この認証は、MCP サーバーと Routing Director インスタンス間で行われます。MCP サーバーは、接続するクライアントに代わって Routing Director との認証を処理します。
設定パラメーター
- http_url(必須):Routing Director インスタンスの URL
- org_id(必須):Routing Director の組織 ID
- auth(必須):認証設定
- type:
basicまたはtoken - username:Routing Director のユーザー名(基本認証の場合)
- password:Routing Director のパスワード(基本認証の場合)
- token:API トークン(トークン認証の場合)
- type:
- components(任意):MCP サーバーが公開するツールと機能を絞り込むための追加コンポーネント設定。特定のコンポーネントのみを対象に OpenAPI 仕様を絞り込みたい場合は、
componentsフィールドに絞り込み対象のコンポーネント一覧を指定できます。
コンポーネントには、次のいずれかを指定できます。
ems- アラーム関連情報(Routing Director に報告されたアラームの検索、確認、確認解除)juniper-resiliency-interface- デバイスの syslog 情報(Routing Director で収集された syslog メッセージの取得)device-kpi- Routing Director で収集された Juniper Resiliency Interface(JRI)関連の例外イベント(フォワーディング、ルーティング、OS)の取得
使用方法
サーバーの起動
python RoutingDirectorMCP.py --config config.json
コマンドラインオプション
python RoutingDirectorMCP.py --help
利用可能なオプション:
-H, --host:サーバーのホスト(デフォルト:127.0.0.1)-p, --port:サーバーのポート(デフォルト:30030)-t, --transport:トランスポートの種類:streamable-httpまたはstdio(デフォルト:streamable-http)-c, --config:設定ファイルへのパス(必須)-v, --verbose:詳細ログを有効化
例:カスタム設定で起動する
python RoutingDirectorMCP.py \
--config config.json \
--host localhost \
--port 8000 \
--transport streamable-http \
--verbose
MCP サーバーと MCP ホスト(Claude/Copilot など)間の認証
トークン管理
サーバーはトークンマネージャーによるトークンベース認証に対応しています。tokens ファイルが存在する場合、HTTP トランスポートでは認証が自動的に有効になります。
stdio トランスポートでは、通常セキュアなローカル環境で使用されるため、認証は省略されます。
MCP サーバーと MCP クライアント間の認証を有効にする
MCP クライアントと MCP
サーバー間の通信には、ファイルベースのトークン認証を使用できます。トークンを生成するには、ローカルシステムで次のコマンドを実行します。
python utils/mcp/token_cli.py generate --client-id [email protected] --description "Token for SV"
ここで、
client-id は、認証トークンの生成に使用する ID です。
生成される出力の例を次に示します。
Generated new token:
ID: my-client
Token: apa_CA98sH_VwEBd79aHA6O9NxbhXQN_RqaK
Description: Production API
生成されたトークンを .tokens ファイルに保存します。デフォルトでは、トークンは GitHub MCP リポジトリのルートディレクトリに保存されます。
ロギング
デバッグ用の詳細なログを有効にします。
LOG_LEVEL=DEBUG python RoutingDirectorMCP.py --config config.json --verbose
MCP サーバーへの接続
ユーザーは、任意の MCP ホスト(Claude、Copilot、Chatgpt など)を使用して MCP サーバーに接続できます。MCP ホストを設定する際は、MCP サーバーの起動時に指定したものと同じトランスポートタイプ、ホスト、ポートを使用してください。
Claude の設定
Claude を設定するには、以下の手順に従います。
- Claude の設定ファイルをテキストエディターで開きます。
• macOS では、ターミナルで次のコマンドを実行します:~/Library/Application Support/Claude/claude_desktop_config.json• Windows では、コマンドプロンプトを開き、次のように入力します:%APPDATA%\Claude\claude_desktop_config.json - 以下のように MCP サーバーの設定を追加します。
{
"mcpServers": {
"RoutingDirector": {
"command": "/Users/username/path-to-virtual-environment/.mcp_venv/bin/python",
"args": [
"/Users/username/path-to-mcp-python-script/RoutingDirectorMCP.py",
"-c",
"/Users/username/path-to-config-json/config.json",
"-t",
"stdio"
]
}
}
}
- ファイルを保存します。
- Claude を再起動します。
- Claude と MCP サーバーの接続を確認します。
MCP サーバーのツールが「+」>「Connectors」に表示されていれば、Claude は MCP サーバーに接続されています。
Copilot の設定: Copilot を設定するには、以下の手順に従います。
- Virtual Studio(VS)code を開きます。
または、Copilot と MCP サーバーをサポートする他の統合開発環境(IDE)を使用できます。 - 以下のいずれかの方法で MCP 設定ファイルを開きます。
• macOS では、ターミナルで次のコマンドを実行します:~/Library/Application\ Support/Code/User/mcp.jsonを開きます ここで、user は macOS マシン上のユーザー名です。
• Windows では、コマンドプロンプトを開き、次のように入力します:C:/Users/YourUserName/AppData/Roaming/Code/User/mcp.jsonここで、user は Windows マシン上のユーザー名です。 - 以下のように、MCP サーバーの設定を設定ファイルに追加します。
{
"mcpServers": {
"RoutingDirector": {
"command": "/Users/username/path-to-virtual-environment/.mcp_venv/bin/python",
"args": [
"/Users/username/path-to-mcp-python-script/RoutingDirectorMCP.py",
"-c", "/Users/username/path-to-config-json/config.json",
"-t", "stdio"
]
}
}
}
- ファイルを保存します。
- MCP の設定変更を反映するため、VS code を閉じてから再度開きます。
- Copilot が MCP サーバーに接続されていることを確認します。
VS code の出力パネルに MCP サーバーへの接続成功を示すメッセージが表示されていれば、Copilot は MCP サーバーに接続されています。
または、VS code の拡張機能に表示される MCP サーバーのツール(API 呼び出し)を確認できます。
MCP サーバーが正しく起動したことを確認するには、MCP サーバーのログを確認します。ログは、AI エージェントとの通信タイプに応じて生成されます。
• stdio が使用されている場合は、Starting MCP server 'Juniper Routing Directory' with transport 'stdio' と表示されます。
• streamable-http が使用されている場合は、INFO Starting MCP server 'Juniper Routing Directory' with transport 'http' on http://127.0.0.1:30030/mcp と表示されます。
MCP ホストアプリでの MCP サーバーの設定について詳しくは、以下を参照してください。 VScode Copilot:https://code.visualstudio.com/docs/copilot/customization/mcp-servers Claude:https://code.claude.com/docs/en/mcp
トラブルシューティング
問題:「Config file path is required」
解決策:設定ファイルへの有効なパスを指定して、--config フラグを指定してください。
問題:「Mandatory key missing in MCP config file」
解決策:config.json に必須キー http_url、org_id、auth がすべて含まれていることを確認してください。
問題:「Failed to authenticate」
解決策:
- Routing Director の認証情報を確認します
- Routing Director インスタンスが、設定された http_url でアクセス可能であることを確認します
- ユーザー名/パスワードまたは API トークンが正しいことを確認します
- Routing Director ホストへのネットワーク接続を確認します
問題:接続が拒否される
解決策:
--hostと--portがクライアントの設定と一致するようにサーバーが実行されていることを確認します- ファイアウォールのルールで、設定されたポートへの通信が許可されていることを確認します
問題:「No tokens file found. Authentication DISABLED」
解決策:認証が必要な HTTP トランスポートの場合は、トークンファイルが正しく初期化されていることを確認します。開発/テストでは、通常この状態でも問題ありません。
リリース 2.10.0
現在のバージョン:v2.10.0
Juniper's Routing Director 2.10.0 ユーザーガイド:https://www.juniper.net/documentation/us/en/software/juniper-routing-director2.10.0/user-guide/index.html
新機能
- python 3.14 をサポート
- バグ修正
既知の問題:
- MCP サーバーのコマンドブラックリストは、運用モードのコマンドのみを対象としています。削除、工場出荷時設定へのロールバック、工場出荷時のデフォルト設定の読み込み、およびそれらに相当する NETCONF コマンドなど、破壊的な設定コマンドはブロックされていません。そのため、ユーザープロンプトや LLM が生成したアクションによって実行され、重要なデバイス設定が失われる可能性があります。 回避策:破壊的な設定変更を引き起こす可能性のあるプロンプトは避けることをおすすめします。また、MCP の承認ワークフローを有効にし、デバイス上で設定を変更するコマンドを実行する前に、手動で確認するようにしてください。
謝辞
この MCP サーバーは Juniper Networks の Routing Director プラットフォームと統合されており、エンタープライズグレードのネットワークインテリジェンスおよび最適化機能を提供します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。