Claude CodeからWordPressに直接投稿したい ― ConoHa WINGで認証が通らなかった話

Claude CodeからWordPress MCPへの接続イメージ。ターミナルとWordPressの間でREST API認証が401から200に変わる様子を図示

ブログを書くのは好きなんですが、WordPress管理画面を開いて、下書きを貼り付けて、カテゴリを選んで、タグを設定して…… という作業が地味に面倒なんですよね。

「記事を書いたらそのままWordPressに投稿できたら最高なのに」と思っていたところ、Claude CodeのMCP(Model Context Protocol) という仕組みを使えば、ターミナルから直接WordPressに投稿できることを知りました。

これは試すしかない、とさっそく構築に取りかかったのですが、思いのほかハマりました。この記事では、ConoHa WINGでWordPress MCPの認証を通すまでに遭遇したトラブルと解決策を共有します。

目次

やりたかったこと

構成はシンプルです。

Claude Code(ターミナル)
    ↓ MCP
WordPress MCPサーバー(ローカル)
    ↓ REST API
WordPress(ConoHa WING)

Claude CodeにはMCPというプロトコルがあり、外部ツールと連携するための仕組みが用意されています。WordPress REST APIと組み合わせれば、CLIから直接「記事作成」「下書き保存」「画像アップロード」などが可能になります。

2026年2月にはWordPress.comが公式Claudeコネクタを発表するなど、AIとWordPressの連携は急速に進んでいます。自分のセルフホスト環境でも同じことをやりたい、というのが今回のモチベーションでした。

まずは接続テスト ― サイト情報は取れた

MCPサーバーを設定して、まずはWordPressのサイト情報を取得してみました。

サイト名: きわり酵母の攻防
URL: https://kwrkb.com
REST API: 接続成功

ここまでは順調です。サイト名もURLも正しく返ってきます。

「よし、いけるぞ」と思って記事の下書きを投稿しようとしたところ……

Error: 認証に失敗しました。WP_USERNAME と WP_APP_PASSWORD を確認してください。

401エラー。認証が通りません。

原因の切り分け ― 何がブロックしているのか

ここからが長い戦いでした。

疑い1: アプリケーションパスワードの形式

WordPressのアプリケーションパスワードは xxxx yyyy zzzz のようにスペース区切りで表示されます。「スペースを除去すべきでは?」と思い、両方のパターンで試しました。

結果は どちらも401。パスワードの形式の問題ではありませんでした。

疑い2: Wordfence(セキュリティプラグイン)

私のWordPressにはWordfenceというセキュリティプラグインを入れています。このプラグインには「Disable WordPress application passwords」という設定があり、これがONだとアプリケーションパスワード自体が無効化されます。

Wordfenceの設定を確認し、IPアドレスのホワイトリストにも追加しました。

結果は まだ401

疑い3: サーバーがAuthorizationヘッダーを落としている

curlコマンドで詳しく調べてみると、面白いことがわかりました。

curl -v -u "username:password" "https://kwrkb.com/wp-json/wp/v2/users/me"

Authorizationヘッダーはちゃんと送信されているのに、WordPress側は rest_not_logged_in(ログインしていません)と返してきます。

つまり、クライアントからヘッダーは送っているのに、WordPressに届く前のどこかで消えている可能性があります。

ConoHa WINGはnginx + Apacheの構成です。nginxがリバースプロキシとして前段にいて、その後ろでApache(PHP)が動いています。この構成では、nginxからApacheに渡す際にAuthorizationヘッダーが落ちることがあるんですね。

対策として .htaccess の先頭に以下を追加しました。

CGIPassAuth on

これはApacheのCGI/FastCGI環境で、認証ヘッダーをそのままスクリプトに渡すためのディレクティブです。

結果は…… まだ401

最終的な解決策

3つの対策を試してもダメ。正直「詰んだか?」と思いました。

ここで原点に立ち返って、WordPressの管理画面からアプリケーションパスワードを新しく発行し直しました

新しいパスワードをMCPの設定ファイルに反映 → 再テスト

通りました。

最初のアプリケーションパスワードが何らかの理由で無効になっていたようです。Wordfenceの設定変更やセキュリティ更新のタイミングで失効した可能性があります。

最終的には、テスト記事が下書きとしてWordPressに保存されていることを確認できました。

得られた教訓

今回の経験から、ConoHa WING + WordPress + REST API認証でハマったときのチェックリストをまとめておきます。

  1. アプリケーションパスワードは有効か? ― まず再発行を試す。これが一番早い
  2. Wordfenceの設定 ― 「Disable WordPress application passwords」がOFFか確認
  3. .htaccessCGIPassAuth on ― ConoHa WINGのnginx + Apache構成では保険として入れておく
  4. IPアドレスのホワイトリスト ― Wordfenceを使っているなら、接続元IPを許可リストに追加

私の場合は1番(パスワード再発行)が正解でしたが、3番の .htaccess 設定も今後のために残しておくことにしました。サーバーのアップデートでAuthorizationヘッダーの扱いが変わる可能性もありますからね。

まとめ

Claude CodeからWordPressに直接投稿する環境、構築してみたら本当に快適です。ターミナルで記事を書いて、そのまま下書き投稿。カテゴリやタグの設定もCLIから一発です。

ただ、ConoHa WINGでセットアップする際は、REST APIの認証周りでハマる可能性があるということを知っておくと、無駄な時間を使わずに済むと思います。

同じ構成で苦戦している方の参考になれば嬉しいです。

参考文献

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次