Upgrade to Pro — share decks privately, control downloads, hide ads and more …

20250627_Copilot Agent × Azure DevOps で学ぶ MCP 実践

20250627_Copilot Agent × Azure DevOps で学ぶ MCP 実践

GitHub CopilotとAzure DevOpsを活用したモデルコンテキストプロトコル(MCP)の実践についての概説です。MCPの役割や利点、Azure DevOps MCP Serverの設定方法、カスタムインストラクションの設定、そしてAzure Boardsに対して自律型要件の作成から実装までのデモを含みます。また、GitHub Copilotの新しい課金モデルや利用可能なモデルの更新について詳述しています。

Avatar for yutakaosada

yutakaosada

June 27, 2025
Tweet

More Decks by yutakaosada

Other Decks in Technology

Transcript

  1. Agenda • VS CodeのMCP Server サポート • Azure DevOps MCP

    Server (Preview)リリース • VS CodeでAzure DevOps MCP Serverを試してみよう • Personal Access Tokenを準備 • MCPの設定 • カスタムインストラクションの設定 • デモ:自律型 要件(PBI/Task)の作成~実装 • GitHub Copilot マルチモデル • GitHub Copilot 新しい課金モデル DO WHAT MATTERS 2
  2. Yutaka Osada (長田 豊) • DevOps Engineer @Avanade Japan •

    業務 • Azureコンポーネントを活用したサー ビス構築 • 技術検証、パフォーマンスチューニン グを得意とし、T-SQLが好き。 • 技術スタック • C#, .NET, Azure(PaaS), Azure DevOps, GitHub • Please follow me DO WHAT MATTERS 3 https://github.com/yutaka-art
  3. GitHub Copilot Chat エージェントモード DO WHAT MATTERS 5 エージェントモードとは コマンドや外部ツールの利用を提案・実行し、

    その結果を元に自律的に作業を繰り返し、 エラーがあれば診断・修復する • コードベースの検索 • 関連ファイルを特定して読み込む • コマンドの実行(人間による確認を要する) • エラーからの修復 • 複数のファイルに編集を適用 エージェントモードは、VS Code1.99か ら正式公開機能として利用可能。プレリ リースライセンス条項ではなくGitHub条 項の対象となる。 再掲
  4. モデルコンテキストプロトコル(MCP) VS Codeパブリックプレビュー DO WHAT MATTERS 6 MCPとは? いわゆるAIのための”USB-C”ポートと言われるもの で、ここではサードパーティツールとGitHub

    Copilotを連携させるコネクタ 利点 • 機能を拡張できる 他のビジネスツール(Figma、Salesforce、Slackな ど)をそれぞれカスタム統合することなく、GitHub Copilotから直接制御することができる • ワークフロー統合 GitHub Copilotは、GitHub、Jira、テストツールな どをつなぐハブになれる • 標準プロトコル MCP標準をサポートするあらゆるツールで動作 GitHub Copilot MCP (モデルコンテキストプロトコル) Slack JIRA ファイル システム GitHub API 各ツールのAPI 再掲
  5. Azure DevOps MCP Server (Preview)リリース DO WHAT MATTERS 7 Azure

    DevOps MCP サーバーは、Azure DevOps のコンテキストをエージェントに提供します。 •「Organizationのプロジェクトを一覧表示」 •「Organizationのビルドを一覧表示」 •「Organizationのリリースを一覧表示」 •「Organizationのリポジトリを一覧表示」 •「Organizationのテストプランを一覧表示」 •「Projectのチームを一覧表示」 •「Projectのイテレーションを一覧表示」 •「Project の自分の作業項目を一覧表示」 •「Organizationのプロジェクトとチームの現在のイテレーションの作業項目を一覧表示」 https://github.com/yutaka-art/azure-devops-mcp/tree/main Azure DevOps(Microsoft Entra Tenant ID) Organization Layer (Org: α,β,Ω) Project Layer (Project: A,B,C) Team Layer
  6. MCPの設定 DO WHAT MATTERS 10 VS Code または VS Code

    Insiders で Azure DevOps MCP サーバーを設定 { "inputs": [ { "id": "ado_org", "type": "promptString", "description": "ADO org (osatest)" }, { "id": "ado_pat", "type": "promptString", "description": "PAT (never committed)" } ], "servers": { "ado": { "type": "stdio", "command": "npx", "args": ["-y", "@azure-devops/mcp", "${input:ado_org}"], "env": { "AZURE_DEVOPS_PAT": "${input:ado_pat}" } }, "sequential-thinking": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"] } } }
  7. カスタムインストラクションの設定 DO WHAT MATTERS 11 copilot-instructions.mdとは、カスタムの指示(Instruction)や情報(Context)をCopilotに対して与えられ る機能。 # コンテキスト インテリジェントなコーディングアシスタントとして振る舞い、Azure

    DevOps MCP サーバー用のツール、プロンプト、リソースのテストおよび作成を支援してくだ さい。コードベースの一貫性を最優先し、常に既存のパターンを新しいコードに適用するようにしてください。 ユーザーが明確にツールの使用を意図している場合は、それを実行してください。 ユーザーが新しいツールの作成を希望している場合は、それを支援してください。 ## MCP ツールの使用 ユーザーの意図が Azure DevOps に関連している場合は、Azure DevOps MCP サーバーツールを最優先で使用してください。 ## 新しいツールの追加 新しいツールを追加する場合は、該当する Azure DevOps API に対応した Azure DevOps の Typescript クライアントを最優先で使用してください。 クライアントやクライアントメソッドが利用できない場合のみ、API に直接アクセスしてください。 ツールは `src/tools.ts` ファイルに配置されています。 ## 新しいプロンプトの追加 言語モデルへの指示は明確かつ簡潔に記述し、言語モデルが確実に従えるようにしてください。 プロンプトは `src/prompts.ts` ファイルに配置されています。 ## Azure DevOps 用 MCP サーバーの利用 Azure DevOps 用 MCP サーバーで作業項目を取得する場合、個別に多数の更新を行うのではなく、常にバッチツールを利用してください。更新時は、1 回のバッチで最大 200 件までまとめて更新してください。作業項目を取得する際は、ID の一覧を取得した後、`get_work_items_batch_by_ids` ツールを使って詳細を取得してください。デフォルトでは、ID、Type、Title、State フィールドを表示してください。作業項目の結果はマークダウンテーブルで 表示してください。
  8. Azure DevOps MCP Serverを使ってみる DO WHAT MATTERS 12 mcp.jsonを開き、Startを押下する。OrganizationNameとPATをそれぞれ入力する。 うまく行かない場合は、VS

    Codeを初期化して試してみてください 以下のフォルダを全クリア ・%APPDATA%¥Code¥ ・%USERPROFILE%¥.vscode¥extensions¥ プロンプトに、 Azure DevOpsのプロジェクト一 覧を取得してください 1 3 4 5 6 2 ※
  9. 自律型 要件(PBI/Task)の作成~実装 DO WHAT MATTERS 13 プロダクトに実装したい新機能です。 - SeatsAnalysisViewerページに、日付From-Toで絞り込みを行えるUIを実装してください。From-to それぞれのカレンダーコントロールはVuetify

    v3に適用したものを利用し、カレンダーコントロールをクリックす るとカレンダーが表示されるようなUIにしてください。検索ボタンを別途用意してください。検索時は、UTC日 時を考慮してください。 - SeatsAnalysisViewerページに、ユーザで絞り込みを行えるUIを実装してください。カレンダーコントロー ルとは別の行に設定してください。 - SeatsAnalysisViewerページの検索結果をCSV形式でダウンロードできるボタンを実装してください。 チケットは日本語で作成してください。 PBIを作成したとき、子Taskを作成してください。 子Taskを作成したとき親となったPBIをRelated Workに設定してください。 作成したチケットのイテレーションは、[OsaTestProject¥Sprint21]に設定してください。 作成した子Taskを順番に作業してください。 子Taskの作業に取り掛かるときはStateをIn Progressにしてください。 子Taskが終わったら、Doneにしてください。作業が完了する前にDoneにしないでください。 テストコードは必要ありません。
  10. 利用可能なモデルの更新、GA&プレビュー DO WHAT MATTERS 15 プレミアムモデル GA/プレビュー Anthropic Claude 3.5

    Sonnet GA Anthropic Claude 3.7 Sonnet 〃 Anthropic Claude 3.7 Sonnet Thinking 〃 Google Gemini 2.0 Flash 〃 Google Gemini 2.5 Flash 〃 Google Gemini 2.0 Pro プレビュー OpenAI GPT-4.5 プレビュー(Pro+,Enterpriseのみ) OpenAI GPT-4.1 プレビュー OpenAI o1 〃 OpenAI o3 プレビュー(Pro+,Enterpriseのみ) OpenAI o3-mini GA OpenAI o4-mini プレビュー https://docs.github.com/ja/enterprise-cloud@latest/copilot/using-github-copilot/ai-models/changing-the-ai-model-for-copilot-chat
  11. ユースケース毎のモデルの利用 DO WHAT MATTERS 16 コストとパフォー マンスのバランス 基本的なタスクを 迅速かつ低コスト で

    深い推論や複雑な コーディングの課 題 マルチモーダル入 力とリアルタイム パフォーマンス Claude 3.5 Sonnet Google Gemini 2.0 Flash OpenAI GPT-4o OpenAI GPT-4.1 OpenAI GPT-4.5(プレビュー) OpenAI o1 OpenAI o3-mini https://docs.github.com/ja/enterprise-cloud@latest/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task
  12. プレミアムモデルと プレミアムリクエスト • プレミアムモデルとは? 利用回数(量)はプラン毎に割り当てられた 量から消費 • プレミアムリクエストとは? 全てのGitHub Copilot有料プランには、毎月

    の割り当てが含まれており、プレミアムモデ ルの利用の際に、その割り当てを消費 DO WHAT MATTERS 18 https://docs.github.com/ja/enterprise-cloud@latest/copilot/managing-copilot/monitoring-usage-and-entitlements/about-premium-requests
  13. プレミアムモデル/プレミアムリクエストの仕組み DO WHAT MATTERS 19 ユーザからのリクエスト (GitHub Copilot Chatで質問) ベースモデル

    (無制限に利用可 – GPT-4o) プレミアムモデル (割り当てられた量から消費) または より複雑なタスク=より多くの利用 エージェントリクエスト (例:IDEのエージェントモード)
  14. プレミアムリクエストの対象 DO WHAT MATTERS 20 機能 無料プラン(Free) 有料プラン (Pro,Pro+,Business,Enterprise) チャット

    ベースモデルでもカウント • ベースモデル利用はカウント対象外 • プレミアムモデル利用でカウント エージェントモード ベースモデルでもカウント • ベースモデル利用はカウント対象外 • プレミアムモデル利用でカウント コードレビュー 利用不可 1レビュー=1カウント GitHub Copilot Extensions ベースモデルでもカウント • ベースモデル利用はカウント対象外 • プレミアムモデル利用でカウント
  15. モデルごとの倍数(乗数) DO WHAT MATTERS 21 モデル Premiumリクエスト ベースモデル(GPT-4.1) 0(有料ユーザ)、1(Copilot Free)

    Claude 3.5 Sonnet 1 Claude 3.7 Sonnet 1 Claude 3.7 Sonnet Thinking 1.25 Gemini 2.0 Flash 0.25 Gemini 2.5 Pro 1 GPT-4.5 50 GPT-4o 1 O1 10 o3-mini 0.33 プレミアムリクエスト使用例 • GPT-4.5(50倍の乗数)を使ってGitHub Copilot Chatで1つの質問をした場合、その対話は50プレ ミアムリクエストとしてカウントされる • GitHub Copilot Freeを使っている場合は、ベー スモデル利用でも、それぞれ1プレミアムリクエ ストが使われる • 有料プランをつかっている場合、ベースモデルの 使用は毎月のプレミアムリクエスト許容量にはカ ウントされない 追加の使用への課金 • 追加の使用量を有効にしている場合、含まれてい る月単位の量を超えるプレミアムリクエストには、 それぞれ $0.04 USDが課金される 出典:プレミアムリクエストについて - https://docs.github.com/ja/enterprise-cloud@latest/copilot/managing-copilot/monitoring-usage-and-entitlements/about- premium-requests
  16. プラン比較 – プレミアムアクセスの割り当て DO WHAT MATTERS 22 Free Pro Pro+

    Business Enterprise 料金(月額) 0$ $10 $39 $19 $39 プレミアムアクセス (月・ユーザごと) 50 300 1,500 300 1,000