MCPについて知りたくて、とりあえず使ってみた
皆さん、こんにちは。LP開発グループのn-ozawanです。
人間の衣服に寄宿するコロモジラミの遺伝子を分析し、およそ約7万年前に人間の毛髪に寄宿するアタマジラミから分離したことが分かったことから、人間が服を着るようになったのはおよそ約7万年前と考えられています。
本題です。
昨年のAI業界ではAIエージェントが話題を大きく占めていましたが、MCPも大きな注目を浴びていました。このMCPとは何でしょうか?そんなMCPを調べつつ、使ってみました。
目次
MCP (Model Context Protocol)
MCPとは
MCP (Model Context Protocol) は、Anthropic社が発表した、生成AI (LLM) と外部リソースやツールを接続するための標準規格(プロトコル)です。
MCPが登場する以前は、生成AIが外部リソースやツールと接続する際は、生成AIを提供するサービス側で個別に実装する必要がありました。しかしこれは、開発するコストが大きくかかり、また、数多くの外部システムに対応する必要もあり、現実的ではありません。
MCPはそんな問題を解決するプロトコルになります。生成AIと外部リソースやツールとの間で決まり事を設けることにより、生成AIを提供するサービス側は追加で開発する必要がなくなり、開発をコストを下げながらも柔軟に外部システムとの接続を可能とします。

VS Code で試してみる
試しにVS CodeでMCPを使ってみます。生成AIにはGitHub Copilot Business (モデル:GPT-5 mini) を利用しています。
まず、プロジェクトのルートに.vscodeフォルダを作成します。その.vscodeフォルダ配下に、mcp.jsonファイルを作成します。.vscodeファイルには利用するMCPサーバーを指定します。以下はDraw.ioのMCPサーバーを定義しています。

{
"servers": {
"drawio": {
"type": "stdio",
"command": "npx",
"args": ["@drawio/mcp"]
}
}
}
“drawio”の上に、「▷起動」と表示されるので、これをクリックしてサーバーを起動します。サーバーはローカル環境で動作します。

プロンプトに「MCPのdrawioサーバーを使用して、何か簡単な図を作成してブラウザに表示してください。」と入力すると、ブラウザが立ち上がりdraw.ioのサイトが開きます。

私の環境ではdraw.ioのサイトが開いたのは確認できたのですが、真っ白のキャンパスが表示されました。まだ、動作は完全ではないようですが、生成AIがブラウザを操作してdraw.ioを開こうとする動きが確認できたかと思います。また、Copilotが回答したリンクを踏むと図が表示されたので、図の作成はできていたようです。

MCPで何ができる?
MCPでできることは大まかに2つで、「外部のリソースを取得」することと、「ツールやコマンドなどを実行」することです。試していませんが、GitHub MCP ServerではIssueやPRを生成AIを通して作成/更新が可能とのことです。
このようにMCPは単にデータを取得するだけでなく、外部のシステムやツール、アプリケーションなどを操作することができます。Playwright MCPでは、生成AIがブラウザを操作することができます。生成AIが人間の代わりにブラウザでのテスト(e2e)を実行することができます。更にテストを実施した結果、バグを見つけたらバグ管理システムにバグを起票することもできるでしょう。

MCPの危険性
ここまでで、MCPで色んなことができそうであることが分かりました。しかし一方で、使い方によっては深刻なセキュリティ事故を引き起こしそうです。
例えば、信頼のできないMCPサーバーを利用した場合、そのMCPサーバーはローカル環境にある機密情報を抜き取り、第3者のサーバーへ送信するかもしれません。他にもGitなどのファイルを勝手に書き換え、マルウェアを潜ませることもできそうです。
もちろんMCPには認証認可の仕組みはあります。しかし、それだけでは不十分です。MCPの特性をしっかり理解して、ルールを定めて運用した方が良さそうです。
おわりに
AI駆動開発など、今後、生成AIを活用した開発をする場合、MCPの利用は避けては通れないかともいます。リスクは先ほど述べた通り、慎重な運用が必要かと思いますが、だからと言って使わないという選択肢はないようにも見えます。MCPでの活用方法、リスク回避など、考えることは多そうです。
ではまた。
