mcp-transport-prototype について
mcp-transport-prototypeは、stdioとSSEのトランスポートを使った独自MCPサーバーの構築を学ぶためのプロトタイプです。プロセス経由とHTTP経由の通信方式を試す開発者向けです。
主な機能
- 01独自MCPサーバーのプロトタイプ
- 02stdioトランスポート
- 03SSEトランスポート
- 04クライアントテストスクリプト
活用シーン
- 01MCPトランスポート方式の学習
- 02SSE経由でのMCPサーバーのテスト
MCP 対応
stdioとSSEでアクセスできるMCPサーバーの実装例を示します。付属のmcp_client.pyスクリプトでSSEモードをテストできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-transport-prototype
stdio および SSE トランスポート経由でアクセスできるカスタム MCP サーバーの構築方法を理解するためのプロトタイプ実装です。ここでは、SSE トランスポートと stdio トランスポートについて理解することを目的としています。
SSE トランスポート
**Server-Sent Events(SSE)**は、HTTP 経由でサーバーからクライアントへリアルタイムの更新をプッシュする、シンプルで効率的な方法です。
- WebSocket と異なり、SSE は一方向です。サーバーからクライアントへデータをストリーミングできますが、その逆はできません。
- 標準の HTTP 上で動作し、ライブ更新、通知、ストリーミング応答などの用途に適しています。
stdio と異なり、SSE では MCP サーバーを独立した HTTP サービスとして実行します。そのため、ネットワーク経由でサーバーからストリーミングされた更新を受け取る必要があるウェブダッシュボードやブラウザーベースのアプリなどのユースケースに適しています。
Stdio トランスポート
Stdio(標準入出力の略)は、プログラムがターミナルや接続されたプロセスとの間でデータを読み書きして通信する従来の方法です。
stdin(標準入力):入力データを受け取ります。通常はキーボード、ファイル、または別のプログラムから受け取ります。stdout(標準出力):出力データを送信します。通常はターミナルに表示するか、別のプログラムにパイプで渡します。
SSE と比べると、stdio ベースの MCP サーバーはプロセス内のツールに近い感覚で使えます。コマンドラインツール、LLM エージェント、バックグラウンドスクリプトなどから MCP サーバーをサブプロセスとして起動し、ネットワークを使わずに構造化データを効率よく送受信する用途に最適です。
動作を確認する
mcp_client.py は、MCP サーバーを SSE モードでテストするための簡単なスクリプトです。
# Run in Terminal 1
uv run main.py
# Run in Terminal 2
uv run mcp_client.py
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。