はじめに

GitHub Copilot Chatは強力なAIアシスタントですが、外部サービスやローカルファイルシステムとの連携には制限があります。そこで登場するのが MCP(Model Context Protocol)サーバー です。

MCPは、AIモデルと外部ツール・サービスを統一されたインターフェースで接続するためのオープンスタンダードです。GitHub CopilotとMCPサーバーを連携させることで、データベース操作、Webコンテンツ取得、GitHub APIアクセスなど、Copilot Chatの機能を大幅に拡張できます。

本記事では、GitHub CopilotでMCPサーバーを導入・活用する方法を詳しく解説します。この記事を読むことで、以下のことができるようになります:

  • MCPサーバーの仕組みとメリットを理解する
  • VS CodeでMCPサーバーを設定・管理する
  • GitHub MCP Registryから公式サーバーをインストールする
  • 実務で役立つMCPサーバーの活用パターンを把握する

MCPサーバーとは

Model Context Protocolの概要

Model Context Protocol(MCP)は、大規模言語モデル(LLM)と外部アプリケーション間でコンテキストを共有するためのオープンスタンダードです。MCPサーバーは、このプロトコルに従ってツール、リソース、プロンプトを提供するサービスとして機能します。

VS CodeにおけるMCPサーバーは、以下の3種類のツール拡張方法の1つです:

拡張方法 説明
組み込みツール VS Code標準で利用可能 ファイル操作、ターミナル実行
拡張機能提供ツール VS Code拡張機能が提供 Docker、Azure連携
MCPサーバー 外部プロセスとして動作 GitHub API、データベース接続

MCPサーバーが提供する機能

MCPサーバーは、主に以下の3つの機能をCopilot Chatに提供します。

ツール(Tools)

MCPサーバーの中核機能です。ファイル取得、API呼び出し、データベースクエリなど、特定のアクションを実行するツールを定義します。Agentモードでは、Copilotが自動的に適切なツールを選択して実行します。

リソース(Resources)

MCPサーバーが管理するデータソースへのアクセスを提供します。たとえば、GitHub MCPサーバーはリポジトリのコンテンツをリソースとして公開し、Copilot Chatのコンテキストとして利用できます。

プロンプト(Prompts)

よく使うタスク向けの事前定義されたプロンプトを提供します。チャット入力欄で /mcp.servername.promptname の形式でスラッシュコマンドとして呼び出せます。

前提条件

MCPサーバーをGitHub Copilotで使用するには、以下の環境が必要です。

項目 要件
VS Code バージョン1.102以降(MCP機能がGA)
GitHub Copilot拡張機能 最新版をインストール
GitHub Copilotサブスクリプション Copilot Free、Pro、Pro+、Business、Enterpriseのいずれか
ランタイム環境 MCPサーバーに応じてNode.js、Python(uvx)、Dockerなど

Copilot BusinessまたはEnterpriseを利用している場合は、組織管理者が「MCP servers in Copilot」ポリシーを有効化している必要があります。このポリシーはデフォルトで無効になっています。

MCPサーバーの設定方法

VS CodeでMCPサーバーを設定するには、主に2つの方法があります:GitHub MCP Registryからのインストールと、手動での設定ファイル作成です。

GitHub MCP Registryからインストール

GitHub MCP Registryは、公式にキュレーションされたMCPサーバーの一覧を提供しています。拡張機能ビューから直接インストールできるため、最も簡単な導入方法です。

手順

  1. VS Codeで設定を開き、chat.mcp.gallery.enabled を有効化します
  2. 拡張機能ビュー(Ctrl+Shift+X)を開きます
  3. 検索欄に @mcp と入力するか、フィルターアイコンから「MCP Registry」を選択します
  4. 利用したいMCPサーバーを選択し、「Install」をクリックします
  5. ユーザープロファイルへのインストールか、ワークスペースへのインストールかを選択します

インストール後、コマンドパレット(Ctrl+Shift+P)から MCP: List Servers を実行すると、設定されたサーバー一覧を確認できます。

mcp.jsonファイルで手動設定

チームで共有したい場合や、カスタム設定が必要な場合は、設定ファイルを手動で作成します。

ワークスペース設定(プロジェクト共有向け)

プロジェクトルートに .vscode/mcp.json ファイルを作成します。この設定はリポジトリにコミットでき、チームメンバー全員が同じMCPサーバー構成を利用できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "inputs": [],
  "servers": {
    "fetch": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    }
  }
}

ユーザー設定(個人利用向け)

VS Codeの settings.json にMCPサーバー設定を追加すると、すべてのワークスペースで利用できます。コマンドパレットから MCP: Open User Configuration を実行すると、ユーザー設定用のmcp.jsonを開けます。

設定ファイルの構造

mcp.jsonは主に2つのセクションで構成されます。

servers セクション

MCPサーバーの定義を記述します。サーバー名はキャメルケース(camelCase)で一意に命名してください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github-token}"
      }
    }
  }
}

inputs セクション

APIキーやパスワードなど、機密情報のプレースホルダーを定義します。サーバー起動時にVS Codeが入力を求め、安全に保存します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "inputs": [
    {
      "type": "promptString",
      "id": "github-token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

トランスポートタイプ

MCPサーバーは、通信方式(トランスポート)によって設定が異なります。

stdio(標準入出力)

ローカルで実行するMCPサーバーで最も一般的なタイプです。

1
2
3
4
5
6
7
8
9
{
  "servers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"]
    }
  }
}

http / sse(HTTP通信)

リモートサーバーやWebサービスと連携する場合に使用します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
  "servers": {
    "remote-api": {
      "type": "http",
      "url": "https://api.example.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:api-token}"
      }
    }
  }
}

MCPサーバーの起動と管理

サーバーの起動

MCPサーバーを追加したら、サーバーを起動してツールを利用可能にします。

  1. .vscode/mcp.json ファイルを開くと、サーバー一覧の上に「Start」ボタン(コードレンズ)が表示されます
  2. 「Start」をクリックしてサーバーを起動します
  3. 初回起動時は信頼確認ダイアログが表示されるので、設定内容を確認して承認します

または、コマンドパレットから MCP: List Servers を実行し、対象サーバーを選択して「Start」を選ぶこともできます。

サーバー一覧の確認

以下の方法でインストール済みMCPサーバーを確認できます:

  • 拡張機能ビュー: 「MCP SERVERS - INSTALLED」セクションに一覧表示
  • コマンドパレット: MCP: List Servers で一覧と操作メニューを表示
  • mcp.jsonファイル: コードレンズで各サーバーのステータスを確認

自動起動の設定

設定変更のたびに手動で再起動するのが煩わしい場合は、自動起動を有効にできます。

VS Codeの設定で chat.mcp.autostart を有効にすると、設定変更を検知して自動的にMCPサーバーが再起動します。

サーバーのアンインストール

不要になったMCPサーバーは、以下の方法で削除できます:

  1. 拡張機能ビューの「MCP SERVERS - INSTALLED」セクションでサーバーを右クリック
  2. 「Uninstall」を選択

または、mcp.jsonファイルから該当サーバーの定義を直接削除してください。

Copilot ChatでMCPツールを使う

Agentモードでの自動呼び出し

MCPサーバーが提供するツールは、Copilot Chatの Agentモード で自動的に呼び出されます。

  1. Copilot Chatを開きます(Ctrl+Alt+I
  2. モード選択で「Agent」を選びます
  3. 自然言語でタスクを依頼します

たとえば、GitHub MCPサーバーを設定している場合:

私のGitHubリポジトリにあるオープンなIssueを一覧表示してください

Copilotは自動的にGitHub MCPサーバーのツールを選択し、Issue一覧を取得して表示します。

ツールピッカーでの選択

使用するツールを明示的に制御したい場合は、チャット入力欄のツールアイコンをクリックしてツールピッカーを開きます。MCPサーバーごとにツールがグループ化されており、個別にオン/オフを切り替えられます。

特定のツールだけをプロンプトで参照したい場合は、# に続けてツール名を入力します:

#fetch https://example.com のコンテンツを取得して要約してください

MCPリソースの活用

MCPサーバーが提供するリソース(データソース)をコンテキストとして追加できます。

  1. チャット入力欄の「Add Context」をクリック
  2. 「MCP Resources」を選択
  3. 利用したいリソースタイプを選びます

たとえば、GitHub MCPサーバーのリソースを使えば、特定リポジトリのファイル内容をコンテキストとしてCopilotに渡せます。

MCPプロンプトの呼び出し

MCPサーバーが定義するプロンプトテンプレートは、スラッシュコマンドで呼び出せます。

/mcp.github.create-issue

プロンプトによっては追加のパラメータ入力を求められます。サーバーが提供するプロンプト一覧は、コマンドパレットの MCP: List Servers から対象サーバーを選び、「Browse Prompts」で確認できます。

代表的なMCPサーバー

GitHub MCP Server

GitHubの公式MCPサーバーで、リポジトリ、Issue、プルリクエスト、ブランチなどの操作が可能です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github-token}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github-token",
      "description": "GitHub Personal Access Token (repo, read:org スコープ推奨)",
      "password": true
    }
  ]
}

主な機能

  • リポジトリの検索・作成
  • Issue/PRの作成・更新・コメント
  • ブランチ・タグの管理
  • ファイルコンテンツの取得

Fetch MCP Server

Webページのコンテンツを取得するシンプルなMCPサーバーです。外部ドキュメントの参照やWeb情報の収集に便利です。

1
2
3
4
5
6
7
8
9
{
  "servers": {
    "fetch": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    }
  }
}

このサーバーを使用するには、Python環境と uvx(uv パッケージマネージャー)がインストールされている必要があります。

Filesystem MCP Server

ローカルファイルシステムへのアクセスを提供します。指定したディレクトリ配下のファイル読み書きが可能です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "servers": {
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "${workspaceFolder}"
      ]
    }
  }
}

セキュリティ上、アクセス可能なディレクトリは引数で明示的に指定する必要があります。

PostgreSQL MCP Server

PostgreSQLデータベースへの接続を提供し、スキーマ確認やクエリ実行が可能です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "servers": {
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "${input:pg-connection}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "pg-connection",
      "description": "PostgreSQL接続文字列 (例: postgresql://user:pass@localhost/dbname)",
      "password": true
    }
  ]
}

セキュリティに関する注意事項

信頼性の確認

MCPサーバーはローカルマシン上で任意のコードを実行できます。以下の点に注意してください:

  • 信頼できるソース(公式リポジトリ、GitHub MCP Registry)からのみインストールする
  • サーバーの設定内容とコマンドを起動前に確認する
  • 不明なサーバーは本番環境のマシンにインストールしない

VS Codeは初回起動時に信頼確認ダイアログを表示します。設定内容を確認してから承認してください。信頼設定をリセットするには、コマンドパレットから MCP: Reset Trust を実行します。

機密情報の管理

APIキーやデータベース接続文字列は、mcp.jsonに直接記述せず、inputs セクションで定義してください。VS Codeが安全に保存・管理します。

環境変数ファイル(.envファイル)を使用する場合は、envFile プロパティで指定できます:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "servers": {
    "myserver": {
      "type": "stdio",
      "command": "node",
      "args": ["server.js"],
      "envFile": "${workspaceFolder}/.env"
    }
  }
}

.envファイルは .gitignore に追加し、リポジトリにコミットしないようにしてください。

組織でのポリシー管理

Copilot BusinessまたはEnterpriseを利用している組織では、管理者がMCPサーバーの使用を一元的に制御できます。GitHub Enterpriseの設定画面から「MCP servers in Copilot」ポリシーを有効化・無効化できます。

トラブルシューティング

サーバーが起動しない

症状: MCPサーバーの起動ボタンをクリックしても、サーバーがRunning状態にならない

確認ポイント:

  1. 必要なランタイム(Node.js、Python、Dockerなど)がインストールされているか
  2. command で指定した実行ファイルがPATHに含まれているか
  3. 引数やオプションが正しいか

出力ログを確認するには、コマンドパレットから MCP: List Servers を実行し、対象サーバーを選択して「Show Output」を選びます。

Dockerコンテナが動作しない

Dockerを使用するMCPサーバーでは、デタッチモード(-d オプション)を使用しないでください。VS Codeとの通信にはフォアグラウンド実行が必要です。

1
2
3
4
5
6
7
8
9
{
  "servers": {
    "docker-server": {
      "type": "stdio",
      "command": "docker",
      "args": ["run", "-i", "--rm", "mcp-server-image"]
    }
  }
}

ツールが128個を超えてエラーになる

モデルの制約により、1回のチャットリクエストで使用できるツールは最大128個です。多数のMCPサーバーをインストールしている場合は、ツールピッカーで必要なツールだけを有効にするか、Virtual Tools機能(github.copilot.chat.virtualTools.threshold 設定)を有効にしてください。

キャッシュされたツール情報をリセットしたい

MCPサーバーのツール一覧はVS Codeにキャッシュされます。サーバー側でツールが追加・変更された場合は、コマンドパレットから MCP: Reset Cached Tools を実行してキャッシュをクリアしてください。

まとめ

GitHub CopilotとMCPサーバーを連携させることで、Copilot Chatの機能を外部サービスやローカルリソースに拡張できます。本記事で解説した内容をまとめます:

  • MCPサーバー はAIモデルと外部ツールを統一インターフェースで接続するオープンスタンダード
  • GitHub MCP Registry から公式サーバーを簡単にインストール可能
  • mcp.json ファイルでワークスペース単位またはユーザー単位の設定が可能
  • Agentモード でMCPツールが自動的に呼び出され、自然言語でタスクを実行できる
  • セキュリティ に注意し、信頼できるソースからのみサーバーをインストールする

MCPエコシステムは急速に成長しており、さまざまなサービスと連携するサーバーが公開されています。GitHub MCP RegistryやModel Context Protocol公式リポジトリを定期的にチェックし、開発ワークフローに役立つサーバーを見つけてください。

参考リンク