SonarQube MCP Serverは、LLM(大規模言語モデル)がSonarQubeのデータや解析機能にアクセスできるようにするためのModel Context Protocol (MCP) サーバーです。
この記事では、MCPサーバーを通じてAIアシスタントが利用できるツールを、公式ドキュメントに基づきカテゴリ別に網羅してまとめました。
1. コード解析 (Analysis)
コードスニペットやファイルの解析、およびIDE連携の設定を行うツールです。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
analyze_code_snippet |
SonarQube解析器を使用して、コードスニペット内の品質やセキュリティの問題を特定します。 |
codeSnippet (必須), language
|
analyze_file_list |
SonarQube for IDEと連携し、指定したファイルのリストを解析します。 |
file_absolute_paths (必須) |
toggle_automatic_analysis |
SonarQube for IDEの自動解析の有効/無効を切り替えます。 |
enabled (必須) |
2. 依存関係のリスク (Dependency risks)
SCA(ソフトウェア構成分析)に関連する依存関係の問題を検索します。
※SonarQube Server 2025.4 Enterprise版以上かつAdvanced Security有効時のみ利用可能です。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
search_dependency_risks |
プロジェクト内の依存関係リスクを検索します。 |
projectKey, branchKey, pullRequestKey
|
3. エンタープライズ (Enterprises)
SonarQube Cloud Enterprise版の管理用ツールです。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
list_enterprises |
アクセス可能なSonarQube Cloudのエンタープライズを一覧表示します。他のツールで使用するエンタープライズIDの確認に利用します。 | enterpriseKey |
4. イシュー管理 (Issues)
検出された問題(イシュー)の検索やステータス変更を行います。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
change_sonar_issue_status |
イシューのステータスを「承認(accept)」「誤検知(falsepositive)」「再オープン(reopen)」に変更します。 |
key (必須), status (必須) |
search_sonar_issues_in_projects |
組織内のプロジェクトからイシューを検索します。 |
projects, severities, ps
|
5. プロジェクトとポートフォリオ (Projects & Portfolios)
プロジェクトや組織全体のポートフォリオ情報の取得を行います。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
search_my_sonarqube_projects |
アクセス可能なSonarQubeプロジェクトを検索します。 | page |
list_portfolios |
エンタープライズ・ポートフォリオを一覧表示します(Server/Cloud両対応)。 |
enterpriseId, favorite, q
|
6. クオリティゲート (Quality Gates)
プロジェクトが定義された品質基準を満たしているか確認します。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
get_project_quality_gate_status |
指定したプロジェクトやブランチのクオリティゲートのステータスを取得します。 |
projectKey, branch, analysisId
|
list_quality_gates |
利用可能なすべてのクオリティゲートを一覧表示します。 | なし |
7. メトリクスと計測値 (Measures & Metrics)
コードの行数、カバレッジ、複雑度などの統計データを取得します。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
get_component_measures |
特定のコンポーネント(プロジェクト、ディレクトリ、ファイル)の計測値を取得します。 |
component, metricKeys (ncloc, coverage等) |
search_metrics |
利用可能なメトリクスの定義を検索します。 |
p, ps
|
8. ルールとソースコード (Rules & Sources)
適用されているルールセットの確認や、実際のソースコードの取得を行います。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
show_rule |
特定のSonarQubeルールの詳細情報を表示します。 |
key (必須) |
list_rule_repositories |
ルールリポジトリを一覧表示します。 |
language, q
|
get_raw_source |
ソースコードをプレーンテキストとして取得します(閲覧権限が必要)。 |
key (必須), branch
|
get_scm_info |
ソースファイルのSCM(Git等)情報を取得します。 |
key (必須) |
9. システム管理 (System)
サーバーの状態確認などを行うためのツールです(主にSonarQube Server用)。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
get_system_health |
サーバーの健全性(GREEN, YELLOW, RED)を取得します。 | なし |
get_system_info |
システム構成(JVM、DB、設定等)の詳細情報を取得します。 | なし |
get_system_logs |
システムログを取得します。 |
name (access, app, ce等) |
get_system_status |
稼働状態やバージョンを取得します。 | なし |
ping_system |
疎通確認を行い、"pong"を返します。 | なし |
10. ウェブフック (Webhooks)
外部連携用のウェブフックの設定を行います。
| ツール名 | 説明 | 主要な引数 |
|---|---|---|
create_webhook |
新しいウェブフックを作成します。 |
name (必須), url (必須), projectKey
|
list_webhooks |
既存のウェブフックを一覧表示します。 | projectKey |
まとめ
SonarQube MCP Serverを活用することで、AIが直接ソースコードを読み取ったり、品質メトリクスを確認したり、ウェブフックを設定したりすることが可能になります。
特にDependency risksやEnterprisesツールは、大規模な組織やセキュリティ重視のプロジェクトにおいて、AIによる自動監査を強力にサポートする機能となります。
詳細な仕様については、公式ドキュメントを併せて参照してください。