週末に MCP (Model Context Protocol) Server について調べていました。
公開されている MCP server は、Model Context Protocol Server Directory / Model Context Protocol servers のレポジトリ から確認することができ、SQL Server に対応した MCP server も公開されています。
- JDBC
- MSSQL
- MSSQL (by jexin)
- MSSQL-Python
- MSSQL-MCP
これらの MCP server は、チャットで SQL Server のデータを操作することができるものとなり、Azure Portal で実装されている Azure SQL データベースの Microsoft Copilot スキル (プレビュー) のようなことを、ローカルの環境から実施することができるようになります。
従来、MCP server は、Claude Desktop / Cursor / Windsurf 等で使用することが多かったのではないでしょうか。
Cursor / Windsurf のような Visual Studio Code がフォークされているエディタで MCP server のサポートは開始されていました。
しかし、Visual Studio Code のサポート状況については、 2 月時点のアナウンスの Available today では次のようになっており、Visual Studio Code Insider Preview で先行して実装されている Copilot Agent モード で機能の取り込みを検討しているというステータスとなっていました。
- Exploring tool extensibility and MCP servers as tools for agent mode. If you have extension ideas tell us
本投稿作成時点の Visual Studio Code Insider Preview は、上記のアナウンスが実施された際のバージョンの 1.98.0 から更新され 1.99.0 となっていました。
このバージョンで MCP server の機能が追加されているかを確認してみたところ、コマンドパレットに MCP Server 向けのコマンドが追加されていました。
関連する情報を確認してみたところ GitHub Copilot Agent Mode with MCP として、動画の公開も行われており、動画は本日 (2025/3/24) 公開されたものとなりますので、本日公開された Insider Preview 1.99.0 からの機能になるようですね。
将来的には、SSMS に Copilot が導入される予定となっていますので、SQL Server については、MCP server を使用しなくても SSMS でチャット形式で DB の状態を確認できるようになるかと。
2025/04/07 追記
March 2025 (version 1.99) で安定版で Copilot Agent Mode / MCP Server のサポートが追加されました。これにより Insider Preview を使用しなくても機能を使用することができます。
Build AI agent tools using remote MCP with Azure Functions で Azure Functions を使用した MCP Server の作成がアナウンスされていますのでこちらも確認しておきたいですね。
Visual Studio Code から MCP server を利用
Visual Studio Code Insider Preview では、GitHub Copilot Chat を Agent モード で使用する際に、MCP server との接続が行われるようです。
「> MCP:AddServer」で MCP server を追加することができ、次のような UI で設定可能です。
MCP server の設定は「setting.json」に保存されていますので、コマンドパレットからだけでなく、ユーザー設定から MCP の設定を開くことで、setting.json を編集することも可能です。
構文は、他の IDE の MCP server の設定と同様かと。
Playwright MCP による Playwright の利用が話題になっていますが、この MCP server Visual Studio Code 上で動作させることができますので、Playwright を使用して、Web の操作を Visual Studio Code 上のチャットから実行することも可能となります。
SQL Server 向け MCP server を使用してみる
以下は、MCP Server として、MSSQL MCP Server を追加したものとなりますが、Agent モードに追加した MCP server が統合されていることが確認できます。
この MCP server は SQL Server に接続をして、クエリの実行を行ううことができるものとなります。
SQL Server の tpch のデータベースに接続を行っているのですが「テーブルの一覧を取得してください」とチャットに入力を行うと、MCP server 経由で実際にデータベースに接続し、クエリを実行することで情報の取得が行われています。
「直近 1 時間で実行された CPU 使用率の多いクエリを 10 件表示してください。」というようなプロンプトを実行すると、DMV から情報の取得を行い、表示することもできます。
まだ、軽く触った程度ですが、自然言語で手軽に SQL Server ベースの環境の情報取得をすることができる未来がありそうです。
冒頭で紹介した、GitHub Copilot Agent Mode with MCP では GitHub との連携がデモで行われていますので、後でじっくり見たいと思います。
Microsoft の GitHub を軽く見た感じですと Playwright 以外にも MCP sever については次のようなレポジトリがあるようでしたので、MS から公開される情報も今後増えていくかもしれませんね。(Semantic Workbench 内に公開されているものが多いですね)
- Semantic Kernel
- Semantic Workbench
- CosmosDB