Amazonで商品を見る セール会場へ

WordPress MCPの使い方|MCP Adapterで実際にAIとつないだ結果

WordPressをMCPでAIにつなぐには、公式のプラグイン「MCP Adapter」を入れ、アプリケーションパスワードで認証して専用のURLに送ります。

当方の検証用WordPressで実際に入れて送ったところ、接続はできましたが、本体だけで使える操作はサイト情報などの読み取り3つでした。

投稿の作成や編集は、プラグインがその操作を登録しない限りできません。

この記事では、導入からやりとりの中身、つまずいたエラー、権限の絞り方までを実測の記録でまとめました。

検証の条件は、当方の検証用WordPress(WordPress 7.1.4・PHP 8.3・MCP Adapter 0.7.1)、2026年10月30日です。

アプリケーションパスワード・MCP・SSHのどれを選ぶかは、別記事で比べています:WordPressとAIを接続する方法まとめ

確かめたこと結果
認証なしで送る401(rest_forbidden)
アプリケーションパスワードで initialize200(MCP Adapter Default Server)
2回目以降にプロトコルの版のヘッダーを付けない400
AIから見えるツール3つ(探す・調べる・実行する)
本体だけで使える ability読み取り専用の3つ
投稿の作成・編集本体だけではできない
WP-CLI(STDIO)でつなぐ応答あり。initialize が先に要る
MCP Adapter 0.7.1 の実測結果(当方の検証用WordPress、2026年10月30日)
目次

著者

WEB制作をしているデジタルノマド
WordPressのカスタマイズが好きで、色々と自作しています。

WordPressのカスタマイズに困ったらご相談ください!

WordPress MCP(MCP Adapter)とは

MCP Adapterは、WordPressの「できること」をMCPの形でAIに見せる、WordPress公式の橋渡し役のプラグインです。

MCPとabilityのしくみ

MCP(Model Context Protocol)は、AIのアプリが外部の機能を呼び出すための共通の決まりです。

WordPress側では、6.9から本体に入ったAbilities APIで、プラグインやテーマが「できること」を ability として登録します。

MCP Adapterは、登録された ability をMCPのツールとして外に出します。

WordPressの開発者が進める「AI Building Blocks」の一部で、WordPress.orgで配布されています。

出典:MCP Adapter(Make WordPress AI)/AI Building Blocks for WordPress

AIに見えるのは公開した ability だけ

readmeには、ability は public の印を付けたものだけがMCPから呼べる、自分で選んで出す仕組みだと書かれています。

登録された機能が、黙って全部AIに出るわけではありません。

対応するMCPの版は、2025-11-25 と 2026-07-28 の2つです。

出典:MCP Adapter(WordPress.org プラグインディレクトリ)(2026年10月30日確認)

必要な環境

項目条件
WordPress6.9以上
PHP7.4以上
認証アプリケーションパスワード(HTTPSが前提)
つなぎ方HTTP または WP-CLI(STDIO)
配布WordPress.org と GitHub
MCP Adapter 0.7.1 の必要環境(WordPress.org と GitHub の docs、2026年10月30日確認)

アプリケーションパスワードは、ローカルの開発環境を除いてHTTPSのサイトでしか発行できません。

出典:Getting Started(WordPress/mcp-adapter)

スポンサーリンク

MCP Adapterを入れてエンドポイントを確かめる

入れて有効にすると、REST APIの下にMCPの受け口が1つでき、WP-CLIからも中身を確かめられます。

プラグインを入れる

WordPress.orgで配布されているので、管理画面の「プラグインを追加」で探して入れられます。

WP-CLIを使える環境なら、次の1行でも入ります。

wp plugin install mcp-adapter --activate

GitHubのリリースにある zip から入れる方法も、公式の手順に載っています。

エンドポイントとサーバーの一覧

有効にすると、REST APIに次の受け口ができました。

https://(サイトのURL)/wp-json/mcp/mcp-adapter-default-server

WP-CLIでサーバーの一覧を出すと、既定のサーバーが1つだけあり、ツール3・リソース0・プロンプト0でした。

wp mcp-adapter list

WordPress 7.1.4の本体には「設定 > コネクタ」という画面もありますが、本記事では扱いません。

接続用のユーザーとアプリケーションパスワード

アプリケーションパスワードは、管理画面の「ユーザー > プロフィール」の下の方で発行します。

発行した文字列は一度しか表示されないので、その場で控えます。

公式のガイドは、AI用に別のユーザーを作り、仕事に足りる一番低い権限を与えるよう勧めています。

今回は検証のため管理者で発行しましたが、後で述べる理由から、本番ではおすすめしません。

JSON-RPCを送ってみた結果

HTTPでは、JSON-RPCという形式の文をPOSTで1つずつ送ります。

当方はPythonで送り、行きと帰りをそのまま記録しました。

認証なしは401で止まる

認証ヘッダーを付けずに tools/list を送ると、401が返りました。

{"code":"rest_forbidden","message":"その操作を実行する権限がありません。","data":{"status":401}}

MCPの受け口も、WordPressのREST APIの権限確認を通る作りです。

initializeは200で通った

アプリケーションパスワードをBasic認証で付け、最初のあいさつにあたる initialize を送りました。

{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"test-client","version":"0.1"}},"id":1}

返ってきたのは200で、サーバー名は「MCP Adapter Default Server」でした。

{"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-11-25","capabilities":{"prompts":{"listChanged":false},"resources":{"subscribe":false,"listChanged":false},"tools":{"listChanged":false}},"serverInfo":{"name":"MCP Adapter Default Server","version":"v1.0.0"},"instructions":"Default MCP server for WordPress abilities discovery and execution"}}

応答のヘッダーにはセッションIDが付いていて、次からのリクエストに付けて送りました。

続けて送った notifications/initialized は、本文なしの202でした。

プロトコルの版のヘッダーが無いと400

initialize の後、MCP-Protocol-Version ヘッダーを付けずに tools/list を送ると、400で次の文が返りました。

Invalid Request: MCP-Protocol-Version header is required for a 2025-11-25 session

ヘッダーに 2025-11-25 を付けて送り直すと、通りました。

MCPの仕様でも、HTTPでは2回目以降のリクエストにこのヘッダーを付けると決められています。

出典:Transports(Model Context Protocol 仕様 2025-11-25)

自作のスクリプトで試すとき、いちばん踏みやすいのがここでした。

AIに見えるツールは3つ

tools/list で返ってきたツールは、次の3つだけでした。

ツール名役割応答に付いた注釈
mcp-adapter-discover-abilities使える ability の一覧を出す読み取り専用
mcp-adapter-get-ability-infoability の入力と出力の形を調べる読み取り専用
mcp-adapter-execute-abilityability を実行する書き込みあり(破壊的)
tools/list の結果(MCP Adapter 0.7.1、2026年10月30日)

ability を1つずつツールとして並べるのではなく、AIはこの3つを通して「探す→調べる→実行する」の順に使います。

本体だけでできるのは読み取り3つ

discover-abilities で一覧を出すと、本体の ability は読み取り専用の3つで、投稿を作る・直すものはありませんでした。

登録されていた ability

ability返す中身出どころ
core/get-site-infoサイト名・URL・管理者メール・言語・バージョン本体
core/get-user-info接続しているユーザーのプロフィール本体
core/get-environment-infoPHP・データベース・WordPressの版などの環境本体
wp-mail-smtp/get-debug-eventsWP Mail SMTP の送信エラーの記録プラグイン
discover-abilities の結果(当方の検証用WordPress、2026年10月30日)

検証用サイトにはメールの検証で WP Mail SMTP を入れていたので、その分が1つ増えていました。

このように、対応したプラグインを入れると、AIからできることが増えていきます。

逆に言えば、記事の作成をAIに任せたいなら、その ability を出すプラグインか自作のコードが要ります。

get-site-infoを実行した結果

execute-ability で core/get-site-info を実行すると、次の中身が返りました(URLとメールは伏せています)。

{"success":true,"data":{"name":"トラブル検証","description":"","url":"https://example.com/lab","wpurl":"https://example.com/lab","admin_email":"admin@example.com","charset":"UTF-8","language":"ja","version":"7.1.4"}}

管理者メールまで返るので権限を絞る

接続したユーザーが見られる情報は、そのままAIにも渡ります。

読み取りだけの今でも管理者メールが返るので、プラグインで書き込みの ability が増えたときの影響はさらに大きくなります。

公式のガイドが勧めている対策は、次の5つです。

  • AI用のユーザーを別に作る
  • 権限は仕事に足りる一番低いもの(管理者ではなく編集者など)にする
  • アプリケーションパスワードはクライアントや端末ごとに1つずつ発行する
  • 使わなくなったパスワードはプロフィール画面で取り消す
  • 新しい ability はステージングで試し、バックアップを取っておく

出典:Site Owner Guide(WordPress/mcp-adapter)/ステージングの作り方はWordPressのステージング環境の作り方にまとめています。

WP-CLIのSTDIOでもつないでみた

サーバーでWP-CLIを動かせるなら、HTTPを通さず、標準入出力(STDIO)でもつなげます。

serveコマンドで起動する

公式の手順では、次のコマンドでMCPサーバーとして起動します。

wp mcp-adapter serve --user=(ユーザー名) --server=mcp-adapter-default-server

起動した後は、JSON-RPCの文を1行ずつ標準入力に流します。

initializeを先に送らないとエラー

initialize を送らずにいきなり tools/list を流すと、次の文で断られました。

The 2025 lifecycle requires initialization before this request

HTTPと同じく、最初のあいさつを済ませてから命令を送る決まりです。

HTTPとSTDIOの違い

項目HTTPSTDIO(WP-CLI)
認証アプリケーションパスワードWP-CLIでユーザーを指定
必要なものHTTPSのサイトWP-CLIを動かせる環境
当方の見立て手元のAIから本番につなぐローカルや開発用のサイト
2つのつなぎ方(認証と必要なものは公式の docs、見立ては当方)

公式のガイドは、ローカルのサイトならパスワードなしでWP-CLIから起動できると案内しています。

プラグインを足したら、AIに渡る操作を見直す

MCP Adapterの既定のサーバーでAIが実行できるのは、「MCPに公開」の印が付いたabilityだけです。

印は各abilityの設定(meta.mcp.public、無ければmeta.public)で決まり、本体の3つは公開、MCP Adapter自身の3つは道具として別扱いになっています(0.7.1のコードで確認)。

あとからプラグインを入れると、そのプラグインが登録したabilityも公開されることがあります。

プラグインを足したら、公開されているabilityの中に、削除や設定変更のような元に戻せない操作が無いかを確かめてください。

各abilityには「読み取りだけか(readonly)」「元に戻せない操作か(destructive)」の印も付いているので、次のファイルを作ってWP-CLIで読み込むと一覧できます。

<?php
foreach ( wp_get_abilities() as $a ) {
	$m = $a->get_meta();
	printf( "%s\treadonly=%s\tdestructive=%s\tmcp=%s\n", $a->get_name(),
		var_export( $m['annotations']['readonly'] ?? null, true ),
		var_export( $m['annotations']['destructive'] ?? null, true ),
		var_export( \WP\MCP\Abilities\McpAbilityExposure::is_public( $a ), true ) );
}
wp eval-file abilities.php

検証用サイト(MCP Adapter 0.7.1を有効にした状態)では、次のように出ました。

core/get-site-info	readonly=true	destructive=false	mcp=true
core/get-user-info	readonly=true	destructive=false	mcp=true
core/get-environment-info	readonly=true	destructive=false	mcp=true
mcp-adapter/discover-abilities	readonly=true	destructive=false	mcp=false
mcp-adapter/get-ability-info	readonly=true	destructive=false	mcp=false
mcp-adapter/execute-ability	readonly=false	destructive=true	mcp=false

mcp=trueで、destructive=trueのものがあれば、AIから実行できる「元に戻せない操作」です。

実行のときは、つないだユーザーがそのabilityの権限の判定を通る必要があります。

AIからつなぐユーザーは管理者にせず、必要な操作だけができる権限で作っておくと、公開の設定を見落としたときの被害を小さくできます。

ClaudeやChatGPTからつなぐときの公式の案内

当方はAIのアプリ側の設定を実測していないので、公式ガイドの要点だけを載せます(2026年10月30日確認)。

デスクトップのアプリとClaude Code

  • Claude Desktop・Cursor・VS Code などは、補助のパッケージ @automattic/mcp-wordpress-remote を手元で動かしてつなぐ
  • 補助には、受け口のURL・ユーザー名・アプリケーションパスワードを環境変数で渡す
  • URLと任意のヘッダーを設定できるアプリ(例:Claude Code)は、補助なしで直接つなげる

Webのclaude.aiとChatGPT

公式ガイドによると、Web版のclaude.aiとChatGPTはOAuthでのログインが前提です。

アプリケーションパスワードを入れる欄がないため、今はつなげないと書かれています。

設定の書き方は変わりやすいので、つなぐ前に公式のページで確かめてください。

出典:Site Owner Guide(WordPress/mcp-adapter)

つながらないときの確認

当方の検証で出たエラーと、REST APIで確かめた事例から、確かめる順番をまとめます。

正しいパスワードでも401になる

検証用サイトでは、.htaccess に認証ヘッダーを渡す1行が無かったため、正しいアプリケーションパスワードでもREST APIが401を返しました。

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

この1行を足すと200になり、MCPの受け口もREST APIの上にあるので同じ確認が効きます。

パスワードが違う場合も同じ401なので、メッセージだけでは区別できません。

→ 詳しく:WordPressのREST APIエラーの直し方

エラーと確かめる場所

症状考えられる原因確かめる場所
401(rest_forbidden)認証ヘッダーが届いていない・パスワード違い.htaccess、ユーザーとパスワード
400(MCP-Protocol-Version)2回目以降に版のヘッダーが無いクライアントやスクリプトのヘッダー
lifecycle requires initializationinitialize を送っていない送る順番
ツールが3つしか出ない正常(ability は3つのツールの奥にある)discover-abilities の結果
投稿を書けない書き込みの ability が登録されていない対応プラグインか自作のコード
MCP Adapter でつまずく点(当方の検証、2026年10月30日)

ほかのエラーも出ているとき

サイト自体が重大なエラーや500で落ちていると、MCPも当然つながりません。

画面やメッセージから原因を探すときは、WordPressのエラー一覧から該当する記事へ進んでください。

スポンサーリンク

まとめ

MCP Adapterを入れると、WordPressはMCPのサーバーとしてAIからつなげるようになります。

ただし本体だけで使えるのは読み取り3つで、投稿を書かせるには対応した ability が要ります。

  • 認証はアプリケーションパスワード、受け口は /wp-json/mcp/mcp-adapter-default-server
  • 2回目以降のHTTPリクエストには MCP-Protocol-Version ヘッダーが要る
  • get-site-info でも管理者メールが返るので、AI用のユーザーの権限を絞る
  • 正しいパスワードで401なら、.htaccess の認証ヘッダーの行を確かめる

次にやることは、AI用のユーザーを作り、読み取りの ability で手元のAIから呼べるかを試すことです。

記事の読み書きまで自動化したいなら、今のところはREST APIが確実です:WordPress REST APIとは/WordPressのAI自動化

WordPressとAIの連携の設計を相談したい方は、サービス一覧からどうぞ。

  • URLをコピーしました!

実装を任せたい方へ

WordPressのカスタマイズ代行

ブロックの追加、テーマの改修、管理画面の調整など、記事で紹介している内容の実装を承ります。1時間 ¥8,000〜(税込)。

WAZAの有料記事のサブスクリプションも開始しました。

サービス

Service

WordPressサイトのカスタマイズのサービスに関心がありましたら、ぜひ詳細をご覧ください。

目次