Azure DevOps Pull Request MCP Server について
Azure DevOps Pull Request MCP Serverは、Azure DevOpsのプルリクエストをレビューする開発者向けの開発中サーバーです。PRの詳細やコメントスレッドを取得し、コード位置にコメントスレッドを作成できます。
主な機能
- 01プルリクエスト詳細の取得
- 02プルリクエストのコメントスレッド取得
- 03コード位置へのコメントスレッド作成
- 04ステータスによるスレッドの絞り込み
活用シーン
- 01プルリクエストの背景と状態の確認
- 02既存レビューコメントの確認
- 03変更箇所へのコメント記入
MCP 対応
Azure DevOpsのプルリクエスト操作用に、GetPrDetails、GetPrThreads、CreatePrThreadツールをMCPクライアントへ公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Azure DevOps Pull Request MCP Server
Azure DevOps のプルリクエスト操作に特化した Model Context Protocol(MCP)サーバーの実装です。このサーバーは、ModelContextProtocol NuGet パッケージを使用して構築されており、Azure DevOps のプルリクエストにアクセスして操作するためのツールを提供します。
概要
この MCP サーバーは、Model Context Protocol を通じて Azure DevOps のプルリクエスト API と連携する方法を実演する学習プロジェクトとして設計されています。次のツールを提供します。
- プルリクエストの詳細の取得
- プルリクエストのスレッド/コメントの取得
- 特定のコード位置への新しいコメントスレッドの作成
プロジェクトの状況
免責事項:このプロジェクトは現在、開発中です(WIP)。
今後追加予定の機能
- インストールと使用を簡単にするため、サーバーを dotnet ツールとしてパッケージ化
- スレッドサポートの強化:
- 既存のスレッドに返信する機能
- 既存のスレッドにコメントを追加する機能
- スレッド管理機能の改善
使用例
PR レビューワークフロー
プルリクエストをレビューするには、次のプロンプトテンプレートを使用できます。
I want us to review together PR https://dev.azure.com/org/project/_git/repo/pullrequest/123
First let's have high level review of the PR context and then let's drill down to changed files
and what was changed there - please share if you have any suggestions or you notice any issues.
Please verify you are in the local folder of the repo we are doing PR on and switch to the PR
branch to be able to look at files.
これにより、次のワークフローが実行されます。
- GetPrDetails ツールを使用して PR の詳細を取得
- PR のコンテキストと範囲を分析
- ローカルリポジトリで変更されたファイルを確認
- CreatePrThread ツールを使用して提案を提供
新しいスレッドの作成
var input = new AdoCreateThreadInput
{
PrUrl = "https://dev.azure.com/org/project/_git/repo/pullrequest/123",
Content = "Consider using a more descriptive variable name",
Context = new ThreadContext
{
FilePath = "src/file.cs",
StartLine = 10,
EndLine = 10
}
};
レビューセッションの例
Prompts you can use during the review:
1. Get PR Overview:
"Let's review PR https://dev.azure.com/org/project/_git/repo/pullrequest/123"
2. Focus on Specific File:
"Can you analyze the changes in src/file.cs?"
3. Add Comment:
"Please add a comment on line 45 of src/file.cs suggesting to use async/await"
4. Get Existing Comments:
"Show me all the review comments in this PR"
これらの各プロンプトでは、適切な MCP ツールが使用されます。
- PR 情報の取得には GetPrDetails
- 既存のコメントの取得には GetPrThreads
- 新しいコメントの追加には CreatePrThread
要件
- .NET 8.0 SDK
- 次のいずれかの認証方法:
-
推奨:Azure Identity 認証
- Azure.Identity の DefaultAzureCredential を使用します
- マネージド ID やその他の Azure 認証方法をサポートしているため、より安全です
- PAT は不要です
-
レガシー:Personal Access Token(PAT)
- セキュリティ上の理由から推奨されません
- PAT を使用する必要がある場合は、次のスコープが必要です。
Code (Read & Write)Pull Request Threads (Read & Write)
-
MCP サーバーのビルドとインストール
- このリポジトリをクローンします
- プロジェクトをビルドします。
dotnet build -c Release
- MCP の設定 JSON ファイルを変更して、VSCode の設定に MCP サーバーを追加します。
設定ファイルの mcpServers オブジェクトに、次の設定を追加します。
{
"mcpServers": {
"azure-devops-pr": {
"autoApprove": [],
"disabled": false,
"timeout": 60,
"command": "dotnet",
"args": ["path/to/bin/Release/net8.0/AzureDevopsPullrequestMcpServer.dll"],
"env": {
// Optional: Only needed if using PAT authentication (not recommended)
// "AZURE_DEVOPS_PAT": "your-pat-token"
// If AZURE_DEVOPS_PAT is not set, DefaultAzureCredential will be used
},
"transportType": "stdio"
}
}
}
次のように置き換えます。
path/toをビルドした DLL の実際のパスに置き換えますyour-pat-tokenを Azure DevOps Personal Access Token に置き換えます(PAT 認証を使用する場合のみ)
注:設定で AZURE_DEVOPS_PAT が指定されていない場合、サーバーは推奨される認証方法である DefaultAzureCredential を自動的に使用します。
設定オプション:
timeout:操作のタイムアウト(秒、デフォルト:60)transportType:通信プロトコル(「stdio」を使用)disabled:サーバーを無効にするかどうかautoApprove:明示的な承認が不要な操作のリスト
サーバーは「Connected MCP Servers」セクションに次のように表示されます。
azure-devops-pr (dotnet path/to/AzureDevopsPullrequestMcpServer.dll)
使用可能なツールは次のとおりです。
- GetPrDetails
- GetPrThreads
- CreatePrThread
使用方法
このアプリケーションでは、次の 2 つの認証方法をサポートしています。
- Azure Identity を使用(推奨)
# DefaultAzureCredential will be used automatically if PAT is not provided
dotnet run -- --pr-url <azure-devops-pr-url>
- Personal Access Token を使用(レガシー)
# Not recommended for security reasons
dotnet run -- --pat <your-pat-token> --pr-url <azure-devops-pr-url>
例:
# Using Azure Identity (Recommended)
dotnet run -- --pr-url https://dev.azure.com/org/project/_git/repo/pullrequest/123
# Using PAT (Not Recommended)
dotnet run -- --pat abc123... --pr-url https://dev.azure.com/org/project/_git/repo/pullrequest/123
使用可能なツール
GetPrDetails
特定のプルリクエストの詳細を取得します。
入力スキーマ:
{
"prUrl": "string",
"includeStatuses": ["string"] | null,
"excludeStatuses": ["string"] | null
}
GetPrThreads
プルリクエストからコメントスレッドを取得します。
入力スキーマ:
{
"prUrl": "string",
"includeStatuses": ["string"] | null,
"excludeStatuses": ["string"] | null
}
CreatePrThread
コード内の特定の位置に新しいコメントスレッドを作成します。
入力スキーマ:
{
"prUrl": "string",
"content": "string",
"context": {
"filePath": "string",
"startLine": number | null,
"startOffset": number | null,
"endLine": number | null,
"endOffset": number | null
}
}
開発
使用技術:
- C#/.NET
- ModelContextProtocol NuGet パッケージ
- Azure DevOps REST API
プロジェクト構成
src/Models/- プルリクエストとスレッドのデータモデルPullRequestDetails.cs- PR のデータ構造PullRequestThread.cs- スレッドとコメントのモデルAdoCreateThreadInput.cs- スレッド作成用の入力モデル
src/Services/AdoPullRequestTool.cs- コア API 通信サービス
src/Utils/IUrlParser.cs- URL 処理ユーティリティ
コントリビューション
これは、MCP サーバーの実装を実演する学習用プロジェクトです。ご自身の MCP サーバーを構築したり、機能を拡張したりする際の参考として、自由にご利用ください。
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。