0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Tips - コンテキストの与え方

Last updated at Posted at 2025-12-24

Tips - コンテキストの与え方

GitHub CopilotにSpacesとMCP(Model Context Protocol)という2つの機能が加わりました。これらは単なる追加機能ではなく、AIとの協働における文脈管理の問題に対する実践的な解決策です。本記事では、両機能の仕組みと実際の活用方法について解説します。

目次

  1. GitHub Copilot Spacesとは
  2. Spacesの構成要素
  3. Spacesの共有とコラボレーション
  4. MCP(Model Context Protocol)とは
  5. GitHub MCP Serverのセットアップ
  6. 利用可能なツールセット
  7. SpacesとMCPの連携
  8. 実践的な活用シーン
  9. Enterprise環境での利用
  10. トラブルシューティング

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(マーケットプレイス)経由のインストールです。

手順:

  1. VS Codeで拡張機能パネルを開く(Ctrl+Shift+X / Cmd+Shift+X)
  2. フィルターアイコンをクリックし、MCP Serverを選択
  3. 初回利用時は画面の指示に従いマーケットプレイスを有効化
  4. 検索バーでgithubを検索
  5. GitHub MCP Serverを選択し、Installをクリック
  6. コマンドパレット(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 前提条件

  1. GitHub MCP Serverが設定済み
  2. 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 一般的なトラブルシューティング

  1. MCPサーバーのログで詳細なエラーメッセージを確認
  2. ローカル実行の場合、Docker環境が正しく設定されているか確認
  3. MCPサーバーまたはIDEを再起動
  4. VS CodeのコマンドパレットからMCP: List Serversで設定を確認

まとめ

GitHub Copilot SpacesとMCPは、AIとの協働における文脈管理を根本的に改善します。

Spacesの価値:

  • チーム全体で文脈を共有・更新可能
  • プロジェクト固有の知識をCopilotに組み込み
  • オンボーディングや知識伝達の効率化

MCPの価値:

  • IDE内でGitHub機能を直接操作
  • 作業フローを中断せずに情報取得・操作実行
  • カスタムMCPサーバーによる拡張性

連携による相乗効果:

  • IDE内でSpacesの文脈を活用
  • 一貫した開発体験の実現
  • 文脈スイッチングコストの削減

これらの機能は、すでにCopilotライセンスを持っているユーザーであれば追加コストなしで利用できます。まずは小さなSpaceから始めて、チームでの活用方法を探ってみてください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?