VSCodeでAIエージェント機能(GitHub Copilot)とMCP (Model Context Protocol)が使えるようになったので試してみました。

MCPとは?

CDLE公式Xでも紹介されてましたが、こちらの記事・資料を見るのがおすすめです。


ザックリ説明するとMCPはAIにおけるUSBみたいなもので、統一された規格によってClaudeやChatGPTなどのAIから、各種外部ツール(Google Map、Slack、SQLite、その他もろもろ)を扱いやすくするためのものです。
ClaudeやChatGPTなどのAIの機能拡張につながるのはもちろんのこと、AIエージェントのようにAIが自律的に各種ツールと連携しながらタスクを実行させたいときにも便利です。

MCP自体はAnthropic発の規格で昨年から存在しますが、先日OpenAIが対応を発表したことで一気に業界標準になりそうな勢いです。


まずは公式ドキュメントをチェックしましょう。

公式ドキュメント(VSCode関連)

まずはこれを一読しましょう。VSCodeで何ができるようになったのかが解説されています。


VSCodeのアップデート内容。(英語)
各種設定方法について解説あり。


VSCodeにおけるMCPの設定方法。(英語)

公式ドキュメント(MCP関連)




注意事項

・本ブログの内容はVSCodeおよびPython経験者向けです。
・GitHub Copilotを使いますので、GitHubのアカウントが必要です。
・VSCodeにおけるMCPはまだベータ機能です。(もしMCPを使いたいだけ&VSCodeになじみがない場合はClaude Desktopのほうが良いと思います)
・Webで公開されている各種MCPサーバーには安全性/信頼性に疑問があるものも存在します。利用する際は十分に確認しましょう。以下の記事を見ておくことをお勧めします。


利用した環境

・Windows 11 Home 24H2
・Visual Studio Code バージョン 1.99.0
・Python 3.13がインストールされています
・GitHub Copilot for free利用中

VSCodeの設定

前置きが長くなりましたがVSCodeの設定です。まず設定で chat.agent.enabled を探して有効化しておきます。(VS Codeの安定版ユーザーには順次展開されるとのことで、人によってはすでに有効化されているかもしれません)
image.png 78.63 KB
あと設定で chat.mcp.discovery を探してtrueにして、マシン上のMCP Serverの検出を許可しておきます。(チェックボックスはないのでsettings.jsonを直接編集)image.png 35.87 KBimage.png 10.24 KB

チャットウィンドウを表示しておきましょう。
image.png 18.76 KB
開くとこんな感じ。GitHub Copilotを利用したことがない方は設定が必要になると思います。
image.png 29.62 KB
エージェントモードに切り替えておきます。
image.png 10.38 KB

MCPサーバーの利用準備

MCPサーバーを利用するために適当なフォルダを開き、.vscodeというフォルダを作り、その中にmcp.jsonというファイルを作ります。

image.png 2.24 KBmcp.jsonファイルの内容はこんな感じ。
今回利用するのはmodelcontextprotocol orgの servers/src 配下に登録されているTime MCP Serverで、公式ドキュメントのUsing uvxの設定を参考にしています。タイムゾーンを書かないとエラーになるので追加してあります。
https://github.com/modelcontextprotocol/servers/tree/main/src/time 

{
"mcpServers": {
  "time": {
    "command": "uvx",
    "args": ["mcp-server-time", "--local-timezone=Asia/Tokyo"]
  }
}
}


設定するとチャットウィンドウの左上に工具のアイコンが表示されるのでクリック。
image.png 9.9 KB
MCPサーバーと、MCPサーバーで利用できるツールが一覧で表示されます。
mcp-server-timeはget_current_timeとconvert_timeの2つのツールがあることが公式ドキュメントページに書いてあったので、その通りになっています。
利用したいものにチェックを入れます。(今回の場合は全部チェック)
image.png 19.6 KB

MCPを使ってみる(現在時刻の取得)

ではさっそくMCPを使ってみましょう。現在の名古屋の時間を聞いてみます。

image.png 8.01 KBするとAI(GPT-4o)がget_current_timeというツールを使えばよいと判断して実行を求めてきます。
image.png 7.26 KB実行内容を確認することもできます。日本のタイムゾーンで時間を取得しようとしてますね。
image.png 27.03 KB[続行]をクリックします。
いちいち許可するのが面倒な場合は、まとめて許可もできますが自己責任で・・・
image.png 8.86 KBすると、MCPサーバーを通じて時刻を取得してくれます。
その内容を受けて、最終的にAI(GPT-4o)が現在の名古屋の時間を回答してくれます。
image.png 19.46 KB
パロアルト(シリコンバレーにある町)の時間も聞いてみると、タイムゾーンをロサンゼルスにして時刻を取得してくれます。
image.png 21.15 KB

MCPを利用してみる(時差の計算)

時差の計算もできます。名古屋が16時だったときロンドンは何時でしょうか。
この場合、AI(GPT-4o)がconvert_timeというツールを使って、東京とロンドンのタイムゾーンをインプットすればよいと判断してくれます。

image.png 23.7 KB日本のタイムゾーンはUTC +9(ロンドンはグリニッジ標準時=UTC 0)なので通常は9時間ずれですが、今は夏時間のため8時間ずれということを考慮して回答してくれます。

同じくUTC 0でも夏時間を採用していないアフリカのガーナの首都アクラの時刻を聞いてみると、MCPのアウトプットは同じなのですが、AI(GPT-4o)がガーナは夏時間を採用していないことを考慮して9時間ずれで回答してくれます。
このように、外部ツールと連携して柔軟な動きができるのがAIエージェントらしいところです。
image.png 23.21 KB

(補足)MCPのツールが使えないとどうなる?

今回は簡単なタスクでしたが、もしMCP(を通じた外部ツール)が使えないとき、AI(GPT-4o)はどう回答するのでしょうか?    試しに全部OFFにしてみましょう。

image.png 17.66 KB
マドリードの時刻を聞いてみます。

image.png 7.58 KB
すると外部ツールが使えないので、GPT-4oは事前知識だけから回答を試みます。今回の場合、Windowsのシステム時刻がわかれば、それに2時間足せばいいよという回答になりました。GPT-4oとしては最善を尽くした回答だと思いますが、ユーザーの要求するタスク(マドリードの時刻を調べる)を完遂することはできませんでした。
image.png 31.44 KBこのように外部ツールがあるかどうかで、回答の質にはかなり差が出ます。
外部ツールを利用しやすくしてくれるMCPのありがたみがわかるのではないかなと思います。

その他のMCPサーバー

他にも様々なMCPサーバーがあります。安全性を考えると、公式のModel Context Protocol Serversに登録されているものの中でも「Reference Servers」または「Third-Party ServersのOfficial Integrations」を利用するのが無難だと思います。


興味がある人は使ってみてください。