Enables configuration of the server through environment variables stored in a .env file, including ISE connection details, credentials, and SSL verification settings.
Provides access to Cisco Identity Services Engine (ISE) REST APIs, allowing discovery and interaction with ISE endpoints like endpoint configuration and identity group management, with support for filtering API results.
Supports containerized deployment using Docker, with configurations for both standalone operation and integration with Claude Desktop.
ISE MCP サーバー (FastMCP を使用)
概要
ISE MCPサーバは、Python fastmcp
ライブラリを使用して構築されたモデルコンテキストプロトコル(MCP)サーバです。Cisco Identity Services Engine(ISE)APIエンドポイントを、構造化された検出可能なMCPツールとして動的に公開します。このサーバにより、クライアントは標準化された方法でCisco ISE REST APIとやり取りすることができ、動的なツール生成やAPIレスポンスのフィルタリングなどの機能を提供します。
特徴
- 動的ツール生成: MCP ツールは
src/ise_mcp_server/urls.json
構成ファイルのエントリに基づいて自動的に作成されます。 - **FastMCP 統合:**スキーマ生成やリクエスト処理を含む堅牢な MCP サーバー実装のために
fastmcp
ライブラリを活用します。 - 非同期 API 呼び出し: Cisco ISE との非ブロッキング通信に
httpx.AsyncClient
を使用します。 - **API フィルタリング:**各ツールの
filter_expression
およびquery_params
引数を通じて Cisco ISE API 結果のフィルタリングをサポートします。 - 環境主導型構成: Cisco ISE 接続の詳細 (ベース URL、ユーザー名、パスワード) と SSL 検証設定 (
ISE_VERIFY_SSL
) は、.env
ファイルを介して構成されます。 - **詳細なドキュメント文字列:**動的に生成されたツールには、その目的、対象となる ISE API エンドポイント、フィルタリング パラメータの使用方法を説明する包括的なドキュメント文字列が含まれています。
- **標準化されたインタラクション:**モデル コンテキスト プロトコルに準拠し、MCP 互換のクライアントを介したインタラクションを可能にします。
- ストリーミング可能な HTTP トランスポート: Web ベースのアクセスでは、デフォルトで
streamable-http
トランスポートを使用するように構成されています。
設定
サーバ
{ "mcpServers": { "ise": { "command": "python", "args": [ "ise_mcp_server.py", "--oneshot" ], "env": { "ISE_BASE": " https://devnetsandboxise.cisco.com ", "USERNAME": "readonly", "PASSWORD": "ISEisC00L" } } } }
要件
- Python 3.9 以上。
- 必要なPythonパッケージは、プロジェクトルートにある
requirements.txt
に記載されています。以下のコマンドでインストールしてください。または、uv
を使用する場合:主な依存関係には、fastmcp
、httpx
、pydantic
、python-dotenv
が含まれます。(requirements.txt
、requests
ではなくhttpx
が反映されていることを確認してください)。
構成
- 環境変数: Cisco ISE API 認証情報とベース URL を使用して、プロジェクト ルート ディレクトリ (
/Users/username/mcp_servers/ISE_MCP/.env
) に.env
ファイルを作成します。 - URL設定(
urls.json
):src/ise_mcp_server/urls.json
ファイル(src/ise_mcp_server/server.py
と同じディレクトリにあります)が存在し、正しく構成されていることを確認してください。このファイルは、MCPツールとして公開されるISE APIエンドポイントを定義します。URL
: Cisco ISE API エンドポイントの相対パス。Name
: MCP ツール名を導出するために使用される、人間が判読できる名前 (例: 「エンドポイント」はツールのendpoints
になります)。FilterableFields
: このエンドポイントのfilter_expression
で使用できる既知のフィールドをリストした文字列の配列。このリストはユーザーが管理し、効果的なフィルタリングに不可欠です。
Claude Desktop 用の Docker でサーバーを実行する
このサーバーは、特に STDIO を介して対話する Claude Desktop などのクライアントで使用する場合に、Docker コンテナーとして実行されるように設計されています。
前提条件
- Docker がインストールされている: Docker Desktop がインストールされ、実行されていることを確認します。
.env
ファイル:.env
ファイル (構成で説明) は、プロジェクト ルート (/Users/username/mcp_servers/ISE_MCP/.env
) に存在する必要があります。- **STDIO用に構成されたDockerfile:**このプロジェクトの
Dockerfile
(Dockerfile
)は、stdio
トランスポートを使用するように構成する必要があります。ENTRYPOINTENTRYPOINT
次のようになります。.env
ファイルがコピーされないようにしてください。
Dockerイメージをビルドする
Dockerfile を含むディレクトリ ( /Users/username/mcp_servers/ISE_MCP/
) に移動し、Docker イメージをビルドします。
あるいは、プロジェクト ルートからビルドする場合は次のようにします。
Claudeデスクトップの設定
次のように、「ISE_MCP」サーバーの Claude Desktop MCP サーバー構成 ( claude_desktop_config.json
またはcline_mcp_settings.json
) を更新します。
Docker 引数の説明:
run
: Docker コンテナを実行します。-i
: (対話型) 接続されていない場合でも STDIN を開いたままにします。これは、STDIO ベースの MCP 通信に重要です。--rm
: コンテナの終了時に自動的に削除します。--env-file
: ホストマシン上の.env
ファイルへのパスを指定します。Docker はこれらの変数をコンテナに読み込みます。ise-mcp:latest
: 実行する Docker イメージの名前とタグ。cwd
: コ��ンドの作業ディレクトリを設定し、Claude Desktop が別のデフォルト ディレクトリからコマンドを実行する場合に相対パス (--env-file
など) が正しく解決されるようにします。
Docker Compose で実行 (ローカルテストの代替手段)
ローカルテスト用にdocker-compose.yml
ファイルも提供されています。このファイルはイメージをビルドし、コンテナを実行し、 .env
ファイルから環境変数を読み込みます。
この方法は直接テストに適していますが、Claude Desktop の統合には上記のdocker run
構成が推奨されます。
ローカルでサーバーを実行する(Dockerなし)
開発の場合や Docker が好まれない場合は、Python を使用してサーバーを直接実行できます。
前提条件
- Python 環境: Python 3.9 以上がインストールされており、
requirements.txt
から依存関係がインストールされていることを確認します。 .env
ファイル:.env
ファイルはプロジェクト ルート (/Users/username/mcp_servers/ISE_MCP/.env
) に存在する必要があります。
実行
プロジェクトのルート ディレクトリに移動して、次を実行します。
デフォルトでは、 src/ise_mcp_server/server.py
、通常http://127.0.0.1:8000/mcp
で利用可能なstreamable-http
トランスポートを使用してサーバーを起動するように設定されていますserver.py
変更することで、特定のクライアントに合わせてトランスポート(例: stdio
)やその他のサーバーパラメータを変更できます。
MCP Inspector を使用した開発とテスト (ローカル Python)
MCP Inspector を使用したローカル開発の場合:
このコマンドを実行すると、MCP Inspector が起動します。
- Inspector を使用した STDIO テストの場合:
- インスペクターでトランスポート タイプとして「STDIO」を選択します。
- サーバーを実行するコマンドを
python src/ise_mcp_server/server.py
として設定します。 - サーバーに接続します。
- Inspector を使用した HTTP テストの場合:
- 別のターミナルで
python src/ise_mcp_server/server.py
を実行してサーバーを起動します (デフォルトではstreamable-http
が使用されます)。 - MCP インスペクターで、「HTTP」を選択します。
- URL を
http://127.0.0.1:8000/mcp
(または構成したエンドポイント) に設定します。 - サーバーに接続します。
- 別のターミナルで
uv
とfastmcp run
を使用してローカルで実行する (STDIO の代替)
uv
とfastmcp
グローバルまたは環境にインストールされている場合は、 fastmcp run
コマンドを使用してサーバーを実行することもできます。これは、STDIO ベースのクライアントに役立つことがよくあります。
前提条件:
uv
がインストールされ、PATH に追加されます。uv
が使用する環境に(またはグローバルに)インストールされたfastmcp
。- プロジェクト ルートに
.env
ファイルがあります。
実行:
このコマンドは、指定されたプロジェクトディレクトリ内でfastmcp run src/ise_mcp_server/server.py --transport stdio
を実行するようuv
指示します。-- --transport stdio
フラグは、STDIO を期待するクライアントにとって重要です。
Claude Desktop のuv
方式の構成: Claude Desktop でこの方式を使用する場合は、次のように構成できます。
サーバー名を「ISE_LOCAL_UV」にするか、キーを適宜変更すると、Claude Desktop がこの設定を認識できるようになります。fastmcp fastmcp run
、現在の作業ディレクトリ(この場合は/Users/username/mcp_servers/ISE_MCP
)から.env
ファイルを自動的に読み込みます。
サーバーとのやり取り
実行後は、MCP 互換クライアント (MCP Inspector など) を使用して ISE MCP サーバーにアクセスできるようになります。
ツールの発見
クライアントは利用可能なツールを検出できます。各ツールはurls.json
内のエントリに対応しています。ツール名はName
フィールドから派生します(例:「Identity Groups」はidentity_groups
になります)。
ツールの呼び出し
ツールは、Pydantic モデル ( FilterableToolInput
またはNonFilterableToolInput
) のインスタンスである単一のオプション引数params
で呼び出されます。
**例: フィルターなしでendpoints
ツールを呼び出す:**ツールの入力モデルがdefault_factory
使用する場合、MCP クライアントは通常、明示的な引数なしでツールを呼び出すことを許可します。
**例: フィルター付きendpoints
ツールの呼び出し:**引数はPydanticモデルに従って構造化されます。FilterableFields FilterableFields
持つエンドポイントから生成されたツールの場合:
filter_expression
(文字列、オプション):fieldName.OPERATION.value
の形式でフィルターを指定します(例:mac.EQUALS.AA:BB:CC:DD:EE:FF
)。利用可能なFilterableFields
とサポートされている ISE 演算(例:CONTAINS、EQUALS、STARTSWITH)については、ツールのドキュメントを参照してください。query_params
(dict, オプション): 任意のクエリパラメータ(例:{"size": 100, "page": 2}
)を指定できます。これらのパラメータはISE APIに直接渡されます。
urls.json
内のエンドポイントに空のFilterableFields
配列がある場合、対応するツールはquery_params
のみを受け入れます。
エンドポイントと利用可能なフィルタリング可能なフィールドの詳細については、各ツールの動的に生成された docstring を参照してください。
ログ記録
サーバーはfastmcp
によって設定された標準の Python logging
モジュールを使用します。サーバーの操作と API のやり取りに関連するログメッセージがコンソールに出力されます。
ライセンス
Apache 2.0 ライセンス
This server cannot be installed
標準化された検出可能なツールを通じて Cisco Identity Services Engine API とのプログラムによる対話を可能にするモデル コンテキスト プロトコル サーバー。
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that provides a comprehensive interface for interacting with the ConnectWise Manage API, simplifying API discovery, execution, and management for both developers and AI assistants.Last updated -462Python
- AsecurityAlicenseAqualityA Model Context Protocol server that provides tools for interacting with Gmail and Calendar APIs, enabling programmatic management of emails and calendar events.Last updated -87JavaScriptMIT License
Paddle MCP Serverofficial
AsecurityAlicenseAqualityA Model Context Protocol server that provides tools for interacting with the Paddle Billing API, enabling users to manage products, prices, customers, transactions, subscriptions, and create custom financial reports.Last updated -88414TypeScriptApache 2.0Infisical MCP Serverofficial
AsecurityAlicenseAqualityA Model Context Protocol server that enables interaction with Infisical APIs for secret management, allowing users to create, update, delete, and list secrets through function calling.Last updated -93316JavaScriptApache 2.0