Tips - コンテキストの与え方
GitHub CopilotにSpacesとMCP(Model Context Protocol)という2つの機能が加わりました。これらは単なる追加機能ではなく、AIとの協働における文脈管理の問題に対する実践的な解決策です。本記事では、両機能の仕組みと実際の活用方法について解説します。
目次
- GitHub Copilot Spacesとは
- Spacesの構成要素
- Spacesの共有とコラボレーション
- MCP(Model Context Protocol)とは
- GitHub MCP Serverのセットアップ
- 利用可能なツールセット
- SpacesとMCPの連携
- 実践的な活用シーン
- Enterprise環境での利用
- トラブルシューティング
1. GitHub Copilot Spacesとは
Spacesは、Copilotが回答を生成する際に参照する文脈を整理・集約するための仕組みです。従来、Copilotに適切な回答を得るためには、毎回プロンプトで詳細な文脈を説明する必要がありました。Spacesはこの問題を解決します。
1.1 利用可能対象
- Copilotライセンスを持つすべてのユーザー
- GitHub.com上で直接利用可能(
https://github.com/copilot/spaces) - IDE(VS Code、JetBrains、Visual Studio等)からもアクセス可能
1.2 基本的なワークフロー
2. Spacesの構成要素
Spacesには2種類の文脈を追加できます。
2.1 Instructions(指示)
Copilotの役割や専門領域、回答方針を定義する自由記述のテキストです。
記述例:
あなたはSQLジェネレーターです。添付されたサンプルクエリとデータスキーマを
参照し、ユーザーの目的に基づいてSQLクエリを生成してください。
この指示により、Copilotは特定のタスクに特化した回答を返すようになります。
2.2 Sources(ソース)
具体的なコンテンツを文脈として追加します。
| ソースタイプ | 説明 | 用途例 |
|---|---|---|
| ファイル・リポジトリ | GitHubのコード、ドキュメント | 実装参照、コーディング規約 |
| PR・Issue | プルリクエスト、Issueへのリンク | 要件確認、議論の履歴 |
| ローカルファイル | 画像、テキスト、スプレッドシート等 | 設計図、データサンプル |
| テキストコンテンツ | 議事録、メモ、トランスクリプト | 会議内容、口頭説明の記録 |
重要な仕様:
- リポジトリを追加すると、常に
mainブランチの最新版が参照されます - ファイルやフォルダを具体的に指定すると、より精度の高い回答が得られます
2.3 コードビューからの直接追加
GitHub上でファイルを閲覧中、ファイル上部のボタンから直接Spaceに追加できます。作業フローを中断せずに文脈を構築できる実用的な機能です。
3. Spacesの共有とコラボレーション
Spacesの価値は、チーム全体で文脈を共有できる点にあります。
3.1 組織所有のSpace
組織に属するSpaceでは、きめ細かな権限管理が可能です。
3.2 個人所有のSpace
個人アカウントのSpaceは以下の共有オプションがあります。
- 特定のGitHubユーザーとの共有(権限レベル選択可能)
- 公開共有(リンクを知っている全員がアクセス可能)
- プライベート(自分のみ)
注意点: 公開共有されたSpaceは閲覧のみ可能で、閲覧者は自身がアクセス権を持つソースのみ参照できます。
3.3 実践的な活用例
| ユースケース | Space構成例 | 期待される効果 |
|---|---|---|
| オンボーディング | コード、ドキュメント、図表、チェックリスト | 新規メンバーの立ち上がり時間短縮 |
| システム知識共有 | 認証フロー、CIパイプライン関連ドキュメント | 複雑なシステムの理解促進 |
| レビュー基準 | アクセシビリティチェックリスト、製品ガイドライン、WCAG文書 | レビュー品質の標準化 |
具体例:
アクセシビリティ担当者が「アクセシビリティレビュー」Spaceを作成し、チーム内のチェックリスト、製品ガイドライン、WCAG文書を登録します。開発者は実装中にこのSpaceで質問することで、最新のガイドラインに沿った開発を進められます。
4. MCP(Model Context Protocol)とは
MCPは、アプリケーションとLLM(大規模言語モデル)が文脈を共有するための標準プロトコルです。GitHub MCP Serverはこの標準に基づき、GitHubの機能をCopilot Chatから直接利用できるようにします。
4.1 アーキテクチャ
4.2 GitHub MCP Serverの特徴
- 利用対象: 全GitHubユーザー(プラン不問)
- ただし: 一部ツールはそれぞれの機能要件を継承(例: Copilot Coding Agentツールは有料ライセンス必須)
- メンテナンス: GitHub公式提供・保守
5. GitHub MCP Serverのセットアップ
5.1 VS Codeでのセットアップ(推奨方法)
最も簡単な方法は、MCP Registry(マーケットプレイス)経由のインストールです。
手順:
- VS Codeで拡張機能パネルを開く(
Ctrl+Shift+X/Cmd+Shift+X) - フィルターアイコンをクリックし、
MCP Serverを選択 - 初回利用時は画面の指示に従いマーケットプレイスを有効化
- 検索バーで
githubを検索 - GitHub MCP Serverを選択し、
Installをクリック - コマンドパレット(
Ctrl+Shift+P/Cmd+Shift+P)でMCP: List Serversを実行し、githubが表示されることを確認
5.2 手動設定(リモートサーバー)
より詳細な制御が必要な場合は、手動設定も可能です。
OAuth認証の例:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/"
}
}
}
PAT(Personal Access Token)認証の例:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${input:github_mcp_pat}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "github_mcp_pat",
"description": "GitHub PAT",
"password": true
}
]
}
5.3 手動設定(ローカルサーバー)
Dockerを使用したローカル実行の設定例です。
{
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub PAT",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
}
}
}
}
6. 利用可能なツールセット
GitHub MCP Serverには複数のツールセットが用意されています。
6.1 デフォルトツールセット
自動的に有効化されるツールセットです。
-
repos: リポジトリ情報の取得、検索 -
issues: Issueの作成、更新、検索 -
pull_requests: PRの作成、レビュー、マージ
6.2 追加可能なツールセット
明示的に有効化が必要なツールセットです。
| ツールセット | 機能 | 用途 |
|---|---|---|
actions |
GitHub Actions操作 | ワークフロー管理、実行履歴確認 |
code_security |
セキュリティ機能 | 脆弱性スキャン、依存関係管理 |
secret_protection |
シークレット保護 | プッシュ保護、シークレット検出 |
copilot_spaces |
Spaces統合 | IDE内からSpacesアクセス |
6.3 リモート専用ツールセット
リモートMCP Serverでのみ利用可能です。
-
copilot: Copilot Coding Agent機能(有料ライセンス必須) -
github_support_docs_search: GitHubサポートドキュメント検索
6.4 ツールセットの設定方法
明示的に有効化が必要なツールセットです。
リモートサーバー(HTTPヘッダー):
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Toolsets": "default,actions,code_security"
}
}
}
}
ローカルサーバー(環境変数):
export GITHUB_MCP_TOOLSETS="default,actions,code_security"
./github-mcp-server stdio
よく使う組み合わせ:
{
"headers": {
"X-MCP-Toolsets": "all"
}
}
上記の設定で全ツールセットを一度に有効化できます。
7. SpacesとMCPの連携
SpacesとMCPを組み合わせることで、IDE内で直接Spacesの文脈を活用できます。
7.1 前提条件
- GitHub MCP Serverが設定済み
- Spacesツールセットが有効化されている
設定例:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"X-MCP-Toolsets": "default,copilot_spaces"
}
}
}
}
または、Spaces専用URL:
{
"servers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/x/copilot_spaces"
}
}
}
注意: 専用URLはSpacesツールのみ提供します。
7.2 IDE内での使用方法
プロンプト例:
所有者がmyorganizationの'チェックアウトフロー再設計'という
Copilot Spaceを使用して、実装計画を要約してください。
チェックアウトフロー再設計のCopilot Spaceから実装計画を要約してください。
後者の場合、Copilotが自動的にlist_copilot_spacesツールで該当Spaceを検索します。
制限事項:
- IDE内ではリポジトリコンテキストは非サポート
- その他すべてのソースとInstructionsは利用可能
8. 実践的な活用シーン
8.1 新規Issue作成の自動化
プロンプト:
リポジトリ yamada/my-app に「パフォーマンス改善」というラベルで
新しいIssueを作成してください。タイトルは「ページロード時間の最適化」、
本文には現在のロード時間が3秒かかっていることと、
目標が1秒以内であることを記載してください。
MCPがissuesツールセットを使用し、指定内容でIssueを作成します。
8.2 PR情報の取得とレビュー準備
プロンプト:
リポジトリ yamada/my-app の未解決PRをすべて表示し、
各PRの変更ファイル数とレビューステータスを教えてください。
MCPがpull_requestsツールセットでPR一覧を取得し、整理して表示します。
8.3 Spacesを活用した実装支援
Space設定:
- 名前: "認証システム仕様"
- Sources: 認証フローの図、セキュリティガイドライン、既存実装コード
- Instructions: "OAuth 2.0に基づいた認証実装の支援を行う"
IDE内プロンプト:
'認証システム仕様'のSpaceを使用して、
パスワードリセット機能の実装方針を提案してください。
Copilotは登録されたドキュメントとコードを参照し、プロジェクト固有の実装方針を提案します。
8.4 GitHub Actionsワークフローの確認
actionsツールセットを有効化した状態で:
プロンプト:
リポジトリ yamada/my-app の最新のCI/CDワークフロー実行結果を確認し、
失敗しているジョブがあれば詳細を教えてください。
8.5 セキュリティスキャン結果の確認
code_securityツールセットを有効化した状態で:
プロンプト:
リポジトリ yamada/my-app で検出されている脆弱性を
重要度順にリストアップしてください。
9. Enterprise環境での利用
GitHub Enterprise ServerおよびGitHub Enterprise Cloud(データレジデンシー付き)でも利用可能です。
9.1 サポート状況
| デプロイタイプ | リモートMCP | ローカルMCP |
|---|---|---|
| Enterprise Cloud(データレジデンシー) | ✅ サポート | ✅ サポート |
| Enterprise Server | ❌ 非サポート | ✅ サポート |
9.2 Enterprise Cloud(データレジデンシー)の設定
リモートMCPサーバーのURL変更が必要です。
例: インスタンスがhttps://octocorp.ghe.comの場合
OAuth認証:
{
"servers": {
"github": {
"type": "http",
"url": "https://copilot-api.octocorp.ghe.com/mcp"
}
}
}
PAT認証:
{
"servers": {
"github": {
"type": "http",
"url": "https://copilot-api.octocorp.ghe.com/mcp",
"headers": {
"Authorization": "Bearer ${input:github_mcp_pat}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "github_mcp_pat",
"description": "GitHub PAT",
"password": true
}
]
}
VS Code設定にもエンタープライズインスタンスを指定します。
{
"github-enterprise.uri": "https://copilot-api.octocorp.ghe.com/mcp"
}
9.3 Enterprise Serverの設定
ローカルMCPサーバーのみサポートされます。GITHUB_HOST環境変数または--gh-hostフラグで指定します。
⚠️ 重要: https://スキームを明示的に指定してください(デフォルトはhttp://でEnterprise Serverは非サポート)。
Docker使用例:
{
"inputs": [
{
"type": "promptString",
"id": "github_token",
"description": "GitHub PAT",
"password": true
}
],
"servers": {
"github": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"-e",
"GITHUB_HOST",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
"GITHUB_HOST": "https://github.example.com"
}
}
}
}
ソースからビルドした場合:
# 環境変数
export GITHUB_HOST="https://github.example.com"
./github-mcp-server stdio
# またはコマンドラインフラグ
./github-mcp-server --gh-host "https://github.example.com" stdio
10. トラブルシューティング
10.1 認証エラー
確認項目:
- IDEでGitHubにサインインしているか
- PAT使用時: トークンが有効で必要なスコープを持っているか
- PATが正しく入力されているか
10.2 Copilot Agentモードの問題
確認項目:
- Copilot ChatでAgentモードを選択しているか
- MCPサーバーがIDEで正しく設定されているか
- 実行しようとしているアクションに必要な権限があるか
10.3 Push Protection警告
MCPサーバー使用中にプッシュ保護がシークレットをブロックした場合、正当な理由があればバイパス理由を指定して許可できます。
10.4 一般的なトラブルシューティング
- MCPサーバーのログで詳細なエラーメッセージを確認
- ローカル実行の場合、Docker環境が正しく設定されているか確認
- MCPサーバーまたはIDEを再起動
- VS Codeのコマンドパレットから
MCP: List Serversで設定を確認
まとめ
GitHub Copilot SpacesとMCPは、AIとの協働における文脈管理を根本的に改善します。
Spacesの価値:
- チーム全体で文脈を共有・更新可能
- プロジェクト固有の知識をCopilotに組み込み
- オンボーディングや知識伝達の効率化
MCPの価値:
- IDE内でGitHub機能を直接操作
- 作業フローを中断せずに情報取得・操作実行
- カスタムMCPサーバーによる拡張性
連携による相乗効果:
- IDE内でSpacesの文脈を活用
- 一貫した開発体験の実現
- 文脈スイッチングコストの削減
これらの機能は、すでにCopilotライセンスを持っているユーザーであれば追加コストなしで利用できます。まずは小さなSpaceから始めて、チームでの活用方法を探ってみてください。