Claude Desktop × WordPress MCP連携:何度目の正直か、すったもんだした設定記録

MCPワードプレス連携

Claude Desktop と WordPress を MCP で連携させる——この設定が意外に一筋縄ではいかなかった。「AIから直接成果物を作成できる」と聞いて、いろいろ試しているうちにWordPressに直接投稿できるMCPが提供されていることに気づきどこまでできるのかと始めたものの、思いのほか手こずった体験をそのまま記事にしました。この記事自体、完成した Claude Desktop × WordPress MCP連携 を使って投稿しています。
★この情報は、2026年3月28日時点の情報です

AIアシスタントとWordPressの連携フロー
あなた(会話)→ Claude → MCP → WordPress という連携の流れ

Claude Desktop × WordPress MCP連携とは?

MCP(Model Context Protocol)とは、AIアシスタント(Claude)が外部ツールやサービスと連携するための標準プロトコルです。Anthropic が提供する Claude Desktop に「claudeus-wp-mcp」というMCPサーバーを設定することで、Claudeが直接WordPressの投稿・編集・取得などを行えるようになります。

実現できることのイメージはこうです。

人間(会話) → Claude Desktop → MCP → WordPress

プログラムを書かなくても、Claudeとの会話だけで記事の作成・更新・取得ができるのは大きな進歩です。

必要なもの

  • Claude Desktop(インストール済み)
  • Node.js / npx(インストール済み)
  • WordPressサイト(REST APIが有効なもの)
  • WordPressのアプリケーションパスワード

アプリケーションパスワードはWordPress管理画面の「ユーザー → プロフィール → アプリケーションパスワード」から生成できます。通常のログインパスワードとは別物なので注意してください。

Claude Desktop × WordPress MCP連携の設定ファイルは2つ

設定に必要なファイルは2つです。この2つの関係をしっかり理解することが、つまずかないための一番のポイントです。

claude_desktop_config.jsonとwp-sites.jsonの構成比較
claude_desktop_config.json と wp-sites.json の関係
ファイル役割場所
claude_desktop_config.jsonMCPサーバーの起動設定Claude Desktopの設定フォルダ
wp-sites.jsonWordPressサイトの接続情報任意の場所(パスを指定)

① claude_desktop_config.json の設定例

Windowsの場合は %APPDATA%\Claude\claude_desktop_config.json にあります。claudeus-wp-mcp は npm で公開されているため、npx で直接実行できます。

{
  "mcpServers": {
    "claudeus-wp-mcp": {
      "command": "npx",
      "args": ["-y", "claudeus-wp-mcp"],
      "env": {
        "WP_SITES_PATH": "C:\\Users\\yourname\\.config\\claudeus\\wp-sites.json"
      }
    }
  }
}

② wp-sites.json の設定例

{
  "default_test": {
    "URL": "https://あなたのサイト.com/xxxx",
    "USER": "WordPressユーザー名",
    "PASS": "アプリケーションパスワード",
    "authType": "basic"
  }
}

ハマりやすい落とし穴3つ

🚨 落とし穴①:キー名は必ず “default_test”

claudeus-wp-mcp は内部で default_test というエイリアスをデフォルトで参照します。ここを default や別の名前にすると、以下のエラーが出てツールが一切認識されません。

"error": {"code": -32603, "message": "Unknown site: default_test"}

🚨 落とし穴②:複数サイトを併記しない

試行錯誤の過程で default_testdefault を両方書いていた時期がありましたが、これが認証エラー(401)の原因になりました。シンプルに default_test だけにするのが正解です。

🚨 落とし穴③(最大):Xserverの .htaccess 問題

設定は完璧なのに投稿作成(POST)だけ401エラーが出続けました。サーバーのアクセスログを確認するとリクエスト自体は届いているのに認証が通らない状態でした。

原因はXserverがAuthorizationヘッダーをPHPに渡していないことでした。WordPressのアプリケーションパスワード認証はこのヘッダーを必要とするため、常に失敗していたのです。これは Xserver に限らず、WordPress REST API の Basic 認証を使う場合に共通して起こりうる問題です。

Xserverの認証ヘッダー修正前後の比較
.htaccess修正前(上)と修正後(下):ヘッダーがWordPressに届くようになる

解決策は .htaccess(WordPressのルートディレクトリ)に以下の1行を # BEGIN WordPress の直前に追加するだけです。

SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ai/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ai/index.php [L]
</IfModule>
# END WordPress

注意:Xserverのテーマ更新やプラグイン追加の際に .htaccess が上書きされる可能性があります。定期的に確認してください。

正常起動のログで接続を確認する

Claude Desktopのログを確認することで、MCP接続状態を把握できます。正常な起動の場合は以下のように表示されます。

[INFO] Loaded 1 site configurations
[INFO] Initialized API clients for site: default_test
[INFO] Initialized MCP server
[INFO] Registered MCP tools
[INFO] Starting server with stdio transport

tools/list にエラーが返る場合はキー名を再確認してください。

まとめ:Claude Desktop × WordPress MCP連携のハマりポイント

  1. wp-sites.jsonのキー名は必ず default_test ← 最初の関門
  2. 複数サイトを併記しない ← シンプルに1つだけにする
  3. Xserverの場合は .htaccess に1行追加 ← 最大の落とし穴(テーマ更新後も要確認)

設定さえ通れば、Claudeとの会話だけでWordPressの投稿・編集・取得が自由にできるようになります。同じところでつまずいている方の参考になれば幸いです。


この記事は Claude Desktop + claudeus-wp-mcp を使って投稿しました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です