tsutsu
ホームサービスプロフィールお知らせブログお問い合わせ
tsutsu

Web開発・システム開発支援

代表:堤 暁寛

ナビゲーション

ホームサービスプロフィールお知らせブログお問い合わせ

ソーシャル

© 2026 tsutsu. All rights reserved.

  1. ブログ
  2. MCP(model context protocol)とは
MCP(model context protocol)とは
AI
2025年11月19日

MCP(model context protocol)とは

こんにちは!tsutsuです!

最近MCPを使用することが増えてきまして、とても便利だなとは思うのですが、
そもそもMCPの理解が微妙なところがあるので、まとめたいと思います。


簡単に言うと、MCPとはAIモデルを外部のアプリケーションとかと繋ぐときに使う共通の決まり事のことです。


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

  • Google Drive
  • Notion
  • GitHub
  • Slack
  • Dropbox
  • Gmail
  • データベース(MySQL、PostgreSQL など)
  • Web API(天気予報API、ニュースAPI など)
  • PC上のローカルファイル




MCPはなぜ生まれたのか


MCPが生まれた背景には、AIと外部ツール連携における以下の課題があります。

1. AIが“外の世界”にアクセスしづらかった

AIモデル単体では、

  • 外部サービスの利用
  • ファイルの読み書き
  • APIやデータベースへのアクセス

などは本来できません。

そのため、これまではツール・サービスごとにまったく異なる“連携方法”を自作する必要がありました。



Slackとつなぐ方法、GitHubとつなぐ方法、Google Driveとつなぐ方法
すべて別々の作り方が必要で、開発者の負担が大きく、

ツールごとに専用APIを作り、AI向けに最適化し、モデルごとに別仕様に対応…
という“車輪の再発明”が大量に発生していました。

2. AIモデルごとに連携仕様が違いすぎた

OpenAIのモデル、Anthropicのモデル、Googleのモデルなど、
それぞれが独自の「ツール統合の仕組み」を持っていました。

そのため、あるツールを「どのAIでも使える」状態にするのが難しかった。



そこで「共通プロトコルを作ろう」という動きが生まれた!

MCPは次のような目的を持っています。

  • どのAIモデルでも使える共通フォーマット
  • ツール一覧の取得や実行方法の標準化
  • 外部サービスへの安全なアクセス枠組み
  • スキーマによる入力・出力の型定義

つまり、
「MCPに対応したツールなら、どのAIでもすぐ使える世界を実現するための共通プロトコル」です。

2024年11月、Anthropicがオープンプロトコルとして公開し、現在もエコシステムが急速に成長しています。


MCPを使えばどのようなことができる!?


例えばMCPを使用するとこのようなことがやりやすくなります。


1. ファイルを扱わせる(読み取り・検索・分類など)

  • 「このフォルダの中のPDFを全部要約して」
  • 「スプレッドシートの在庫リストから不足品を教えて」
  • 「会議メモを時系列に整理して」

AIが自分のPCやクラウド(Google Drive、Dropboxなど)のファイルを直接扱えるようになります。


2. 業務アプリとつなげて自動化する

  • 「GitHubのプルリク内容を読んでレビューコメントを作って」
  • 「Notionのデータベースに今日のタスクを追加して」
  • 「Slackでメンションされたメッセージを整理して要点まとめて」

業務ツールにまたがった“横断アシスタント”が作れます。


3. データベースから情報を取る・更新する

  • 「顧客Aさんの最新注文記録を教えて」
  • 「売上データから異常値を見つけて」
  • 「新規レコードを追加して」

AIがデータベースに直接問い合わせできるので、分析や管理が楽になります。


4. 外部APIをAIが直接叩けるようにする

【例】

  • 「天気予報APIから今日の気温を取り出して表にまとめて」
  • 「商品の価格比較APIで最安値を出して」
  • 「地図APIで距離を計算して移動時間を出して」

AIがAPIを使ってリアルタイム情報を扱えるようになります。


5. カスタムツールで“自作のAI機能”を追加できる

  • 社内の独自システム(勤怠、倉庫管理、受発注など)に接続
  • 自分が作ったスクリプトをAIに使わせる
  • 特定業務のための自動処理ツールを組み込む

会社や個人が必要なツールを自由に追加でき、AIに「専門の仕事」をやらせられます。



まとめると

MCPを使えば普段使用しているアプリ、ツール、データをAIから操作したり、分析したりできるかも。
すでにMCPに対応しているアプリ、ツールもたくさんあるので導入してみよう!





ここからは技術的なお話し



MCP の基本構造:クライアントとサーバー

MCP では、データや外部機能を提供する側が「MCP サーバー」、
それに接続してツールを呼び出す側が「MCP クライアント」です。

  • ここでのサーバー
    自作ツール・API 接続ロジックをまとめたプロセス
    → 例:ファイル操作ツール、社内API、GitHub操作などを持つ
  • ここでのクライアント
    それらのツールを使いたいアプリ
    → 例:ChatGPT、ローカルアプリ、エディタプラグインなど

両者は JSON-RPC 2.0 を使って通信します。

※JSON-RPC 2.0とは?
JSON形式で

  • 関数呼び出し
  • パラメータ
  • 結果
  • エラー

を定義するための“共通ルール”です。



メッセージ形式の例

MCP のメッセージは、原則すべて JSON-RPC 2.0 です。

● リクエストの例(ツールを呼び出す)

RPC.json
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "weather_current",
    "arguments": {
      "location": "San Francisco",
      "units": "imperial"
    }
  }
}

● 応答の例(ツールからの結果)

RPC.json
{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      { "type": "text", "text": "Current weather: 68°F, partly cloudy" }
    ]
  }
}

この「content」部分が LLM (AIモデル)に渡され、自然言語応答の材料になります。

structuredContent:プログラムで扱える構造化データ

MCPでは、テキストだけではなく、構造化データ(JSON)を返す仕組みがあります。

PRC.json
"structuredContent": {
  "temperature": 22.5,
  "conditions": "Partly cloudy",
  "humidity": 65
}


これにより:

  • UI生成
  • バリデーション
  • プログラムによる処理

が正確に行えます。



ツール定義は JSON ベース

MCPサーバーはクライアントに「利用可能なツール一覧」を返します。

schema.json
{
  "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"]
  }
}

これにより、クライアントは:

  • 入力値のバリデーション
  • UIの自動生成
  • AIへの正確なツール説明

が可能になります。

エラーハンドリング

MCP のエラーは2種類あります。

(1) プロトコルレベル(JSON-RPCエラー)

error.json
"error": {
  "code": -32602,
  "message": "Invalid params"
}

プロトコル違反、入力が壊れているといったケース。

ツールの業務ロジックエラー

ツール内での「Not Found」「権限なし」などは
structuredContent 内で表現することが多いです。

error.json
"structuredContent": { "error": "NOT_FOUND" }

この住み分けにより、「通信の失敗」と「業務的な失敗」を明確に分けられます。

MCP の最小実行フロー(ざっくり)

  1. クライアントがMCPサーバーに接続
  2. MCPサーバーが「利用可能なツール一覧」(name, schema 等) を返す
  3. クライアントがツールを選択し、tools/call を投げる
  4. MCPサーバーが処理をして result を返す
  5. クライアントは content を LLM に渡し、必要なら structuredContent を解析する


まとめ:MCP は「LLM の外付けツール規格」

MCPは、

  • 外部データ取得
  • 計算処理
  • 業務API連携
  • ファイル操作
  • データベース処理
  • カスタムスクリプト実行

などを、標準化された方法でAIアプリに追加できる仕組みです。

AIの能力を“外部ツール”で拡張するための共通規格。
それが Model Context Protocol(MCP)です。



うん、むずかしい!