概要
AIにSonarQubeを読み取らせましょう。プロジェクト、クオリティゲートのステータス、カバレッジなどのメジャーとその履歴、重大度とソフトウェア品質別の未解決の課題、解析とブランチを扱えます。SonarQube ServerでもSonarQube Cloudでも利用でき、ユーザートークンによる読み取り専用です。
ガイド付きセットアップ
SonarQube を Microsoft Copilot に 2 分で接続
AnythingMCP Cloud の無料トライアルを始め、ガイド付きセットアップで SonarQube を接続して、MCP URL を Microsoft Copilot に追加します。コードもサーバーの運用も不要です。
クレジットカード不要 · 7日間の試用 · セルフホストの選択肢あり
こう聞いてみよう
SonarQube のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要です。cloud.anythingmcp.com をそのままご利用ください。 サインインして Connectors → SonarQube をクリックし、認証情報を貼り付けて MCP APIキーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要です。
SonarQube + Microsoft Copilot
AIにSonarQubeを読み取らせましょう。プロジェクト、クオリティゲートのステータス、カバレッジなどのメジャーとその履歴、重大度とソフトウェア品質別の未解決の課題、解析とブランチを扱えます。SonarQube ServerでもSonarQube Cloudでも利用でき、ユーザートークンによる読み取り専用です。
前提条件
コネクターに組み込まれているセットアップ手順の全文をご覧ください(アプリ内ストアでコネクターを選択すると表示されます)。このコネクターに必要な環境変数は次のとおりです。
SONARQUBE_URL, SONARQUBE_TOKEN
ステップ1 — 認証情報を取得する
セットアップには約3分かかります。SonarQube Server(無料のCommunity Buildで動作します)または解析済みプロジェクトが1つ以上あるSonarQube Cloudアカウントと、ユーザートークンが必要です。
SONARQUBE_URLを設定します。/apiや末尾のスラッシュは付けません。EUリージョンのSonarQube Cloudならhttps://sonarcloud.io、USリージョンのSonarQube Cloudならhttps://sonarqube.us、SonarQube Serverならブラウザで開くときのアドレスを、コンテキストパスがあればそれも含めて指定します(例:https://sonar.example.comやhttps://example.com/sonarqube)。- ユーザートークンを作成し、Bearerという語を付けずに
SONARQUBE_TOKENに貼り付けます。Serverの場合: アバター → My Account → Security で、タイプ User のトークンを生成します。Cloudの場合: アバター → My Account → Access tokens → Personal Tokens でトークンを生成します。プロジェクト用およびグローバルの解析トークンはスキャンの実行用であり、Web APIでは使えません。 - SonarQube Cloudでは、
SONARQUBE_ORGANIZATIONに組織キーを設定します。組織キーはURLsonarcloud.io/organizations/<key>に表示されます。Cloudではプロジェクトの一覧取得と課題の検索にこの値が必要です。Serverでは空のままにします。 - コネクターをインストールして
sonarqube_list_projectsを実行します。トークンで閲覧できるプロジェクトと、他のツールが受け取るプロジェクトキーが一覧表示されます。
読み取れる内容: プロジェクトがクオリティゲートに合格したかどうか(OKまたはERROR、不合格の各条件を含む)、coverage、duplicated_lines_density、ncloc、software_quality_* の課題数などの現在のメジャー、そのメジャーが解析ごとにどう変化したか、ソフトウェア品質(SECURITY、RELIABILITY、MAINTAINABILITY)・重大度・ステータスで絞り込んだ課題、イベント付きのプロジェクトの解析、最後の解析とゲートのステータス付きのブランチです。7つのツールはすべて読み取り専用で、AIが参照できるプロジェクトはトークンによって決まります。
プロジェクトとブランチ: ツールが受け取るのは表示名ではなくプロジェクトキーです(例: payments-api、Cloudでは my-org_payments-api)。branch や pullRequest を指定しない場合はメインブランチを読み取ります。Community Buildで解析されるのはメインブランチのみです。
プライベートネットワーク: セルフホストのAnythingMCPで、内部ホストやプライベートIP上のSonarQube Serverを使う場合は、そのホストを SSRF_ALLOWED_HOSTS に追加する必要があります。追加しないと、送信ガードが呼び出しを拒否します。AnythingMCP Cloudが接続できるのは、SonarQube Cloud、またはパブリックインターネットから到達可能なSonarQube Serverのみです。
制限: 一覧系のツールは1ページあたり最大500件を返します(sonarqube_get_measures_history は1,000件)。課題の検索は合計で最大10,000件までしか返さないため、ページを進めるのではなくフィルターを絞り込んでください。SonarQube Cloudは、トークンから送信されるリクエストが多すぎると429を返します。数分待ってから再試行してください。SonarQube Serverにはデフォルトでレート制限がありません。
よくあるエラー: 401は、トークンが間違っている、期限切れ、失効している、またはユーザートークンではなく解析トークンであることを意味します。403は、トークンのユーザーにプロジェクトの Browse 権限がないことを意味します。404は、プロジェクトキー、ブランチ、プルリクエストが存在しないか、SONARQUBE_URL が間違っていることを意味します。400は、不足している、または無効なパラメーターを示します。たとえばCloudで組織が指定されていない場合です。
このコネクターはSonarQube上の何も変更しません(課題の遷移、担当者の割り当て、コメントの追加、クオリティゲート・クオリティプロファイル・プロジェクト・トークンの変更はできません)。また、セキュリティホットスポット、ポートフォリオとアプリケーション、Web API v2、管理およびシステムのエンドポイント、新規コードのみを対象とした課題フィルターには対応していません。
ステップ2 — アダプターをインストールする
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ3 — Microsoft Copilotにコネクターを追加する
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
Microsoft Copilot は、Copilot Studio で作成したエージェントを通じて MCP サーバーを使います。AnythingMCP をツールとしてエージェントに追加し、そのエージェントを Microsoft 365 Copilot と Teams に公開します。Copilot Studio は Microsoft のクラウドから Streamable HTTP で接続し、AnythingMCP はこれに対応しています。
- Copilot Studio でエージェントを開き(または新規作成し)、Tools で Add a tool → New tool → Model Context Protocol を選びます。
- Server name(例:
AnythingMCP)、コネクタでできることを説明する Server description、Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDを入力します。Copilot Studio はこの説明をもとに、いつサーバーを呼び出すかを判断します。 - 認証で API key を選び、Type を Header、ヘッダー名を
X-API-Keyにして Create を選びます。 - Add tool で Create a new connection を選び、AnythingMCP の MCP API キー(MCP Servers → 対象のサーバー → API keys)を貼り付けて Add to agent を選びます。
- エージェントの Test ウィンドウで試します。
SonarQubeのツールが必要になる依頼をしてみましょう。 - Publish を選び、Channels → Microsoft 365 and Microsoft Teams で Make agent available in Microsoft Copilot を選択したまま Add channel を選びます。See agent in Teams で自分用にインストールされます。Microsoft 365 Copilot では @ を入力してエージェントを選びます。
ユーザーごとにサインインさせたい場合は、API キーの代わりに OAuth 2.0 → Dynamic discovery を選びます。各ユーザーは、エージェントが初めて呼び出すときに AnythingMCP にサインインします。
セルフホストの場合は、https://cloud.anythingmcp.com の代わりにインスタンスの公開 HTTPS アドレスを使ってください。Copilot Studio は Microsoft のクラウドから接続するため、localhost は使えません。
利用可能なツール
| ツール | 機能 |
|---|---|
sonarqube_list_projects | トークンで閲覧できるSonarQubeプロジェクトを、キーと名前とともに一覧表示します |
sonarqube_get_quality_gate_status | プロジェクトがクオリティゲートに合格したかどうかを読み取ります。全体のステータス(OKまたはERROR)と、各条件のメトリクス、しきい値、実測値を取得します… |
sonarqube_get_measures | プロジェクトの1つ以上のメトリクス(coverage、duplicated_lines_density、nclocなど)の現在の値を読み取ります… |
sonarqube_get_measures_history | プロジェクトのメトリクスが時間とともにどう変化したかを読み取ります。解析ごとに1つの値と、その日付を取得します |
sonarqube_search_issues | 1つ以上のプロジェクトの課題を検索します。ルール、メッセージ、ファイルと行、影響(ソフトウェア品質と重大度)、ステータス、担当者、作成日時を取得します… |
sonarqube_list_project_analyses | プロジェクトの解析を新しい順に、日付、バージョン、クオリティゲートの変更や新バージョンなどのイベントとともに一覧表示します |
sonarqube_list_branches | プロジェクトのブランチを、種類、メインブランチかどうか、最後の解析の日付、クオリティゲートのステータスとともに一覧表示します |
FAQ
どの Copilot が対象ですか? 職場で使う Microsoft 365 Copilot で、Copilot Studio のエージェントを通じて利用します。個人アカウント向けの Microsoft Copilot アプリでは、独自の MCP サーバーを追加できません。
何が必要ですか? エージェントを作成するために、Copilot Studio を利用できる職場アカウント(ライセンスまたは試用版)が必要です。Microsoft 365 Copilot や Teams でエージェントを使う人には、エージェントへのアクセス権が必要です。共有するか、管理者に組織向けに公開してもらってください。組織が Power Platform コネクタにデータ ポリシーを適用している場合は、MCP サーバーにも適用されます。
エージェントがツールを呼び出しません。 ヘッダー名が正確に X-API-Key であること、キーが URL と同じ MCP サーバーのものであることを確認し、Server description を具体的に書いてください。Copilot Studio はこの説明をもとにサーバーを呼び出すかどうかを判断します。変更のたびにエージェントを再公開し、開いているチャットでは "start over" と入力すると新しいバージョンになります。
次のステップ
このガイドは役に立ちましたか?