19
22

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 × Microsoft Learn で技術的調査をする

19
Posted at

はじめに

技術的な疑問が湧いたとき、Microsoft Learn や公式ドキュメントを開いて調べて、理解して…でも 1 週間後にはもう忘れている。そんな経験はありませんか?

調べた内容をメモに残そうと思っても、ブラウザとエディタを行き来するのは面倒で、結局「あとで整理しよう」が永遠に来ない——これは多くのエンジニアが抱える課題です。

本記事では、GitHub Copilot Chat のエージェントモードと **MCP(Model Context Protocol)**を使って、Microsoft Learn のドキュメントに接続し、技術的な質問に対する回答を自動的に Markdown ファイルとして保存する仕組みを紹介します。

ポイントは以下の 3 つです:

  • MCP で Microsoft Learn の情報をリアルタイムに取得
  • 回答を YYYY-MM-DD-質問名.md 形式のファイルとして自動保存
  • プロンプトテンプレートを作っておくことで、誰でも再現可能に

これにより、過去の調査結果がナレッジベースとして蓄積され、振り返りやチーム共有にも活用できます。

目次

  1. 全体像:何をどう組み合わせるのか
  2. 前提条件
  3. MCP とは何か
  4. 環境構築:MCP サーバーの設定
  5. 実践:エージェントモードで技術調査してみた
  6. ナレッジファイルの命名規則と運用ルール
  7. プロンプトテンプレートの作成
  8. 応用:ナレッジベースとしての活用
  9. 注意点・制限事項
  10. まとめ

全体像:何をどう組み合わせるのか

今回の仕組みは、以下の技術要素を組み合わせています。

┌─────────────────────────────────────────────────────┐
│  VS Code + GitHub Copilot Chat(エージェントモード)    │
│                      │                               │
│                      ▼                               │
│             MCP クライアント                          │
│                      │                               │
│                      ▼                               │
│     ┌────────────────────────────────┐               │
│     │  MCP サーバー(fetch / docs)   │               │
│     └────────────┬───────────────────┘               │
│                  │                                   │
│                  ▼                                   │
│        Microsoft Learn API /                         │
│        Web ページ取得                                 │
│                  │                                   │
│                  ▼                                   │
│     ┌────────────────────────────────┐               │
│     │  Markdown ファイルとして保存     │               │
│     │  例: 2026-03-11-azure-aks.md   │               │
│     └────────────────────────────────┘               │
└─────────────────────────────────────────────────────┘
要素 役割
GitHub Copilot Chat エージェントモード 自然言語の指示を解釈し、ツールを自律的に呼び出す
MCP(Model Context Protocol) Copilot と外部データソースを接続するプロトコル
MCP サーバー(fetch) Web ページの内容を取得するツールを提供
Microsoft Learn Azure や Microsoft 製品の公式ドキュメント
Markdown ファイル ナレッジとして保存・蓄積される成果物

前提条件

以下の環境が必要です:

  • VS Code 最新版(1.99 以降推奨)
  • GitHub Copilot 拡張機能(エージェントモード対応版)
    • GitHub Copilot Chat がエージェントモードに対応していること
  • GitHub Copilot サブスクリプション(Individual / Business / Enterprise / Free)
  • Node.js 18 以上(MCP サーバー実行に必要)

MCP とは何か

**MCP(Model Context Protocol)**は、AI モデルと外部のデータソースやツールを接続するためのオープンプロトコルです。Anthropic が提唱し、GitHub Copilot を含む多くの AI ツールが対応しています。

MCP の主要な概念:

概念 説明
MCP サーバー 外部ツールやデータソースを公開するプロセス
MCP クライアント AI モデル側でサーバーに接続する仕組み(VS Code が担当)
Tools サーバーが提供する機能(例: Web ページ取得、検索)
Resources サーバーが提供するデータ(例: ドキュメント一覧)

GitHub Copilot Chat のエージェントモードでは、MCP サーバーが提供するツールを自律的に判断して呼び出すことができます。これにより、「Microsoft Learn でこの技術について調べて」と言うだけで、適切なページを取得して回答を生成してくれます。


環境構築:MCP サーバーの設定

Step 1: VS Code の MCP 設定ファイルを作成

プロジェクトのルートに .vscode/mcp.json を作成します。

{
  "servers": {
    "fetch": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/mcp-fetch@latest"
      ]
    }
  }
}

この設定で、Web ページの内容を取得できる MCP サーバーが利用可能になります。

補足: @anthropic-ai/mcp-fetch は、指定した URL のコンテンツをテキストとして取得する MCP サーバーです。Microsoft Learn のページなど、任意の Web ページの内容をエージェントモードから取得できるようになります。

Step 2: Microsoft Learn 特化の MCP サーバー(オプション)

Microsoft 公式の Azure MCP サーバーを追加すると、Azure ドキュメントにより特化した検索が可能です。

{
  "servers": {
    "fetch": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/mcp-fetch@latest"
      ]
    },
    "microsoft-docs": {
      "command": "npx",
      "args": [
        "-y",
        "@anthropic-ai/mcp-fetch@latest"
      ],
      "env": {
        "DEFAULT_URL": "https://learn.microsoft.com"
      }
    }
  }
}

Step 3: エージェントモードの確認

VS Code で GitHub Copilot Chat を開き、入力欄のモードが 「Agent」 になっていることを確認します。

  1. Copilot Chat パネルを開く(Ctrl+Shift+I / Cmd+Shift+I
  2. 入力欄の左側にあるモード選択で 「Agent」 を選択
  3. MCP サーバーが認識されていることを確認(ツールアイコンに fetch が表示される)

実践:エージェントモードで技術調査してみた

例 1: Azure Container Apps のスケーリング仕様を調べる

エージェントモードの Chat で以下のように入力します:

Microsoft Learn の Azure Container Apps のドキュメントから、
KEDA ベースのスケーリングの仕組みと設定方法を調べて、
Markdown ファイルとしてまとめてください。

ファイル名は「2026-03-11-azure-container-apps-scaling.md」で
このディレクトリに保存してください。

すると、エージェントモードが以下の動作を自律的に実行します:

  1. MCP fetch ツールを使って Microsoft Learn のページを取得
  2. 取得したドキュメントの内容を解析・要約
  3. 指定した命名規則で Markdown ファイルを作成
  4. ファイルをワークスペースに保存

生成されるファイルのイメージ:

# Azure Container Apps - KEDA ベースのスケーリング

## 調査日
2026-03-11

## 出典
- https://learn.microsoft.com/ja-jp/azure/container-apps/scale-app

## 概要
Azure Container Apps は KEDA(Kubernetes Event-Driven Autoscaling)を
基盤としたスケーリング機能を提供する...

## スケーリングルールの種類

| ルールタイプ | 説明 | ユースケース |
|------------|------|------------|
| HTTP | 同時リクエスト数に基づく | Web API |
| TCP | 同時接続数に基づく | WebSocket |
| カスタム | KEDA スケーラーに基づく | キュー処理 |

## 設定方法

### HTTP スケーリングルール
\```yaml
scale:
  minReplicas: 1
  maxReplicas: 10
  rules:
    - name: http-rule
      http:
        metadata:
          concurrentRequests: "50"
\```

## 注意点
- 0 へのスケールイン(Scale to Zero)がデフォルトで有効
- ...

例 2: AKS と Container Apps の比較を調べる

Microsoft Learn から AKS と Azure Container Apps の違いを調べて、
比較表を中心にした Markdown を作成してください。
ファイル名: 2026-03-11-aks-vs-container-apps.md

例 3: Azure Functions の Flex Consumption プランを調べる

https://learn.microsoft.com/ja-jp/azure/azure-functions/flex-consumption-plan
のページ内容を取得して、Flex Consumption プランの特徴と制限事項を
Markdown にまとめてください。
ファイル名: 2026-03-11-azure-functions-flex-consumption.md

ナレッジファイルの命名規則と運用ルール

蓄積したナレッジを後から探しやすくするために、以下の命名規則を統一しましょう。

ファイル名フォーマット

YYYY-MM-DD-<技術トピック名>.md

例:

ファイル名 内容
2026-03-11-azure-container-apps-scaling.md Container Apps のスケーリング調査
2026-03-10-aks-network-policy.md AKS ネットワークポリシーの調査
2026-03-08-github-actions-reusable-workflow.md GitHub Actions の再利用可能ワークフロー
2026-03-05-bicep-module-registry.md Bicep モジュールレジストリの使い方

ルール

  1. 日付はファイル作成日(調査日)
  2. トピック名は英語のケバブケース(小文字、ハイフン区切り)
  3. 1 ファイル = 1 トピック(粒度を小さくする)
  4. 出典 URL は必ず記載する
  5. 調査日をファイル内にも明記する

ディレクトリ構造の例

tech-blog/
├── .vscode/
│   └── mcp.json                  # MCP サーバー設定
├── .github/
│   ├── blog-template.md          # ブログ記事テンプレート
│   └── copilot-instructions.md   # Copilot カスタム指示
├── .prompts/
│   └── learn-research.prompt.md  # プロンプトテンプレート
├── 2026-03-03-github-copilot-cli.md
├── 2026-03-05-bicep-module-registry.md
├── 2026-03-08-github-actions-reusable-workflow.md
├── 2026-03-10-aks-network-policy.md
└── 2026-03-11-azure-container-apps-scaling.md

プロンプトテンプレートの作成

毎回同じ指示を書くのは手間なので、VS Code の Prompt Files 機能を使ってテンプレート化しましょう。

.prompts/learn-research.prompt.md を作成

VS Code では .prompts/ ディレクトリ内に .prompt.md ファイルを置くことで、Copilot Chat から再利用可能なプロンプトテンプレートとして呼び出せます。

---
mode: agent
tools:
  - fetch
description: "Microsoft Learn から技術情報を調査し Markdown にまとめる"
---

# Microsoft Learn 技術調査テンプレート

以下のルールに従って、技術調査を実施し Markdown ファイルとして保存してください。

## 調査指示

1. Microsoft Learn(https://learn.microsoft.com)から、
   指定されたトピックに関する公式ドキュメントを MCP fetch ツールで取得してください
2. 取得した内容を以下のフォーマットで Markdown にまとめてください
3. ファイル名は `{今日の日付}-{トピック名のケバブケース}.md` としてください
4. このワークスペースのルートディレクトリに保存してください

## 出力フォーマット

以下の構造で Markdown を生成してください:

\```markdown
# {トピック名}

## 調査日
{YYYY-MM-DD}

## 出典
- {参照した Microsoft Learn の URL(複数可)}

## 概要
{トピックの概要を 3〜5 行で}

## 詳細

### {サブトピック 1}
{詳細な説明、コード例、テーブルなどを適切に使って}

### {サブトピック 2}
...

## 注意点・制限事項
{利用時の注意点や制限事項があれば}

## 関連トピック
- {関連する技術トピックへのリンクや次に調べるべきこと}
\```

## 注意事項
- 公式ドキュメントの内容を正確に反映してください
- コード例がある場合は必ず含めてください
- 日本語で記述してください(技術用語は英語可)
- テーブルを活用して情報を整理してください

## 調査トピック

{ここにユーザーが調査したいトピックを入力}

テンプレートの使い方

  1. VS Code の Copilot Chat を開く
  2. エージェントモードを選択
  3. チャット入力欄で / を入力してプロンプトファイル一覧を表示
  4. learn-research を選択
  5. {調査トピック} の部分に調べたい内容を入力して送信

実際の使用例:

/learn-research

Azure Kubernetes Service (AKS) の
ワークロードアイデンティティの設定方法と仕組み

これだけで、エージェントモードが自動的に:

  1. Microsoft Learn から AKS Workload Identity のドキュメントを取得
  2. フォーマットに沿って Markdown を生成
  3. 2026-03-11-aks-workload-identity.md として保存

応用:ナレッジベースとしての活用

1. 過去の調査を Copilot のコンテキストとして活用

蓄積した Markdown ファイルは、Copilot Chat の #file コンテキストとして利用できます。

#file:2026-03-10-aks-network-policy.md の内容を踏まえて、
Calico ネットワークポリシーの具体的な YAML サンプルを作ってください

過去に調べた内容をコンテキストとして渡すことで、より精度の高い回答が得られます。

2. GitHub リポジトリでチーム共有

ナレッジファイルを Git リポジトリに push すれば、チームメンバー全員が参照できます。

git add 2026-03-11-azure-container-apps-scaling.md
git commit -m "docs: Azure Container Apps スケーリング調査メモ"
git push

3. copilot-instructions.md でルールを自動適用

.github/copilot-instructions.md にナレッジ作成ルールを書いておくと、特別な指示なしでもルールが適用されます。

## ナレッジファイル作成ルール

技術調査を依頼された場合は、以下のルールに従ってください:

1. ファイル名: `YYYY-MM-DD-<トピック名>.md`
2. 必ず「調査日」「出典 URL」「概要」を含める
3. コード例がある場合は言語指定付きコードブロックで記載
4. 日本語で記述(技術用語は英語可)

4. 検索・振り返りの使い方

蓄積したファイルは VS Code の検索機能やターミナルから横断検索できます。

# 特定のキーワードで過去のナレッジを検索
grep -rl "スケーリング" *.md

# 直近 1 週間の調査ファイル一覧
find . -name "2026-03-*" -type f | sort

# ファイル数の確認(ナレッジの蓄積量)
ls -1 *.md | wc -l

注意点・制限事項

項目 内容
MCP サーバー起動 初回は npx によるパッケージダウンロードに時間がかかる場合があります
ページ取得の制限 一部の Microsoft Learn ページは動的レンダリングのため、取得できないコンテンツがある場合があります
情報の鮮度 取得時点のドキュメント内容です。Azure サービスは頻繁に更新されるため、調査日を必ず記録しましょう
トークン制限 非常に長いドキュメントページの場合、全文を取得しきれないことがあります。その場合はセクションを絞って再取得してください
個人的見解 AI が生成した要約は、原文のニュアンスと異なる場合があります。重要な判断には原文も確認しましょう

まとめ

本記事では、GitHub Copilot Chat のエージェントモード × MCP × Microsoft Learn を組み合わせた技術ナレッジの自動蓄積ワークフローを紹介しました。

この仕組みのメリット

  • 調査と記録が一体化 — 調べたことが自動的に Markdown として残る
  • 命名規則の統一YYYY-MM-DD-トピック名.md で後から探しやすい
  • プロンプトテンプレート — 毎回の調査手順を標準化・省力化
  • ナレッジの再利用 — 過去の調査結果を Copilot のコンテキストとして活用可能
  • チーム共有 — Git リポジトリに push するだけで全員がアクセス可能

始め方(3 ステップ)

  1. .vscode/mcp.json に fetch サーバーを設定
  2. .prompts/learn-research.prompt.md にプロンプトテンプレートを配置
  3. エージェントモードでトピックを投げる → Markdown が自動生成される

「調べて終わり」から「調べたら自動で残る」へ。ぜひ日々の技術調査に取り入れてみてください。

19
22
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
19
22

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?