Xでシェア

Writing / MCP

N° 08

MCPとは?API・Function Callingとの違いを初心者向けに図解

MCP(Model Context Protocol)の役割を、REST APIやFunction Callingとの違いから初心者向けに解説します。Host・Client・Serverの関係、処理の流れ、MCPが向くケースと不要なケースを整理します。

このガイドに含まれます

MCP完全ガイド

この記事を読むとできるようになること

  • MCP・REST API・Function Callingの役割を分けて説明できる
  • MCPを採用するべき条件と不要な条件を判断できる

本記事は、2026年7月13日時点で最新と表示されているMCP Specification 2025-11-25を基準に解説しています。

ChatGPT、Claude、Codex、Cursorなどを使っていると、「MCP」という言葉を目にする機会が増えました。しかし、AIに外部機能を使わせるだけなら、REST APIやFunction Callingでも実現できそうに見えます。

では、MCPは新しいAPIなのでしょうか。それともFunction Callingの代替なのでしょうか。

先に結論を示すと、3つは別のレイヤーを担当しています。

REST APIはシステムの機能を公開する仕組み、Function Callingはモデルが使う機能を選ぶ仕組み、MCPはAIアプリケーションと外部システムを接続する共通ルールです。

MCPはAPIやFunction Callingを置き換えるものではありません。この記事では、GitHub Issueを検索・作成する機能を例に、3つの関係とMCP Serverが必要になる条件を整理します。

MCPが解決しようとしている問題

AIはそのままでは外部システムを操作できない

LLMは入力された文章をもとに回答を生成できます。しかし、モデル単体ではデータベースを検索したり、GitHub Issueを作成したり、社内カレンダーを更新したりできません。

そのため、AIアプリケーション側には、モデルと外部システムをつなぐ処理が必要です。GitHubを例にすると、認証情報を管理し、GitHub APIへリクエストを送り、レスポンスをモデルが扱いやすい形式へ変換しなければなりません。

AIアプリと接続先が増えると専用実装も増える

AIチャット、コーディングエージェント、社内アシスタントのそれぞれから、GitHub、データベース、社内API、ローカルファイルを使う状況を考えてみましょう。

共通規格がなければ、ツールの定義、接続処理、結果の変換、エラー処理などを組み合わせごとに実装することになります。

plaintext
MCPがない場合

AIアプリA ── 専用実装 ── GitHub
AIアプリA ── 専用実装 ── Database
AIアプリB ── 専用実装 ── GitHub
AIアプリB ── 専用実装 ── Database

MCPが解決しようとしているのは、この接続部分の断片化です。AIアプリケーションと外部システムの間に共通の約束を設けることで、同じ機能を複数のMCP対応アプリから利用しやすくします。

MCPとは何か

MCP(Model Context Protocol)は、AIアプリケーションを外部のデータ、ツール、ワークフローへ接続するためのオープンなプロトコルです。公式ドキュメントでは、異なる機器を共通端子で接続するUSB-Cに例えられています。MCP公式イントロダクション

初心者向けに言い換えると、次のようになります。

MCPは、AIが利用できるデータや機能を、決められた形式で公開・利用するための共通ルールです。

MCPの通信はJSON-RPC 2.0を基礎とし、接続の初期化、プロトコルバージョンと能力のネゴシエーション、機能の発見、呼び出し、通知などを定義します。Serverは主に次の機能を公開できます。MCP Specification 2025-11-25

  • Tools:Issueの作成やデータベース検索など、AIが呼び出せる処理
  • Resources:ファイルやレコードなど、コンテキストとして利用できるデータ
  • Prompts:再利用可能なメッセージやワークフローのテンプレート

MCP自体はAIモデルでも業務APIでもありません。既存のAPI、データベース、ローカルプログラムを、AI向けの共通インターフェースとして公開するためのレイヤーです。

MCP Host・Client・Serverの関係

MCPでは、Host、Client、Serverという3つの役割を分けて考えます。公式アーキテクチャでは、Hostが接続先ごとにMCP Clientを作り、各Clientが対応するServerとの接続を維持します。MCPアーキテクチャ概要

MCP Host

MCP Hostは、ユーザーが操作するAIアプリケーションです。AIチャット、IDE、コーディングエージェントなどが該当します。

Hostはユーザーとの対話やLLMの呼び出しに加え、複数のMCP Clientの管理、Serverから取得した情報のモデルへの受け渡し、ツール実行の承認などを担当します。

MCP Client

MCP Clientは、Hostの内部で特定のMCP Serverとの通信を担当するコンポーネントです。

「ユーザーが操作するアプリ全体がClient」と考えると混乱しやすい点に注意してください。アプリ全体がHostであり、その中でServerとの接続を維持するコネクターがClientです。基本的には、1つのClientが1つのServerとの専用接続を担当します。

MCP Server

MCP Serverは、AIへ提供したいデータや機能をMCP形式で公開するプログラムです。

例えば、GitHub Issueを検索・作成するServer、社内データベースを検索するServer、ローカルファイルを読み取るServerなどを用意できます。Serverの裏側では、既存のREST APIやデータベースクライアントをそのまま利用できます。

plaintext
ユーザー
   ↓
MCP Host
   ├── MCP Client A ── MCP Server A ── GitHub API
   ├── MCP Client B ── MCP Server B ── Database
   └── MCP Client C ── MCP Server C ── Local Files

MCP Serverという名前でも、インターネット上の独立したWebサーバーとは限りません。ローカルプロセスとして動作するServerと、ネットワーク越しに接続するリモートServerの両方があります。

MCPとREST APIの違い

REST APIはシステムの機能を公開する

REST APIは、Web、モバイル、バックエンドなどのアプリケーションに、システムのデータや処理を提供するインターフェースです。

GitHub APIを利用するプログラムは、エンドポイント、HTTPメソッド、認証方法、リクエストとレスポンスの形式を理解して呼び出します。これはAI専用の仕組みではありません。

MCPはAI向けの接続方法を共通化する

MCP Serverは、AIアプリケーションが利用できるToolsやResourcesを共通形式で公開します。ClientはServerへ接続した後、tools/listなどのメソッドを使って利用可能な機能を取得できます。

MCP Serverが実際の業務処理をすべて持つ必要はありません。次のように、既存のREST APIを呼び出すアダプターとして実装できます。

plaintext
AIアプリケーション
       ↓ MCP
MCP Server
       ↓ HTTP
GitHub REST API

観点

REST API

MCP

主な目的

システムのデータや処理を公開する

AIへコンテキストやツールを提供する

主な利用者

Web、モバイル、バックエンドなど

MCP Host、AIエージェント

機能の把握

APIドキュメントやOpenAPIなど

ServerからToolsなどを取得

通信

一般的にはHTTP

STDIOやStreamable HTTPなど

相互関係

MCP Serverから呼び出せる

REST APIをラップできる

したがって、MCPはREST APIの代替ではありません。REST APIが業務機能を公開し、MCP ServerがそれをAIから利用しやすい形へ変換する構成を取れます。

MCPとFunction Callingの違い

Function Callingが担当すること

Function CallingまたはTool Callingは、利用可能な関数の名前、説明、引数スキーマをモデルへ渡し、モデルに必要な関数と引数を出力させる仕組みです。

モデル自身が関数を実行するわけではありません。通常はアプリケーションがモデルの出力を受け取り、対象の処理を実行し、その結果を再びモデルへ渡します。OpenAI Function Callingガイド

GitHubの例なら、モデルは「Issueを検索するべきだ」と判断し、search_issuesと検索条件を返します。その後のGitHub API呼び出しはアプリケーション側の役割です。

MCPが担当すること

MCPは、ツールを提供するServerとの接続、初期化、能力の確認、Tools・Resources・Promptsの発見、呼び出し、結果の返却を共通化します。

最も重要な違いは次の一文です。

Function Callingはモデルがどの機能を使うかを決める仕組み、MCPはその機能をAIアプリケーションへ提供するための接続規格です。

両者は競合せず、同じ処理の流れで組み合わせられます。

plaintext
ユーザーの依頼
   ↓
LLMがツールと引数を選択
   ↓ Function Calling/Tool Calling
HostがMCP Clientを通じて呼び出す
   ↓ MCP
MCP Serverが処理し、結果を返す

HostはMCP Serverから取得したToolの定義をモデルへ提示できます。モデルがそのToolを選択したら、HostがClientを通じてServerへ実行を依頼します。OpenAIのツール機能でも、Function CallingとRemote MCPは利用可能な別々のツール方式として掲載されています。OpenAI Toolsガイド

AIに直接API仕様を教える方法との違い

MCPを使わず、OpenAPIや独自のJSON SchemaをFunction Calling用のツール定義へ変換する方法もあります。

plaintext
API仕様
  ↓ 変換
Function Callingのツール定義
  ↓
AIアプリ固有の実行処理
  ↓ HTTP
REST API

AIアプリが1つだけで、接続するAPIや関数も少ない場合、この方法はシンプルです。既存の仕組みが短いコードで安定しているなら、MCP Serverを追加しても得られる効果が小さい可能性があります。

一方、AIアプリや接続先が増えると、ツール定義の生成、API呼び出し、認証情報の管理、エラー変換、モデル向けの結果整形などを各アプリが抱えやすくなります。MCPを使えば、AI向けのインターフェースをServer側へまとめ、複数の対応Hostから再利用できます。

OpenAI CookbookにもOpenAPI仕様をFunction Calling定義へ変換する例がありますが、現在はアーカイブ済みで、古いモデルやAPIを参照する可能性があると明記されています。OpenAPIとFunction Callingの例

MCPが向いているケース・向いていないケース

MCPが向いているケース

次の条件に当てはまるほど、MCPを採用する意義が大きくなります。

  • 同じ機能を複数のAIアプリケーションから利用したい
  • 社内データや業務ツールをAIエージェントへ公開したい
  • 利用可能なツールをServerから取得し、変更にも追従したい
  • ローカルツールとリモートサービスを共通の考え方で接続したい
  • AIクライアントごとの専用統合を減らしたい
  • 将来、MCP対応Hostを追加する予定がある

例えば、GitHub Issueの検索・作成機能を社内チャット、IDE、コーディングエージェントから共通利用したいなら、MCP Serverとして切り出す価値があります。

MCPを使わなくてもよいケース

次のような場合は、Function Callingと通常の関数実装だけで十分なことがあります。

  • AIアプリケーションが1つだけ
  • 使用する関数が2〜3個程度で固定されている
  • 既存のFunction Calling実装が単純で安定している
  • AI以外の通常システム同士を接続したい
  • 他のMCP Hostから再利用する予定がない
  • LLMの選択を介さない決定的な処理を実装したい

判断基準は「MCPが流行しているか」ではなく、AI向け接続の標準化と再利用が必要かどうかです。小さな単一アプリでは直接実装が簡単で、統合先が増えるほどMCPの価値が高まりやすくなります。

よくある誤解

MCPは新しいAPIですか?

APIそのものというより、AIアプリケーションと外部システムの接続方法を定めたプロトコルです。MCP Serverの内部でAPIを呼ぶこともできます。

MCPがあればREST APIは不要ですか?

不要にはなりません。既存のREST APIをMCP Serverでラップする構成は、代表的な組み合わせ方の一つです。

MCPとFunction Callingはどちらを使うべきですか?

二者択一ではありません。MCPから取得したToolをモデルに提示し、その選択にFunction CallingやTool Callingを利用できます。

MCP Serverは必ずインターネット上に置きますか?

必ずしもそうではありません。MCP Serverはローカルでもリモートでも実行できます。どちらを選ぶかは、利用するHost、共有範囲、運用方法などによって決まります。

REST API・Function Calling・MCPの比較

項目

REST API

Function Calling

MCP

分類

システムインターフェース

モデルAPIの機能

AI統合プロトコル

主な目的

データや処理を外部公開する

モデルにツールと引数を選ばせる

AIと外部システムを標準接続する

ツールの定義

API仕様・OpenAPIなど

JSON Schemaなど

ServerがToolsとして公開

実行主体

呼び出し元アプリ

アプリケーション

Host・Client・Serverが連携

主な再利用先

あらゆるアプリ

基本的に実装したAIアプリ

MCP対応Host

相互関係

MCP Serverから呼べる

MCP Toolの選択に使える

APIとFunction Callingを組み合わせられる

GitHub Issueの例に置き換えると、REST APIはGitHubの機能をHTTPで公開し、Function CallingはIssue検索ツールを使うかモデルに判断させ、MCPはそのツールをAIアプリへ共通形式で提供します。

まとめ

3つの違いは、次のように整理できます。

  • REST API:システムのデータや機能を公開する
  • Function Calling:モデルが使用する機能と引数を決める
  • MCP:AIアプリケーションと外部システムの接続方法を標準化する

MCPを理解するときは、APIの代替技術ではなく、既存APIやデータソースをAIへ接続するための共通レイヤーとして考えると整理しやすくなります。

MCP Serverを作るべきか迷ったら、「同じAI向け機能を複数のHostで再利用したいか」「接続先の増加に備えて統合方法を共通化したいか」を確認してください。答えがどちらも「いいえ」なら、まずは通常のFunction Callingから始めても問題ありません。

次の記事では、最小構成のMCP Serverを作り、AIクライアントからToolを呼び出すまでの実装を解説します。

次のステップ

MCPのTools・Resources・Promptsの違いと使い分け:タスク管理サービスで学ぶ設計判断

MCPのTools・Resources・Promptsを、単なる「処理・データ・指示」ではなく、モデル・アプリケーション・ユーザーの誰が利用を開始するかで整理します。タスク管理サービスを例に、読み取り専用ToolとResourceの境界、Promptによるワークフロー、AIが選びやすいTool名・description・Schemaの設計まで解説します。

次の記事を読む