dotConf, Inc
🔗

【入門】Model Context Protocol(MCP)とは?AIの可能性を広げる新しい標準

に公開

はじめに

こんにちは、
株式会社dotConfにて、AIエンジニアをしている森です!

AIアプリケーションを使っていて、こんなことを思ったことはありませんか?

  • ChatGPTやClaudeに、自分のGoogleカレンダーやNotionのデータを見てほしい
  • データベースに直接アクセスして、最新の情報で回答してほしい
  • 複数のツールを連携して、もっと複雑なタスクをこなしてほしい

これらすべてを実現する鍵が、Model Context Protocol(MCP) です!

本記事では、MCPとは何か、なぜ重要なのか、どのような仕組みで動いているのかを、初心者の方でも理解できるよう詳しく解説していきます。

MCPとは? 💡

基本概念

Model Context Protocol(MCP) は、AIアプリケーションを外部システムに接続するためのオープンソース標準です。

2024年11月にAnthropic社が発表し、現在ではOpenAI、Google DeepMind、Microsoftなど、主要なAI企業が採用を表明している、次世代のAI統合プロトコルです。

USB-Cの比喩?

Anthropic社は、MCPを 「USB-Cポート」 に例えて紹介しています。

USB-Cがどんなデバイスでも同じケーブルで接続できるように、MCPがあればどんなAIアプリでも同じ方法で外部システムに接続できるという意味のようです。

しかし、AIエージェントを開発したことがない人たちには、なかなかMCPの良さについてピンとこなかったかもしれません。

次のセクションから、MCPがどんな問題を解決するのか、具体的に見ていきましょう。

MCPが接続できるもの

MCPを使用することで、AIアプリケーションは以下の3つのタイプのリソースに接続できます:

タイプ サブカテゴリ 具体例 使い方の例
📂 データソース ローカルファイル ソースコード、設計書、ログファイル 「このREADMEを読んで要約して」
データベース PostgreSQL、MySQL、SQLite 「先月の新規登録者数を教えて」
クラウドストレージ Google Drive、Dropbox、OneDrive 「最新の提案書を探して」
ビジネスツール Notion、Google Calendar、Gmail 「先週のアクションアイテムをまとめて」
🔧 ツール 開発ツール Git、GitHub、GitLab 「最新のコミット内容を説明して」
検索・情報取得 Web検索、Wikipedia、Brave Search 「Python 3.12の新機能を調べて」
計算・データ処理 計算機、データ変換、画像処理 「売上の平均値を計算して」
コミュニケーション Slack、Discord、メール送信 「進捗状況を投稿して」
⚙️ ワークフロー プロンプトテンプレート コードレビュー用、バグ報告用 チーム共通基準で自動チェック
カスタムワークフロー デプロイ手順、テスト実行、レポート生成 「レビュー→テスト→マージ」を自動化
自動化スクリプト 定期バックアップ、データ集計、通知 毎日決まった時刻に自動実行

なぜMCPが必要なのか? 🤔

従来の問題点

MCPが登場する前、AIアプリケーションと外部システムを連携させるには、それぞれのシステムごとに個別の統合を開発する必要がありました。

この方法には、サービスごとに異なる実装が必要であったり、メンテナンスが困難という問題点がありました。

MCPによる解決

この問題に対して、MCPは、AIアプリケーションと外部システムの間に「標準化されたプロトコル」、つまり共通の接続ルールを提供します。

これにより、どんなAIアプリでも、どんな外部システムでも、同じ方法で接続できるようになります:

MCPの全体像:AIアプリケーションと外部システムを標準プロトコルで接続
図: Model Context Protocol の概念図(公式ドキュメントより引用)

この図が示すように、MCPは左側のAIアプリケーション(チャットインターフェース、IDE、その他のAIアプリ)と、右側のデータソース・ツール(データベース、開発ツール、生産性ツール)を、標準化されたプロトコルで双方向に接続します。

誰にどんなメリットがあるの?

MCPは、様々な立場の人にメリットをもたらしてくれます:

立場 主なメリット 具体的な効果
👨‍💻 開発者 開発効率の向上 ・AIアプリ構築時の開発時間を短縮
・統合の複雑さを削減
・標準化されたプロトコルで学習コストを低減
🤖 AIアプリ提供者 機能拡張の容易さ ・データソース、ツール、アプリのエコシステムへアクセス
・新機能を簡単に追加できる
・ユーザー体験を向上
👤 使う人(ユーザー) 高度なAI体験 ・より能力の高いAIアプリケーションを利用可能
・AIが自分のデータにアクセスして、パーソナライズされた支援
・必要に応じてAIが代わりにアクションを実行

MCPの仕組み 🔧

アーキテクチャの全体像

MCPは、ホスト・クライアント・サーバーという3層構造のアーキテクチャを採用しています。

MCPアーキテクチャ:ホスト・クライアント・サーバーの3層構造
図: MCPの3層アーキテクチャ(公式ドキュメントより引用)

この図が示すように:

  • ホスト(上部の黄色い枠): AIアプリケーション本体(Claude Desktopなど)
  • クライアント(紫色のボックス): ホストとサーバーの仲介役(1対1で接続)
  • サーバー(下部の紫色のボックス): 外部システムとの実際の接続(Sentry、Filesystem、Databaseなど)

各クライアントは、特定のサーバーと1対1で接続します。これにより、セキュリティを保ちながら、複数の外部システムに同時に接続できます。

各コンポーネントの役割

MCPアーキテクチャには、3つの主要な参加者(participants)がいます:

コンポーネント 概要 主な機能
🤖 MCPホスト 皆さんが使うAIアプリそのもの ・複数のMCPクライアントを生成・管理
・各MCPサーバーへの接続を調整
・セキュリティポリシーの適用
・ユーザー認可の管理
🔗 MCPクライアント ホストとサーバーの橋渡し役
(自動作成・管理される)
・サーバーとの1対1接続を維持
・ホストに情報を提供
・セキュリティ境界を維持
🖥️ MCPサーバー 外部システムとつなぐプログラム ローカル(自分のPC上、Stdio)
リモート(クラウド上、HTTP)

それぞれの詳細を見ていきましょう。

1. MCPホスト(MCP Host)🤖

役割: 複数のMCPクライアントを調整・管理するAIアプリケーション

重要な特徴:

  • 複数のクライアントを管理: 1つのホストが複数のMCPクライアントを同時に管理
  • AIアプリケーションそのもの: 皆さんが日常的に使うAIアプリがホストとして機能
  • セキュリティと認可を管理: どのサーバーを信頼するか、どの操作を許可するかを制御

動作例:
Visual Studio CodeがMCPホストとして動作する場合:

  1. Sentry MCPサーバーに接続 → VSCodeがMCPクライアント1を作成
  2. Filesystem MCPサーバーに接続 → VSCodeがMCPクライアント2を作成
  3. Database MCPサーバーに接続 → VSCodeがMCPクライアント3を作成

このように、1つのホストが複数のクライアントを管理します。

2. MCPクライアント(MCP Client)🔗

役割: MCPサーバーとの接続を維持し、ホストにコンテキスト(情報)を提供するコンポーネント

重要な特徴:

  • 1対1の関係: 各クライアントは、特定のサーバーと専用の接続を維持
  • 自動管理: ホストによって自動的に作成・管理される
  • ユーザーからは見えない: 直接操作することはありません

3. MCPサーバー(MCP Server)🖥️

役割: MCPクライアントにコンテキスト(情報)を提供するプログラム

重要な特徴:

  • 実行場所は問わない: ローカルでもリモートでも、コンテキストデータを提供するプログラムを「MCPサーバー」と呼ぶ
  • 単一責任: 1つのサーバーは1つのサービス(GitHub、Notionなど)を担当
  • 独立したプロセス: それぞれが独立して動作し、セキュリティが保たれる

プロトコルの仕組み

MCPは、2層構造のアーキテクチャを採用しています。

トランスポート層:どうやって通信するか 🚚

まず、MCPがどのような通信手段を使うかを見ていきます。MCPは2つのトランスポート(通信方法)をサポートしています:

トランスポート 用途 特徴 具体例
Stdio ローカル通信 自分のPC内部での通信(標準入出力を使用) Filesystemサーバー(PCのファイルにアクセス)
HTTP リモート通信 インターネット経由での通信(ストリーマブルHTTP) Sentryサーバー(クラウド上で動作)

データ層:何を送るか 📦

次に、MCPが何を送受信するかを見ていきます。データ層では、以下の3つのことを定義しています:

  • メッセージの形式: JSON-RPC 2.0ベースで、どんな形でデータをやり取りするか
  • ライフサイクル管理: 接続開始から終了までの流れをどう管理するか
  • プリミティブ(基本要素)の操作: リソース、ツール、プロンプト、サンプリングをどう扱うか

このデータ層で定義されている「プリミティブ(基本要素)」については、次のセクション「MCPの主要コンポーネント」で詳しく説明します。

MCPの主要コンポーネント 📦

MCPは、5つの主要なコンポーネントでAIと外部システムを連携させます:

コンポーネント 概要 主な特徴
📄 リソース AIが読み取り可能なデータ ・URIで識別
・MIMEタイプで種類を指定
・リアルタイム更新も可能
💬 プロンプト 事前定義されたプロンプトテンプレート ・チーム全体で共有
・ベストプラクティスを標準化
・入力の手間を削減
🛠️ ツール AIが実行可能な機能 ・書き込み・実行が可能
・JSONスキーマで定義
・AIが自動的に呼び出し
🤖 サンプリング サーバーがAIにクエリを投げる機能 ・サーバーはAI不要
・セキュリティをクライアント側で管理
・人間のレビュー挿入可能
📁 ルート サーバーの操作範囲を通知 file:///スキーム使用
・調整メカニズム(強制ではない)
・OSレベルでセキュリティ確保

それぞれの詳細を見ていきましょう。

1. リソース(Resources)📄

役割: AIアプリケーションが読み取り可能なデータを提供

AIが「見る」ことができるデータです。ファイル、データベース、APIから取得した情報など、AIに提供したいあらゆるデータを指します。

具体例: README.mdの内容、顧客リスト、天気情報、スクリーンショット

使い方の例:

あなた:「このプロジェクトのREADMEを読んで要約して」
AI:リソース(README.md)を読み取り → 要約を生成

2. プロンプト(Prompts)💬

役割: 事前定義されたプロンプトテンプレートを提供

よく使うタスクを「テンプレート化」したものです。チーム全体で同じ品質の指示をAIに出せるようになります。

具体例: コードレビュー用、バグ分析用、ドキュメント作成用

使い方の例:

あなた:プロンプト「コードレビュー」を選択
AI:事前に定義された基準でコードを自動レビュー

3. ツール(Tools)🛠️

役割: AIアプリケーションが実行可能な機能を提供

AIが「実行」できるアクションです。リソースが「読み取り専用」なのに対し、ツールは「書き込み・実行」が可能です。

具体例: ファイル操作、データベース操作、Slack通知送信、GitHub Issue作成

使い方の例:

あなた:「開発チームのSlackチャンネルに進捗報告を投稿して」
AI:ツール(Slack送信)を使用 → メッセージを自動投稿

4. サンプリング(Sampling)🤖

役割: サーバーがクライアントのAIモデルにクエリを投げる機能

外部サーバーが「AIに質問を投げられる」機能です。サーバー自身がAI機能を持たなくても、クライアント側のAIを活用できます。

重要な特徴:

  • サーバーは独自のAI機能を持つ必要がない(クライアントのAIを借りる)
  • クライアントがAIモデルへのアクセスを完全に制御(セキュリティが保たれる)
  • 複数のチェックポイントで人間のレビューを挿入可能(安全性を確保)

実例:旅行予約システム

サーバー: 47個のフライトオプションを取得
       → クライアント: AIモデルで分析依頼
クライアント: ユーザーの好みに基づいて分析
          → 最適な3つを推奨
サーバー: 推奨結果を受け取り、予約フローに進む

5. ルート(Roots)📁

役割: サーバーの操作範囲を通知するファイルシステム境界

サーバーがどのディレクトリで作業すべきかを明確にする調整メカニズムです。セキュリティの強制ではありませんが、サーバーはこれを尊重することが期待されています。

例:

クライアント → サーバー: 以下のルートを通知
  - file:///Users/name/projects/travel-planning
  - file:///Users/name/templates/travel

サーバー: これらのディレクトリ内でファイル操作を実行

MCPのセキュリティ 🔒

セキュリティモデル

MCPは、多層的なセキュリティアプローチを採用しています:

1. 権限管理

  • サーバーは明示的に許可されたデータにのみアクセス可能
  • ユーザーが接続を承認する必要がある
  • 細かい権限設定が可能

2. セキュリティ境界

  • クライアントがサーバー間のセキュリティ境界を維持
  • 各サーバーは独立したプロセスとして隔離
  • 一つのサーバーの問題が他に影響しない

3. データの最小化

  • ホストが会話履歴を管理
  • 各サーバーには必要最小限の情報のみを提供
  • プライバシーを保護

MCPが実現する世界 🌍

具体的な活用例

MCPを活用することで、以下のような強力な機能が実現できます:

1. パーソナライズされたAIアシスタント

あなた:「明日の会議の準備をして」

AI:GoogleカレンダーとNotionにアクセス
    → 会議のアジェンダを取得
    → 関連ドキュメントを検索
    → サマリーを作成
    → メール下書きを準備

2. デザインからコード生成

あなた:「このFigmaデザインから Web アプリを作って」

AI:Figmaに接続
    → デザイン仕様を取得
    → HTML/CSS/JavaScriptを生成
    → GitHubにプッシュ
    → デプロイまで実行

3. 企業データ分析

あなた:「先月の売上トレンドを分析して」

AI:複数のデータベースに接続
    → 販売データを集計
    → トレンド分析を実行
    → グラフを生成
    → レポートを作成

4. 3D設計と製造

あなた:「この製品のプロトタイプを作って」

AI:Blenderに接続
    → 3Dモデルを設計
    → 3Dプリンター用データを生成
    → プリント指示を送信

業界での採用状況(2025年)

MCPは、主要なAI企業に急速に採用されています:

時期 企業 対応内容
2024年11月 Anthropic MCPを発表、Claude Desktopで対応
2025年3月 OpenAI ChatGPTデスクトップアプリ、Agents SDK、Responses APIでMCPサポート発表
2025年4月 Google DeepMind 次期Geminiモデルと関連インフラでMCPサポートを確約

まとめ

本記事では、Model Context Protocol(MCP)の基本概念から仕組みまでを解説しました。

重要なポイント 📌:

  • MCPとは: AIアプリケーションを外部システムに接続する方法を標準化するためのプロトコル
  • 3層アーキテクチャ: ホスト・クライアント・サーバーの役割分担
  • 5つのコンポーネント: リソース、プロンプト、ツール、サンプリング、ルート

MCPは、AIアプリケーションの可能性を大きく広げる革新的な技術です。標準化により、開発者もユーザーも恩恵を受けることができます。

参考リソース 📚

最後に

最後まで読んでくださり、ありがとうございました!
本記事では、Model Context Protocol(MCP)の基本概念と仕組みについて解説しました。
MCPは、AI業界の未来を形作る重要な技術です。

ぜひ実際にMCPを使って、AIアプリケーションの新しい可能性を体験してみてください!

生成AI、データ分析、深層学習を体系的に学び、プロの指導のもとで実践的なAIスキルを習得したい方、
キャリアの幅を広げたい方や副業を目指す方は、ぜひこちらからお問い合わせください。
https://b2c.aipass.tech
https://page.line.me/564fgnmw?oat_content=url&openQrModal=true

dotConf, Inc
dotConf, Inc

Discussion