mcpField
C
Cisco NSO MCP Server

Cisco NSO MCP Server

ローカル
github.com/dbono711クラウド・インフラ444 週間前に更新

Cisco NSO MCP Server について

Cisco NSO MCP Serverは、Cisco NSOのネットワークデータと操作をMCP対応クライアントに公開します。ネットワークチームはAIアプリケーションからデバイスやサービスのツールを使い、環境リソースを参照できます。

主な機能

  1. 01デバイスのNED IDとグループの取得
  2. 02デバイスのプラットフォーム、設定、状態の参照
  3. 03デバイス同期状態の確認と同期
  4. 04サービスタイプとサービスの一覧
  5. 05NSO環境の概要を提供

活用シーン

  1. 01デバイスの設定と状態を確認する
  2. 02デバイスの同期状態を確認する
  3. 03利用可能なNSOサービスを調べる
  4. 04AIアプリケーションにNSO環境情報を渡す

MCP 対応

Cisco NSOの操作をMCPツールとして公開し、環境情報をリソースとして提供します。デフォルトのstdioに加えて、HTTPトランスポートも設定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Cisco NSO MCP サーバー

Cisco NSO (Network Services Orchestrator) の Model Context Protocol(MCP)サーバー実装です。NSO のデータや操作を、MCP 対応クライアントが利用できる MCP プリミティブ(ツール、リソースなど)として公開し、自然言語でのやり取りを通じて AI を活用したネットワーク自動化を実現します。

カスタムクライアントのサンプル

デモ

MCP とは?

Model Context Protocol(MCP)は、AI モデルが外部のツールやサービスと連携する方法を標準化するオープンプロトコルです。MCP により、次のことが可能になります。

  • ツールの定義:AI モデルが使用できるツールを構造化された方法で定義します
  • ツールの検出:モデルが利用可能なツールを検出する仕組みを提供します
  • ツールの実行:モデルがツールを呼び出し、結果を受け取るための標準化された方法を提供します
  • コンテキスト管理:ツールとモデルの間でコンテキストを効率的に受け渡します
  • フレームワーク非依存:OpenAI、Anthropic、Google Gemini など、複数の AI フレームワークで動作します
  • 相互運用性:AI システムが外部ツールと通信するための共通言語を提供します

機能

  • Stdio トランスポート:この MCP サーバーはデフォルトで、プロセスにバインドされた通信に Stdio トランスポートを使用します
  • ツール優先の設計:ネットワーク操作を、明確なインターフェースを持つ個別のツールとして定義します
  • 非同期処理:パフォーマンスを向上させるため、すべてのネットワーク操作を非同期で実装しています
  • 構造化されたレスポンス:ステータス、データ、メタデータのセクションで構成される一貫したレスポンス形式を使用します
  • 環境リソース:NSO 環境に関するコンテキスト情報を提供します
  • NSO との統合:cisco-nso-restconf ライブラリを使用し、NSO の RESTCONF API に対する使いやすい Pythonic なインターフェースを提供します
  • 柔軟なログ記録:環境変数で、stdout および/またはファイルへのログ記録を設定できます。LOG_FILE 環境変数が設定されている場合、ログは stdout と指定されたファイルの両方に送信されます。ログファイルを作成または書き込めない場合、サーバーはエラーメッセージとともに stdout のみへのログ記録に切り替えます
  • 複数クライアントのサポート:Windsurf Cascade やカスタム Python アプリケーションなど、あらゆる MCP 対応クライアントで動作します

利用可能なツールとリソース

ツール
ツール名説明入力戻り値
get_device_ned_idsCisco NSO から Network Element Driver(NED)ID を取得しますNED ID のリストを含む辞書
get_device_groupsCisco NSO からデバイスグループを取得しますデバイスグループのリストを含む辞書
get_device_platformCisco NSO の特定のデバイスのプラットフォーム情報を取得します'device_name' (string)指定したデバイスのプラットフォーム情報を含む辞書
get_device_configCisco NSO の特定のデバイスの完全な設定を取得します'device_name' (string)指定したデバイスの設定を含む辞書
get_device_stateCisco NSO の特定のデバイスの状態を取得します'device_name' (string)指定したデバイスの状態を含む辞書
check_device_syncCisco NSO の特定のデバイスの同期ステータスを確認します'device_name' (string)指定したデバイスの同期ステータスを含む辞書
sync_from_deviceCisco NSO の特定のデバイスから同期します'device_name' (string)指定したデバイスの同期ステータスを含む辞書
get_service_typesCisco NSO のサービス種別を取得しますサービス種別を含む辞書
get_servicesCisco NSO の特定のサービスタイプのサービスを取得します'service_type' (string)指定したサービスタイプのサービスを含む辞書
リソース
  • https://resources.cisco-nso-mcp.io/environment:NSO 環境をまとめた情報を提供します。
    • デバイス数、オペレーティングシステムの分布、オペレーティングシステムの種類数、モデルの種類数、モデルの分布、デバイスシリーズの分布、デバイスグループとメンバー

要件

  • Python 3.12+
  • RESTCONF API が有効な Cisco NSO
  • NSO RESTCONF API へのネットワーク接続

設定オプション

コマンドライン引数または環境変数を使用して、サーバーを設定できます。

NSO 接続パラメーター
コマンドライン引数環境変数デフォルト説明
--nso-schemeNSO_SCHEMEhttpNSO の接続方式(http/https)
--nso-addressNSO_ADDRESSlocalhostNSO サーバーのアドレス
--nso-portNSO_PORT8080NSO サーバーのポート
--nso-timeoutNSO_TIMEOUT10接続タイムアウト(秒)
--nso-usernameNSO_USERNAMEadminNSO のユーザー名
--nso-passwordNSO_PASSWORDadminNSO のパスワード
--nso-verifyNSO_VERIFYTrueNSO の HTTPS 証明書を検証します(デフォルト:True)。自己署名証明書を使用する場合(開発環境のみ)は、--no-nso-verify を使用してください。
--nso-ca-bundleNSO_CA_BUNDLENoneNSO の HTTPS で信頼する CA バンドルファイルのパスです。-nso-verify が True の場合に適用されます。
MCP サーバーのパラメーター
コマンドライン引数環境変数デフォルト説明
--transportMCP_TRANSPORTstdioMCP トランスポートの種類(stdio/http)
HTTP トランスポートオプション(--transport=http の場合のみ使用)

FastMCP HTTP Server reference: https://gofastmcp.com/deployment/http#http-deployment

Command-line ArgumentEnvironment VariableDefaultDescription
--hostMCP_HOST0.0.0.0Host to bind to when using HTTP transport
--portMCP_PORT8000Port to bind to when using HTTP transport
Logging Configuration
Environment VariableDefaultDescription
LOG_FILENonePath to log file. If not set, logs will be sent to stdout only

Environment variables take precedence over default values but are overridden by command-line arguments.

Connecting to the Server with MCP Clients

You can connect to the server using any MCP client that supports the selected transport type. A few options are:

Windsurf Cascade

Windsurf Cascade supports MCP servers through a configuration file. To use the Cisco NSO MCP server with Windsurf, add it to your mcp_config.json file.

Using uv (recommended)

When using uv, no specific installation is needed. You can use uvx to directly run the package:

{
  "mcpServers": {
    "nso": {
      "command": "uvx",
      "args": [
        "cisco-nso-mcp-server",
        "--nso-address=127.0.0.1",
        "--nso-port=8080",
        "--nso-username=admin",
        "--nso-password=admin"
      ],
      "env": {
        "LOG_FILE": "/path/to/your/logs/nso-mcp.log"
      }
    }
  }
}
pip でインストールする場合

別の方法として、cisco-nso-mcp-server を pip でインストールできます。

pip install cisco-nso-mcp-server

これで、実行ファイルのパスを直接指定して使用できます。

{
  "mcpServers": {
    "nso": {
      "command": "/path/to/your/env/bin/cisco-nso-mcp-server",
      "args": [
        "--nso-address=127.0.0.1",
        "--nso-port=8080",
        "--nso-username=admin",
        "--nso-password=admin"
      ],
      "env": {
        "LOG_FILE": "/path/to/your/logs/nso-mcp.log"
      }
    }
  }
}

/path/to/your/env/bin/cisco-nso-mcp-server は、pip でパッケージをインストールした場所の実際のパスに置き換えてください。メイン環境にインストールした場合は which cisco-nso-mcp-server を実行してパスを確認できます。または、仮想環境の bin ディレクトリ内で確認できます。

どちらの場合も、env セクションは省略可能です。含める場合は、LOG_FILE 環境変数を指定して、ファイルへのログ記録を有効にできます。

stdio トランスポートを使用したカスタム MCP クライアント Python アプリケーションでの使用

MCP サーバーにローカルで接続し、ツールを実行する方法を示すサンプル Python アプリケーションとして、sample_stdio_client.py が用意されています。

サーバーをスタンドアロンで実行する

通常、サーバーはMCP クライアントとともに使用しますが、スタンドアロンプロセスとして直接実行することもできます。

# Run with default NSO connection and MCP settings (see Configuration Options above for details)
cisco-nso-mcp-server

# Run with custom NSO connection parameters
cisco-nso-mcp-server --nso-scheme=http --nso-address=127.0.0.1 --nso-port=8080 --nso-username=admin --nso-password=admin

stdio トランスポートを使用してスタンドアロンプロセスとして実行する場合は、プロセスに入力と出力をパイプするか、stdio トランスポートに対応した MCP クライアントとともに使用する必要があります。

ライセンス

このプロジェクトは MIT License のもとでライセンスされています。MIT License の利用規約に従う限り、コードを使用、変更、配布できます。

コメント

MCP は初めてですか?

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

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