MCP Adapter

説明

これは「AI Building Blocks for WordPress」イニシアチブの一環です。

MCP Adapter は、WordPress の Abilities API と Model Context Protocol (MCP) 仕様をつなぎ、AI エージェントが WordPress の機能を利用するための標準化された方法を提供します。HTTP と STDIO のトランスポート、包括的なエラー処理、独自の連携を追加できる拡張可能な構造を備えています。

機能:

  • アビリティから MCP への変換 – WordPress のアビリティを MCP のツール、リソース、プロンプトに自動変換。
  • 複数サーバーの管理 – 個別に設定した複数の MCP サーバーを作成、管理。
  • 拡張可能なトランスポート層 – 組み込みの HTTP および STDIO トランスポートと、独自のトランスポートプロトコルへの対応。
  • 柔軟なエラー処理 – WordPress と互換性のある標準のエラーログ記録と、サーバーごとに設定できる独自のハンドラー。
  • 可観測性 – 設定可能なハンドラーを使い、追加の負荷をかけずにメトリクスを追跡。
  • 権限の制御 – 公開するすべての機能に対して、細かく設定できる権限チェック。

インストール

  1. WordPress 管理画面の「プラグイン > 新規追加」に移動し、「MCP Adapter」を検索して「今すぐインストール」をクリックする。
  2. WordPress の「プラグイン」画面でプラグインを有効化する。
  3. 公開したいアビリティを登録するか、アビリティを登録するプラグインをインストールする。

プラグインの ZIP ファイルを「プラグイン > 新規追加 > プラグインのアップロード」からアップロードするか、WP-CLI でインストールすることもできます:

wp plugin install mcp-adapter --activate

FAQ

MCP とは何ですか ?

Model Context Protocol は、AI エージェントと外部システムを接続するためのオープン標準です。各 AI クライアントに個別の連携機能を実装する代わりに、システムが実行できる操作を MCP のツール、リソース、プロンプトとして公開し、MCP 対応クライアントが利用できるようにします。仕様は modelcontextprotocol.io を参照してください。

MCP Adapter とは何ですか ?

MCP Adapter はサーバーとトランスポートの層を提供します。AI 機能自体は提供しません。

公開する内容は WordPress の Abilities API で定義されます。アビリティは、投稿の読み取りや設定の更新など、WordPress 本体または別のプラグインが登録する単一の操作です。MCP Adapter はサイトに登録されたアビリティを MCP クライアントから利用できるようにし、プロトコルのネゴシエーション、権限チェック、エラー処理を担います。

そのため、利用するには WordPress 本体、またはアビリティを登録するプラグインによって、サイトにアビリティが用意されている必要があります。

AI エージェントをサイトに接続するにはどうすればよいですか ?

アダプターは組み込みの HTTP トランスポートで MCP エンドポイントを登録します。MCP 対応クライアントをエンドポイントに接続し、WordPress ユーザーとして認証してください。アダプターは MCP のリビジョン 2025-11-25 と 2026-07-28 に対応しています。エンドポイントの詳細は入門ガイドを参照してください。

登録されたアビリティはすべて自動的に公開されますか ?

いいえ。公開するかどうかを選択できます。公開に設定されたアビリティだけが MCP 経由で利用可能になり、実行前には現在のユーザーに対する権限チェックも行われます。アビリティの公開と非公開の設定方法はドキュメントを参照してください。

バグの報告や機能の要望はどこに送ればよいですか ?

GitHub リポジトリで報告してください。セキュリティ上の問題は公開せず、SECURITY.md に記載された手順に従ってください。

プラグイン開発者は、プラグインのヘッダーに Requires Plugins: mcp-adapter を追加して MCP Adapter への依存を宣言してください。WP-CLI と wp-env の利用方法は README を参照してください。

評価

0件のレビューをすべて表示

貢献者と開発者

MCP Adapter はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“MCP Adapter” は5ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“MCP Adapter” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

0.7.1 – 2026-10-15

修正

  • Bound stored session initialization parameters to 4 KiB and automatically recover oversized session data, preventing repeated database failures and excessive logging. Affected clients need to reconnect once. Client icons are excluded from storage so large inline icons do not prevent connections.
  • Register the installed plugin’s autoloader before checking for bundled copies, allowing version selection before an older bundled class is loaded.
  • Unknown ability names from MCP clients no longer generate WordPress developer notices.

変更

  • Unavailable abilities return clearer errors with relevant available ability names or a pointer to discovery. Abilities not exposed through MCP return the same ability_not_found error as unknown names.

追加

  • A site-owner guide covers connecting an AI client, Application Passwords, and troubleshooting.

0.7.0 – 2026-10-02

破壊的変更

  • アダプターが提供する MCP スキーマのリビジョンを 2025-11-25 と 2026-07-28 の2つに限定。2025-06-18 または 2024-11-05 を提示するクライアントも接続でき、2025-11-25 のスキーマで応答する。
  • 生成された DTO クラス、McpToolValidator、McpResourceValidator、McpPromptValidator クラス、および mcp_adapter_validation_enabled フィルターを削除。ワイヤー形式の検証は常に選択されたスキーマを通じて実行。
  • 無効なプロトコルフィールドを黙って削除または修正しないように変更。対応するリビジョンで表現できないコンポーネントを拒否。
  • 独自のトランスポートは HttpRequestHandler または McpWireOrchestrator に処理を委譲する必要がある。JSON-RPC のバッチリクエストを拒否。
  • WP\MCP\Cli クラスを final に変更。

追加

  • セッションを使用しない server/discover のライフサイクルと新しい HTTP ヘッダーを含む、MCP 2026-07-28 への対応。
  • 直接呼び出せるツールが McpInputRequired を返すことで、2026-07-28 では elicitation による入力を要求できるように変更。
  • 選択されたスキーマ、トランスポート、セッションデータを保持する、リクエストごとの変更不可のコンテキスト McpRequestContext を追加。

変更

  • MCP Adapter を同梱ライブラリとして使用する方法を非推奨に変更。代わりに MCP Adapter プラグインをインストールする。

修正

  • mcp-adapter/get-ability-info が空の input_schema を [] ではなく {} としてシリアライズするように修正。
  • 別のプラグインが MCP サーバーの初期化より先に Abilities API を初期化した場合でも、デフォルトのアビリティを登録するように修正。

変更の全一覧は、0.7.0 移行ガイドと CHANGELOG.md を参照してください。

0.6.1 – 2026-08-13

修正

  • リリース ZIP に含まれないファイルを参照する Jetpack Autoloader のクラスマップを、ZIP に同梱しないように変更。0.6.0 のクラスマップには、WP_CLI や WP_CLI_Command などのテスト専用グローバルクラスが記載され、リリース成果物から除外される tests/phpunit/ 内のファイルに対応付けられていた。そのため、通常の Web リクエストでプラグインが class_exists( 'WP_CLI' ) を呼び出すと、捕捉されない致命的エラーが発生する可能性があった。WP-CLI を利用できない場合、class_exists( 'WP_CLI' ) は false を返すように修正 (#283)。

API、フック、プロトコルの動作に変更はありません。0.6.0からのアップグレードに移行作業は不要です。ソースからビルドした環境や Composer 経由で導入した環境には影響しません。

0.6.0 – 2026-08-12

破壊的変更

  • WordPress 6.9以降が必須に。単独の Abilities API プラグインを使ったインストール方法はサポートを終了。
  • meta.public: true のアビリティは、meta.mcp.public で明示的に除外されない限り、デフォルトの MCP サーバーを通じて公開されるように変更。既存の権限コールバックと権限チェックは引き続き適用される。
  • マルチサイトでは、セッション保存領域がネットワーク共通のキーからサイトごとのキーに変わるため、稼働中の Streamable HTTP セッションはアップグレード後に一度再接続する必要がある。単一サイトには影響しない。
  • McpValidator が公開していた MIME 検証ヘルパーを削除。これらを直接呼び出している連携では、用途に応じた MIME 検証を独自に実装する必要がある。

追加

  • resources/templates/list に対応し、テンプレートがない場合は空のテンプレート一覧を返すように変更。
  • プラグインの PHP ファイルの直接実行を防止。
  • 互換性、依存関係、Plugin Check に関する自動チェックの対象を拡大。

変更

  • Jetpack Autoloader を使用し、単独のアダプターと別のプラグインに異なるバージョンが同梱されている場合、利用可能な最新の WP\MCP クラスを優先。
  • WordPress マルチサイトのサイトごとにセッション保存領域を分離。
  • 同時に行われるセッションの変更を回数制限付きの再試行で保護し、あるリクエストが別のセッションを上書きするリスクを軽減。
  • Abilities API が WordPress 6.9 以降に含まれることと、アビリティに category フィールドが必要なことをドキュメントで明確化。各種例も改善。

修正

  • リソースの内容、埋め込みリソース、コンテンツブロック、プロンプトメッセージの _meta を保持。
  • 不正な形式の _meta は、対応するペイロードを破棄せずに省略。
  • text/html;profile=mcp-app のようにパラメーターを含む値も、宣言されたとおりに mimeType を出力。
  • Blob のみのリソースコンテンツは、正しく処理されます。
  • リソース URI のスキームを大文字と小文字を区別せずに照合し、クライアントがスキームを小文字に正規化してもリソースを読み取り可能に。
  • スキーマを定義するアビリティの空の引数を正規化し、有効な引数なしのツール呼び出しを実行可能に。
  • デフォルトサーバーを選択する際、wp mcp-adapter serve の JSON-RPC 用標準出力に余分な内容が混入しないよう修正。
  • 競合するローカルオプションを登録せず、WP-CLI のグローバル引数 --user を使用。

以前のリリースについては CHANGELOG.md を参照してください。