1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub CopilotとMCPでAzure DevOpsを賢く使う 〜タスクからテスト自動生成・細分化まで実践ガイド〜

1
Last updated at Posted at 2026-05-08

はじめに

「チケットを書いたら、あとはAIがやってくれる」——そんな世界が現実になりつつあります。

Model Context Protocol(MCP) を使うと、GitHub CopilotとAzure DevOps(Azure Boards)を高度に連携させ、バックログのユーザー・ストーリーをAIが読み込んで テストケースを自動生成 したり、巨大なタスクを 実装可能な子タスクへ自動細分化 したりできます。

この記事では、具体的なセットアップ手順と活用パターンを紹介します。

この記事を読むと、以下のことができるようになります:

  • ✅ GitHub CopilotからAzure DevOps(Boards)をMCP経由で操作する
  • ✅ ユーザー・ストーリーからE2Eテストケースを自動生成する
  • ✅ 大きなタスクを実装ステップに自動分解してボードに展開する

前提条件・環境

項目 バージョン / 備考
GitHub Copilot Business / Enterprise プラン
VS Code 最新版(MCP拡張対応)
Azure DevOps クラウド版(Azure Boards有効)
Node.js v20以上(MCPサーバー実行用)

💡 MCPとは?
Model Context Protocol(MCP)は、AIモデルが外部ツールやデータソースと標準化された方法でやりとりするためのオープンプロトコルです。GitHub CopilotはVS Code上でMCPサーバーへ接続でき、Azure DevOpsをはじめとした各種ツールをCopilotの「手足」として使えます。


全体アーキテクチャ

┌─────────────────────────────────────────────┐
│              開発者の操作                    │
│  「このユーザー・ストーリーのテストを作って」 │
└────────────────┬────────────────────────────┘
                 │
                 ▼
┌─────────────────────────────────────────────┐
│          GitHub Copilot (VS Code)            │
│  - プロンプトを解析                          │
│  - MCPツールを選択・呼び出し                 │
└────────────────┬────────────────────────────┘
                 │ MCP プロトコル
                 ▼
┌─────────────────────────────────────────────┐
│        Azure DevOps MCP サーバー             │
│  - Azure Boards API をラップ                 │
│  - Work Item の読み書き                      │
└────────────────┬────────────────────────────┘
                 │ REST API
                 ▼
┌─────────────────────────────────────────────┐
│            Azure DevOps                      │
│  - Azure Boards(バックログ・スプリント)     │
│  - Work Items(Epic / Feature / Story / Task)│
└─────────────────────────────────────────────┘

Step 1: Azure DevOps MCP サーバーのセットアップ

1-1. MCPサーバーのインストール

npm install -g @azure-devops/mcp-server

または、VS Codeの設定(settings.json)に直接記述することもできます(後述)。

1-2. Azure DevOps Personal Access Token(PAT)の取得

Azure DevOpsポータルで以下のスコープを持つPATを発行します。

スコープ 理由
Work Items (Read & Write) チケットの読み書き
Project and Team (Read) プロジェクト情報の取得

⚠️ PATは環境変数で管理してください。
コードやsettings.jsonにハードコードしないよう注意しましょう。

export AZURE_DEVOPS_PAT="<あなたのPATトークン>"
export AZURE_DEVOPS_ORG="https://dev.azure.com/<組織名>"

1-3. VS Code の MCP 設定

.vscode/mcp.json(またはユーザー設定)にサーバー設定を追加します。

.vscode/mcp.json
{
  "servers": {
    "azure-devops": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@azure-devops/mcp-server"],
      "env": {
        "AZURE_DEVOPS_PAT": "${env:AZURE_DEVOPS_PAT}",
        "AZURE_DEVOPS_ORG": "${env:AZURE_DEVOPS_ORG}"
      }
    }
  }
}

VS Codeを再起動すると、Copilotのチャット画面でMCPツールが利用可能になります。


ユースケース1: ユーザー・ストーリーからテストを自動生成する

シナリオ

Azure Boardsに次のようなIssueが登録されているとします。

スクリーンショット 2026-05-09 031329.png

Copilotへのプロンプト例

スクリーンショット 2026-05-09 032729.png

Copilotが生成するテストコード例

スクリーンショット 2026-05-09 034208.png

💡 ポイント: Copilotは #azure-devops のMCPツールを通じてWork ItemのIDと説明・受け入れ条件を取得し、それをコンテキストとしてテストを生成します。Work Itemが更新されたら同じプロンプトを再実行するだけでテストも更新されます。

生成されたテストをPlaywrightで実行した結果です。実際のアプリがなくても、テスト名(日本語)が正しく認識されていることが確認できます。

スクリーンショット 2026-05-09 033937.png
スクリーンショット 2026-05-09 033945.png
スクリーンショット 2026-05-09 033951.png

ユースケース2: 大きなタスクを実装ステップへ自動細分化する

シナリオ

次のような抽象的なEpicチケットが登録されているとします。
スクリーンショット 2026-05-09 034424.png

Epic #2: 決済機能の実装
クレジットカードとPayPayによる決済を実装する。

このチケット1枚だけでは担当者が何から手をつけるか分かりません。Copilotに細分化を依頼しましょう。

Copilotへのプロンプト例

スクリーンショット 2026-05-09 034502.png

Copilotが生成・登録するタスク例

Copilotが親子リンクの設定まで完了した様子です。

スクリーンショット 2026-05-09 034606.png

Azure Boards上のWork Items一覧でEpic #2と子タスクが登録されています。

スクリーンショット 2026-05-09 034729.png

Copilotは以下のような子タスクを自動生成し、Azure Boards上にEpic #2の子アイテムとして作成します。

# タスク名 領域 Story Points
TASK-101 Stripe / PayPay SDK の調査と選定 バックエンド 2
TASK-102 決済APIエンドポイントの設計(OpenAPI) バックエンド 3
TASK-103 クレジットカード決済バックエンド実装 バックエンド 5
TASK-104 PayPay決済バックエンド実装 バックエンド 5
TASK-105 決済フォームUI(クレジットカード) フロントエンド 3
TASK-106 決済フォームUI(PayPay QRコード) フロントエンド 3
TASK-107 Webhookエンドポイント実装(決済完了通知) バックエンド 3
TASK-108 Secrets管理(API Key)のIaC設定 インフラ 2
TASK-109 決済フローの統合テスト・E2Eテスト テスト 5

裏側でCopilotが実行しているMCP操作

1. get_work_item(id=2)           → Epic #2の詳細を取得
2. 分解ロジック実行               → タスクリストを生成
3. create_work_item × 9回        → 各タスクをBoardsに登録
4. update_work_item_link × 9回   → Epic #2との親子リンクを設定

応用: GitHub Actions との組み合わせ

スプリント開始時に自動でタスク細分化を実行するCI/CDパイプラインも組めます。

.github/workflows/sprint-planning.yml
name: Sprint Planning Automation

on:
  schedule:
    # 毎スプリント開始日(月曜 9:00 JST)に自動実行
    - cron: '0 0 * * 1'
  workflow_dispatch:

jobs:
  breakdown-tasks:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Run Copilot Task Breakdown via MCP
        uses: github/copilot-cli-action@v1
        with:
          prompt: |
            Azure Boards から今スプリントの "New" 状態の Feature を全て取得し、
            子タスクがないものを実装タスクに細分化して登録してください。
        env:
          AZURE_DEVOPS_PAT: ${{ secrets.AZURE_DEVOPS_PAT }}
          AZURE_DEVOPS_ORG: ${{ vars.AZURE_DEVOPS_ORG }}
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

⚠️ 注意: 自動登録は便利ですが、AIが生成したタスクは必ずスプリントプランニングで人間がレビューしてから承認するフローを設けることを推奨します。


トラブルシューティング

Q: CopilotがMCPツールを認識しない

A: VS Codeのバージョンとmcp.jsonの構文を確認してください。また、AZURE_DEVOPS_PAT 環境変数がシェルにエクスポートされているか確認しましょう。

# 環境変数の確認
echo $AZURE_DEVOPS_PAT

Q: Work Itemの取得はできるが書き込みができない

A: PATのスコープを確認してください。Work Items: Read & Write が必要です。読み取り専用(Read)では書き込みエラーになります。

Q: 生成されたタスクの内容が的外れ

A: ユーザー・ストーリーの記述が曖昧だとAIの出力も曖昧になります。受け入れ条件(Acceptance Criteria)を詳細に書くことで生成品質が大きく向上します。


まとめ

やりたいこと Copilot × MCPでの実現方法
ユーザー・ストーリーからテスト生成 Work Itemを取得 → E2E/単体テストコードを生成
大きなタスクの細分化 Feature読み込み → 子タスクを自動生成・登録
スプリント計画の自動化 GitHub Actionsで定期実行

GitHub Copilot × MCP × Azure DevOps の組み合わせにより、「要件を書く → AIが実装計画とテストを用意する → 開発者がレビュー・実装する」というサイクルが現実のものになります。

開発者は「何を作るか」の意思決定に集中し、「どう分解するか」「何をテストするか」の定型作業はAIに任せましょう。


参考


おわりに:Github Copilotコミュニティのご案内

最後に少しだけお知らせです!
私が運営メンバーとして参加し ている GitHub Copilot User Group Japan(通称:Gh-CUG) というコミュニティが立ち上がりました。

「Github Copilot をもっと使いこなしたい」「AI 駆動の開発について情報交換したい」という方はもちろん、学生や初心者の方も大歓迎のゆるふわなコミュニティです。この記事のような実践的な活用法から、日々の個人的なつまずきまで、幅広くみんなでワイワイ共有しています。

ご興味があれば、ぜひこちらの記事も覗いてみてください!
👉 「なんでもは知らない、しってることだけ」── 学生・初心者歓迎の GitHub Copilot コミュニティ Gh-CUG が爆誕しました

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?