Spaces & MCP
Copilot Spacesによるコンテキスト集約、Model Context Protocol(MCP)連携、Extensions、Memory機能など、GitHub Copilotのエコシステムを拡張する機能群を解説します。
Copilot Spacesとは
Copilot Spacesは、プロジェクトに関連するコンテキストを1つの場所に集約・整理するための機能です。リポジトリ、コード、Pull Request、Issue、メモ、画像、ファイルなどを1つのSpaceにまとめ、Copilotに効率的にコンテキストを提供できます。
- コンテキストの集約 — 複数のリポジトリやドキュメントを1つのSpaceにまとめて管理
- 自動更新 — GitHubソース(リポジトリ、Issue、PR)は変更に応じて自動的に最新状態に同期
- 全プラン利用可能 — FreeプランからEnterpriseまで、全てのCopilotプランで利用可能
- チーム共有 — Spaceをチームメンバーと共有し、同じコンテキストでAI支援を受けられる
Copilot Spacesは2025年後半にパブリックプレビューとして登場し、2026年に全プランで利用可能になりました。GitHub.com上でブラウザから直接利用できます。
Spacesの使い方
Spaceの作成
-
新規Space作成
GitHub.comのCopilotメニューから「Spaces」を選択し、「New Space」をクリックします。 -
ソースの追加
リポジトリ、特定のファイル/フォルダ、Issue、Pull Request、またはフリーテキストのメモを追加します。 -
コンテキストの整理
追加したソースにラベルや説明を付けて、Copilotがコンテキストを理解しやすいように整理します。
共有と権限
Spaceは3つの権限レベルで共有できます。
| 権限 | 閲覧 | ソース追加 | 設定変更 |
|---|---|---|---|
| Admin | 可 | 可 | 可 |
| Editor | 可 | 可 | 不可 |
| Viewer | 可 | 不可 | 不可 |
IDE連携
VS CodeからSpacesを利用するには、GitHub MCP Serverを経由して接続します。これにより、エディタ内のCopilot ChatやAgent ModeからSpaceのコンテキストを参照できます。
大規模なモノレポで作業する場合、関連するファイルやモジュールだけをSpaceに追加することで、Copilotに余計なコンテキストを与えず、より的確な提案を得られます。
MCP連携
Copilot Business / Enterprise環境では、MCPサーバー利用はポリシーで制御され、既定では無効です。組織管理者またはエンタープライズ管理者が「MCP servers in Copilot」ポリシーを有効化する必要があります。個人設定やIDE設定だけでは利用開始できないことがあります。
Model Context Protocol(MCP)は、AIモデルに外部ツールやデータソースを接続するためのオープンプロトコルです。GitHub CopilotはMCPに対応しており、VS Code設定またはCLIから外部ツール、データベース、APIをCopilotに接続できます。
VS Codeでの設定
{
"mcp": {
"servers": {
"github": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx"
}
}
}
}
}CLIでの設定
MCP設定のCLI操作は変更される可能性があります。最新のコマンド構文は公式Docsを参照してください。VS Code設定(settings.json)での設定が最も安定した方法です。
主なMCPサーバー
- GitHub MCP Server — GitHub API(Issue、PR、リポジトリ検索)にアクセス
- Playwright MCP Server — ブラウザ操作・テスト自動化
- Database MCP Server — PostgreSQL、MySQL等のデータベースに接続
- Slack MCP Server — Slackチャンネルの情報をコンテキストとして利用
MCPサーバーはCopilotに外部リソースへのアクセス権を与えます。信頼できるサーバーのみを接続し、トークンやクレデンシャルの管理に注意してください。
MCP接続の最小権限の原則
MCPサーバーをCopilotに接続する際は、必要最小限の権限のみを付与してください。
実践ルール:
- 読み取り専用から始める — 最初は読み取り権限のみ付与し、書き込みが必要になったら追加
- 環境変数でトークンを管理 — ハードコードしない。
.envは.gitignoreで管理し、Content Exclusion設定で保護 - スコープを限定 — GitHubトークンは
repo:readのみ、DB接続はSELECTのみ等 - 本番環境のMCP接続は原則禁止 — 開発/ステージング環境のみ接続
mcp.json設定例(最小権限):
{
"servers": {
"github": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN_READONLY}"
}
},
"playwright": {
"command": "npx",
"args": ["playwright", "mcp"],
"env": {}
}
}
}MCPサーバーに過剰な権限を与えると、エージェントが意図せずデータを削除・変更するリスクがあります。特にDB接続は読み取り専用から始め、書き込みが必要な場合は明示的にレビュープロセスを設けてください。
mcp.jsonファイルはリポジトリにコミットし、チームで共有できます。ただし、トークンは環境変数(${VAR}構文)で参照し、値をハードコードしないでください。
.vscode/mcp.json による設定
VS Codeプロジェクトごとのmcp.json設定です。リポジトリにコミットしてチーム共有できます。
{
"servers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
},
"github": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
"ghcr.io/github/github-mcp-server"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}.vscode/mcp.json はプロジェクトスコープの設定です。リポジトリにコミットしてチーム共有できます。ユーザーレベルの設定(settings.json)より優先されます。
Copilot Extensions
Copilot Extensionsは、サードパーティが提供するエージェントやツールをGitHub Copilotに統合する仕組みです。GitHub Marketplaceから導入でき、Copilot Chatで @extension-name のメンション形式で呼び出せます。
導入方法
-
Marketplaceで検索
GitHub Marketplace のCopilot Extensionsカテゴリから目的のExtensionを探します。 -
インストール
「Install」をクリックし、対象のOrganizationまたは個人アカウントにインストールします。 -
利用開始
Copilot Chatで@extension-nameと入力して呼び出します。例:@docker コンテナの最適化方法を教えて
主なExtensions
- @docker — Dockerfileの最適化、コンテナ設定の支援
- @sentry — エラートラッキングとデバッグ情報の統合
- @datadog — モニタリングデータの参照と分析
- @mermaid — 図表の生成とコードへの統合
Copilot Extensionsは独自に開発することも可能です。GitHub AppとしてExtensionを作成し、Marketplaceに公開できます。
Copilot Memory
Copilot Memoryは、リポジトリ固有のコーディング慣習やパターンをセッション間で記憶する機能です。Copilot Memoryはパブリックプレビューとして提供されています。利用可能なプランや条件は変わる可能性があるため、最新の情報は公式Docsを確認してください。記憶データは一定期間後に自動削除されます。
仕組み
- 自動学習 — Copilotがコードベースの慣習(命名規則、パターン、設計方針)を徐々に学習
- セッション持続 — 学習した内容はセッションをまたいで保持され、次回起動時にも反映
- 明示的な記録 — Copilot Chatで「これを覚えて」と指示することで、特定のルールを明示的に記憶させることも可能
管理と制御
記憶された内容はGitHub.comの設定画面で確認・削除できます。プライバシーやセキュリティ上の懸念がある場合は、個別のMemoryエントリを削除できます。
Memory機能は copilot-instructions.md を補完する位置づけです。明示的なルールは指示ファイルに書き、暗黙的な慣習(「このプロジェクトではいつもこう書いている」)はMemoryに任せると効果的です。
その他の機能
Code Review
Pull Requestに対するAI自動レビュー機能です。PRを作成するとCopilotが自動でコードを分析し、バグリスク、セキュリティ懸念、改善提案をレビューコメントとして投稿します。カスタム指示でレビュー基準をカスタマイズ可能です。
PR Summaries
PRの説明文を自動生成する機能です。変更内容を分析し、変更の要約、影響範囲、テスト観点を含む説明文をMarkdownで生成します。PRテンプレートと組み合わせることで、一貫した品質のPR説明文を維持できます。
GitHub Desktop連携
GitHub DesktopアプリでCopilotによるコミットメッセージの自動生成が利用できます。ステージされた変更内容を分析し、Conventional Commits形式のメッセージを提案します。
GitHub Spark
自然言語でフルスタックWebアプリケーションを構築できる実験的な機能です。プロンプトを入力するだけで、フロントエンド・バックエンド・データベースを含むアプリケーションが自動生成されます。プロトタイピングや社内ツールの構築に活用できます。
GitHub Copilotの機能は急速に進化しています。最新の機能一覧と利用可能なプランについては、GitHub Copilot公式ドキュメントを確認してください。