PHPでMCPサーバーを構築する方法|公式SDK・Laravel・素のPHPを徹底比較
PHPプロジェクトが持つデータやロジックをAIに公開し、エージェントが自律的に活用できる仕組みを構築したい——そんなニーズに応えるのがMCP(Model Context Protocol)サーバーです。2025年9月にPHP公式SDKがリリースされ、さらにLaravel 12.xでも公式サポートが追加されたことで、PHPエンジニアがMCPサーバーを構築するハードルは大幅に下がりました。 PHPでMCPサーバーを実装するには、大きく3つの選択肢があります。フレームワーク非依存の公式SDK(mcp/sdk)、Laravelエコシステムに統合されたlaravel/mcp、そしてComposerすら使わない**素のPHP(Vanilla PHP)**による最小実装です。プロジェクトの規模や技術スタックに合わせて最適な手段を選べます。 MCPの基本構造をPHP視点で整理する MCPはAnthropicが策定したオープンプロトコルで、AIアプリケーション(クライアント)と外部システム(サーバー)を標準的なインターフェースで接続します。公式サイトでは「AIアプリケーション向けのUSB-Cポート」と表現されています(出典: modelcontextprotocol.io)。 MCPサーバーが提供できる機能は、3つのプリミティブに分類されます。 プリミティブ 役割 PHPでの利用例 Tools LLMが能動的に呼び出す関数 DB検索、API呼び出し、ファイル操作 Resources URIで特定される読み取り専用データ 設定値、ドキュメント、ログ Prompts 再利用可能なプロンプトテンプレート コードレビュー指示、翻訳指示 通信方式(トランスポート)は3種類あり、プロトコルバージョン2025-03-26でStreamable HTTPが導入されました。最新のプロトコルバージョンは2025-11-25で、実験的なTasksプリミティブやOAuth 2.1のRFC 9728準拠などが追加されています(出典: MCP Changelog)。 トランスポート 通信方式 特徴 stdio 標準入出力 ローカル接続向け。Claude Desktop等が直接プロセスを起動 HTTP+SSE HTTP + Server-Sent Events ネットワーク越し通信対応。現在は後方互換のため残存 Streamable HTTP HTTP ストリーミング 再接続可能で新規プロジェクト推奨。ステートレス運用が可能 PHPで選べる3つのMCPパッケージ PHP向けのMCPサーバー実装は複数存在します。主要な3パッケージの違いを整理します。 項目 mcp/sdk(公式SDK) laravel/mcp(Laravel公式) Vanilla PHP(SDKなし) 開発元 Symfony / PHP Foundation / Anthropic Laravel(Taylor Otwell) 自前実装 PHPバージョン 8.1以上 8.2以上 制限なし(推奨8.1+) フレームワーク依存 なし Laravel 11以上 なし インストール composer require mcp/sdk composer require laravel/mcp Composer不要 ツール定義方式 PHP 8 Attributes Artisanスキャフォールド JSON-RPCハンドラ直書き stdio対応 あり あり(Artisanコマンド経由) あり Streamable HTTP あり あり(Webトランスポート) 自前実装が必要 認証機能 なし(自前実装) OAuth 2.1 / Sanctum内蔵 なし 向いているケース フレームワーク非依存で汎用的に使いたい Laravelプロジェクトへの統合 MCPプロトコルの学習、最小構成 コミュニティ発のphp-mcp/serverおよびphp-mcp/laravelも存在しますが、公式SDKのリリース後はメンテナンス体制の観点から上記3パッケージのいずれかを推奨します。 ...