「Claude MCPでWordPressを操作したいのに、ロリポップだと認証エラーになる」——そんな経験はありませんか?
この記事では、ロリポップ共有サーバーでWordPress MCPが動かない原因を突き止め、完全に解決した方法を共有します。
なぜロリポップでMCPが動かないのか
WordPress MCPは通常、Authorization: Bearer または Authorization: Basic ヘッダーで認証を行います。ところがロリポップのCDN/プロキシは、Authorizationヘッダーをサーバーに届く前に遮断しています。
これはセキュリティ上の意図的な仕様です。いくら .htaccess を修正しても、PHPコードを追加しても解決できません——プロキシレベルで削除されるからです。
診断結果(実際に確認)
WordPressにデバッグエンドポイントを作って確認したところ、PHPに届くヘッダーから Authorization が完全に消えていました。X-Backend に lolipop.lan が入っており、プロキシレベルで処理されていることが確認できます。
| ヘッダー | ロリポップ通過 |
|---|---|
| Authorization: Basic xxx | ❌ 遮断 |
| Authorization: Bearer xxx | ❌ 遮断 |
| X-WP-JWT: xxx | ✅ 通過 |
| X-Forwarded-For など | ✅ 通過 |
解決策:X-WP-JWTカスタムヘッダーで迂回する
ロリポップが遮断するのは 「Authorization」という名前のヘッダーだけで、カスタムヘッダーは通過することがわかりました。この性質を利用した解決策がこちらです:
- Claude Code(MCPサーバー)が X-WP-JWT ヘッダーでJWTトークンを送信
- ロリポップのプロキシを通過(Authorization でないため遮断されない)
- WordPress の MU-Plugin(必須プラグイン)が X-WP-JWT を HTTP_AUTHORIZATION に書き換え
- カスタム JWT 認証フィルターがトークンを検証・ユーザーを特定
- WordPress REST API が正常に応答 ✅
必要なもの
- WordPress(ロリポップ共有サーバー)
- WordPress MCPプラグイン(Automattic AI製 v0.2.5以上)— 無料
- Node.js v18以上
- @mangerik/wordpress-mcp(npm パッケージ)
- FTPクライアント(WinSCPなど)
補足:ロリポップ公式のSSHガイドとの違い(ライトプランでもOK)
ロリポップ公式にもAIエージェント接続ガイド(lolipop.jp/media/ai-skills/)がありますが、こちらはSSH接続を前提としており、SSH機能はスタンダードプラン以上限定です。
このブログ(aqleaf.com)はライトプランで運用しており、SSHは使えません。この記事で紹介しているREST API + WordPress MCP(X-WP-JWTヘッダー迂回策)の方法は、SSHが使えないライトプラン環境でも動作する接続方法です。ライトプランでAIエージェント連携を検討している方は、こちらの方法をお試しください。
🤖 Claudeに自動セットアップしてもらう方法(おすすめ)
手順は少し複雑ですが、Claude Code にこのURLを教えるだけで全自動でセットアップしてくれます。
Claude Code に以下のように伝えてください:
「ロリポップでWordPress MCPを使いたい。この記事を参考にセットアップして:https://aqleaf.com/lolipop-wordpress-mcp-authorization-fix/」
Claudeが以下を自動で行います:
- 必要なファイルの作成・FTPアップロードの案内
- npm パッケージのインストールとパッチ適用
- 設定ファイルの書き込み
- 動作確認まで
手動セットアップの概要
自分で作業する場合の流れです(詳細はコメント欄かClaudeにお聞きください):
- WordPress MCPプラグインをインストール・有効化
- MU-Plugin(PHPファイル)を作成してFTPで
/wp-content/mu-plugins/にアップロード npm install -g @mangerik/wordpress-mcpを実行- パッケージのソース(wordpress-client.js)を2箇所修正
- Claude Code の設定ファイルに認証情報を追加
- Claude Code を再起動して動作確認
動作確認
設定完了後、Claude Code から 95個の WordPress ツールが使えるようになります。
- 記事の作成・編集・公開
- メディアのアップロード
- カテゴリ・タグの管理
- ユーザー情報の取得 など
注意点
- JWTトークンは1時間で期限切れになります。Claude Codeを再起動すると自動で新しいトークンを取得します。
- パッケージをアップデートするとパッチが消えるので、再適用が必要です。
- 設定ファイルにWordPressパスワードを記載するため、ファイルのアクセス権限に注意してください。
Codexからも接続できることを確認
2026年6月、同じ仕組みを使ってOpenAI CodexからもWordPress REST APIへ接続できることを確認しました。Claude MCP専用の回避策ではなく、JWTを取得してカスタムヘッダーを送れるクライアントなら応用できます。
接続テストで分かった重要ポイント
- 通常のアプリケーションパスワード認証は、ロリポップ側で
Authorizationヘッダーが消えるため401 rest_not_logged_inになりました。 /wp-json/jwt-auth/v1/tokenでJWTを取得し、X-WP-JWTヘッダーへ渡す方法では認証に成功しました。- 今回のMU-Pluginでは、
X-WP-JWT: Bearer トークンではなく、X-WP-JWT: トークンのように生のJWTを渡す必要がありました。
Codexでの安全な運用方法
WordPressのユーザー名と通常のログインパスワードは、チャットやObsidianへ書かず、Windowsのユーザー環境変数などで管理します。
WP_AQLEAF_USER
WP_AQLEAF_PASSWORD
操作のたびに環境変数から認証情報を読み、新しいJWTを取得して X-WP-JWT でREST APIを呼び出します。JWTは約1時間で期限切れになりますが、必要なときに再取得すればよいため、トークンをファイルへ保存する必要はありません。
401エラーの切り分け
- JWT発行エンドポイントでトークンを取得できるか確認する
X-WP-JWTにBearerを付けた形式と、生のJWT形式のどちらをMU-Pluginが期待しているか確認する/wp-json/wp/v2/users/me?context=editを読み取り、認証ユーザー情報が返るか確認する
まとめ
ロリポップは Authorization ヘッダーをプロキシレベルで遮断しており、.htaccess や PHP では解決できません。しかしカスタムヘッダーは通過するため、X-WP-JWT ヘッダー + MU-Plugin の組み合わせで完全解決できました。
同じ問題で困っているロリポップユーザーの参考になれば幸いです!
うまくいかない場合はコメント欄にどうぞ😊
感想 正直自分の理解を越えた領域でしたので、AIに丸投げです。
でも 記事編集アップロードまでやってくれました。
アイキャッチはチャッピーです🤭


コメント