MCP For Azure DevOps Boards について
Azure DevOps Boards向けのRust製MCPサーバーです。AIクライアントから作業項目、チーム、ボードを扱うユーザー向けで、WIQLクエリとLLM向けの簡潔なJSON出力に対応します。
主な機能
- 01作業項目の作成・更新・検索
- 02チーム、ボード、ボード項目の一覧取得
- 03WIQLクエリの実行
- 04簡潔なJSON出力
- 05標準的なAzure認証方式の利用
活用シーン
- 01Azure DevOpsの作業項目の管理
- 02プロジェクトのチームやボード情報の取得
- 03WIQLによる作業項目の検索
- 04Azure CLIの認証情報を使った組織へのアクセス
MCP 対応
Azure DevOpsの組織、プロジェクト、作業項目、チーム、ボードを操作するツールをMCPクライアントに公開します。既定ではstdioで通信し、HTTPサーバーとしても実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Azure DevOps Boards 向け MCP
Rust で記述された、Azure DevOps Boards および Work Items とやり取りするための Model Context Protocol(MCP)サーバーです。
機能
-
Work Item の管理:Work Item の作成、更新、取得、クエリを実行できます。
-
ボードとの連携:チームやボードの一覧表示、ボード項目の取得ができます。
-
WIQL のサポート:カスタム WIQL クエリを実行できます。
-
出力の簡素化:LLM での利用に最適化された JSON 出力(トークン使用量を削減)。
インストール
お好みの AI(MCP)クライアントの設定方法については、MCP Configuration のセクションをご確認ください。
macOS(Homebrew)
brew tap danielealbano/mcp-tools
brew install mcp-for-azure-devops-boards
バイナリのパスは /opt/homebrew/bin/mcp-for-azure-devops-boards です。
Windows(Scoop)
scoop bucket add mcp-tools https://github.com/danielealbano/scoop-mcp-tools
scoop install mcp-for-azure-devops-boards
バイナリのパスは %USERPROFILE%\scoop\apps\mcp-for-azure-devops-boards\current\mcp-for-azure-devops-boards.exe です。
設定
| 設定 | 説明 | CLI フラグ | 環境変数 |
|---|---|---|---|
| サーバーモード | stdio の代わりに HTTP サーバーとして実行します | --server | N/A |
| ポート | HTTP サーバーのポート(デフォルト:3000) | --port | N/A |
注:--server が指定されていない場合、ソフトウェアは stdio モードで実行されます。
認証
このサーバーは、Azure DevOps にクエリを実行するため、標準の Azure 認証メカニズムを利用します。リクエストごとに、以下の認証情報ソースを記載順に試し、トークンを返す最初のソースを使用して、Azure DevOps REST API の Bearer トークン(スコープ 499b84ac-1321-427f-aa17-267ca6975798/.default)を取得します。
- 環境変数(クライアントシークレット) —
AZURE_TENANT_ID、AZURE_CLIENT_ID、AZURE_CLIENT_SECRETがすべて設定されている場合にのみ使用されます。一部だけが設定されている場合は、警告を表示してスキップします。 - Azure CLI —
az loginセッションを使用して、Azure DevOps スコープのaz account get-access-tokenを実行します。 - Azure Developer CLI —
azd auth loginセッションを使用します。 - マネージド ID — Azure でホストされるデプロイ向けです。Azure 外ではこの確認に到達できないため、2 秒のタイムアウトが設定され、その後スキップされます。これにより、認証の試行がハングしないようにします。
すべてのソースで失敗した場合、最後に試したソースのエラーだけでなく、各ソースの失敗理由を列挙したエラーが返されるため、失敗の原因を正確に確認できます(たとえば、Azure CLI の同意エラーと「PATH に azd が見つからない」というエラーが併記されます)。
ローカル開発では、Azure CLI でサインインする方法(以下)が最も簡単です。対象の Azure DevOps 組織へのアクセス権を持つ状態で、あらかじめ az login を実行しておく必要があります。
Azure CLI のインストール
Azure CLI がインストールされていない場合:
macOS(Homebrew):
brew install azure-cli
Windows(Scoop):
scoop install azure-cli
Windows(Chocolatey):
choco install azure-cli
その他のインストール方法については、Azure CLI の公式インストールガイドをご覧ください。
ログイン
認証するには、次を実行します:
az login
使用方法
Stdio モード(デフォルト)
これは、Claude Desktop や Cursor などの MCP クライアント向けの標準モードです。ネットワーク経由で認証情報が共有されないため、セキュリティ上、このモードを推奨します。
path/to/mcp-for-azure-devops-boards
HTTP サーバーモード
HTTP サーバー(SSE)として実行することもできます。このモードでは、サーバーが 0.0.0.0(すべてのインターフェース)でリッスンすることに注意してください。
path/to/mcp-for-azure-devops-boards --server --port 3000
MCP の設定
注:プロセスが認証情報を取得できるよう、ターミナルで az login を実行してください。
--install を使ったクイックセットアップ
お使いのクライアントに MCP サーバーを登録する最も簡単な方法です。
mcp-for-azure-devops-boards --install <target>
有効なターゲットと、それぞれが設定を書き込む場所:
| ターゲット | 設定ファイル | スコープ |
|---|---|---|
claude-code | ~/.claude.json | グローバル(ホーム) |
claude-desktop | macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonLinux: ~/.config/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json | グローバル(ユーザーごと) |
cursor | ~/.cursor/mcp.json | グローバル(ホーム) |
vscode | .vscode/mcp.json | ワークスペース(現在のディレクトリ) |
codex | ~/.codex/config.toml | グローバル(ホーム) |
gemini-cli | ~/.gemini/settings.json | グローバル(ホーム) |
コマンドはバイナリのパスを自動検出し、適切な設定ファイルの場所を特定して、想定される形式でエントリを書き込みます。既存の設定は保持されます。
手動設定
Claude Code
設定ファイル:~/.claude.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows(Scoop):コマンドのパスを
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exeに置き換えてください。
Claude Desktop
設定ファイルの場所:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows(Scoop):コマンドのパスを
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exeに置き換えてください。
Cursor
設定ファイル:~/.cursor/mcp.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows(Scoop):コマンドのパスを
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exeに置き換えてください。
VS Code
設定ファイル:.vscode/mcp.json(ワークスペースレベル)
{
"servers": {
"mcp-for-azure-devops-boards": {
"type": "stdio",
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows(Scoop):コマンドのパスを
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exeに置き換えてください。
gemini-cli
設定ファイル:~/.gemini/settings.json
{
"mcpServers": {
"mcp-for-azure-devops-boards": {
"command": "/opt/homebrew/bin/mcp-for-azure-devops-boards"
}
}
}
Windows(Scoop):コマンドのパスを
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exeに置き換えてください。
Codex CLI
設定ファイル:~/.codex/config.toml
[mcp_servers.mcp-for-azure-devops-boards]
command = "/opt/homebrew/bin/mcp-for-azure-devops-boards"
Windows(Scoop):コマンドのパスを
%USERPROFILE%\\scoop\\apps\\mcp-for-azure-devops-boards\\current\\mcp-for-azure-devops-boards.exeに置き換えてください。
利用可能なツール
このソフトウェアは現在開発中です。ツールとそのパラメーターは変更される場合があります。
サーバーは、MCP クライアント向けに以下のツールを公開します。
ツール名の一般的な構成は azdo_VERB_WHAT です(例:azdo_list_teams、azdo_get_work_item)。
検出
azdo_list_organizations:認証済みユーザーがアクセスできる Azure DevOps 組織をすべて一覧表示します。- 必須:なし(認証済みユーザーの認証情報を使用)
azdo_list_projects:Azure DevOps 組織内のすべてのプロジェクトを一覧表示します。- 必須:
organization
- 必須:
作業項目
注:すべての作業項目ツールでは、
organizationとprojectパラメーターが必要です。
azdo_create_work_item:新しい作業項目を作成します。- 必須:
organization、project、work_item_type、title - 任意:
description、assigned_to、area_path、iteration_path、state、board_column、board_row、priority、severity、story_points、effort、remaining_work、tags、activity、parent_id、start_date、target_date、acceptance_criteria、repro_steps、fields(カスタムフィールド用の JSON 文字列)。
- 必須:
azdo_update_work_item:既存の作業項目を更新します。- 必須:
organization、project、id - 任意:作成時に指定できるすべてのフィールド。
- 必須:
azdo_get_work_item:特定の作業項目の詳細を取得します。- 必須:
organization、project、id - 任意:
include_latest_n_comments(含める最近のコメント数。すべて含める場合は -1)
- 必須:
azdo_get_work_items:ID を指定して複数の作業項目を取得します。- 必須:
organization、project、ids(作業項目 ID の配列) - 任意:
include_latest_n_comments(含める最近のコメント数。すべて含める場合は -1)
- 必須:
azdo_query_work_items:構造化されたフィルターを使って作業項目を検索します。- 必須:
organization、project - 任意のフィルター:
area_path、iteration_path、created_date_from/to、modified_date_from/to。 - 含める項目:
include_board_column、include_board_row、include_work_item_type、include_state、include_assigned_to、include_tags。 - 除外する項目:
exclude_board_column、exclude_board_row、exclude_work_item_type、exclude_state、exclude_assigned_to、exclude_tags。 - 任意:
include_latest_n_comments(含める最近のコメント数。すべて含める場合は -1)
- 必須:
azdo_query_work_items_by_wiql:WIQL(作業項目クエリ言語)のクエリを直接実行します。- 必須:
organization、project、query - 任意:
include_latest_n_comments(含める最近のコメント数。すべて含める場合は -1)
- 必須:
azdo_add_comment:作業項目にコメントを追加します。- 必須:
organization、project、work_item_id、text
- 必須:
azdo_link_work_items:2 つの作業項目間に関係を作成します。- 必須:
organization、project、source_id、target_id、link_type(Parent、Child、Related、Duplicate、Dependency)。
- 必須:
ボードとチーム
注:すべてのボードおよびチームツールでは、
organizationとprojectパラメーターが必要です。
azdo_list_teams:プロジェクト内のすべてのチームを一覧表示します。- 必須:
organization、project
- 必須:
azdo_get_team:特定のチームの詳細を取得します。- 必須:
organization、project、team_id
- 必須:
azdo_list_team_boards:特定のチームのボードを一覧表示します。- 必須:
organization、project、team_id
- 必須:
azdo_get_team_board:特定のボードの詳細を取得します。- 必須:
organization、project、team_id、board_id
- 必須:
azdo_list_work_item_types:プロジェクトで利用可能なすべての作業項目の種類を一覧表示します。- 必須:
organization、project
- 必須:
azdo_list_tags:プロジェクトで使用されているすべてのタグを一覧表示します。- 必須:
organization、project
- 必須:
azdo_get_team_current_iteration:チームの現在のアクティブなイテレーション/スプリントを取得します。- 必須:
organization、project、team_id
- 必須:
azdo_get_team_iterations:チームのすべてのイテレーション/スプリントを取得します。- 必須:
organization、project、team_id
- 必須:
コントリビューション
コントリビューションを歓迎します!
- リポジトリをフォークします。
- 機能追加またはバグ修正用の新しいブランチを作成します(
git checkout -b feature/amazing-feature)。 - 変更をコミットします。
- ブランチにプッシュします。
- プルリクエストを作成します。
ソースからビルドする
前提条件
手順
-
リポジトリをクローンします:
git clone https://github.com/danielealbano/mcp-for-azure-devops-boards.git cd mcp-for-azure-devops-boards -
プロジェクトをビルドします:
cargo build --release
ツール
- テストの実行:
cargo test - コードスタイルの確認:
cargo fmt --check - リント:
cargo clippy
免責事項
このプロジェクトは、Microsoft との提携、承認、またはスポンサーシップを受けていません。Azure、Azure DevOps、および関連する商標は、それぞれの所有者に帰属します。このソフトウェアは、Azure、Microsoft Graph、その他のサービスとの連携に、Microsoft の標準サービス API を使用しています。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE.md ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。