はじめに

Visual Studio Code(VSCode)のChat機能は、GitHub Copilot Chatをはじめとする会話型AIアシスタントとの対話を可能にします。しかし、デフォルト設定のままでは、その真価を発揮できていないかもしれません。

本記事では、VSCode Chat設定の全体像を体系的に解説します。settings.jsonで設定できる主要なオプションから、カスタムインストラクション、MCPサーバー連携まで、開発効率を最大化するためのカスタマイズ方法を網羅的に紹介します。

この記事を読むことで、以下のことができるようになります:

  • VSCode Chat設定の構造と設定方法を理解する
  • インライン提案とNext Edit Suggestionsを最適化する
  • カスタムインストラクションでAIの応答品質を向上させる
  • MCPサーバーとの連携でChat機能を拡張する

前提条件と実行環境

VSCode Chat設定をカスタマイズするための前提条件は以下のとおりです。

項目 要件
VSCode バージョン1.102以上(MCP機能を利用する場合)
拡張機能 GitHub Copilot拡張機能(GitHub.copilot
アカウント GitHub Copilot Free/Pro/Business/Enterpriseいずれかのサブスクリプション
OS Windows / macOS / Linux

設定ファイルの場所はOSによって異なります。

  • Windows: %APPDATA%\Code\User\settings.json
  • macOS: $HOME/Library/Application Support/Code/User/settings.json
  • Linux: $HOME/.config/Code/User/settings.json

VSCode設定の基本構造

VSCodeの設定は階層構造を持ち、スコープによって優先順位が決まります。Chat設定も同様のルールに従います。

設定スコープの優先順位

  1. デフォルト設定: VSCodeが提供する初期値
  2. ユーザー設定: 全プロジェクトに適用されるグローバル設定
  3. ワークスペース設定: 特定プロジェクトに限定した設定
  4. 言語固有設定: 特定言語に対する設定

下位のスコープが上位を上書きします。たとえば、ワークスペース設定はユーザー設定より優先されます。

設定エディタへのアクセス方法

VSCode Chat設定にアクセスするには、複数の方法があります。

方法 Windows/Linux macOS
設定エディタ(GUI) Ctrl+, Cmd+,
コマンドパレット Ctrl+Shift+P → “Preferences: Open Settings” Cmd+Shift+P → 同上
settings.json直接編集 Ctrl+Shift+P → “Open User Settings (JSON)” Cmd+Shift+P → 同上

設定エディタで@ext:github.copilotchatで検索すると、Chat関連の設定を絞り込めます。

GitHub Copilot Chat設定の主要オプション

GitHub Copilot Chatに関連する設定は多岐にわたります。ここでは、実用性の高い主要オプションをカテゴリ別に解説します。

インライン提案の設定

インライン提案(ゴーストテキスト)は、コード入力中にリアルタイムで表示される補完候補です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
{
  // インライン提案の有効化(言語別設定可能)
  "github.copilot.enable": {
    "*": true,
    "yaml": false,
    "plaintext": false,
    "markdown": true,
    "javascript": true,
    "python": true
  },

  // インライン提案のフォントファミリー
  "editor.inlineSuggest.fontFamily": "Consolas",

  // インライン提案のツールバー表示
  "editor.inlineSuggest.showToolbar": "onHover",

  // シンタックスハイライトの有効化
  "editor.inlineSuggest.syntaxHighlightingEnabled": true,

  // 提案表示までの遅延時間(ミリ秒)
  "editor.inlineSuggest.minShowDelay": 0
}

github.copilot.enableでは、言語ごとに提案の有効/無効を切り替えられます。"*": trueで全言語を有効化し、個別言語で上書きする方法が一般的です。

Next Edit Suggestions(NES)の設定

Next Edit Suggestions(NES)は、次に編集すべき箇所とその内容を予測する機能です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  // NESの有効化
  "github.copilot.nextEditSuggestions.enabled": true,

  // 診断情報に基づく修正提案の有効化
  "github.copilot.nextEditSuggestions.fixes": true,

  // 提案表示時にコードをシフトするか
  "editor.inlineSuggest.edits.allowCodeShifting": true,

  // 大きな提案のサイドバイサイド表示
  "editor.inlineSuggest.edits.renderSideBySide": "auto",

  // 提案を折りたたんで表示するか
  "editor.inlineSuggest.edits.showCollapsed": false
}

renderSideBySideの設定値は以下から選択できます。

動作
auto ビューポートに十分なスペースがあればサイドバイサイド、なければ下部に表示
never 常に関連コードの下部に表示

カスタムインストラクション関連の設定

カスタムインストラクションは、AIの応答をプロジェクトのコーディング規約に合わせるための設定です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
{
  // copilot-instructions.mdファイルの使用
  "github.copilot.chat.codeGeneration.useInstructionFiles": true,

  // インストラクションファイルの検索場所
  "chat.instructionsFilesLocations": [
    ".github/instructions"
  ],

  // AGENTS.mdファイルの使用
  "chat.useAgentsMdFile": true,

  // ネストされたAGENTS.mdファイルの使用(実験的)
  "chat.useNestedAgentsMdFiles": false,

  // Agent Skillsの使用
  "chat.useAgentSkills": true
}

インストラクションファイルは以下の3種類があります。

  1. .github/copilot-instructions.md: ワークスペース全体に適用される汎用指示
  2. *.instructions.md: 特定のファイルタイプに適用される条件付き指示
  3. AGENTS.md: 複数AIエージェント環境向けの指示

コードレビュー・生成の設定

特定のタスクに対する詳細な指示を設定できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
  // コードレビュー時の指示
  "github.copilot.chat.reviewSelection.instructions": [
    { "text": "セキュリティの脆弱性を優先的にチェックしてください。" },
    { "file": ".github/review-guidelines.md" }
  ],

  // コミットメッセージ生成の指示
  "github.copilot.chat.commitMessageGeneration.instructions": [
    { "text": "Conventional Commits形式で記述してください。" }
  ],

  // プルリクエスト説明文生成の指示
  "github.copilot.chat.pullRequestDescriptionGeneration.instructions": [
    { "text": "変更点のリストを必ず含めてください。" }
  ]
}

textプロパティで直接指示を記述するか、fileプロパティで外部ファイルを参照できます。チーム共有には外部ファイル方式が適しています。

MCPサーバー連携の設定

MCP(Model Context Protocol)は、AIモデルと外部ツール・サービスを統一インターフェースで接続するオープンスタンダードです。VSCode 1.102以降で正式サポートされています。

MCP関連の基本設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  // MCPサーバーギャラリーの有効化
  "chat.mcp.gallery.enabled": true,

  // MCPサーバーの自動起動(実験的)
  "chat.mcp.autostart": true,

  // 仮想ツールのしきい値設定
  "github.copilot.chat.virtualTools.threshold": 128
}

MCPサーバーの設定ファイル

MCPサーバーの設定は.vscode/mcp.json(ワークスペース)または%APPDATA%\Code\User\mcp.json(ユーザー)に記述します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
  "servers": {
    "github": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${input:github-token}"
      }
    },
    "filesystem": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"]
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github-token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

サーバータイプはstdio(標準入出力)とhttp/sse(HTTP通信)の2種類があります。ローカル実行にはstdio、リモートサービスにはhttpを使用します。

MCPサーバー設定のポイント

MCPサーバーを追加する際は、以下の点に注意してください。

  • 信頼性の確認: MCPサーバーは任意のコードを実行可能なため、信頼できるソースからのみ追加する
  • 命名規則: サーバー名はcamelCaseで、機能を表す説明的な名前を使用する
  • 環境変数: APIキーなどの機密情報はinputs配列で定義し、${input:変数名}で参照する

Chat機能のUI・UX設定

Chatビューの表示や操作に関する設定も豊富に用意されています。

Chatビューの外観設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  // Chatビューのフォントサイズ
  "chat.editor.fontSize": 14,

  // Chatビューのフォントファミリー
  "chat.editor.fontFamily": "Consolas, 'Courier New', monospace",

  // 行の高さ
  "chat.editor.lineHeight": 1.5,

  // ワードラップ
  "chat.editor.wordWrap": "on"
}

インタラクション設定

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  // フォローアップ質問の自動表示
  "github.copilot.chat.followUps.enabled": true,

  // 編集リクエストのリトライ確認
  "chat.editing.confirmEditRequestRetry": true,

  // デフォルトのコンテキスト
  "chat.defaultContext": "selection"
}

ワークスペース固有のChat設定

チーム開発では、ワークスペース設定(.vscode/settings.json)を活用してプロジェクト固有のChat設定を共有できます。

推奨されるワークスペース設定例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
{
  // インライン提案の言語別設定
  "github.copilot.enable": {
    "*": true,
    "json": false,
    "yaml": false
  },

  // カスタムインストラクションの有効化
  "github.copilot.chat.codeGeneration.useInstructionFiles": true,

  // インストラクションファイルの場所
  "chat.instructionsFilesLocations": [
    ".github/instructions",
    ".copilot/instructions"
  ],

  // NESの有効化
  "github.copilot.nextEditSuggestions.enabled": true,
  "github.copilot.nextEditSuggestions.fixes": true
}

この設定をバージョン管理に含めることで、チームメンバー全員が同じChat環境で作業できます。

カスタムインストラクションの実践例

カスタムインストラクションを活用すると、AIの応答品質が大幅に向上します。

プロジェクト全体への指示(copilot-instructions.md)

.github/copilot-instructions.mdファイルを作成し、プロジェクト固有のガイドラインを記述します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# プロジェクトコーディング規約

## 言語とフレームワーク
- TypeScript 5.x + React 19 + Next.js 15を使用
- スタイリングはTailwind CSS v4を採用

## コーディングスタイル
- 関数コンポーネントとReact Hooksを使用する
- 型定義は明示的に記述し、anyの使用を避ける
- エラーハンドリングは必ずtry-catchで行う

## 命名規則
- コンポーネント: PascalCase(例: UserProfile)
- 関数・変数: camelCase(例: getUserData)
- 定数: UPPER_SNAKE_CASE(例: MAX_RETRY_COUNT)

言語固有の指示(.instructions.md)

特定ファイルタイプにのみ適用する指示を作成できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
---
applyTo: "**/*.tsx"
name: "React Component Guidelines"
description: "Reactコンポーネント作成時のガイドライン"
---

# Reactコンポーネントガイドライン

- propsには必ずTypeScript interfaceを定義する
- useEffectの依存配列は省略しない
- カスタムフックは`use`プレフィックスを付ける
- メモ化が必要な場合はuseMemo/useCallbackを使用する

applyToプロパティのglobパターンにマッチするファイルを編集する際に、この指示が自動的に適用されます。

トラブルシューティング

VSCode Chat設定で問題が発生した場合の対処法を紹介します。

設定が反映されない場合

  1. 設定スコープの確認: ワークスペース設定がユーザー設定を上書きしていないか確認
  2. 拡張機能の再読み込み: コマンドパレットで「Developer: Reload Window」を実行
  3. 設定ファイルの構文エラー: settings.jsonに構文エラーがないか確認

インストラクションファイルが適用されない場合

  1. ファイルの場所: .github/copilot-instructions.mdが正しい位置にあるか確認
  2. 設定の有効化: github.copilot.chat.codeGeneration.useInstructionFilestrueか確認
  3. applyToパターン: .instructions.mdの場合、globパターンが対象ファイルにマッチするか確認

MCPサーバーが起動しない場合

  1. 依存関係: npxnodeがシステムパスに存在するか確認
  2. Dockerの場合: -dオプション(デタッチモード)を使用していないか確認
  3. ログの確認: MCPサーバーリストから「Show Output」を選択してエラーログを確認

期待される効果

適切なVSCode Chat設定を行うことで、以下の効果が期待できます。

項目 期待される効果
コード生成品質 カスタムインストラクションによりプロジェクト規約に準拠したコード生成
開発速度 NESによる編集予測で繰り返し作業の削減
チーム統一性 ワークスペース設定の共有による環境統一
機能拡張 MCPサーバー連携による外部サービスとの統合

まとめ

本記事では、VSCode Chat設定の全体像を解説しました。主要なポイントを振り返ります。

  • 設定の基本構造: ユーザー設定とワークスペース設定の使い分け
  • インライン提案: github.copilot.enableによる言語別制御
  • NES: github.copilot.nextEditSuggestions.enabledによる次編集予測
  • カスタムインストラクション: .github/copilot-instructions.md*.instructions.mdの活用
  • MCP連携: mcp.jsonによる外部ツール統合

これらの設定を組み合わせることで、VSCode Chat機能を最大限に活用し、開発効率を向上させることができます。

参考リンク