Onos Mcp Server について
ONOS SDNコントローラー向けのMCPサーバーで、ネットワーク基盤を確認・管理するAIエージェントを対象としています。アプリケーション、デバイス、ホスト、フローの操作に加え、フロールールの追加も行えます。
主な機能
- 01ONOSアプリケーションの確認と管理
- 02ネットワークデバイス情報の取得
- 03ホストとアドレスの関連確認
- 04ネットワークフローの一覧と絞り込み
- 05ネットワークフロールールの追加
活用シーン
- 01ONOSデバイスとホストの監視
- 02特定デバイスのフロー確認
- 03ONOSアプリケーションの有効化・無効化
- 04デバイスへのフロールール追加
MCP 対応
ONOSアプリケーション、デバイス、ホスト、フローの操作をツールとしてMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ONOS MCP Server
ONOS MCP Server は、Model Context Protocol(MCP) と Open Network Operating System(ONOS) をつなぐ強力なブリッジです。AI モデルが SDN(Software-Defined Networking)インフラストラクチャと直接やり取りできるようにし、インテリジェントなネットワーク管理、監視、自動化を可能にします。
機能
- アプリケーション管理:ONOS アプリケーションの一覧表示、詳細確認、有効化、無効化ができます。
- デバイスインベントリ:スイッチ、ルーター、その他のネットワークエンティティの詳細を確認できます。
- ホスト検出:エンドノード、その位置、IP/MAC の関連付けを追跡できます。
- フロー制御:ネットワークフローを完全に可視化し、制御できます(一覧表示、デバイスによるフィルタリング、新しいフローの追加)。
- シームレスな統合:Spring Boot と Spring AI MCP で構築されており、堅牢で本番環境に対応したパフォーマンスを実現します。
前提条件
- Java 21 以上。
- Maven 3.9+(または同梱の
./mvnwを使用)。 - ONOS Controller の実行中のインスタンス(v2.x 以上を推奨)。
設定
サーバーは REST API 経由で ONOS に接続します。接続の詳細は src/main/resources/application.yaml または環境変数で設定できます。
onos:
controller:
host: ${ONOS_CONTROLLER_HOST:http://localhost:8181}
username: ${ONOS_CONTROLLER_USERNAME:onos}
password: ${ONOS_CONTROLLER_PASSWORD:rocks}
環境変数
| 変数 | 説明 | デフォルト |
|---|---|---|
ONOS_CONTROLLER_HOST | ONOS コントローラーの URL | http://localhost:8181 |
ONOS_CONTROLLER_USERNAME | ONOS ユーザー(REST アクセスが必要) | onos |
ONOS_CONTROLLER_PASSWORD | ONOS パスワード | rocks |
はじめに
1. プロジェクトをビルドする
./mvnw clean install
2. サーバーを実行する
./mvnw spring-boot:run
MCP クライアントへの接続
このサーバーを MCP クライアント(Claude Desktop や Antigravity など)で使用するには、次の設定を mcp_config.json(または同等の設定ファイル)に追加してください。
{
"mcpServers": {
"onos-mcp-server": {
"command": "java",
"args": [
"-jar",
"/path/to/onos-mcp-server.jar"
],
"env": {
"ONOS_CONTROLLER_HOST": "http://localhost:8181",
"ONOS_CONTROLLER_USERNAME": "onos",
"ONOS_CONTROLLER_PASSWORD": "rocks"
}
}
}
}
メモ
まず
./mvnw clean installでプロジェクトをビルドし、target/ディレクトリに JAR ファイルを生成してください。
利用可能な MCP ツール
サーバーは AI モデルに次のツールを公開します。
アプリケーション
list-applications:インストール済みのすべてのアプリケーションとその状態を一覧表示します。get-application:特定のアプリケーションの詳細を取得します。activate-application:名前を指定して特定のアプリケーションを有効にします。deactivate-application:特定のアプリケーションを無効にします。
デバイス
list-devices:すべてのデバイス(スイッチ、ルーター)の一覧を取得します。get-device:特定のデバイスの詳細情報を取得します。
ホスト
list-hosts:検出されたすべてのエンドノードホストを一覧表示します。get-host:特定のホストの詳細を取得します。
フロー
list-flows:すべてのネットワークフローを一覧表示します。list-device-flows:特定のデバイスのフローを一覧表示します。add-flow:新しいフロールールをデバイスに適用します。
技術スタック
- コア:Java 21、Spring Boot 3.5.9
- AI/MCP:Spring AI Starter MCP Server
- REST クライアント:Spring Cloud OpenFeign
- ユーティリティ:Lombok
❤️ を添えて ortega-kb が作成
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。