
『MCP入門-生成AIアプリ本格開発-』を読みました
はじめに
こんにちは、DIVX R&Dエンジニア兼広報室室長のyasunaです。
2024年11月にAnthropic社からMCP(Model Context Protocol)がオープンソース化されて以来、AIが単なるチャットの相手ではなく、実際に作業を実行するパートナーになりつつあります。
私の所属するR&D部門でも、現在、既存のアプリケーションをMCPサーバー化する開発プロジェクトが進行中です。AIにどのようなツールを使わせるか、どう連携させるかを日々研究している中で、『MCP入門――生成AIアプリ本格開発』(小野哲 著)が出版されたことを知り、早速手に取ってみました。
特に私が知りたかったのは、MCPサーバーを実装する際の「通信方式の選択」でした。この書籍の第5章が、まさにその内容でしたので、今回はそこから得た学びを共有したいと思います。
https://gihyo.jp/book/2025/978-4-297-15295-6
本の概要
『MCP入門』は、AIに具体的な作業を実行させるMCP(Model Context Protocol)について、その概念から実践的なエージェント構築までを体系的に学ぶことができました。
なぜ今MCPが必要なのかという序章から始まり、MCPがどのような仕組みで動いているのか、その通信の基礎となるJSON-RPCとは何か、といった技術的な土台を作りをします。 そして、第5章では、私が今回注目したSTDIOやHTTPといった通信方式の選択について触れられています。 MCPに関する知識をゼロから学び、実践的なレベルまで引き上げてくれる内容となっていました。
この記事を読んで分かること
この記事では、MCPサーバーを構築する上で重要となる2つの主要な通信方式、STDIO(標準入出力) と HTTPサーバー について、私が書籍を読んで整理したそれぞれの特徴と違いをまとめます。
背景
MCPは、AIにファイル操作やデータベース接続、外部APIの呼び出しができます。私たちのプロジェクトでは、このMCPを利用して、AIが自律的にツールを操作できるような仕組みを開発しています。
開発を進める中で、AI(ホスト側)と私たちが作るツール(サーバー側)を「どのようにつなぐか」という技術選定をしているところです。MCPをローカル環境で手軽に動かすべきか、それとも拡張性を重視してネットワーク経由にすべきか、それぞれのメリット・デメリットを明確に整理したいと考えていました。
STDIOとHTTPサーバー
『MCP入門』の第5章では、この2つの通信方式が解説されていました。こちらについては以下のサイトでも詳しく知ることができるので本と合わせて理解を深めることができました。
MCPはJSON-RPCを使用してメッセージをエンコードします。JSON-RPCメッセージはUTF-8でエンコードする必要があります
このプロトコルは現在、クライアント・サーバー通信用の2つの標準的なトランスポートメカニズムを定義しています。
stdio
標準入力と標準出力を介した通信
ストリーミング可能なHTTP
クライアントは可能な限りstdioをサポートする必要があります。クライアントとサーバーは、プラグ可能な形式でカスタムトランスポートを実装することも可能です 。
https://modelcontextprotocol.io/specification/2025-06-18/basic/transportsからGoogle翻訳して引用
STDIO (Standard Input/Output)
STDIO方式は、同じコンピュータ内で実行される親プロセス(MCPホスト)と子プロセス(MCPサーバー)が、標準入力と標準出力を通じて直接データをやり取りする方式です。
これは、設定がシンプルであることが利点だと感じました。新しくMCPサーバーの機能を試作する際、ネットワーク設定やポートの競合などを気にせずに、すぐに開発を始められます。
例えば、PythonでSTDIOサーバーの骨格を作る場合、標準入力を受け取って標準出力に返す、というシンプルな構造になります。
この方法の利点は、TCPポートを開放したり、HTTPサーバーを立ち上げるためのライブラリ(FlaskやFastAPIなど)を準備したりする必要がないことです。ロジックの実装に集中できるため、迅速なプロトタイピングに適していると感じました。
HTTPサーバー
HTTPサーバー方式は、MCPサーバーを一般的なWebサーバー(HTTP/HTTPS)として起動し、ネットワーク経由でリクエストを受け付ける方式です。
STDIO方式と比べると、Webサーバーを立ち上げるための準備が少し必要になります。例えば、mcp-proxyというツールを使ったり、あるいはサーバー側でHTTPリクエストを処理するエンドポイントを実装したりする必要があります。
STDIO方式に比べて初期設定は増えますが、ネットワーク越しにアクセスできるという点が違いです。これにより、MCPサーバーをAIホストとは別のマシンやコンテナで実行したりすることが可能になります。
まとめ
『MCP入門』は、MCPという新しい技術を実際に手を動かしながら学べる書籍でした。特に、通信方式の違いについて、それぞれの利点と使い所を整理できたところが勉強になりました。
STDIOのシンプルさと、HTTPサーバーの拡張性。どちらか一方が優れているわけではなく、目的に応じて適切に使い分けることが大切と感じました。
AIに実際の業務プロセスに組み込んでいくために今回の学びを活かし、より実用的なAIソリューションの開発を続けていきたいと感じました。
ぜひ参考にしていただけると嬉しいです。


