🚀

GitHub Copilotを最強にする拡張機能4選

2025/02/20に公開

GitHubをこよなく愛するhikae(@0xhikae)です。VSCodeとGitHub Copilotはextensibleな設計がされていて、うまく使えば最強のCoding Agentです。

世の中はAI Agentの流行でいろんなツールに驚いている頃かと思いますが、そんな人たちも「GitHub Copilotでいいんじゃない?」って思えるような最先端の拡張機能を集めてきました。

1【cogent】ひと足先にAgentを実装

https://marketplace.visualstudio.com/items?itemName=kturung.cogent

CogentはGitHub Copilotに“エージェント”的な機能を付加するチャット拡張です。最近Agent modeが発表されましたが、こちらはそれら機能を一切使わず素のChatExtensionとして実装されています。 (GitHub - kturung/cogent)。

  • エージェント機能: ユーザーの最小限の指示で、Copilot(Cogent)は開発タスクを自動遂行します。例えば端末コマンドの実行ファイルの読み書き・編集などを独立して実行し、エラーの修正まで行います。プロジェクト全体の構造も把握し、必要に応じて複数ファイルにまたがる変更もこなします。
  • ファイル操作: ファイルを新規作成・更新したり、差分適用による精密な変更を行うことができます。これにより巨大なファイルでもAIが的確に編集し、ボイラープレートコードの生成や一括置換のような反復作業を自動化できます
  • コマンド実行とプロジェクトタスク: VS Codeから離れることなく、チャット経由でビルドやテストなどのターミナルコマンドを実行可能です。
  • ユーザー承認による安全性: 自律動作とはいえ、ファイルの新規作成・変更端末コマンドの実行といった重要な操作時には、実行前にユーザーの承認を求める仕組みになっています。
  • カスタムルール対応: プロジェクト固有のコーディング規約や要件をAIに教えることも可能です。ルートに.cogentrulesファイルを置けば、「コンソールログは禁止」「TypeScriptはstrictモードを有効にする」等の独自ルールをCogentに遵守させることができます。

この辺りもClineと一緒ですね。

2【vscode-mermAId】Marmaidでの図作成をサポート

https://marketplace.visualstudio.com/items?itemName=ms-vscode.copilot-mermaid-diagram

vscode-mermAIdは、Markdownライクな記法で図表を描けるMermaidをCopilot Chatから直接扱えるようにする拡張機能です。GitHub Copilotに新たなチャット参加者として @mermAId エージェントを追加し、コードの構造やアイデアを対話的に視覚化できるようにします。この拡張により、ソースコードの内容に応じたUML図やフローチャートなどをAIに生成・編集させることが可能です。

  • チャットで図の生成と編集: Copilotチャット上で@mermAIdエージェントに対し「このコードのクラス関係を図にして」といったプロンプトを送ると、Mermaid記法を用いた図表を生成してくれます (October 2024 (version 1.95))。生成後に「/iterate」スラッシュコマンドで図を洗練させる指示を出すなど、自然言語で対話しながら図を何度も修正・更新できます。また、特定の図の種類(フローチャートやシーケンス図など)に応じた専用のスラッシュコマンドが用意されており、モデルがより適切な図を描けるようガイドすることもできます。
  • ソースコードとの連携: 生成された図中の要素(例えばフローチャートの各ステップ)には対応するソースコードへのリンクが自動的に付与されます。これにより、図の内容と実際のコードを容易に行き来でき、コードリファレンスを参照しながら設計図を吟味することが可能です。特にフロー図などでは、図の各ブロックからその処理が定義されている箇所へワンクリックで飛べるため、コード構造の把握がはかどります。

ChatGPT使ってもいいですが、GitHub管理することも考えるとエディタ完結できるのはいいですね。

3【Copilot MCP】CopilotでもMCP Integration

https://marketplace.visualstudio.com/items?itemName=AutomataLabs.copilot-mcp

Copilot MCPは、GitHub Copilot Chatに**MCP (Model Context Protocol)**対応の外部ツールを組み込むための拡張機能です。MCPとは大規模言語モデル(LLM)を様々なデータソースやツールに接続するためのオープンな標準プロトコルで、AIに「外部の知識や機能」を与えるUSB-Cのような役割を果たします (Introduction - Model Context Protocol)。Copilot MCP拡張を使うと、VS Code上で動かしたMCPサーバー経由でCopilotが追加のツール群を利用できるようになります。内部的にはVSCode LanguageModelTool APIとMCP Serverのproxyを実装して相互に変換を行なっています。

  • MCPサーバー管理と接続: 拡張機能をインストールすると、VS Codeのアクティビティバーに「MCP Servers」という専用ビューが追加されます。ここから一つ以上のMCPサーバーの設定を行い、接続・切断を管理できます。設定はUI上で行えるほか、設定ファイルにサーバーのID・表示名・起動コマンド等を書くことでも登録可能です。複数のMCPサーバーを同時に扱うこともでき、それぞれの稼働状態はリアルタイムで監視できます。
  • メリットとユースケース: MCP連携によりローカルファーストなAIワークフローが実現します。インターネット上の一般知識だけでなく、自社内のデータや手元の環境情報をCopilotに参照させられるため、例えばプロジェクト固有の設計書に基づいたコード生成や、社内DBから取得したデータを用いた分析コード作成など、より実践的でカスタマイズされた支援が受けられます。MCP自体がLLMと外部ツールをつなぐ汎用規格のため、特定ベンダーにロックインされない柔軟性やセキュリティ面での安心感(社内データを自社インフラ内で処理できる)も利点です。

結局MCP Integrationさえあればどのエディタでもいいと思ってます。僕のおすすめはperplexityとmemoryです。

4【CPP Tools】LSPとCopilotの連携

https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools

Microsoft公式のC/C++ Tools拡張(C/C++言語サポート)は、バージョン1.24.0からGitHub Copilotとの連携機能を実験的に提供し始めました。その代表的な機能が設定項目 C_Cpp.copilotHover によって有効化できるCopilotホバーツールチップです (Releases · microsoft/vscode-cpptools · GitHub)。

通常、VS Codeエディタ上でC/C++のコードにマウスホバーすると型情報やドキュメントコメントが表示されますが、copilotHoverを有効にするとここにCopilotによる追加説明が含まれるようになります。具体的には、コード片の意味や目的をAIが自然言語で要約した「Generate Copilot Summary」がツールチップ内に表示され、開発者は即座にそれを読むことができます。この機能により、例えば初見の関数や複雑なコードブロックにカーソルを当てるだけで、Copilotがその処理内容を文章で説明してくれるようになります。LSPの情報も使っている機能待ち望んでいた人も多いのではないでしょうか。

TypeScript, Pythonにもexperimentalな機能あるので見てみると面白いです。

まとめ:AI IDEに消耗して疲れた人はGitHub Copilotを使いこなそう!

みなさんはいくつ知ってましたか?

VSCode forkや独自Chatを提供する拡張機能が乱立してるが技術的には同じことをしています。特に技術力が出るのは必要なコードを見つける部分なのですが、基本的にripgrep+treesitterの組み合わせによるhybrid searchが一般的でそこまで特徴的なものはない印象です。
その点、CopilotはVSCodeとともにできるだけ多くのIDEで統一して利用できるよう丁寧に設計してるという印象があります。
CPP Toolsのように主要なLSはVSCode APIにしか対応しないので、仕組み作りする側に回るなら多少不便はあるけど早めにVSCode+GitHub Copilotに帰って来るのがエコシステム差で見た時に有効な手段となります。興味を持った人はChat Extensionのドキュメントを読んでみましょう。

https://code.visualstudio.com/docs/copilot/copilot-extensibility-overview

Discussion