Skip to main content
Glama

Azure DevOps MCP 統合

スターの歴史

星の歴史チャート

鍛冶屋のバッジ

モデル コンテキスト プロトコル (MCP) サーバーを通じて作業項目、リポジトリ、プロジェクト、ボード、スプリントへのシームレスなアクセスを提供する、Azure DevOps の強力な統合。

概要

このサーバーは、Azure DevOpsサービスと連携するための便利なAPIを提供し、AIアシスタントやその他のツールが作業項目、コードリポジトリ、ボード、スプリントなどを管理できるようにします。モデルコンテキストプロトコルに基づいて構築されており、Azure DevOpsとの通信のための標準化されたインターフェースを提供します。

Related MCP server: Azure DevOps MCP Server

デモ

Azure DevOps MCP デモ

特徴

統合は、次の 8 つの主要なツール カテゴリに分類されます。

作業項目ツール

  • WIQLクエリを使用して作業項目を一覧表示する

  • IDで作業項目の詳細を取得する

  • 作業項目を検索する

  • 最近更新された作業項目を取得する

  • 割り当てられた作業項目を取得する

  • 新しい作業項目を作成する

  • 既存の作業項目を更新する

  • 作業項目にコメントを追加する

  • 作業項目の状態を更新する

  • 作業項目の割り当て

  • 作業項目間のリンクを作成する

  • 作業項目の一括作成/更新

ボードとスプリントツール

  • チームボードを取得する

  • ボードの列を取得する

  • ボードアイテムを取得する

  • ボード上のカードを移動する

  • スプリントを取得する

  • 現在のスプリントを取得する

  • スプリントの作業項目を取得する

  • スプリント容量を取得する

  • チームメンバーを獲得する

プロジェクトツール

  • プロジェクトの一覧

  • プロジェクトの詳細を取得する

  • 新しいプロジェクトを作成する

  • エリアを取得

  • 反復を取得する

  • エリアを作成する

  • 反復を作成する

  • プロセステンプレートを取得する

  • 作業項目の種類を取得する

  • 作業項目タイプフィールドを取得する

Gitツール

  • リポジトリの一覧

  • リポジトリの詳細を取得する

  • リポジトリを作成する

  • ブランチを一覧表示する

  • 検索コード

  • リポジトリを閲覧する

  • ファイルの内容を取得する

  • コミット履歴を取得する

  • プルリクエストの一覧

  • プルリクエストを作成する

  • プルリクエストの詳細を取得する

  • プルリクエストのコメントを取得する

  • プルリクエストを承認する

  • プルリクエストをマージする

テスト機能ツール

  • 自動テストを実行する

  • テスト自動化ステータスを取得する

  • テストエージェントを構成する

  • テストデータジェネレータを作成する

  • テスト環境を管理する

  • テストの不安定性分析を取得する

  • テストギャップ分析を取得する

  • テスト影響分析を実行する

  • テストの健全性ダッシュボードを取得する

  • テストの最適化を実行する

  • 探索的なセッションを作成する

  • 探索的テストの結果を記録する

  • 調査結果を作業項目に変換する

  • 探索的テスト統計を取得する

DevSecOpsツール

  • セキュリティスキャンを実行する

  • セキュリティスキャンの結果を取得する

  • セキュリティの脆弱性を追跡する

  • セキュリティコンプライアンスレポートを生成する

  • SARIFの結果を統合する

  • コンプライアンスチェックを実行する

  • コンプライアンスステータスを取得する

  • コンプライアンスレポートを作成する

  • セキュリティポリシーを管理する

  • セキュリティ意識を追跡

  • 秘密をローテーションする

  • 秘密の使用を監査する

  • ボールト統合を構成する

アーティファクト管理ツール

  • アーティファクトフィードの一覧

  • パッケージのバージョンを取得する

  • パッケージを公開する

  • パッケージを宣伝する

  • パッケージのバージョンを削除する

  • コンテナイメージの一覧表示

  • コンテナイメージタグを取得する

  • コンテナイメージをスキャンする

  • コンテナポリシーを管理する

  • ユニバーサルパッケージを管理する

  • パッケージダウンロードレポートを作成する

  • パッケージの依存関係を確認する

AI支援開発ツール

  • AIを活用したコードレビュー

  • コードの最適化を提案する

  • コードの臭いを特定する

  • 予測的なバグ分析を取得する

  • 開発者の生産性指標を取得する

  • 予測的な労力見積もりを取得する

  • コード品質の傾向を把握する

  • 作業項目の改善を提案する

  • 自動化の機会を提案する

  • インテリジェントアラートを作成する

  • ビルドの失敗を予測する

  • テスト選択の最適化

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の azuredevops-mcp を自動的にインストールするには:

npx -y @smithery/cli install @RyanCardin15/azuredevops-mcp --client claude

前提条件

  • Node.js (v16以降)

  • TypeScript (v4以降)

  • 個人アクセストークン (PAT) または適切なオンプレミスの資格情報を持つ Azure DevOps アカウント

設定

  1. リポジトリをクローンします。

    git clone <repository-url> cd AzureDevOps
  2. 依存関係をインストールします:

    npm install
  3. 環境変数を設定します ( .envファイルを作成するか、直接設定します)。

    Azure DevOps Services (クラウド) の場合:

    AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=false AZURE_DEVOPS_AUTH_TYPE=pat # or 'entra' AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token

    Azure DevOps Server (オンプレミス) の場合:

    AZURE_DEVOPS_ORG_URL=https://your-server/tfs AZURE_DEVOPS_PROJECT=your-default-project AZURE_DEVOPS_IS_ON_PREMISES=true AZURE_DEVOPS_COLLECTION=your-collection AZURE_DEVOPS_API_VERSION=6.0 # Adjust based on your server version # Authentication (choose one): # For PAT authentication: AZURE_DEVOPS_AUTH_TYPE=pat AZURE_DEVOPS_PERSONAL_ACCESS_TOKEN=your-personal-access-token # For NTLM authentication: AZURE_DEVOPS_AUTH_TYPE=ntlm AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password AZURE_DEVOPS_DOMAIN=your-domain # For Basic authentication: AZURE_DEVOPS_AUTH_TYPE=basic AZURE_DEVOPS_USERNAME=your-username AZURE_DEVOPS_PASSWORD=your-password
  4. プロジェクトをビルドします。

    npm run build

    TypeScript エラーが発生したが、それでも続行したい場合は、次の手順を実行します。

    npm run build:ignore-errors
  5. サーバーを起動します。

    npm run start

構成

個人アクセストークン(PAT)

Azure DevOps Services (クラウド) の場合、適切な権限を持つ個人アクセス トークンを作成する必要があります。

  1. Azure DevOps組織に移動する

  2. 右上のプロフィールアイコンをクリックします

  3. 「個人アクセストークン」を選択

  4. 「新しいトークン」をクリック

  5. 名前を付けて適切なスコープを選択します。

    • 作業項目: 読み取りと書き込み

    • コード: 読み書き

    • プロジェクトとチーム:読み書き

    • ビルド: 読む

    • リリース: 読む

Azure DevOps Server (オンプレミス) の場合、次の 3 つの認証オプションがあります。

  1. 個人アクセストークン(PAT):

    • クラウドのセットアップと同様ですが、オンプレミスのインスタンスにPATを作成します。

    • AZURE_DEVOPS_AUTH_TYPE=patを設定します

  2. NTLM認証:

    • Windowsドメイン資格情報を使用する

    • AZURE_DEVOPS_AUTH_TYPE=ntlm設定する

    • ユーザー名、パスワード、ドメインを入力してください

  3. 基本認証:

    • ローカル認証情報を使用する

    • AZURE_DEVOPS_AUTH_TYPE=basicを設定します

    • ユーザー名とパスワードを入力してください

Azure DevOps Services と Azure DevOps Server の比較

この統合では、クラウド ホストの Azure DevOps サービスとオンプレミスの Azure DevOps サーバーの両方がサポートされます。

Azure DevOps サービス (クラウド)

  • 組織の URL と PAT を使用した簡単なセットアップ

  • デフォルト構成では次の形式が想定されています: https://dev.azure.com/your-organization

  • 常にPAT認証を使用する

  • .env.cloud.exampleに提供されるサンプル構成ファイル

Azure DevOps サーバー (オンプレミス)

  • サーバー URL、収集、認証の追加構成が必要です

  • URL の形式はサーバーの設定によって異なります: https://your-server/tfs

  • コレクション名を指定する必要があります

  • 複数の認証方法(PAT、NTLM、Basic)をサポート

  • 古いバージョンのサーバーでは API バージョンの指定が必要になる場合があります

  • .env.on-premises.exampleに提供されるサンプル構成ファイル

主な違い

特徴

Azure DevOps サービス

Azure DevOps サーバー

URL形式

https://dev.azure.com/org

https://サーバー/tfs

コレクション

不要

必須

認証方法

PAT、エントラ ID (DefaultAzureCredential)

PAT、NTLM、基本

APIバージョン

最新(自動)

仕様が必要な場合があります

繋がり

常にインターネット

エアギャップが可能

エントラ認証

az cli がインストールされ、認証されていることを確認してください。認証されている限り、azd および AZ Powershell モジュールも動作するはずです。

構成例

.env.cloud.exampleまたは.env.on-premises.exampleのいずれかを.envにコピーし、必要に応じて値を更新します。

環境変数

サーバーは次の環境変数を使用して構成できます。

変数

説明

必須

デフォルト

AZURE_DEVOPS_ORG_URL

Azure DevOps 組織またはサーバーの URL

はい

-

AZURE_DEVOPS_プロジェクト

使用するデフォルトのプロジェクト

はい

-

AZURE_DEVOPS_がオンプレミス

Azure DevOps Serverを使用しているかどうか

いいえ

間違い

AZURE_DEVOPS_コレクション

オンプレミスのコレクション名

いいえ*

-

AZURE_DEVOPS_API_バージョン

オンプレミスの API バージョン

いいえ

-

AZURE_DEVOPS_認証タイプ

認証タイプ(pat/ntlm/basic/entra)

いいえ

パット

AZURE_DEVOPS_パーソナル_アクセス_トークン

個人アクセストークン(「pat」認証用)

いいえ**

-

AZURE_DEVOPS_ユーザー名

NTLM/Basic認証のユーザー名

いいえ**

-

AZURE_DEVOPS_パスワード

NTLM/Basic認証のパスワード

いいえ**

-

AZURE_DEVOPS_ドメイン

NTLM認証のドメイン

いいえ

-

許可されたツール

有効にするツールメソッドのカンマ区切りリスト

いいえ

すべてのツール

* AZURE_DEVOPS_IS_ON_PREMISES=trueの場合は必須 ** 選択した認証タイプに基づいて必須

ALLOWED_TOOLS によるツールフィルタリング

ALLOWED_TOOLS環境変数を使用すると、利用可能なツールメソッドを制限できます。これは完全にオプションであり、指定しない場合はすべてのツールが有効になります。

形式: スペースなしのメソッド名のコンマ区切りリスト。

例:

ALLOWED_TOOLS=listWorkItems,getWorkItemById,searchWorkItems,createWorkItem

これにより、指定された作業項目メソッドのみが有効になり、他のすべてのメソッドは無効になります。

使用法

サーバーが起動したら、MCPプロトコルを使用してサーバーとやり取りできます。サーバーは、Azure DevOpsのさまざまな機能に対応するツールを公開しています。

利用可能なツール

**注:**初期実装をシンプルにするため、デフォルトではツールのサブセットのみがindex.tsファイルに登録されています。追加のツールを登録する方法については、 「ツール登録」セクションをご覧ください。

例: 作業項目の一覧

{ "tool": "listWorkItems", "params": { "query": "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.State] = 'Active' ORDER BY [System.CreatedDate] DESC" } }

例: 作業項目を作成する

{ "tool": "createWorkItem", "params": { "workItemType": "User Story", "title": "Implement new feature", "description": "As a user, I want to be able to export reports to PDF.", "assignedTo": "john@example.com" } }

例: リポジトリの一覧

{ "tool": "listRepositories", "params": { "projectId": "MyProject" } }

例: プルリクエストを作成する

{ "tool": "createPullRequest", "params": { "repositoryId": "repo-guid", "sourceRefName": "refs/heads/feature-branch", "targetRefName": "refs/heads/main", "title": "Add new feature", "description": "This PR adds the export to PDF feature" } }

建築

プロジェクトは次のように構成されています。

  • src/

    • Interfaces/ : パラメータとレスポンスの型定義

    • Services/ : Azure DevOps API と対話するためのサービス クラス

    • Tools/ : クライアントに機能を公開するツール実装

    • index.ts : ツールを登録し、サーバーを起動するメインのエントリポイント

    • config.ts : 構成の処理

サービス層

サービス層は、Azure DevOps API との直接通信を処理します。

  • WorkItemService : 作業項目の操作

  • BoardsSprintsService : ボードとスプリントの操作

  • ProjectService : プロジェクト管理業務

  • GitService : Gitリポジトリの操作

  • TestingCapabilitiesService : テスト機能の操作

  • DevSecOpsService : DevSecOps オペレーション

  • ArtifactManagementService : アーティファクト管理操作

  • AIAssistedDevelopmentService :AI支援開発業務

ツールレイヤー

ツール層はサービスをラップし、MCP プロトコルに一貫したインターフェースを提供します。

  • WorkItemTools : 作業項目操作用のツール

  • BoardsSprintsTools : ボードとスプリントの操作のためのツール

  • ProjectTools : プロジェクト管理業務のためのツール

  • GitTools : Git操作用のツール

  • TestingCapabilitiesTools : 機能操作をテストするためのツール

  • DevSecOpsTools : DevSecOps運用のためのツール

  • ArtifactManagementTools : アーティファクト管理操作のためのツール

  • AIAssistedDevelopmentTools : AI支援開発業務のためのツール

ツール登録

MCPサーバーでは、ツールをindex.tsファイルに明示的に登録する必要があります。デフォルトでは、初期実装の管理性を維持するために、利用可能なツールの一部のみが登録されます。

追加のツールを登録するには:

  1. src/index.tsファイルを開く

  2. 既存のツールのパターンに従って新しいツール登録を追加する

  3. サーバーを構築して再起動する

ツール登録に関する包括的なガイドは、リポジトリ内のTOOL_REGISTRATION.mdファイルにあります。

**注:**ツールを登録する際は、特に列挙型の値については、正しいパラメータ型を使用するように注意してください。Interfaces Interfacesの型定義は、各パラメータの期待される型を定義しています。誤った型(例えば、列挙型の値にz.enum() z.string() ()を使用するなど)を使用すると、ビルド時にTypeScriptエラーが発生します。

新しいツールを登録する例:

server.tool("searchCode", "Search for code in repositories", { searchText: z.string().describe("Text to search for"), repositoryId: z.string().optional().describe("ID of the repository") }, async (params, extra) => { const result = await gitTools.searchCode(params); return { content: result.content, rawData: result.rawData, isError: result.isError }; } );

トラブルシューティング

よくある問題

認証エラー

  • 個人アクセストークンが有効であり、必要な権限を持っていることを確認してください

  • 組織のURLが正しいことを確認してください

ビルド中のTypeScriptエラー

  • TypeScriptエラーを回避するには、 npm run build:ignore-errorsを使用します。

  • 不足している型定義や間違った型定義がないか確認する

ランタイムエラー

  • 指定された Azure DevOps プロジェクトが存在し、アクセス可能であることを確認します。

貢献

貢献を歓迎します!貢献方法は次のとおりです。

  1. リポジトリをフォークする

  2. 機能ブランチを作成する ( git checkout -b feature/amazing-feature )

  3. 変更をコミットします ( git commit -m 'Add some amazing feature' )

  4. ブランチにプッシュする ( git push origin feature/amazing-feature )

  5. プルリクエストを開く

コードがリンティングに合格し、適切なテストが含まれていることを確認してください。

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RyanCardin15/AzureDevOps-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server