MCP公式ドキュメント 日本語版
コンセプト
ページをコピー
MCP公式ドキュメント 日本語版
始める
導入
サンプルサーバー
クライアントの例
クイックスタート
サーバー開発者向け
クライアント開発者向け
Claude デスクトップ ユーザー向け
チュートリアル
LLMs を使用した MCP の構築
デバッグ
Inspector
コンセプト
リソース
コアアーキテクチャ
プロンプト
ツール
サンプリング
ルーツ
トランスポート
発達
最新情報
ロードマップ
貢献
コンセプト
ページをコピー
トランスポート
MCPの通信メカニズムについて学びます。
トランスポートは、Model Context Protocol (MCP) におけるクライアントとサーバー間の通信基盤を提供します。トランスポートは、メッセージの送受信に関する基本的なメカニズムを処理します。
メッセージ形式
#
MCPは、ワイヤ形式として
JSON-RPC
2.0を使用します。トランスポート層は、MCPプロトコルメッセージをJSON-RPC形式に変換して送信し、受信したJSON-RPCメッセージをMCPプロトコルメッセージに変換する役割を担います。
使用されるJSON-RPCメッセージには、次の3つのタイプがあります。
リクエスト
#
レスポンス
#
通知
#
組み込みトランスポートタイプ
#
MCPには、2つの標準トランスポート実装が含まれています。
標準入出力 (stdio)
#
stdioトランスポートは、標準入出力ストリームを介した通信を可能にします。これは、ローカル統合やコマンドラインツールに特に役立ちます。
stdioを使用する場合:
コマンドラインツールを構築する場合
ローカル統合を実装する場合
シンプルなプロセス間通信が必要な場合
シェルスクリプトを使用する場合
TypeScript (Server)
TypeScript (Client)
Python (Server)
Python (Client)
Server-Sent Events (SSE)
#
SSEトランスポートは、クライアントからサーバーへの通信にHTTP POSTリクエストを使用し、サーバーからクライアントへのストリーミングを可能にします。
SSEを使用する場合:
サーバーからクライアントへのストリーミングのみが必要な場合
制限されたネットワークで作業する場合
シンプルなアップデートを実装する場合
TypeScript (Server)
TypeScript (Client)
Python (Server)
Python (Client)
カスタムトランスポート
#
MCPを使用すると、特定のニーズに合わせてカスタムトランスポートを簡単に実装できます。トランスポート実装は、Transportインターフェースに準拠する必要があります。
カスタムトランスポートは、次の目的で実装できます。
カスタムネットワークプロトコル
特殊な通信チャネル
既存のシステムとの統合
パフォーマンスの最適化
TypeScript
Python
MCPサーバーはasyncioで実装されることが多いですが、より幅広い互換性のために、トランスポートのような低レベルのインターフェースは
anyio
で実装することをお勧めします。
エラー処理
#
トランスポートの実装は、さまざまなエラーシナリオを処理する必要があります。
1.
接続エラー
2.
メッセージ解析エラー
3.
プロトコルエラー
4.
ネットワークタイムアウト
5.
リソースクリーンアップ
エラー処理の例:
TypeScript
Python
MCPサーバーはasyncioで実装されることが多いですが、より幅広い互換性のために、トランスポートのような低レベルのインターフェースは
anyio
で実装することをお勧めします。
ベストプラクティス
#
MCPトランスポートを実装または使用する場合:
1.
接続ライフサイクルを適切に処 理する
2.
適切なエラー処理を実装する
3.
接続終了時にリソースをクリーンアップする
4.
適切なタイムアウトを使用する
5.
送信する前にメッセージを検証する
6.
デバッグのためにトランスポートイベントをログに記録する
7.
必要に応じて再接続ロジックを実装する
8.
メッセージキューのバックプレッシャーを処理する
9.
接続のヘルス状態を監視する
10.
適切なセキュリティ対策を実装する
セキュリティに関する考慮事項
#
トランスポートを実装する場合:
認証と認可
#
適切な認証メカニズムを実装する
クライアントの資格情報を検証する
安全なトークン処理を使用する
認可チェックを実装する
データセキュリティ
#
ネットワークトランスポートにTLSを使用する
機密データを暗号化する
メッセージの整合性を検証する
メッセージサイズ制限を実装する
入力データをサニタイズする
ネットワークセキュリティ
#
レート制限を実装する
適切なタイムアウトを使用する
サービス拒否シナリオを処理する
異常なパターンを監視する
適切なファイアウォールルールを実装する
トランスポートのデバッグ
#
トランスポートの問題をデバッグするためのヒント:
1.
デバッグログを有効にする
2.
メッセージフローを監視する
3.
接続状態を確認する
4.
メッセージ形式を検証する
5.
エラーシナリオをテストする
6.
ネットワーク分析ツールを使用する
7.
ヘルスチェックを実装する
8.
リソース使用量を監視する
9.
エッジケースをテストする
10.
適切なエラートラッキングを使用する
更新日時
2025-03-12 06:12:30
前へ
ルーツ
次へ
最新情報