C/C++test には MCP (Model Context Protocol) Server 拡張が付属しており、AI エージェントやアプリケーション (Copilot など) と C/C++test の機能をスムーズに統合できます。C/C++test MCP サーバー は、 Visual Studio など、MCP 統合をサポートする 任意の LLM 連携の開発環境で使用できます。この拡張を使用すると、AI エージェントが C/C++test と直接やりとりし、コンテキストを意識したガイドおよび解析を提供することが可能になります。
この拡張は、AI エージェントを使用して以下を実現できます。
- 静的解析ルールの詳細を取得します。
プロジェクトでレポートされた静的解析違反をレビューします。
提供されたコード スニペットまたはファイルに基づいて違反の修正を提案します。
- 特定の問題に対して適切なルールを提案します。
- 製品ユーザー ガイドの情報にアクセスします。
MCP サーバーの起動プログラムは <INSTALL_DIR>/integration/mcp ディレクトリにあります。
次の手順は、例として Copilot を使用して LLM ベースのエージェントと C/C++test を統合する方法を説明しています。
Visual Studio IDE で Copilot Chat とともに MCP サーバーを使用するための設定
- Visual Studio で Chat ウィンドウに移動し、ツール選択画面のプラス (
+) ボタンをクリックします。 - Configure MCP Server ウィンドウで以下を設定します。
- [Server ID] を指定します。
- stdio サーバー タイプを選択します。
- MCP サーバーの起動コマンドを指定します。
<INSTALL_DIR>/integration/mcp/cpptestmcp.exe
- [保存] をクリックします。
- MCP サーバー ツールが追加され、ツール選択肢に表示されます。使用するツールを有効または無効にできます。
Copilot Chat とともに MCP ツールを使用する
MCP サーバーを設定したら、Copilot Chat で用意された MCP ツールを使用できます。
プロンプト例:
- goo.cpp のすべての重要度-1 の違反をリストして
- 行 10 の違反の修正方法を提案して
- BD-PB-ARRAY ルールを説明して
- 静的解析の違反を抑制する方法は?
プロジェクト構造 (たとえば report.xml ファイルの場所) を明示的に説明したり、より複雑なワークフローを定義するには、インストラクション ファイルの使用を検討してください。
Copilot でのインストラクションの使用
Copilot が Parasoft MCP ツールを呼び出さない場合があります。Parasoft MCP ツールが確実に呼び出されるようにするには、カスタム インストラクションを追加します。
Copilot Chat ウィンドウでユーザーのプロファイルの画像をクリックし、[Personal instructions] をクリックします。
テキスト ボックスに自然言語のインストラクションを追加します。例:
上記の例に挙げたインストラクションを使用すると、Copilot は(自身でファイルを解析するのではなく) get_violations_from_report_file ツールを使用して report.xml から違反を抽出し、get_rule_documentation を使用してドキュメントの詳細を取得します。違反を含むレポートを解析する際、get_violations_from_report_file ツールを使用してレポートをレビューし、指摘事項に基づいて洞察や提案を提供する。 get_rule_documentation ツールを使用して違反に関する情報、違反の重要度、修正手順を取得する。
- [保存] をクリックします。
MCP サーバー ツール リファレンス
| ツール | 説明 | 注意点 |
|---|---|---|
| get_relevant_rules | ユーザーのクエリーに一致する静的解析ルールを返します。各エントリにはルール ヘッダーおよび対応するルール識別子がカンマで区切られたリストが含まれます。 | |
| get_rule_documentation | 静的解析ルールのドキュメントとともに参考情報として元のドキュメント ファイルへのパスを返します。 | 次のように正確なルール ID を指定する必要があります。BD-PB-ARRAY |
| get_violations_from_report_file | レポート XML ファイルから違反を抽出し、重要な詳細情報とともに JSON フォーマットで出力します。結果はオプションのルール ID、重要度、ソース ファイル名のフィルターによって絞り込まれます。 | レポート XML ファイルへの絶対パスを指定する必要があります。サーバーはレポート ファイルにローカル アクセスできる必要があります。 別の方法として、[品質タスク] ビューのコピー アクションを使用して選択した違反の説明をクリップボードにコピーし、Copilot Chat ウィンドウに説明を貼り付けて修正をリクエストすることもできます。 |
| search_documentation | ドキュメントを検索し、ユーザーのクエリーに合わせて適切なページを取得します。各ページの内容およびソース URL を返します。静的解析ルールのドキュメントを検索するには、get_rule_documentation または get_relevant_rules ツールを使用します。 |