WordPress用 MCPサーバー プラグイン
WordPress の記事を AI に手伝ってもらう場合,作成した文章を管理画面へコピーしたり,WordPress 側で修正した内容をもう一度 AI へ渡したりする必要があり,意外に手間がかかる.
そこで,Codex や Claude Code などの MCP に対応した AI から WordPress の記事を直接読み取り,作成,更新できるプラグイン「Rectus Content Access for MCP」を作成した.
簡単にいうと「Codex や Claude Code などの 生成AI から WordPress が自動操作できるようになる」ということです.
バージョンごとの更新内容は「Rectus Content Access for MCP の更新履歴」にまとめている.
- 1. Rectus Content Access for MCP とは
- 2. AIからWordPressの記事を作成・更新できる
- 3. タイトル・抜粋・本文の一部だけを書き換えられる
- 4. 記事をゴミ箱へ移動できる
- 5. 固定ページ用テンプレートを管理できる
- 6. ナビゲーションメニューを管理できる
- 7. MCPとは
- 8. Node.jsなどの追加インストールが不要
- 9. 画像をモデルの入力へ入れずにアップロード
- 10. JSON-LDやショートコードを保持
- 11. 接続を許可する投稿タイプを選べる
- 12. OAuth 2.1とPKCEで安全に接続
- 13. Codex・Claude Codeなどを同時に接続できる
- 14. Codex・Claude Codeから簡単に接続
- 15. インストール
- 16. Rectus Content Access for MCPについて
Rectus Content Access for MCP とは
Rectus Content Access for MCP は,Codex や Claude Code などの MCP に対応した AI から,WordPress の記事を直接読み取り・作成・更新できるようにする WordPress プラグインである.記事の処理は WordPress 内で完結し,別の Node.js サーバーを立ち上げたり,プラグイン作者が運営する外部サービスへ記事を預けたりする必要はない.
WordPress 側で利用を許可した投稿タイプだけを扱えるため,通常の投稿や固定ページだけでなく,必要に応じてカスタム投稿タイプにも利用できる.
AIからWordPressの記事を作成・更新できる
Rectus Content Access for MCP を使うと,MCP に対応した AI から以下の操作ができる.
- 投稿,固定ページ,許可したカスタム投稿タイプの一覧取得
- 公開状態,文字列,カテゴリーやタグ,更新順などによる記事の絞り込み
- 既存記事のタイトル,本文,抜粋,スラッグ,カテゴリーやタグの読み取り
- 新しい記事の作成と既存記事の更新
- SHA-256 チェックサムで競合を防ぎながら,タイトル・抜粋・本文の一部だけを書き換える部分編集
- 投稿タイプと更新日時の照合と明示的な確認を伴う,記事のゴミ箱への移動
- 既存のカテゴリーやタグを再利用した分類
- 権限を確認したカスタムフィールドの読み取り,作成,更新,削除
- 有効テーマ直下にある固定ページ用テンプレートの一覧取得,内容確認,作成,更新,削除
- 固定ページの作成・更新時にテンプレートを指定し,記事取得時に現在のテンプレートを確認
- クラシックナビゲーションメニューとメニュー項目の一覧取得,作成,更新,削除
- メニュー項目の親子関係,並び順,テーマのメニュー位置の設定
- Codex・Claude CodeからのREST直接画像アップロード
- 直接送信に対応しないクライアント向けのBase64画像アップロード
- サーバー上の画像の取り込み,メディア一覧取得,選択したメディアのファイル名変更と完全削除
- 画像の登録とアイキャッチ画像の設定・解除
- JSON-LD,ショートコード,エスケープ文字を保持した本文保存
「このページと同じ構成で新しい固定ページを作成する」「既存記事の内容を確認して説明を追加する」といった依頼を,AIとの会話から進めやすくなる.
対応しているのは,WordPress 標準のタイトル,本文,抜粋,公開状態,カテゴリー,タグ,投稿タイプに割り当てられたカスタムタクソノミーなどである.タグなどを更新する場合は指定した語句の集合へ置き換える方式で,項目を省略すれば変更せず,空の配列を指定すればすべて外れる.
公開されているカスタムフィールドも,接続ユーザーの権限とフィールドごとの定義に従って読み取り,作成,更新,削除できる.WordPress に登録されたメタデータや,利用可能な ACF の公開フィールドが対象で,先頭が _ など保護されたキーは扱わない.保存後はデータベース上の値を照合し,キャッシュを更新してから成功を返す.
タイトル・抜粋・本文の一部だけを書き換えられる
記事のタイトル,抜粋,本文のいずれか1つのフィールドを対象に,全文を送り直さずに一致した文字列だけを置き換えられる.記事を取得すると各フィールドの SHA-256 チェックサムが返るため,書き換えではそのチェックサムを指定する.
置き換えたい文字列と置換後の文字列の組は,1回の呼び出しにまとめて複数指定できる.それぞれの組は,対象フィールド内でちょうど1か所だけ一致する必要があり,一致しない場合や複数箇所に一致する場合は,その組に replace_all を指定しない限り,保存せずにリクエスト全体を拒否する.
保存の直前にデータベースを読み直し,読み取り時と異なるチェックサムであれば古い内容への上書きとして拒否する.保存後はキャッシュを更新し,実際に保存された値を照合してから成功を返す.WordPress の保存フィルターはそのまま働くため,フィルターによって保存内容が変わった場合は,成功ではなく再読み込みが必要というエラーを返す.
記事をゴミ箱へ移動できる
不要になった記事は,MCP からゴミ箱へ移動できる.完全削除ではなくゴミ箱への移動だけを行うため,意図しない指示をしてしまった場合でも WordPress の管理画面から元へ戻せる.
移動には,取得済みの記事 ID,投稿タイプ,更新日時と,明示的な確認が必要である.読み取ってから移動するまでの間に記事が更新されていた場合は,何もせずに競合として返す.ゴミ箱を無効にしているサイトでは,完全削除へ切り替えずに操作そのものを拒否する.
固定ページ用テンプレートを管理できる
有効テーマの直下にある page-*.php 形式で Template Name を持つ固定ページ用テンプレートを,MCP から一覧取得,内容確認,作成,更新,削除できる.任意のテーマ PHP ファイルを扱う機能ではなく,functions.php などは対象外である.
利用できるのは WordPress のテーマ編集権限を持つユーザーだけである.更新と削除では,事前に取得した SHA-256 を指定して内容が変わっていないことを確認するため,他の変更を上書きしない.削除には明示的な確認が必要で,テンプレートがゴミ箱以外の固定ページに割り当てられている間は削除できない.
固定ページを作成・更新する際にはテンプレートを指定でき,記事を取得すると現在割り当てられているテンプレートも確認できる.
ナビゲーションメニューを管理できる
WordPress 管理画面の「外観」→「メニュー」で扱うクラシックナビゲーションメニューを,MCP から一覧取得,内容確認,作成,更新,削除できる.メニュー項目には,カスタムリンク,投稿や固定ページ,カテゴリーやタグ,投稿タイプアーカイブを追加でき,親子関係と並び順も指定できる.
テーマに登録されたメニューの表示位置への割り当てと解除にも対応している.変更する操作では,直前の読み取りで得た SHA-256 の一致を求めるため,読み取ってから保存するまでの間に加えられた他の変更を上書きしない.メニューや項目の削除には明示的な確認が必要で,子項目を持つ項目は先に子項目を整理しないと削除できない.
利用できるのは,メニューを編集する権限を持つユーザーだけである.
MCPとは
MCP は Model Context Protocol の略で,AI と外部のシステムが機能や情報をやり取りするための共通規格である.AI に WordPress の管理者パスワードを教えて管理画面を操作させるのではなく,「記事を取得する」「記事を作成する」「画像を登録する」といった操作を,決められた機能として呼び出せるようにする.
Rectus Content Access for MCP は,WordPress の記事操作を MCP の機能として登録する.MCP クライアントから届いた要求は,プラグインに同梱した WordPress 公式の MCP Adapter を通して WordPress 上で処理される.WordPress サーバー側に Node.js を用意したり,プラグイン作者が運営する外部サービスへ記事を預けたりする必要はない.
Node.jsなどの追加インストールが不要
WordPress が動作する PHP 環境があれば利用でき,WordPress サーバーへ Node.js,npm,Composer などの追加ランタイムやパッケージをインストールする必要はない.別の Node.js サーバーを立ち上げたり,記事を外部サービスへ送信したりせず,WordPress 内で処理を完結できる点が特徴である.
画像をモデルの入力へ入れずにアップロード
Codex と Claude Code では,MCP の画像アップロードチケット機能から5分間有効な1回限りのチケットを取得し,画像を multipart/form-data で同じ WordPress サイトの専用 REST API へ直接送る.画像の Base64 文字列を AI のモデルコンテキストや MCP の JSON-RPC メッセージへ入れないため,大きな画像でもトークンを大量に消費しない.追加の Application Password や別の WordPress ログイン設定も不要である.
REST への直接送信に対応していない MCP クライアントは Base64 画像アップロードを利用できる.画像が WordPress サーバーの uploads/mcp-inbox にある場合は,メディアインポート機能から取り込むこともできる.
メディア一覧機能では,画像などを検索して添付 ID,ファイル名,URL,削除権限を確認できる.完全削除には,一覧で確認した添付 ID,一致するファイル名,明示的な確認の3つが必要で,接続した WordPress ユーザーに削除権限がある場合だけ実行される.削除すると元ファイルと WordPress が生成した画像サイズも消えるが,記事本文に書かれた既存 URL は自動では書き換えない.
アップロード済みの画像は,実ファイル名を変更することもできる.WordPress が生成した各サイズの画像,画像編集時のバックアップ,添付ファイルのメタデータもまとめて変更し,途中で失敗した場合は変更前の状態へ戻す.拡張子と保存先のディレクトリは変えられない.ファイル名を変えると公開 URL も変わるため,完全削除と同じく,一覧で確認した添付 ID とファイル名,明示的な確認が必要である.
JSON-LDやショートコードを保持
本文は,接続を許可した WordPress ユーザーの権限に従って保存する.管理者など unfiltered_html 権限を持つユーザーの場合は,WordPress のエディターと同様に,script 要素を含む JSON-LD,ショートコード,バックスラッシュ,JSON 内のエスケープ文字を保持する.unfiltered_html 権限を持たないユーザーの場合は,WordPress 標準の wp_kses_post() による制限を受ける.
作成・更新の後には保存された本文を照合する.WordPress 側のフィルターなどで本文が予期せず変化した場合は,保存できたように見える成功応答を返さず,エラーとして通知する.
接続を許可する投稿タイプを選べる
投稿と固定ページは最初から利用できるが,カスタム投稿タイプは管理者が設定画面で明示的に許可したものだけが対象となる.
さらに,記事の作成,編集,公開,カテゴリーやタグの設定は,接続を許可した WordPress ユーザーが元々持っている権限の範囲に限られる.プラグインを入れたからといって,そのユーザーに許可されていない記事を AI が編集できるようになるわけではない.
OAuth 2.1とPKCEで安全に接続
接続には OAuth 2.1 を使用する.ブラウザで WordPress にログインして接続を承認するため,WordPress のユーザー名やパスワードを MCP クライアントへ登録する必要はない.
Dynamic Client Registration(DCR)に対応している.DCR を利用するクライアントには個別の client ID を発行するが,client secret は発行せず,公開クライアントとして扱う.HTTPS のクライアントメタデータ URL を client ID として利用する方式にも対応している.
Codex や Claude Code のようなデスクトップアプリでは,固定した client secret を安全に隠しておくことが難しい.そこで PKCE の S256 方式を必須とし,認証を始めたクライアントと認証コードをトークンへ交換するクライアントが同じであることを確認する.途中で認証コードだけを取得されても,PKCE の検証情報がなければアクセストークンへ交換できない.
アクセストークンの有効期間は1時間で,期限が切れた場合はリフレッシュトークンを使って自動的に更新する.リフレッシュトークンは30日間有効で,使用するたびに新しいものへ交換される.WordPress 側には認証コードやトークンの実体ではなく SHA-256 ハッシュだけを保存し,不要になった接続は設定画面から解除できる.
Codex・Claude Codeなどを同時に接続できる
同じ WordPress ユーザーで Codex,Claude Code,その他のクライアントが同時に接続しても,MCP の HTTP セッションはセッションごとに独立して保存されるため,別の接続を上書きしない.
セッションはユーザーごとに既定で最大32件まで保持し,24時間利用されなかったセッションは整理される.各 OAuth クライアントには別の client ID とトークン系列を持たせられるため,Codex と Claude Code はそれぞれ独立した接続として管理できる.
Codex・Claude Codeから簡単に接続
WordPress 管理画面の「設定」→「Rectus Content Access for MCP」を開くと,サイトごとに用意された Codex と Claude Code の接続コマンドが表示される.
利用するクライアントのコマンドをコピーして一度実行し,ブラウザで WordPress にログインして接続を許可すれば準備は完了する.同じパソコンでは保存された OAuth の認証情報が再利用され,期限が切れたアクセストークンも自動的に更新される.
設定画面では,MCP の接続先,OAuth の接続準備状態,利用を許可する投稿タイプ,接続済みクライアントを確認できる.複数の WordPress サイトを登録しても設定名が衝突しないよう,MCP サーバー名はサイトのドメインとパスから自動的に作られる.
インストール
WordPress 公式プラグインディレクトリで公開済みである.WordPress にログインして,
プラグイン→プラグインを追加
にいって,「Rectus Content Access for MCP」といれて検索する.
出てきたら,【今すぐインストール】を押す.
その後,【有効化】を押し,「設定」→「Rectus Content Access for MCP」を開けば接続設定を始めることができる.
動作条件は WordPress 6.9 以上,PHP 7.4 以上である.MCP クライアントとの接続には HTTPS が必要となる.
日本語は下のページへ
Rectus Content Access for MCPについて
ご質問ございましたら,以下のフォームからお問い合わせください.
ホームページアクセスログ解析
追跡・トラッキング機能
ページ閲覧解析システム
アンケートフォーム
認証付きダウンロード機能
メール配信システム
営業支援システム
商談録音の文字起こし・要約
システムと繋がるMCPサーバー
名刺管理
パスワード不要な会員サイト
会員制不要なオンライン展示会
販促/ホームページ支援の流れ
ホームページ制作勉強会
ホームページ制作&コンサル
商品企画コンサルティング
営業コンサルティング
ホームページメンテナンス