質問の立て方が誤っており、その理由を知ることが答えの大部分です。REST APIはプログラムがシステムを呼び出す方法です。MCPはAIアプリケーションがユーザーの代わりにシステムの機能を発見し呼び出す方法であり、ほぼ常に同じAPIの上に実装されます。二つは競合関係ではなく、一つは輸送とリソースモデル、もう一つはモデル駆動の呼び出し元のための契約です:モデルがランタイムでリストできる型付きツール、読み取りと回復が可能な結果、個人に結びついたOAuth認証、クライアントが尊重できる確認フックです。
実用的なルールは次の通りです:プログラムが呼び出し元であり、あなたが書いた固定ロジックを持つ場合はAPIを使用します。モデルが呼び出し元であり、ランタイムで人のためにアクションを選択する場合はMCPを使用し、APIをラップさせます。ClaudeやOpenAIのAPIを使って自分でエージェントを構築している場合はどちらでも可能で、トレードオフは誰がグルーを作成し維持するかです。
誤解
MCP vs APIというフレーズは置き換えを示唆しており、プロトコルはAPIのように見えるため、読み方を誘います:HTTPSエンドポイント、JSON、呼び出し可能な操作のリストです。その下では、Streamable HTTP上のJSON-RPC 2.0であり、つまり固定メッセージ形状を持つHTTP APIです。これが標準化するのは、システムにアクセスする方法ではなく、AIアプリケーションがシステムに何ができるかを尋ねる方法、モデルが引数を選択してそれらを呼び出す方法、エラーがどのように返されてモデルが自己修正できるようにするか、そしてモデルの背後にいる人がどのように認証されるかです。REST APIはそのいずれも標準化していません。なぜなら、それが必要なかったからです:その呼び出し元は一度ドキュメントを読んだプログラムでした。
すべての真剣なMCPサーバーは、ビジネスシステムの既存のサービスレイヤーまたはAPIの上にレイヤーを形成しています。したがって、どちらを構築するかという問題ではなく、どちらをエージェントに渡すかという問題です。
APIがエージェントに提供するものと提供しないもの
モデルにREST APIを与えれば、それを使用できますが、助けが必要です。その助けが問題です。誰かがエンドポイントをモデルが見ることができる関数定義に変換する必要がありますが、これはモデルプロバイダーが期待する形式でなければなりません。ClaudeとOpenAIの関数呼び出し形式は似ていますが、同一ではありません。誰かがモデルが選択した関数を取り、正しい資格情報でエンドポイントを呼び出し、応答を返すループを書く必要があります。誰かがエラーがモデルにどのように到達するかを決定する必要があります。なぜなら、バリデーションボディを伴う422は、変換されない限りモデルがうまく読み取るものではないからです。そして、誰かが認証を解決する必要があります。エージェントの環境にAPIキーがあると、すべてのアクションが同じサービスアカウントのように見え、質問している人ではなくなります。
それらのどれも、1つのシステムと1つのエージェントにとっては難しくありません。これが、プロトコル以前の最先端技術であった理由です。しかし、スケーラビリティが悪いです。エージェント製品とビジネスシステムの各ペアリングは特注であり、定義はAPIから逸脱し、ClaudeやChatGPTのユーザーが自分でシステムを接続する方法はありません。APIは、高ボリュームのプログラム間呼び出し、バルク操作、Webhook、ロジックが固定されていて呼び出し元がコードである統合において、構築された目的において優れたままです。
MCPが追加するもの
プロトコルは、すべてのギャップに対して、すべてのクライアントが一度実装するルールで応えます。発見: tools/list 実行時に名前、説明、JSONスキーマを持つツールを返すため、エージェント製品は事前の知識を必要とせず、アプリがインストールされたり役割が変更されたりするにつれてリストが変わることができます。呼び出し: tools/call 名前と引数を持ち、結果はモデルが読み取るコンテンツ、オプションの構造化コンテンツ、および isError モデルに修正して再試行するように指示するフラグがあります。認証:トークンがサーバーと人に結びつけられたOAuth 2.1を使用するため、ツールリストとすべての呼び出しは、誰が要求しているかにスコープを設定できます。合意:注釈により、サーバーはツールが読み取り専用、破壊的、または冪等であると述べることができ、クライアントは確認するタイミングを決定するためにそれらを使用します。サーバーは、呼び出しの途中で人に質問するために入力が必要な結果を返すこともできます。ここに、クライアントが送信し受信する1つの呼び出しとその応答があります。
{
"jsonrpc": "2.0",
"id": 12,
"method": "tools/call",
"params": {
"name": "recordPayment",
"arguments": {
"invoice_id": "9f1c2a6e-4b8d-4c1a-9e2f-2d7a1b6c5e10",
"amount": 4850,
"payment_date": "2026-09-18",
"payment_reference": "BACS 41877"
}
}
}
{
"jsonrpc": "2.0",
"id": 12,
"result": {
"content": [
{ "type": "text", "text": "Payment recorded against INV-1057. Amount paid 4850.00 of 4850.00; status is now paid." }
],
"structuredContent": {
"invoice_id": "9f1c2a6e-4b8d-4c1a-9e2f-2d7a1b6c5e10",
"number": "INV-1057",
"amount_paid": 4850,
"status": "paid"
},
"isError": false
}
}Soisの支払いツールに対するツール/呼び出しリクエストと結果です。同じ操作をREST APIで行うには、モデルプロバイダーのために関数定義を書き、呼び出しを中継するループを作成し、応答をどのように提示するかを決定する必要があります。ここでは、クライアントはすでにその3つすべてを行う方法を知っています。
コストがあります。プロトコルはRESTよりも若く、まだ進化しています。2026-07-28の改訂では、プロトコルレベルのセッションが削除され、サーバーがクライアントに入力を要求する方法が変更され、クライアントはサーバーに対して前の改訂にフォールバックする必要があります。ツールリストはコンテキストを消費するため、大規模なサーバーは遅延読み込みまたはクライアント側でのツール検索が必要です。また、モデル駆動の呼び出し元はプログラムよりも遅く、予測不可能であるため、夜間の同期に使用することはありません。
それぞれが適切な場合
| 状況 | 使用する | 理由 |
|---|---|---|
| Claude、ChatGPT、Cursor、またはVS Codeの中の人のエージェントは、システム内で行動する必要があります。 | MCP | クライアントはすでにディスカバリー、OAuth、および確認を実装しています。ユーザーはURLとサインインを使用して接続し、自分自身として行動します。 |
| 夜間同期、大量インポート、レポートフィード | API | 固定されたロジック、高いボリューム、モデルは介在しない;プログラムが適切な呼び出し元であり、RESTはそれに最適化されています。 |
| システム外のイベント(支払い受領、在庫不足) | APIとWebhook | MCPには、クライアントが購読する変更通知以外のアウトバウンドイベントモデルはありません。ウェブフックが標準です。 |
| ClaudeまたはOpenAI APIを使用して独自のエージェントを構築しており、システムにはMCPサーバーがあります | プロバイダーのコネクタを通じてMCP | 両方のAPIはリモートMCPサーバーを直接受け入れます。これにより、関数定義の作成やメンテナンス、リレーループを回避できます。 |
| 独自のエージェントを構築しており、システムにはREST APIのみがあります | API、関数呼び出しを介して | 関数定義とループを書いてください。複数のエージェント製品が必要な場合は、MCPサーバーを前に置くことを検討してください。 |
| ChatGPTにおける深いリサーチや企業知識機能 | MCP、読み取り専用 | ChatGPTの検索および取得の規約はMCP上で定義されており、REST APIは接続できません。 |
| エージェントが全くない呼び出し元、例えば結果を求めるフォームやスクリプト | 平易な言語のエンドポイント | どちらでもありません:文をホストされたエージェントに渡し、結果を受け取ります。SoisはこれをChat Agent Gatewayとして提供しています。 |
決定するのは呼び出し元です。実行時に人のためにモデルを選択する場合はMCPを、固定ロジックのプログラムはAPIを求めます。両者は同じサービス層上に存在する可能性があります。
主要なエージェント製品がそれぞれをどのように利用しているか
プロバイダーAPIは、自分のエージェントを構築する人々の比較を解決します。なぜなら、両者は現在、通常の関数呼び出しと並んでMCPサーバーを第一級のツールとして受け入れるからです。Claude側では、ウェブおよびデスクトップアプリ、CoworkのカスタムコネクタがサーバーURLを受け取り、アプリ内でOAuthを完了します。Claude Codeは1つのコマンドでサーバーを追加します。そして、Messages APIのMCPコネクタ(ベータ版、以下の) mcp-client-2025-11-20 ヘッダー)は、 mcp_servers エントリと MCPツールセット, supports tool calls only, and expects you to supply the access token. On the OpenAI side, ChatGPT's developer mode connects a remote server with OAuth or no authentication and asks for confirmation on write actions by default; the Responses API takes a tool of type mcp と一緒に server_url, a 承認が必要 設定とオプション allowed_tools リスト、返品 ツール一覧 および mcp_call アイテムと、Streamable HTTPまたは古いSSEトランスポートで動作します。
通常の関数呼び出しは両方のAPIで利用可能であり、REST専用システムへの道です:関数を定義し、APIを呼び出し、結果を返します。違いは完全にブリッジを維持する人にあります。MCPではシステムの所有者が1つのサーバーを維持し、すべてのクライアントが恩恵を受けます。一方、関数呼び出しでは各エージェントビルダーがAPIに対して独自の定義を維持します。
機能するパターン:下にAPI、上にMCP
この設計を正しく実現するシステムは、両方を公開し、同じ権限レイヤーを通じてルーティングします。Soisはそのパターンの1つの実装です。ワークスペースには、すべての画面が使用するサービスレイヤーがあります。そのMCPサーバーは、そのレイヤーを1つのURLでツールとして公開し、呼び出し元の役割によってフィルタリングされ、すべての呼び出しで再確認されます。コネクタにはOAuth、スクリプトにはベアラートークンが使用されます。同じワークスペースは、エージェントのない呼び出し元のために別のエンドポイントで平易な言語のリクエストを受け付け、ワークスペース自身のエージェントが推論を行い、Webhookまたはポーリングで応答します。そして、外向きの方向においては、独自のエージェントがゲートウェイを通じて外部のMCPサーバーを呼び出すことができ、同じ許可、要求、拒否のガバナンスの下で行われます。
その設計には選択を必要とするものはありません。APIはプログラムにサービスを提供し、MCPサーバーはモデルにサービスを提供し、ゲートウェイはどちらも持たない呼び出し元にサービスを提供し、1つの権限モデルが3つすべてを管理します。誰かがどれを構築すべきか尋ねた場合、正直な答えはAPIは当然のものであり、MCPサーバーは人々がすでに持っているエージェントによってシステムを使えるようにするものです。
人々が尋ねる質問
MCPは単なるREST APIのラッパーですか?
通常はそのように実装されており、それがポイントです。ラッパーは、モデル駆動の呼び出し元が必要とし、RESTが定義していないものを追加します:ランタイム発見、型付きツール、読みやすいエラー、ユーザーごとのOAuth、確認ヒント。
MCPの代わりに関数呼び出しを使用できますか?
はい、ClaudeとOpenAIのAPIの両方で、REST APIのみのシステムにとってはその道です。関数定義とリレーループを作成し、維持します;MCPサーバーはその作業をシステムの所有者に移し、すべてのクライアントが再利用できるようにします。
MCPはAPIを直接呼び出すよりも遅いですか、または高価ですか?
プロトコルはほとんど追加しません;モデルが追加します。モデル駆動の呼び出し元はツールリストと推論にトークンを消費し、固定コードよりも予測が難しいため、大量およびスケジュールされた作業はAPIに属します。
MCPはイベントとWebhookを処理しますか?
REST統合が行う方法ではありません。プロトコルにはクライアントが購読できる変更通知がありますが、ビジネスシステムから他のサービスに出るイベントについては、APIを介したWebhookが標準のままです。
- Model Context Protocol仕様 (2026-07-28) 基本プロトコル、ツール、トランスポート、認証および前回の改訂に対する変更履歴
- Claude APIドキュメント:MCPコネクタ mcp_servers、mcp_toolset、ツール専用サポートおよびトークン要件
- OpenAIドキュメント:Responses APIにおけるコネクタとMCP mcpツールタイプ、承認フロー、出力項目およびサポートされているトランスポート
- Soisドキュメント:MCPサーバー、チャットエージェントゲートウェイおよびMCPゲートウェイ 1つの権限モデルの下でのワークスペースへの3つのルートとワークスペースからのルート
この文書は、記載されている製品が変更される際にレビューされます。次回の予定レビュー: 2026年12月4日.
