Azure DevOps On-Premises について
Azure DevOps On-Premises は、セルフホスト型 Azure DevOps Server または TFS を利用するチーム向けの MCP サーバーです。ドメイン認証の NTLM に加え、PAT と OAuth に対応し、リポジトリ、プルリクエスト、作業項目、Wiki のツールを提供します。
主な機能
- 01NTLM、PAT、OAuth 認証
- 02リポジトリとコミット内容の閲覧
- 03プルリクエストと行単位の差分確認
- 04作業項目の検索と管理
- 05Wiki ページの読み取りと更新
- 06DevOps データの読み書き
活用シーン
- 01AI ツールをオンプレミスの DevOps プロジェクトに接続
- 02プルリクエストの議論とファイル変更の確認
- 03プロジェクト作業中の作業項目の検索と更新
- 04プロジェクト Wiki ドキュメントの検索や保守
MCP 対応
MCP サーバーは、オンプレミスの Azure DevOps と TFS のリポジトリ、プルリクエスト、作業項目、Wiki を閲覧・管理するツールを公開します。NTLM、PAT、OAuth Bearer Token 認証に対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mcp-devops-onpremiseDEVOPS_API_URLFull Azure DevOps Server project URL, e.g. https://server/org/projectDEVOPS_USERNAMENTLM username, usually DOMAIN\usernameDEVOPS_PASSWORDシークレットNTLM passwordDEVOPS_PATシークレットPersonal Access Token for PAT authenticationDEVOPS_TOKENシークレットOAuth bearer token for bearer-token authenticationローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP DevOps On-Premise
オンプレミスの Azure DevOps 向け Model Context Protocol MCP サーバーです。AI アシスタントがリポジトリの閲覧、プルリクエストのレビュー、作業項目の管理、Wiki の操作を行えます。
概要
多くの組織では、プロジェクトで TFS や Azure DevOps Server などのオンプレミス型 DevOps ソリューションを使用しています。これらのシステムを最新のエージェント型 AI ツールや LLM と連携させるのは困難な場合があります。Microsoft 公式の Azure DevOps MCP サーバーはこれらの環境をサポートしておらず、今後もサポートされる可能性は低いでしょう。
この MCP サーバーはそのギャップを埋め、オンプレミスの DevOps システムとのスムーズな連携を実現します。
このプロジェクトは活発に開発されており、現在のニーズに応える機能を継続的に追加しています。コミュニティのニーズを重視しています。不足している機能があれば、Issue を送信してください。ユーザーからリクエストされた機能は優先的に扱い、できるだけ早く追加します。
主な利点
この MCP サーバーの最も重要な機能の一つは、NTLM 認証のサポートです。NTLM は、ユーザーが Windows ドメインの認証情報を使って直接または VPN 経由で認証する、多くのオンプレミス環境やエンタープライズ環境で必要とされます。Azure DevOps 向けのほとんどの MCP サーバーは、トークンベースの認証を使うクラウドホスト型の Azure DevOps Services のみを対象としており、こうした環境には接続できません。
- 他の認証方式が使えないオンプレミス環境や VPN ベースの構成向けに、NTLM 認証(Windows ドメインの認証情報)をサポートします。
- 利用可能な場合は、代替手段として PAT 認証と OAuth ベアラートークン認証を使用できます。
- GitHub Copilot、Claude Desktop、Cursor、Windsurf などの MCP 対応 AI ツールから、オンプレミスの DevOps システムに安全にアクセスできます。
- 機密データを外部サービスに公開することなく、制限された環境やオフライン環境でも動作します。
- DevOps の UI と同様に、追加行と削除行が明確に示されたコミット差分を取得します。
- コード変更とあわせてプロジェクトのドキュメントを維持・追跡するのに役立ちます。
- 作業項目の管理やコードレビューのプロセスなど、一般的なタスクを自動化します。
はじめに
前提条件
Python 3.10+ と uv が必要です。まだインストールしていない場合は、インストールガイドを参照してください。
クイックインストール
以下のボタンのいずれかをクリックすると、IDE に直接インストールできます。認証情報の入力を求められます。
その他のプラットフォームについては、Getting Started ガイドの手動インストールを参照してください。
手動インストール
MCP サーバーは、次の AI ツールに手動でインストールできます:VS Code、Visual Studio、Cursor、Goose、LM Studio、Amp、Claude Code、Claude Desktop、Codex、Gemini CLI、OpenCode、Qodo Gen、Warp、Windsurf、GitHub Copilot CLI、GitHub Copilot Coding Agent など。
手順の詳細については、Getting Started ガイドの手動インストールを参照してください。
設定
DEVOPS_API_URL には、プロジェクトの完全な URL を指定する必要があります:
https://<your-devops-server>/<organization>/<project>
サーバーは 3 種類の認証方法に対応しています。どの方法を使えばよいかわからない場合は、オンプレミス/VPN 環境で最も一般的な NTLM から始めてください。
| 方法 | 説明 |
|---|---|
| NTLM(ユーザー名+パスワード) | オンプレミス/VPN 環境で最も一般的です。通常、最初に試す設定として最も簡単で、ほかの方法で問題が発生した場合の最適な代替手段です。 |
| PAT(Personal Access Token) | PAT が有効で、使用が許可されている場合に使います。トークンには有効期限があり、ポリシーによってトークンベースの認証がブロックされることがあります。利点:設定にアカウントのパスワードを保存する必要がありません。 |
| OAuth Bearer Token | CI/CD パイプライン向けの高度なオプションです。DevOps Server で OAuth 2.0 が設定されており、管理者が定義したトークンソースが必要です。 |
各方法の詳しい設定手順については、Getting Started ガイドの認証を参照してください。
NTLM(ユーザー名+パスワード)
{
"mcpServers": {
"devops-onprem": {
"command": "uvx",
"args": ["mcp-devops-onpremise@latest"],
"env": {
"DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",
"DEVOPS_USERNAME": "DOMAIN\\your-username",
"DEVOPS_PASSWORD": "your-password"
}
}
}
}
PAT を使用する場合
{
"mcpServers": {
"devops-onprem": {
"command": "uvx",
"args": ["mcp-devops-onpremise@latest"],
"env": {
"DEVOPS_API_URL": "https://your-devops-server/your-organization/your-project",
"DEVOPS_PAT": "your-personal-access-token"
}
}
}
}
永続インストールを使用した場合は、
"command": "uvx"を"command": "mcp-devops-onpremise"に置き換え、"args"の行を削除してください。
更新
すべての設定例では mcp-devops-onpremise@latest を使用しています。これにより、uvx は実行のたびに最新バージョンを自動的に取得します。
永続インストールとリリースノートについては、Getting Started ガイドの更新をご覧ください。
利用可能なツール
プルリクエスト
| ツール | 説明 | 読み取り専用 |
|---|---|---|
devops_pull_request_get | ID でプルリクエストを取得します。リンクされた作業項目と、差分の比較に使用するコミット SHA も含まれます | ✅ |
devops_pull_request_write | プルリクエストの作成または更新、レビュアーの更新、または PR への投票を行います | ❌ |
devops_pull_request_list_threads | 削除されていないコメントスレッドと、そのテキストコメントを階層形式で一覧表示します | ✅ |
devops_pull_request_list_thread_comments | 特定のスレッド内にある、削除されていないテキストコメントを一覧表示します | ✅ |
devops_pull_request_create_comment | 最初のコメントを含む新しいスレッドを作成します(全般的なコメント、またはファイル/行へのインラインコメント) | ❌ |
devops_pull_request_reply_comment | 既存のコメントスレッドに返信します | ❌ |
devops_pull_request_update_thread | コメントスレッドのステータスを更新します | ❌ |
devops_pull_request_update_comment | 既存のコメントのテキストを更新します | ❌ |
devops_pull_request_delete_comment | プルリクエストのスレッドからコメントを削除します | ❌ |
リポジトリ
| ツール | 説明 | 読み取り専用 |
|---|---|---|
devops_repository_list | プロジェクト内のすべてのリポジトリを一覧表示します | ✅ |
devops_repository_get | 名前または ID でリポジトリの詳細を取得します | ✅ |
devops_repository_commit_changes | 特定のコミットで変更されたファイルを一覧表示します | ✅ |
devops_repository_diffs_commits | 2 つのコミット間の差分(変更されたファイルパス)を取得します | ✅ |
devops_repository_item_content | 特定のコミットまたはブランチにあるファイルの生の内容を取得します | ✅ |
devops_get_item_content_diff | 2 つのコミット間でファイルの行単位のテキスト差分を取得します(追加行には +、削除行には - が付きます) | ✅ |
作業項目
| ツール | 説明 | 読み取り専用 |
|---|---|---|
devops_work_item_get | 数値 ID で作業項目(PBI、バグ、タスク)を取得します。主要フィールド、添付ファイル(ファイルとインライン画像)、リンクされた項目(作業項目、プルリクエスト、コミット)を含むコンパクトなオブジェクトを返します | ✅ |
devops_work_item_attachment_get | GUID で作業項目の添付ファイルをダウンロードします。ローカルに保存するか、Base64 エンコードされた内容を返します | ✅ |
devops_work_item_type_get | 名前(例:Bug、User Story)で作業項目の種類の定義を取得します | ✅ |
devops_work_item_query_by_wiql | WIQL(Work Item Query Language)クエリを実行し、一致する作業項目を返します | ✅ |
devops_work_item_create | 型指定フィールドを使用して新しい作業項目を作成します。既定の形式は Html です | ❌ |
devops_work_item_update | JSON Patch(add / replace / remove)を使用して、作業項目のフィールドを更新します | ❌ |
devops_work_item_delete | 作業項目を削除します。既定ではごみ箱に移動します。完全に削除するには destroy=True を使用してください(プロジェクトの権限が必要です) | ❌ |
devops_work_item_undelete | ごみ箱から、論理削除された作業項目を復元します | ❌ |
devops_work_item_link_update | 2 つの作業項目間の関連リンク(親、子、関連、後続、先行など)を追加または削除します | ❌ |
devops_work_item_artifact_link_update | 作業項目の成果物リンク(Pull Request、Build、Commit、Branch、Changeset)を追加または削除します | ❌ |
devops_work_item_comment_list | ページサイズと形式を指定して、作業項目のコメントを一覧表示します | ✅ |
devops_work_item_comment_add | 作業項目にコメントを追加します | ❌ |
devops_work_item_comment_update | 作業項目の既存のコメントを更新します | ❌ |
devops_work_item_comment_delete | 作業項目のコメントを削除します | ❌ |
検索
| ツール | 説明 | 読み取り専用 |
|---|---|---|
devops_code_search | リポジトリ、パス、ブランチのフィルターを任意で指定してソースコードを検索します | ✅ |
devops_work_item_search | エリア、種類、状態、担当者のフィルターを任意で指定して作業項目を検索します | ✅ |
devops_wiki_search | Wiki フィルターを任意で指定して Wiki ページを検索します | ✅ |
Wiki
| ツール | 説明 | 読み取り専用 |
|---|---|---|
devops_wiki_page_get | Wiki ID とページ ID を指定して、Wiki ページのメタデータと任意のコンテンツを取得します | ✅ |
devops_wiki_page_create_or_update | 指定した親ページの下に Wiki ページを作成または更新します | ❌ |
devops_wiki_page_update | ID を指定して既存の Wiki ページを更新します | ❌ |
devops_wiki_page_delete | ID を指定して既存の Wiki ページを削除します | ❌ |
開発
# Install dev dependencies
uv sync --group dev
# Run linting
uv run ruff check src/
uv run black --check src/
# Run tests
uv run pytest tests/
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。