GitHub Copilotの設定 - MCPサーバ
概要
MCP (Model Context Protocol) は、Anthropicが開発したオープンプロトコルであり、LLMと外部ツール・サービスの統合を標準化する技術である。
MCPはAIのUSBと呼ばれ、GitHub Copilotの機能を拡張し、外部ツールやデータソースへのアクセスを可能にする。
GitHub CopilotにおけるMCPサーバは、以下に示す特徴を持つ。
- LLMと外部システムの統合を標準化
- ローカルサーバ (stdio) とリモートサーバ (HTTP / SSE) の2種類のトランスポート
- 複数のIDEでの統一された設定形式
- 組織・エンタープライズレベルでの一元管理
MCPサーバを使用することにより、以下に示すメリットが得られる。
- GitHub APIへのアクセス
- Issue作成、PR管理、リポジトリ情報取得、ブランチ作成、ユーザ検索
- ブラウザ自動化
- Webページのアクセス、操作、スクリーンショット撮影
- データベース操作
- SQLクエリの実行、スキーマ検査、テーブル情報の取得
- エラートラッキング
- Sentryとの連携によるエラーログの分析と監視
MCPサーバの種類
MCPサーバは、2種類のトランスポート方式で接続される。
ローカルサーバ (stdio)
ローカルプロセスとして実行されるMCPサーバである。
- トランスポート
- stdio (標準入出力)
- 起動方法
commandとargsで起動コマンドを指定
- 用途
- ローカルリソースへのアクセス (ファイルシステム、Webブラウザ自動化等)
- 実行環境
- ローカルマシン上で実行
ローカルサーバの例を以下に示す。
- Playwright MCP
- ブラウザ自動化とテスト
- Filesystem MCP
- ローカルファイルシステムの操作
- Memory Server
- ローカルメモリの管理
リモートサーバ (HTTP / SSE)
外部でホストされているMCPサーバである。
- トランスポート
- HTTP / SSE (Server-Sent Events)
- 接続方法
urlで接続先を指定
- 認証
- OAuth認証またはPAT (Personal Access Token) 認証
- 用途
- クラウドサービスへのアクセス (GitHub、Sentry、Supabase等)
リモートサーバの例を以下に示す。
- GitHub MCP
- GitHubリポジトリ、Issue、PRの管理
- Sentry MCP
- エラートラッキングと監視
- Cloudflare MCP
- Cloudflare連携
トランスポートの比較
下表に、トランスポートの種類と特徴を示す。
| トランスポート | 実行場所 | 起動方法 | 用途 | 推奨度 |
|---|---|---|---|---|
| stdio | ローカルマシン | command + args | ローカルリソースへのアクセス | 推奨 |
| HTTP | 外部サーバ | url | クラウドサービスへのアクセス | 推奨 |
| SSE | 外部サーバ | url | クラウドサービスへのアクセス | 非推奨 (HTTPへの移行推奨) |
対応IDE
MCPサーバは、複数のIDEで対応している。
IDE別の対応状況と設定方法を以下に示す。
VS Code
VS Codeでは、設定ファイル または settings.json でMCPサーバを設定する。
- 対応バージョン
- 1.102以降
- 設定ファイル
- .vscode/mcp.json または settings.json
- 自動設定されるMCPサーバ
- GitHub MCP、Playwright MCP
Visual Studio
Visual Studioでは、GUIダイアログまたは設定ファイルでMCPサーバを設定する。
- 対応バージョン
- 17.14以降
- 設定方法
- GUIダイアログまたは mcp.json
- 自動設定されるMCPサーバ
- GitHub MCP、Playwright MCP
JetBrains IDE
JetBrains IDE (IntelliJ IDEA、PyCharm、WebStorm等) では、MCP RegistryまたはローカルMCPサーバを設定する。
- 対応IDE
- IntelliJ IDEA、PyCharm、WebStorm、Rider等
- 設定方法
- MCP Registry経由またはローカルMCPサーバ (mcp.json)
- 自動設定されるMCPサーバ
- GitHub MCP、Playwright MCP
Xcode
Xcodeでは、設定メニューからMCPサーバを設定する。
- 設定方法
- 設定メニュー
- 自動設定されるMCPサーバ
- GitHub MCP、Playwright MCP
Eclipse
Eclipseでは、設定メニューからMCPサーバを設定する。
- 設定方法
- 設定メニュー
- 自動設定されるMCPサーバ
- GitHub MCP、Playwright MCP
対応IDE一覧
下表に、対応IDEと設定ファイルの配置場所を示す。
| IDE | 対応バージョン | 設定ファイル | 自動設定 |
|---|---|---|---|
| VS Code | 1.102以降 | .vscode/mcp.json settings.json |
GitHub MCP Playwright MCP |
| Visual Studio | 17.14以降 | mcp.json GUIダイアログ |
GitHub MCP Playwright MCP |
| JetBrains IDE | 最新版 | mcp.json MCP Registry |
GitHub MCP Playwright MCP |
| Xcode | 最新版 | 設定メニュー | GitHub MCP Playwright MCP |
| Eclipse | 最新版 | 設定メニュー | GitHub MCP Playwright MCP |
設定ファイルの書式
MCPサーバの設定ファイルは、JSON形式で記述される。
基本構造
VS Code用のMCPサーバ設定ファイルの基本構造を以下に示す。
{
"inputs": [],
"servers": {
"server-name": {
"command": "npx",
"args": ["-y", "package-name"]
}
}
}
inputs- 環境変数の入力定義 (オプション)
servers- MCPサーバの定義
server-name- MCPサーバの識別子
command- 起動コマンド (stdioサーバの場合)
args- コマンドライン引数 (stdioサーバの場合)
ローカルサーバ (stdio) の設定例
ローカルプロセスとして実行されるMCPサーバの設定例を以下に示す。
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
- memory
- メモリサーバ (npxで起動)
- fetch
- Fetchサーバ (uvxで起動)
- playwright
- Playwrightサーバ (npxで起動)
リモートサーバ (HTTP) の設定例
外部でホストされているMCPサーバの設定例を以下に示す。
{
"servers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"requestInit": {
"headers": {
"Authorization": "Bearer YOUR_PAT_HERE"
}
}
},
"sentry": {
"url": "https://mcp.sentry.dev/mcp"
}
}
}
url- MCPサーバのURL
requestInit- HTTPリクエストの初期化オプション
headers- HTTPヘッダ (認証情報等)
環境変数の使用
環境変数を使用して認証情報を管理する例を以下に示す。
{
"inputs": [
{
"type": "promptString",
"id": "api-key",
"description": "API Key",
"password": true
}
],
"servers": {
"example": {
"command": "npx",
"args": ["-y", "example-server"],
"env": {
"API_KEY": "${input:api-key}"
}
}
}
}
inputs- ユーザ入力の定義
type- 入力タイプ (promptString等)
id- 入力の識別子
password- パスワード入力かどうか (true/false)
env- 環境変数の設定
${input:api-key}- 入力された値を参照
GitHub MCPサーバ
GitHub MCPサーバは、GitHubが提供・保守する公式MCPサーバである。
概要
GitHub MCPサーバは、以下に示す機能を提供する。
- Issue作成
- 新しいIssueの作成
- PR管理
- Pull Requestの作成、レビュー、マージ
- リポジトリ情報取得
- リポジトリの情報、ファイル、コミット履歴の取得
- ブランチ作成
- 新しいブランチの作成
- ユーザ検索
- GitHubユーザの検索
IDE別の設定方法
IDE別のGitHub MCPサーバの設定方法を以下に示す。
VS Code
VS CodeでのGitHub MCPサーバ設定方法を以下に示す。
- GitHub Copilot拡張機能をインストールする。
- .vscode/mcp.json ファイルを作成する。
- 以下に示す内容を記述する。
{ "servers": { "github": { "url": "https://api.githubcopilot.com/mcp/" } } }
- GitHubアカウントにサインインする。
Visual Studio
Visual StudioでのGitHub MCPサーバ設定方法を以下に示す。
- GitHub Copilot拡張機能をインストールする。
- [ツール]メニューバー - [オプション] → [GitHub Copilot] → [MCPサーバ]を開く。
- [Add Server]を選択して、GitHub MCPサーバを追加する。
- GitHubアカウントにサインインする。
JetBrains IDE
JetBrains IDEでのGitHub MCPサーバ設定方法を以下に示す。
- GitHub Copilotプラグインをインストールする。
- [ファイル]メニューバー - [設定] - [ツール] → [GitHub Copilot] → [MCPサーバ]を開く。
- MCP Registryから[GitHub MCP]を選択する。
- GitHubアカウントにサインインする。
認証方法
GitHub MCPサーバの認証方法を以下に示す。
- GitHubアカウントへのサインイン
- IDEからGitHubアカウントにサインインする。
- PAT (Personal Access Token) 認証
- GitHubのPATを使用して認証する。
- 設定ファイルの
AuthorizationヘッダにPATを指定する。 - PAT認証の設定例を以下に示す。
{ "servers": { "github": { "url": "https://api.githubcopilot.com/mcp/", "requestInit": { "headers": { "Authorization": "Bearer YOUR_GITHUB_PAT" } } } } }
Copilot Coding Agentとの統合
Copilot Coding Agentは、MCPサーバと統合してワークフローを自動化できる。
対応機能
Copilot Coding AgentにおけるMCPサーバの対応機能を以下に示す。
- ツールのみサポート
- MCPサーバのツールのみサポート (リソース、プロンプトは非対応)
- OAuth認証リモートサーバは非対応
- OAuth認証を使用するリモートサーバは非対応
- stdio (ローカルサーバ) のみ対応
- stdioトランスポートのローカルサーバのみ対応
自動設定されるMCPサーバ
Copilot Coding Agentには、以下に示すMCPサーバが自動設定される。
- GitHub MCP
- Issue、PRなどのGitHubデータにアクセス
- Playwright MCP
- Webページのアクセス、操作、スクリーンショット撮影
カスタムMCPサーバの追加
Copilot Coding Agent用のカスタムMCPサーバは、リポジトリ設定ファイルで定義する。
- 設定ファイル
- .github/copilot/mcp.json
- 形式
- JSON形式
- スコープ
- リポジトリレベル
設定例を以下に示す。
{
"mcpServers": {
"server-name": {
"type": "local",
"command": "npx",
"args": ["package-name"],
"tools": ["tool_name"],
"env": {
"KEY": "value"
}
}
}
}
type- サーバタイプ (local のみ対応)
command- 起動コマンド
args- コマンドライン引数
tools- 使用可能なツール名のリスト
env- 環境変数の設定
copilot-setup-steps.yml
copilot-setup-steps.yml は、Copilot Coding Agentの依存関係のインストールに使用される。
- 配置場所
- .github/copilot-setup-steps.yml
- 用途
- MCPサーバの依存関係をインストールする
- 形式
- GitHub Actions Workflow形式
設定例を以下に示す。
name: Copilot Setup Steps
on: workflow_dispatch
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
npm install -g @package/mcp-server
この設定により、Copilot Coding AgentがMCPサーバを使用する前に、必要な依存関係が自動的にインストールされる。
組織・エンタープライズでのMCP管理
GitHub Copilot Business、Copilot Enterpriseでは、組織・エンタープライズレベルでMCPサーバを一元管理できる。
ポリシー設定
MCPサーバの使用を制御するポリシー設定を以下に示す。
- ポリシー名
- MCP servers in Copilot
- デフォルト設定
- 無効 (ユーザはMCPサーバを使用できない)
- 対象
- Copilot Business、Copilot Enterprise
- 設定方法
- GitHub組織設定から有効化
ポリシー設定の手順を以下に示す。
- GitHub組織設定を開く。
- [Copilot] - [Policies] を選択する。
- [MCP servers in Copilot]を有効化する。
- アクセス制御オプションを選択する。
MCPレジストリ
MCPレジストリは、組織で承認されたMCPサーバの一覧である。
- 設定方法
- GitHub組織設定から設定
- 用途
- 組織で使用可能なMCPサーバを制限
- アクセス制御
- Allow all (全て許可) または Registry only (レジストリのみ)
MCPレジストリの設定手順を以下に示す。
- GitHub組織設定を開く。
- [Copilot] → [MCP Registry] を選択する。
- 承認するMCPサーバを追加する。
- アクセス制御オプションを選択する。
アクセス制御オプション
MCPサーバのアクセス制御オプションを以下に示す。
- Allow all
- 全てのMCPサーバを許可
- ユーザは任意のMCPサーバを使用可能
- Registry only
- MCPレジストリに登録されたサーバのみ許可
- ユーザは承認されたMCPサーバのみ使用可能
下表に、アクセス制御オプションの比較を示す。
| オプション | 説明 | セキュリティ | 柔軟性 |
|---|---|---|---|
| Allow all | 全てのMCPサーバを許可 | 低 | 高 |
| Registry only | MCPレジストリに登録されたサーバのみ許可 | 高 | 低 |
カスタムエージェントとMCPサーバ
組織・エンタープライズレベルのカスタムエージェントでは、MCPサーバを設定できる。
mcp-serversプロパティ
カスタムエージェントのYAMLフロントマターで、MCPサーバを定義する。
- 設定場所
- カスタムエージェントファイルのYAMLフロントマター
- プロパティ名
mcp-servers
- 対象レベル
- 組織レベル、エンタープライズレベル
設定例を以下に示す。
---
name: security-reviewer
description: セキュリティレビュー専門エージェント
mcp-servers:
- name: jfrog-security
url: https://mcp.jfrog.com/security
env:
JFROG_API_KEY: ${{ secrets.JFROG_SECURITY_API_KEY }}
---
name- MCPサーバの識別子
url- MCPサーバのURL
env- 環境変数の設定
環境変数の参照形式
カスタムエージェントのMCPサーバ設定では、以下に示す 環境変数参照形式 を使用できる。
- GitHub Actions形式
${{ secrets.SECRET_KEY }}
- 変数参照形式
${{ var.VARIABLE_NAME }}
- Claude Code構文
${SECRET_KEY}
- 標準形式
$SECRET_KEY
環境変数参照の例を以下に示す。
mcp-servers:
- name: example-server
url: https://example.com/mcp
env:
API_KEY: ${{ secrets.EXAMPLE_API_KEY }}
BASE_URL: ${{ var.EXAMPLE_BASE_URL }}
人気のMCPサーバ一覧
コミュニティによって開発された人気のMCPサーバを示す。
開発ツール
開発ツール向けのMCPサーバを以下に示す。
Playwright MCP
ブラウザ自動化とテストを実行する。
- 機能
- ブラウザ操作の自動化、Webページのテスト、スクリーンショット撮影、スクレイピング
- 自動設定
- Copilot Coding Agentで自動設定
- パッケージ名
- @playwright/mcp@latest
VS Code設定例を以下に示す。
{
"servers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
}
}
}
Fetch MCP
Webコンテンツ取得を実行する。
- 機能
- Webページのコンテンツ取得、HTMLのパース、APIリクエスト
- パッケージ名
- mcp-server-fetch
VS Code設定例を以下に示す。
{
"servers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
Memory Server
ローカルメモリの管理を実行する。
- 機能
- セッション間でのコンテキスト保持、データの永続化
- パッケージ名
- @modelcontextprotocol/server-memory
VS Code設定例を以下に示す。
{
"servers": {
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}
}
}
監視・デバッグ
監視・デバッグ向けのMCPサーバを以下に示す。
Sentry MCP
エラートラッキングと監視を実行する。
- 機能
- エラーログの分析、パフォーマンス監視、問題の診断
- URL
VS Code設定例を以下に示す。
{
"servers": {
"sentry": {
"url": "https://mcp.sentry.dev/mcp"
}
}
}
その他
その他のMCPサーバを以下に示す。
Cloudflare MCP
Cloudflare連携を提供する。
- 機能
- Cloudflare Workers、KV、R2の管理
トラブルシューティング
MCPサーバが認識されない
- 設定ファイルが正しい場所に配置されているかどうかを確認する。
- VS Code
- .vscode/mcp.json または settings.json
- Visual Studio
- mcp.json
- JetBrains IDE
- mcp.json
- VS Code
- JSON構文が正しいかどうかを確認する。
- IDEを再起動する。
接続エラー
- MCPサーバのURLが正しいかどうかを確認する。
- 認証情報が正しいかどうかを確認する。
- ネットワーク接続を確認する。
- ファイアウォール設定を確認する。
ログの確認方法
VS Code
VS Codeでのログ確認方法を以下に示す。
- [Ctrl] + [Shift] + [P]キーを同時押下して、コマンドパレットを開く。
- MCP: List Servers を実行する。
- サーバのログを確認する。
chat.mcp.autostart設定
chat.mcp.autostart 設定で、MCPサーバの自動再起動を制御できる。
- 設定場所
- settings.json
- デフォルト
- true
- 用途
- MCPサーバが停止した際に自動再起動する
設定例を以下に示す。
{
"chat.mcp.autostart": true
}
Docker使用時の注意事項
Docker使用時は、デタッチモード (-d) を避ける。
- 理由
- MCPサーバはフォアグラウンドで実行する必要がある
- 推奨
- デタッチモード (-d) を使用しない
Claude CodeのMCPとの比較
設定ファイルの違い
下表に、設定ファイルの違いを示す。
| 項目 | Claude Code | GitHub Copilot (VS Code) |
|---|---|---|
| 設定ファイル | ~/.claude.json .mcp.json (プロジェクトルート) |
.vscode/mcp.json settings.json |
| スコープ | local、project、user | リポジトリ、ワークスペース、ユーザ |
| 管理コマンド | claude mcp add claude mcp list claude mcp remove |
設定ファイルの直接編集 GUIダイアログ |
| 自動設定 | なし | GitHub MCP Playwright MCP |
スコープの違い
Claude CodeとGitHub Copilotのスコープの違いを以下に示す。
- Claude Code
- local (デフォルト)
- project
- user
- GitHub Copilot
- リポジトリ
- ワークスペース
- ユーザ
- 組織
- エンタープライズ
Claude Codeは、プロジェクト単位での管理に特化している。
GitHub Copilotは、組織・エンタープライズレベルでの一元管理に対応している。
比較表
下表に、Claude CodeとGitHub CopilotのMCPの比較を示す。
| 項目 | Claude Code | GitHub Copilot |
|---|---|---|
| 管理レベル | local、project、user | リポジトリ、ワークスペース、ユーザ、組織、エンタープライズ |
| 設定ファイル | ~/.claude.json .mcp.json |
.vscode/mcp.json settings.json .github/copilot/mcp.json |
| CLI管理 | claude mcp add claude mcp list claude mcp remove |
非対応 |
| 自動設定 | なし | GitHub MCP Playwright MCP |
| 組織管理 | 非対応 | 対応 (MCPレジストリ、ポリシー設定) |
| トランスポート | HTTP、stdio、SSE | HTTP、stdio、SSE |
| 用途 | プロジェクト単位での柔軟な管理 | 組織・エンタープライズレベルでの統一管理 |
関連項目
- GitHub Copilotの設定 - カスタム指示
- リポジトリ全体に適用されるカスタム指示 (.github/copilot-instructions.md)
- GitHub Copilotの設定 - パス固有カスタム指示
- パス固有の指示ファイル (.github/instructions/*.instructions.md)
- GitHub Copilotの設定 - AGENTS.md
- AIコーディングエージェント向けのオープンフォーマット (AGENTS.md)
- GitHub Copilotの設定 - サブエージェント
- サブエージェントの作成方法 (.github/agents/*.agent.md)
参考リンク
- GitHub Copilot公式ドキュメント - Using MCP servers in GitHub Copilot
- VS Code公式ドキュメント - Copilot MCP architecture
- Model Context Protocol公式サイト
- MCP公式サーバリポジトリ