MCPサーバー開発から見えた“落とし穴”可能性

「従来の開発の延長」だからこそ陥る罠

MCP(Model Context Protocol)は2024年にAnthropicが発表した新しいプロトコルで、LLMと外部システムを⁠同じ規格⁠でつなぐ仕組みを提供します。

私は2025年の夏から個人的にMCPサーバーの実装を行い、その上で得た知見や考えをMCPサーバー開発大全としてまとめました。私はMCPサーバーを開発する上で、普段の開発と似ているがゆえの落とし穴にも何度も出会いました。本稿では、MCPサーバーを自分で開発することの魅力と意外な落とし穴をお伝えします。

MCPサーバーの実例:市場予測エンジン「Aeolus」

現在、私はMCPサーバー「Aeolus」⁠アイオロス)を個人的に開発しています。これは、各国のリアルタイムな政治動向・金融市場・地政学的リスクなどを複合的に解析し、金融市場の変化を予測するためのMCPサーバーです。

Aeolusが内包する関数の一部を以下に挙げます。

  • get_political_risk():政治イベントのリスクスコア化
  • aggregate_market_indicators():複数市場の総合指標を生成

MCPサーバーとして実装するメリットは、LLMが自然言語で直接この一連のツールをオーケストレーションできる点にあります。たとえば、⁠米国と日本の政治イベントの影響を踏まえ、為替市場における短期予測を出して」といった自然言語による指示で、LLMが自動的に適した関数を呼び出してくれます。

従来のAPI構成では、クライアント側に大規模なロジックを実装する必要がありました。しかしMCPサーバー化することで、処理の本体はAeolus側に集約され、LLMは自然言語制御と結果の解釈に専念できます。

リアルタイムの情報をもとに、⁠何が言えるかわかりやすく教えて!」といつでも訊ねられてすぐに返事が返ってくることは、ほんの数年前でも考えられないことであり、私自身、非常に面白い時代に生きていると実感しています。

直面した“技術外”の落とし穴

MCPサーバーは、技術的には関数を書くだけで作れます。しかし、実際に運用を考えると技術よりも難しいのは規約と権利にまつわる非技術領域でした。

1. APIの利用規約と権利の壁

外部APIをツールとして呼び出すとき、API側の利用規約で「利用結果は個人利用のみに限る。商用利用は不可」というケースが多くありました。

当たり前のことではありますが、外部APIをコールするMCPサーバーを使ってサービスを提供し、何らかの利益を出したいと考える場合、権利関係は徹底してクリアにしておかなければなりません。Aeolusでも、使用したいAPIの許可する範囲が私の望む目的とそぐわなかったため、利用を諦めたものが多くありました。

2. LLMの守備範囲外問題

MCPサーバーを実装中、LLMが取り扱うことのできない領域に直面することがありました。

たとえば、現在Claudeでは、新薬開発に関するトピック、法律の具体的なアドバイスを求める相談、金融アドバイスを求める行為などがそれにあたります。これらは資格をもつ人間でなければできない行為であったり、悪用の危険性が高い話題であったりするために、LLMベンダー各社はこうした話題を明確に規約で禁止しています。

Aeolusも「〇〇社の株価は今後上がりそうなので買うことをおすすめします」といった金融アドバイスを行わないよう、金融市場の予測にとどめる設計になっています。

非決定的なシステムをサービスとして利用する難しさ

MCPサーバーを開発していてすぐに、⁠どうやってテストをすればいいんだろう?」という疑問が浮かびました。

図1

LLMは「この入力をしたとき、必ずこの動作をする」という決定的なシステムではありません(したがって、私は生成AIが介在するシステムをしばしば非決定的なシステムと呼びます⁠⁠。それまでのユーザーとの会話や状況によって、ユーザーが同じ文章を入力しても、異なる関数が呼び出される可能性があるのです。このため、従来型のAPIテストはほぼ機能しません。

この問題を解消するために本書で提案したのが、4層テスト戦略です。

図2

L1からL3まではLLMを介在させないことで非決定性の影響を排除しつつ、L4ではテストの成功確率を指標とする概念を導入しました。

「技術は簡単、運用は難しい」

MCPサーバーは「関数を書いて実装する」という意味ではシンプルですが、LLMという非決定的なシステムを挟むだけで、各工程において新しい視点から考える必要が生じます。本稿で触れたのはその一部ですが、MCPサーバー開発大全では技術・品質保証・運用を体系的に解説しました。

これから実際にMCPに触れたい人にとって、拙著が手掛かりになることを願っています。

プロフィール

岡翔子

大阪在住。AWSジャパンを経て現在はLINEヤフー株式会社でエンジニアとして勤務。LLMの応答に関する論文執筆経験をもち、個人でMCPサーバーの開発を行っている。趣味は読書と現代美術鑑賞。
𝕏: @0xshooka