MCP vs API:なぜ従来のAPIはAIエージェントにおいて失敗するのか
従来のAPIは、AIエージェントの動作を遅くし、コストを増大させています。
私は長年、RESTやGraphQLを用いてウェブアプリを構築してきました。状態管理やペイロードの最適化については熟知しています。しかし、AIエージェント向けの開発はそれとは異なります。
私たちはLLMを人間の開発者のように扱いがちです。APIエンドポイントを与えれば、それだけで動いてくれると期待してしまう。これは間違いです。
Model Context Protocol (MCP) は、この状況を一変させます。これはAI接続のためのオープンスタンダードです。LLMをツールに接続するためにカスタムのグルーコード(glue code)を書き続けているなら、それは技術的負債を生み出していることになります。
従来のAPIがAIエージェントにおいて失敗する理由:
- N x M問題: 5つのAIフレームワークと5つのエンタープライズツールがある場合、25個のカスタムコネクタを書かなければなりません。MCPはこれをN + Mアーキテクチャへと変えます。すべてのツールは1つのMCPサーバーを使用し、すべてのエージェントは1つのMCPクライアントを使用します。
- 静的 vs 動的: REST APIはハードコードされたパスを必要とします。一方、AIエージェントは実行時にツールを検出する必要があります。MCPは、動的なディスカバリーを通じて、エージェントが利用可能な機能を即座に把握することを可能にします。
- トークンの浪費: 従来のAPIは、しばしば巨大なJSONペイロードを返します。大きなペイロードはコストを浪費し、レイテンシを増大させます。また、モデルが集中力を失う「コンテキストの劣化(context rot)」を引き起こす原因にもなります。MCPは、LLMのコンテキストウィンドウに最適化されたデータを返します。
- ステートレス性: RESTはステートレスです。しかし、AIエージェントは思考と行動の連続的なループの中で動作します。MCPはステートフルなセッションを使用することで、膨大なデータを再送することなくコンテキストを維持します。
MCPは主に3つの要素で構成されています:
- Tools(ツール): SQLクエリの実行など、モデルが行うアクション。
- Resources(リソース): ログファイルやドキュメントなどの読み取り専用データ。
- Prompts(プロンプト): モデルの推論をガイドするテンプレート。
MCPはデータベースやバックエンドを置き換えるものではありません。MCPサーバーは、引き続き既存のAPIを呼び出します。MCPが置き換えるのは、それらのサービスをLLMに接続するために書かれる、脆弱なコードです。
LLM呼び出しのためにJSONを文字列化するようなカスタム関数を書くのは、もうやめましょう。エージェント主導の未来に向けて、拡張性のあるアーキテクチャを構築してください。
皆さんはどう思われますか?すでにMCPを使っていますか?それとも、引き続きカスタムの関数呼び出し(function calling)を使い続けますか?
Source: https://dev.to/chaudharidevam/mcp-vs-api-why-traditional-apis-are-failing-ai-agents-28m8
Optional learning community: https://t.me/GyaanSetuAi
