
こんにちは!tsutsuです!
最近MCPを使用することが増えてきまして、とても便利だなとは思うのですが、
そもそもMCPの理解が微妙なところがあるので、まとめたいと思います。
簡単に言うと、MCPとはAIモデルを外部のアプリケーションとかと繋ぐときに使う共通の決まり事のことです。

※外部アプリケーションとは
ここで言う外部アプリケーションとは、AIモデルそのものとは別に存在するシステム・サービス・プログラム のことを指します。
例えば以下のようなものがあります。

MCPが生まれた背景には、AIと外部ツール連携における以下の課題があります。
AIモデル単体では、
などは本来できません。
そのため、これまではツール・サービスごとにまったく異なる“連携方法”を自作する必要がありました。
Slackとつなぐ方法、GitHubとつなぐ方法、Google Driveとつなぐ方法
すべて別々の作り方が必要で、開発者の負担が大きく、
ツールごとに専用APIを作り、AI向けに最適化し、モデルごとに別仕様に対応…
という“車輪の再発明”が大量に発生していました。
OpenAIのモデル、Anthropicのモデル、Googleのモデルなど、
それぞれが独自の「ツール統合の仕組み」を持っていました。
そのため、あるツールを「どのAIでも使える」状態にするのが難しかった。
MCPは次のような目的を持っています。
つまり、
「MCPに対応したツールなら、どのAIでもすぐ使える世界を実現するための共通プロトコル」です。
2024年11月、Anthropicがオープンプロトコルとして公開し、現在もエコシステムが急速に成長しています。
例えばMCPを使用するとこのようなことがやりやすくなります。
AIが自分のPCやクラウド(Google Drive、Dropboxなど)のファイルを直接扱えるようになります。
業務ツールにまたがった“横断アシスタント”が作れます。
AIがデータベースに直接問い合わせできるので、分析や管理が楽になります。
【例】
AIがAPIを使ってリアルタイム情報を扱えるようになります。
会社や個人が必要なツールを自由に追加でき、AIに「専門の仕事」をやらせられます。
MCPを使えば普段使用しているアプリ、ツール、データをAIから操作したり、分析したりできるかも。
すでにMCPに対応しているアプリ、ツールもたくさんあるので導入してみよう!

MCP では、データや外部機能を提供する側が「MCP サーバー」、
それに接続してツールを呼び出す側が「MCP クライアント」です。
両者は JSON-RPC 2.0 を使って通信します。
※JSON-RPC 2.0とは?
JSON形式で
を定義するための“共通ルール”です。

MCP のメッセージは、原則すべて JSON-RPC 2.0 です。
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "weather_current",
"arguments": {
"location": "San Francisco",
"units": "imperial"
}
}
}
{
"jsonrpc": "2.0",
"id": 3,
"result": {
"content": [
{ "type": "text", "text": "Current weather: 68°F, partly cloudy" }
]
}
}
この「content」部分が LLM (AIモデル)に渡され、自然言語応答の材料になります。
MCPでは、テキストだけではなく、構造化データ(JSON)を返す仕組みがあります。
"structuredContent": {
"temperature": 22.5,
"conditions": "Partly cloudy",
"humidity": 65
}
これにより:
が正確に行えます。
MCPサーバーはクライアントに「利用可能なツール一覧」を返します。
{
"name": "get_weather_data",
"title": "Weather Data Retriever",
"description": "Get current weather data",
"inputSchema": {
"type": "object",
"properties": {
"location": { "type": "string" }
},
"required": ["location"]
},
"outputSchema": {
"type": "object",
"properties": {
"temperature": { "type": "number" },
"conditions": { "type": "string" },
"humidity": { "type": "number" }
},
"required": ["temperature", "conditions", "humidity"]
}
}
これにより、クライアントは:
が可能になります。
MCP のエラーは2種類あります。
"error": {
"code": -32602,
"message": "Invalid params"
}
プロトコル違反、入力が壊れているといったケース。
ツール内での「Not Found」「権限なし」などは
structuredContent 内で表現することが多いです。
"structuredContent": { "error": "NOT_FOUND" }
この住み分けにより、「通信の失敗」と「業務的な失敗」を明確に分けられます。

MCPは、
などを、標準化された方法でAIアプリに追加できる仕組みです。
AIの能力を“外部ツール”で拡張するための共通規格。
それが Model Context Protocol(MCP)です。
うん、むずかしい!