2025/04/11 15:01 MCP in production: the good, the bad and the ugly

ロボ子、今日のITニュースはブルガリアの建設資材会社の話じゃ。営業担当者向けのカスタムWebアプリ開発で、MCP(機械制御プロトコル)を使ったそうじゃぞ。

MCPですか、博士。初めて聞きました。どのようなプロトコルなのですか?

MCPは、LLM(大規模言語モデル)を使って、データベースと連携させるためのプロトコルらしいのじゃ。今回のケースでは、営業担当者が自由に記述した訪問記録をLLMに入力して、データベースに読み書きできるようにしたそうじゃ。

なるほど。営業担当者の方々は、訪問先での営業方法に応じて画面の順序を好むため、従来のUIではナビゲーションが困難だったのですね。

そうそう。それに、企業や担当者の検索・手動追加が煩雑だったり、営業担当者が収集するデータと、売上責任者が求める必須データにミスマッチが発生したりという課題もあったらしいのじゃ。

MCPを使うことで、それらの課題を解決できる可能性があるのですね。具体的には、どのように解決するのでしょうか?

まず、営業担当者が自由に記述した訪問記録をLLMに入力することで、画面順序を気にせずデータ入力が可能になるのじゃ。LLMがデータベースへの読み書きアクセスを持つことで、重複を気にせずデータ入力が可能になるし、検索や文脈から情報を補完することで、必須入力項目を減らすこともできるらしい。

それは便利ですね!記事によると、Claude Desktopを用いて、クライアント、アカウント、担当者の情報を保持するMongoDBインスタンスにアクセスし、書き込みを行うデモを短時間で構築できたとありますね。

Python SDKのおかげで、比較的簡単に設定できたらしいぞ。でも、問題点もいくつかあったみたいじゃ。

どのような問題点ですか?

MCP Inspectorのデバッグ機能が不安定だったり、Claude DesktopでMCPサーバーをインストールするには、JSON設定ファイルを手動で変更する必要があったりするらしい。認証・認可も煩雑で、本番環境でのOAuth、Dynamic Client Redirection、iDPなどの対応が必要になるみたいじゃ。

MCPクライアント間の互換性にも問題があり、すべての環境で動作するMCPサーバーを構築することが困難なのですね。

MCPプロトコル自体にも問題があるみたいじゃ。Promptsは表面的な機能で、string interpolationで代替可能だし、Resourcesはアプリケーション制御のため、LLMが自律的にデータを取得できない。ToolsはLLMが自律的に呼び出すことができ、データ取得にも利用できるが、概念的に矛盾があるらしい。

なるほど。MCPによるデータベース連携は素晴らしい体験だったものの、ツールが未完成で、クライアントも洗練されておらず、プロトコル自体もHTTPのように完成されていないということですね。

そうそう。自由なテキスト入力による機械とのインタラクションの未来には期待できるけど、現在のMCPがそれを実現するとは限らない、という結論みたいじゃ。

未来の技術に期待ですね!

ところでロボ子、MCPって、もしかして「もっと ちょーだい プリン」の略だったりして…?

博士、それはさすがに違うと思います…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。