📌

Awesome GitHub Copilot MCP Server で GitHub Copilot を強くする

に公開

はじめに

GitHub Copilot の Agent Mode には調べものやコードを書いてもらったり毎日大変お世話になっています。
MCP サーバーや各種 instructions, chat mode, prompt files などを使用することで、より便利に使うことができます。ただ、毎回独自に生成するのは面倒ですし、他の人が作成したものを参考にしたいと思うこともあります。

そんな時に使えるのが Awesome GitHub Copilot のリポジトリ です。

ここには様々な用途で使える Chat modes, Instructions, Prompt files が纏められています。2025 年 9 月現在、これを何個くらい使えるか数えてみたところ、以下のようになりました。

  • chatmodes フォルダー: 53 個
  • instructions フォルダー: 69 個
  • prompts フォルダー: 80 個

めっちゃありますね!これらを用途に応じていい感じに使うことで、最初のプロンプトの準備とかが楽になります。
ですが、数が多いので結構探すのが大変です。その問題を解決するために使えそうな Awesome Copilot MCP Server が公開されました。

https://x.com/dotnet/status/1965146883480834460

このサーバーを使うことで、これらのリソースを簡単に検索したり、利用したりすることができるようになります。特に、特定のニーズに合ったプロンプトやインストラクションを素早く見つけるのに役立ちます。

使ってみよう

この MCP サーバーは Docker イメージとして提供されているので Docker Desktop などをインストールしていれば簡単に動かせます。試してみましょう。適当な空っぽのフォルダーを Visual Studio Code で開いておきます。

.vscode/mcp.json を作成して以下のように記述します。

/vscode/mcp.json
{
  "servers": {
    "awesome-copilot": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest"
      ]
    }
  }
}

これで MCP Server の設定が完了したので起動しましょう!起動すると以下のように 2 つのツールと 1 つのプロンプトが利用可能になります。

ツールは以下の 2 つです。

  1. load_instruction
    • リポジトリからカスタムインストラクションを読み込む。
  2. search_instructions
    • リポジトリ内のカスタムインストラクションをキーワードで検索する。

プロンプトは以下の 1 つです。

  1. /mcp.awesome-copilot.get_search_prompt
    • 指定されたキーワードに基づいて、リポジトリ内のカスタムインストラクションを検索するためのプロンプトを生成する。

Python のインストラクションを探す

例えば、私は Python が苦手なので Python を書くときには GitHub Copilot に助けてもらわないと満足に書くことができません。そこで、Python に関するインストラクションを探してみましょう。

/mcp.awesome-copilot.get_search_prompt を選択するとキーワードを入力する画面が表示されるので python fastapi と入力して Enter キーを押すと以下のようなプロンプトが入力されました。

Please search all the chatmodes, instructions and prompts that are related to the search keyword, `python fastapi`.

Here's the process to follow:

1. Use the `awesome-copilot` MCP server.
1. Search all chatmodes, instructions, and prompts for the keyword provided.
1. DO NOT load any chatmodes, instructions, or prompts from the MCP server until the user asks to do so.
1. Scan local chatmodes, instructions, and prompts markdown files in `.github/chatmodes`, `.github/instructions`, and `.github/prompts` directories respectively.
1. Compare existing chatmodes, instructions, and prompts with the search results.
1. Provide a structured response in a table format that includes the already exists, mode (chatmodes, instructions or prompts), filename, title and description of each item found. 
   Here's an example of the table format:

   | Exists | Mode         | Filename               | Title         | Description   |
   |--------|--------------|------------------------|---------------|---------------|
   | ✅    | chatmodes    | chatmode1.json         | ChatMode 1    | Description 1 |
   | ❌    | instructions | instruction1.json      | Instruction 1 | Description 1 |
   | ✅    | prompts      | prompt1.json           | Prompt 1      | Description 1 |

   ✅ indicates that the item already exists in this repository, while ❌ indicates that it does not.

1. If any item doesn't exist in the repository, ask which item the user wants to save.
1. If the user wants to save it, save the item in the appropriate directory (`.github/chatmodes`, `.github/instructions`, or `.github/prompts`) 
   using the mode and filename, with NO modification.

Answer in Japanese. と追記して送ってみたところ以下のような結果になりました。

ワークスペース内の既存ファイル有無を確認しつつ、MCP サーバーでキーワード検索(python fastapi)を実行します。 

Read [](file:///d%3A/Temp/awesome-python)

Read [](file:///d%3A/Temp/awesome-python/.github)

キーワード 'python fastapi' で利用可能なリモート chatmodes / instructions / prompts を検索します。 

Ran Searches custom instructions 
Completed with input: {
  "keywords": "python fastapi"
}

指定キーワード "python fastapi" で検索しましたが、"fastapi" を直接含む chatmode / instruction / prompt は見つかりませんでした("python" を含む関連項目のみヒット)。リポジトリ内には `.github/chatmodes`, `.github/instructions`, `.github/prompts` ディレクトリ自体が存在せず、該当ファイルは一切ありませんでした。

### 検出結果一覧

| Exists | Mode         | Filename                                   | Title                                   | Description |
|--------|--------------|--------------------------------------------|-----------------------------------------|-------------|
|| chatmodes    | semantic-kernel-python.chatmode.md         | Semantic Kernel Python                  | Create, update, refactor, explain or work with code using the Python version of Semantic Kernel. |
|| instructions | playwright-python.instructions.md          | Playwright Python                       | Playwright Python AI test generation instructions based on official documentation. |
|| instructions | python.instructions.md                     | Python                                  | Python coding conventions and guidelines |
|| prompts      | code-exemplars-blueprint-generator.prompt.md | Code Exemplars Blueprint Generator     | Technology-agnostic prompt generator that creates customizable AI prompts for scanning codebases and identifying high-quality code exemplars. Supports multiple programming languages (.NET, Java, JavaScript, TypeScript, React, Angular, Python) with configurable analysis depth, categorization methods, and documentation formats to establish coding standards and maintain consistency across development teams. |
|| prompts      | comment-code-generate-a-tutorial.prompt.md | Comment Code Generate a Tutorial        | Transform this Python script into a polished, beginner-friendly project by refactoring the code, adding clear instructional comments, and generating a complete markdown tutorial. |
|| prompts      | folder-structure-blueprint-generator.prompt.md | Folder Structure Blueprint Generator  | Comprehensive technology-agnostic prompt for analyzing and documenting project folder structures. Auto-detects project types (.NET, Java, React, Angular, Python, Node.js, Flutter), generates detailed blueprints with visualization options, naming conventions, file placement patterns, and extension templates for maintaining consistent code organization across diverse technology stacks. |
|| prompts      | technology-stack-blueprint-generator.prompt.md | Technology Stack Blueprint Generator  | Comprehensive technology stack blueprint generator that analyzes codebases to create detailed architectural documentation. Automatically detects technology stacks, programming languages, and implementation patterns across multiple platforms (.NET, Java, JavaScript, React, Python). Generates configurable blueprints with version information, licensing details, usage patterns, coding conventions, and visual diagrams. Provides implementation-ready templates and maintains architectural consistency for guided development. |

すべて未保存(❌)です。  
保存したい項目のファイル名(複数可)を教えてください。そのまま該当ディレクトリを作成し、内容を変更せず保存します。  

どれを追加しますか?

FastAPI は無かったですか…。こういうのは Context7 あたりで補間したほうが良さそうですね。とりあえず python.instructions.mdfolder-structure-blueprint-generator.prompt.md を保存してみます。「Python と Folder Structure Blueprint Generator をお願い」と返事をすると以下のように Copilot が動いて保存してくれます。

指定された "python" インストラクションと "folder-structure-blueprint-generator" プロンプト本文を取得し、リポジトリへ保存します。 

Ran Loads a custom instruction 
Completed with input: {
  "filename": "python.instructions.md",
  "mode": "instructions"
}

フォルダ構造ブループリントジェネレーターのプロンプト本文を取得します。 

Ran Loads a custom instruction 
Completed with input: {
  "filename": "folder-structure-blueprint-generator.prompt.md",
  "mode": "prompts"
}

指定された2つの項目をリポジトリに追加します(`.github/instructions``.github/prompts` を作成しファイル保存)。 

Created [](file:///d%3A/Temp/awesome-python/.github/instructions/python.instructions.md)

Created [](file:///d%3A/Temp/awesome-python/.github/prompts/folder-structure-blueprint-generator.prompt.md)

保存されたファイルを確認します。 

Read [](file:///d%3A/Temp/awesome-python/.github)

Read [](file:///d%3A/Temp/awesome-python/.github/instructions)

Read [](file:///d%3A/Temp/awesome-python/.github/prompts)

2件を保存しました。

| Exists | Mode         | Filename                                        | Title (推定)                              | Description 概要 |
|--------|--------------|-------------------------------------------------|-------------------------------------------|------------------|
|| instructions | python.instructions.md                          | Python Coding Conventions                 | Python coding conventions and guidelines |
|| prompts      | folder-structure-blueprint-generator.prompt.md  | Project Folder Structure Blueprint Generator | Analyze & blueprint project folder structures |

他に追加したい(例: semantic-kernel-python, playwright-python など)ものがあればファイル名を指示してください。続けますか?

Made changes.

これで、以下のように 2 つのファイルが保存されました。

.github
├─instructions
│      python.instructions.md
└─prompts
        folder-structure-blueprint-generator.prompt.md

いいですね。1個1個手動でコピーするのに比べるとめっちゃ便利です。

要件定義用のインストラクションを探す

テクノロジーベース以外の使い道はどうでしょうか?例えば要件定義に使えそうなものを探してみましょう。「要件定義」で検索するとダメだったので spec とかで検索してみると以下のような結果が出ました。

キーワード 'spec' をローカル(.github配下)と MCP サーバーで検索します。 

Searched text for `(?i)spec` (`**/.github/**`), 13 results

Ran Searches custom instructions 
Completed with input: {
  "keywords": "spec"
}

キーワード「spec」で検索した結果です。  
対象: ローカル (.github/instructions, .github/prompts) と MCP サーバー上の chatmodes / instructions / prompts。  
判定基準: ファイル名または description / 内容に "spec" を含むもの(大小区別なし, "specification" / "specs" など部分一致含む)。

| Exists | Mode | Filename | Title | Description |
|--------|------|----------|-------|-------------|
|| prompts | folder-structure-blueprint-generator.prompt.md | folder-structure-blueprint-generator | Comprehensive technology-agnostic prompt for analyzing and documenting project folder structures. Auto-detects project types (.NET, Java, React, Angular, Python, Node.js, Flutter), generates detailed blueprints with visualization options, naming conventions, file placement patterns, and extension templates for maintaining consistent code organization across diverse technology stacks. |
|| instructions | python.instructions.md | python.instructions | Python coding conventions and guidelines |
|| chatmodes | specification.chatmode.md | specification | Generate or update specification documents for new or existing functionality. |
|| chatmodes | simple-app-idea-generator.chatmode.md | simple-app-idea-generator | Brainstorm and develop new application ideas through fun, interactive questioning until ready for specification creation. |
|| chatmodes | software-engineer-agent-v1.chatmode.md | software-engineer-agent-v1 | Expert-level software engineering agent. Deliver production-ready, maintainable code. Execute systematically and specification-driven. Document comprehensively. Operate autonomously and adaptively. |
|| instructions | spec-driven-workflow-v1.instructions.md | spec-driven-workflow-v1 | Specification-Driven Workflow v1 provides a structured approach to software development, ensuring that requirements are clearly defined, designs are meticulously planned, and implementations are thoroughly documented and validated. |
|| prompts | create-github-action-workflow-specification.prompt.md | create-github-action-workflow-specification | Create a formal specification for an existing GitHub Actions CI/CD workflow, optimized for AI consumption and workflow maintenance. |
|| prompts | create-github-issue-feature-from-specification.prompt.md | create-github-issue-feature-from-specification | Create GitHub Issue for feature request from specification file using feature_request.yml template. |
|| prompts | create-github-issues-for-unmet-specification-requirements.prompt.md | create-github-issues-for-unmet-specification-requirements | Create GitHub Issues for unimplemented requirements from specification files using feature_request.yml template. |
|| prompts | create-github-pull-request-from-specification.prompt.md | create-github-pull-request-from-specification | Create GitHub Pull Request for feature request from specification file using pull_request_template.md template. |
|| prompts | create-specification.prompt.md | create-specification | Create a new specification file for the solution, optimized for Generative AI consumption. |
|| prompts | update-specification.prompt.md | update-specification | Update an existing specification file for the solution, optimized for Generative AI consumption based on new requirements or updates to any existing code. |
|| prompts | gen-specs-as-issues.prompt.md | gen-specs-as-issues | This workflow guides you through a systematic approach to identify missing features, prioritize them, and create detailed specifications for implementation. |
|| prompts | create-llms.prompt.md | create-llms | Create an llms.txt file from scratch based on repository structure following the llms.txt specification at https://llmstxt.org/ |
|| prompts | update-llms.prompt.md | update-llms | Update the llms.txt file in the root folder to reflect changes in documentation or specifications following the llms.txt specification at https://llmstxt.org/ |

保存候補(❌)が多数あります。どれをこのリポジトリに追加しますか?  
追加したいファイルの Filename を複数指定していただければ、そのまま内容(変更なしで)適切なディレクトリに保存します。  

例:  
- create-specification.prompt.md  
- spec-driven-workflow-v1.instructions.md  
- specification.chatmode.md(必要なら `.github/chatmodes/` を新規作成して配置)

どれを保存しますか?

まだ長いので「要件定義のための壁打ちをしたいんだけどお勧めはあるかな?」と聞いてみたところ、以下のような回答が返ってきました。

要件定義の壁打ち相手(ブレインストーミング/叩き台精緻化)として使いやすい進め方・モード・プロンプト案を整理します。目的別に「どれを導入/追加すると効果が高いか」も併せて提案します。

## 1. 目的別:壁打ちセッションの典型フェーズ
1. ゴール仮説整理  
   - なぜ作るか(ビジネス目的 / 成功指標 / 解決したい課題)  
   - 作らない選択肢や既存代替は?  
2. スコープ輪郭出し  
   - 対象ユーザー / ペルソナ / 利用シナリオ(As-Is / To-Be)  
   - 境界(やらないこと / 後回し)  
3. 機能要求の粗出し → 構造化  
   - 業務イベント / ユースケース / ジャーニー / CRUDマトリクス  
4. 非機能品質視点(品質特性毎にギャップ確認)  
   - 性能 / 可用性 / 信頼性 / 運用性 / セキュリティ / 監査 / 拡張性 / 国際化 / データ保持 / コスト  
5. 外部インタフェース & データ  
   - 外部システム、API、ファイル、バッチ、通知、権限モデル、マスタ/コード体系  
6. リスク & 不確実性  
   - ブラックボックス領域 / 見積り難度 / 技術検証要否 / レガシー制約  
7. 受入条件 / 完了定義  
   - KPI 到達値 / 主要シナリオ受入テスト / 最低限動作ライン (Walking Skeleton)  
8. 優先度付け & リリース分割  
   - MoSCoW / RICE / Value vs Effort / MLP (Minimum Lovable Product)  
9. 合意形成 & ドキュメント化  
   - 仕様化粒度 / Traceability / 変更管理方針  

## 2. 推奨する既存(MCP 検索結果)資源の活用順
| 用途 | 推奨アイテム | 利用タイミング | 効果 |
|------|--------------|---------------|------|
| 叩き台仕様生成 | specification.chatmode.md | 初回ラフ整理 | 全体項目の空所確認 |
| スペック駆動の進行型 | spec-driven-workflow-v1.instructions.md | 継続運用 | 手戻り削減・抜け漏れ防止 |
| Epic→詳細分解 | breakdown-epic-pm.prompt.md | エピック分解 | 上位→下位機能分割 |
| 新規仕様新規作成 | create-specification.prompt.md | 叩き台出力 | ドキュメント雛形生成 |
| 変更差分反映 | update-specification.prompt.md | 修正時 | 差分抽出と整合性保持 |
| 実装未達検出 | create-github-issues-for-unmet-specification-requirements.prompt.md | 実装クロール | 実装漏れ可視化 |
| リリース計画化 | gen-specs-as-issues.prompt.md | 要素→Issue化 | Backlog 化自動化 |

これらをローカルに保存して使うと、「壁打ち → ドキュメント → 差分追随 → 実装トレーサビリティ」の循環が作りやすくなります。

## 3. 新規追加を強く勧めるファイル(未保存)
以下 3 点をローカルへ追加すると“壁打ち〜仕様精緻化”が高速化します(順番は優先度高い順):
1. specification.chatmode.md  
2. spec-driven-workflow-v1.instructions.md  
3. create-specification.prompt.md  

必要なら続いて:update-specification / breakdown-epic-pm / gen-specs-as-issues

追加希望を出せばそのまま保存できます(内容改変なし)。

## 4. 壁打ち用「深掘り質問インベントリ」
### ビジネス/目的
- 成功指標(数値): 例) 月間アクティブ、処理時間短縮%、エラー率
- “失敗” は何か?(解決しない・採用されない要因)
- 価値の最も小さい実験形 (MVT / MLP) はどこまで?

### スコープと境界
- 既存ツール/手作業のどこを置換する?
- スコープ外を先に列挙できるか?
- 法規制/監査要件は?

### ユースケース/シナリオ
- 代表 3 シナリオ(Happy / Edge / Failure Path)
- トリガーイベント(時間 / 人 / 他システム / データ閾値)

### 非機能(抜けやすいもの)
| 特性 | 例質問 |
|------|--------|
| 可用性 | 許容ダウンタイム / ゼロダウン必要? |
| 性能 | 同時要求ピーク / SLA 応答時間 / バースト係数 |
| セキュリティ | データ分類 / RBAC粒度 / 監査ログ保持期間 |
| 運用 | 運用開始までに必要なダッシュボード指標 |
| 拡張性 | 1年後トラフィック倍時のボトルネック仮説 |
| データ保持 | 物理削除 vs 論理削除方針 |
| 回復性 | RPO / RTO 目標値 |
| 観測性 | Trace / Metrics / Log の相関キー |

### データ視点
- コアドメインオブジェクト(名詞)Top 5
- ID 体系・自然キー vs 代替キー
- 一意制約/履歴管理(SCD2 的必要?)

### リスク & 不確実性
- 見積り自信度 (High / Medium / Low) の Low 項目理由
- 技術検証(PoC)が必要な領域は?
- 特許/ライセンス懸念は?

### 受入条件 / 完了定義
- “ローンチ不可能” になる必須要件 5 個
- アクセプタンスシナリオ Given-When-Then 例
- 運用 Runbook 必須要素は?

### 優先度付け
- 機能×価値×実装コストマッピング
- “削っても価値が残る/削ると破綻” 境界

## 5. 壁打ち進行テンプレ(短サイクル)
Round 0: 目的・成功基準(10分)  
Round 1: ユースケース粗出し(15分)  
Round 2: ドメイン語彙 & データ粒度(15分)  
Round 3: 非機能(重点 3 特性だけ先に)  
Round 4: リスク & 受入基準ドラフト  
→ その後 specification.chatmode で初期仕様化 → 差分埋めるドリルダウン

## 6. 生成物の推奨ドキュメント構造(日本語版)
1. 背景 & 課題  
2. 目的 & 成功指標 (KGI/KPI)  
3. スコープ / 非スコープ  
4. 利用者 & ペルソナ  
5. ユースケース / シナリオ / イベントフロー  
6. 機能要求一覧 (ID, 概要, 優先度, 状態)  
7. 非機能要求 (特性別表)  
8. ドメインモデル & 用語集  
9. データ仕様 (ER/テーブル, 保持, 整合性)  
10. 外部IF (API, Queue, Batch, Webhook)  
11. セキュリティ & 権限モデル  
12. ログ/監査/観測性  
13. リスク & 未確定事項 / To Clarify List  
14. リリース & 段階的提供計画  
15. 受入基準 / 完了定義 / Traceability Matrix (要件→テスト)  
16. 変更管理ポリシー  

## 7. そのまま使える壁打ちスタータープロンプト例
以下を貼って開始すると、体系的に掘れます:

あなたは要件定義の壁打ちファシリテータです。以下の指針で段階的に質問してください:
1. 目的と成功指標を確定(あいまい語は必ず再質問)
2. スコープ / 非スコープの境界を列挙
3. 主要ペルソナ & キーシナリオ (Happy / Edge / Failure)
4. ドメイン上の主要名詞と関係 (暫定モデル化)
5. 機能要求を粒度レベル (Epic -> Feature -> Story) に分解
6. 非機能 (性能 / セキュリティ / 可用性 / 運用 / 観測性) のうち優先 Top3 を先に深掘り
7. 外部システム連携とデータ流れ
8. リスク & 未確定事項リストアップ
9. 受入基準 (定量 / シナリオ / 運用成立条件) ドラフト
10. 次アクション & ドキュメント化テンプレ推奨

各ステップ:
- 質問バッチ化(最大5問)
- 回答を要素化・不足/曖昧タグ付け
- 次の深掘り候補を提案

まず「目的 / 成功指標」を 3〜5 の独立軸で尋ねてください。

## 8. “曖昧さ検出” タグ例
- [用語不明]: 定義不足  
- [尺度不明]: 数値指標欠落  
- [境界曖昧]: スコープ線引き未確定  
- [依存未確認]: 外部要素との関係不明  
- [検証必要]: PoC/性能テスト要  

これを回答整理時に自動付与すると抜け漏れが視覚化されます。

## 9. 次の具体アクション提案
A. まず追加したい MCP アイテム(ファイル名列挙)を指示ください  
B. その後、初回壁打ち Round 0 を上記テンプレで開始可能です  
C. 必要なら “要件定義専用 prompt” (`requirements-definition-buddy.prompt.md`) を新規生成します

## 10. どれを保存しますか?
以下から保存したいファイル名を教えてください(複数可):
- specification.chatmode.md
- spec-driven-workflow-v1.instructions.md
- create-specification.prompt.md
- update-specification.prompt.md
- breakdown-epic-pm.prompt.md
- gen-specs-as-issues.prompt.md
- create-github-issue-feature-from-specification.prompt.md
- create-github-issues-for-unmet-specification-requirements.prompt.md
- create-github-pull-request-from-specification.prompt.md

または新規: requirements-definition-buddy.prompt.md(←こちらを提案作成も可能)

どれを追加しましょうか?(列挙して返信ください)

いい感じに要件定義に使えそうなものが纏まっていますね。使い方としては英語キーワードでプロンプトを生成して、そのあと日本語で質問すると使いやすそうです。

まとめ

今まで Awesome GitHub Copilot のリポジトリの存在は知っていたのですが探すのがめんどくさいので beast mode の Chat Mode くらいしか使っていなかった (それも最新の VS Code Insider だと組み込まれたので使っていなかった) のですが、この MCP サーバーを使うことで簡単に検索・保存ができるようになりました。

これは結構便利だと思うので是非使ってみてください。

Microsoft (有志)

Discussion