VI+ MCP Server について
VI+ MCP Server は、Cisco CVM API から CVE の情報を取得し、読みやすい要約に整える Python アプリケーションです。脆弱性のリスク、悪用可能性、修正情報を確認する用途に向いています。
主な機能
- 01Cisco CVM API による CVE 情報の取得
- 02リスクスコアと悪用可能性の要約
- 03利用可能な修正情報の提示
- 04MCPO 経由で OpenAPI エンドポイントとして公開
活用シーン
- 01CVE のリスクと悪用可能性の確認
- 02脆弱性に対する修正の確認
- 03MCPO 経由で Open-WebUI に脆弱性ツールを提供
MCP 対応
Cisco CVM に基づく CVE 情報を構造化された要約として MCP クライアントに提供します。README では、MCP から OpenAPI へのプロキシ MCPO を介して Open-WebUI に接続する方法も説明されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
VI+ MCP サーバー
VI+ MCP サーバーは、Cisco CVM API を使用して Common Vulnerabilities and Exposures(CVE)の詳細を取得し、整形するために設計された Python ベースのアプリケーションです。リスクスコア、悪用可能性、修正情報など、CVE データを構造化された読みやすい形式で提供します。
VS Code で MCP サーバーとして実行する
VS Code で VI+ MCP サーバーを MCP サーバーとして設定するには、以下の手順に従ってください。
-
VS Code の設定ファイル(
settings.json)を開きます。 -
"mcp"キーの下に次の設定を追加します。"mcp": { "servers": { "VI+Bot": { "type": "stdio", "command": "python", "args": [ "/Github/VI-MCP/vi_mcp.py" ] } } } -
settings.jsonファイルを保存します。
注意事項
- Python がインストールされており、ターミナルから利用できることを確認してください。
.envファイルがプロジェクトのルートにあり、必要な環境変数が含まれている必要があります。- 設定内のパス
/Github/VI-MCP/vi_mcp.pyを、ローカルシステム上の正しいパスに変更してください。 - 問題が発生した場合は、
vi_mcp.pyへのパスが正しいことと、ファイルが実行可能であることを確認してください。
VS Code での MCP サーバーの設定について詳しくは、VS Code MCP サーバーのドキュメントを参照してください。
MCPO を使用して Open-WebUI に提供する
Open-WebUI は、MCP ベースのツールを標準の OpenAPI エンドポイントを通じて統合し、公開できる強力なプラットフォームです。MCP-to-OpenAPI プロキシ(mcpo)を使用すると、MCP サーバーを REST API 経由で利用できるようになり、他のツール、サービス、ワークフローとシームレスに統合できます。Open-WebUI はデプロイを簡素化し、OpenAPI ドキュメントを自動生成するとともに、API を対話的に探索する機能を提供します。
Open-WebUI の利用を開始するための詳しいガイドは、Open-WebUI の利用開始のセクションを参照してください。
MCPO と Open-WebUI を併用する理由
- 標準化された API アクセス:MCP サーバーを RESTful API として公開することで、既存のシステムと簡単に統合できます。
- 対話型ドキュメント:組み込みの Swagger UI からアクセスできる OpenAPI ドキュメントを自動生成します。
- 拡張性とセキュリティ:堅牢な認証機能と拡張性を備えた HTTP ベースの通信を活用できます。
- 使いやすさ:最小限の設定でデプロイプロセスを簡素化し、カスタムクライアントも必要ありません。
MCP-to-OpenAPI プロキシ(mcpo)を使用して VI+ MCP サーバーを Open-WebUI に提供するには、以下の手順に従ってください。
-
リポジトリをクローンします。
git clone <repository-url> cd VI-MCP -
Docker イメージをビルドします。
docker build -t vi_mcp_server . -
Docker コンテナを使って MCP-to-OpenAPI プロキシを実行します。
uvx mcpo --port 8000 -- docker run -i --rm --env-file .env vi_mcp_server -
自動生成された OpenAPI ドキュメントに次の場所からアクセスします。
http://localhost:8000/docs
Open-WebUI で MCPO を使用する方法について詳しくは、Open-WebUI MCP ドキュメントを参照してください。
MCPO プロジェクトについては、GitHub リポジトリをご覧ください。
Open-WebUI におすすめのモデル
Open-WebUI で MCP を使用する場合は、Gemma 3:12B モデルをおすすめします。このモデルは、128K のコンテキストウィンドウを備えた高性能なマルチモーダルモデルで、質問応答、要約、推論などのタスクに最適です。140 以上の言語に対応し、リソースが限られたデバイスでの実行に最適化されています。
Gemma 3:12B モデルの主な特長:
- マルチモーダル機能:テキストと画像の両方を処理します。
- 大きなコンテキストウィンドウ:大量の入力を扱える 128K トークン。
- 高い性能:推論、論理、要約のタスクに優れています。
- コンパクトな設計:単一の GPU で効率よく動作します。
詳しくは、Gemma 3:12B モデルのページをご覧ください。
Open-WebUI 用システムプロンプト
Open-WebUI 用の推奨システムプロンプトは、SystemPrompt.md ファイルで確認できます。このプロンプトでは、アシスタントが Cisco Risk Scores を優先し、実用的な脆弱性に関する分析情報を提供するように設定するための詳細なガイダンスを示しています。
環境変数
プロジェクトのルートに .env ファイルを作成し、次の内容を記述します。
RISK_TOKEN=your_api_token_here
テスト
test_vi_mcp.py スクリプトを使用して API をテストするには、次の手順に従います。
-
.envファイルにRISK_TOKENが設定されていることを確認します。 -
スクリプトを実行します。
python3 test_vi_mcp.py -
スクリプトは、ハードコードされた CVE ID(
CVE-2023-35078)の詳細を取得して表示します。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については LICENSE ファイルを参照してください。
コントリビューション
コントリビューションを歓迎します。ご提案や改善点があれば、プルリクエストを送信するか、イシューを作成してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。