Claude MCP × WordPress連携でハマった落とし穴──wp_healthの403は「接続失敗」ではなかった

ClaudeのMCP(Model Context Protocol)を使ってWordPressと連携する環境を構築しました。昨日まで正常に動いていたのに、今日は突然つながらない──そんなトラブルを経験しました。結論から言うと、原因はClaudeの思い込みによるデバッグミス(とアプリケーションパスワードの保存忘れ)でした。同じ失敗を繰り返さないための記録として残します。

環境

  • サーバー:Xserver(hoscm.xsrv.jp)
  • MCPプラグイン:claudeus-wp-mcp
  • MCPユーザー権限:編集者(Editor)
  • 接続設定:wp-sites.json(Claude Desktop

何が起きたか──事象の時系列

昨日まで正常に動作していたMCP連携が、今朝から突然失敗するようになりました。Claudeは接続確認のために wp_health__test_auth を繰り返し実行しましたが、すべて403エラーが返ってきました。

手順実施内容結果
wp_health__test_auth で接続確認❌ 403エラー
WP Fastest Cache を無効化❌ まだ403
CloudSecure WP Security を無効化❌ まだ403
Xserver WAF を調査❌ 関係なし
アプリケーションパスワードを再生成❌ まだ失敗
PowerShellで認証テスト✅ 通った
「更新ボタン押し忘れ」に気づく原因判明
パスワード正しく保存・再起動❌ まだ失敗
wp_healthではなく通常エンドポイントで確認✅ 正常動作!

本当の原因は2つあった

原因①:アプリケーションパスワードの「保存ボタン押し忘れ」

WordPressのアプリケーションパスワードを再生成した後、プロフィール画面の「プロフィールを更新」ボタンを押さずに離脱していたため、新しいパスワードが保存されていませんでした。これが真の認証失敗の原因でした。

PowerShellで認証テストをしたところ通ったことで、この事実が判明しました。パスワード更新後は必ずブラウザ上で「更新完了」のメッセージを確認してください。

原因②:wp_healthエンドポイントは編集者権限では使えない

Claudeが接続確認に使い続けた wp_health__test_auth は、管理者権限が必要なエンドポイントです。このサイトのMCPユーザーは編集者権限しか持っていないため、パスワードが正しくても403が返り続けます。これは「接続失敗」ではなく「権限不足」による正常な拒否でした。

エンドポイント必要権限編集者での結果
get_taxonomies不要(公開情報)✅ 正常
get_posts編集者✅ 正常
create_post編集者✅ 正常
get_settings管理者❌ 403
wp_health__test_auth管理者❌ 403

無実だったプラグインたち

今回の騒動で無効化・調査したプラグインやセキュリティ設定は、すべて無関係でした。

  • WP Fastest Cache:.htaccessを書き換えていたが、無効化しても403は続いた → 無関係
  • CloudSecure WP Security:セキュリティプラグインだが、無効化しても403は続いた → 無関係
  • Xserver WAF:XSS・SQL・PHP等の6項目を確認したが、REST APIの権限制御とは無関係

最終確認として、両プラグインを再有効化した状態で get_taxonomies を実行したところ正常に動作しました。環境は最初から正常だったのです。

一番の失敗:Claudeの思い込みに振り回された

今回最大の問題は、Claudeが「wp_health = 接続確認ツール」「403 = 接続失敗」と思い込み、その前提を疑わなかったことです。

その結果、ユーザーは本来まったく不要だった以下の作業をさせられました。

  • プラグインの無効化・再有効化
  • WAFの各項目調査
  • アプリケーションパスワードの再生成
  • Claude Desktopの複数回再起動
  • .htaccessの内容確認

「低権限エンドポイントから順に確認する」という基本的なデバッグ手順を踏んでいれば、これらの作業のほとんどは不要でした。

正しいMCP接続確認の手順

今後の再発防止のために、正しいデバッグ手順をまとめます。

Step 1:低権限エンドポイントで疎通確認

get_taxonomies  ← 認証不要・公開情報。まずここから。

✅ 通る → ネットワーク・サーバーは正常

Step 2:編集者権限エンドポイントで認証確認

get_posts または create_post(下書き)← 認証が必要。

✅ 通る → 認証(アプリケーションパスワード)も正常
❌ 失敗 → パスワードの確認、保存忘れがないか確認

wp_health系は使わない

管理者権限が必要なため、編集者権限の環境では常に403が返ります。接続確認には使用しないこと。

読者・ユーザーへの教訓

MCP連携でトラブルが発生したとき、最初にClaudeに伝えるべき情報があります。

「このサイトのMCPユーザーは編集者権限です。接続確認は get_taxonomies など低権限エンドポイントから順に試してください。wp_health系は使わないでください。」

この一言をセッション冒頭に伝えるだけで、今回のような無駄なデバッグを防ぐことができます。AIは間違った前提で動き続けることがあります。ユーザーが正しい制約条件を最初に伝えることが、AI活用の重要なスキルです。

まとめ

項目内容
真の原因①アプリケーションパスワードの保存ボタン押し忘れ
真の原因②wp_healthは管理者権限が必要(編集者権限では使えない)
Claudeのミス403=接続失敗と思い込み、低権限エンドポイントから試さなかった
無関係だったものWP Fastest Cache・CloudSecure・Xserver WAF・.htaccess
再発防止策接続確認はget_taxonomiesから。セッション冒頭に権限を明示する

MCP連携は非常に便利な仕組みですが、AIの思い込みに振り回されないためには、ユーザー側からの適切な制約条件の提示が重要です。この記録が同じ環境で構築する方の参考になれば幸いです。

コメント

このパターンにはまった場合、初心者はAIに振り回されて数日間を棒に振る可能性があります。最悪の場合、放棄するかもしれません。いあー。まだまだ、MCPはエンジニアレベルの絶賛開発中ツールでしょうかね。 このようなトラブルをサクッと解決できる人しか生き残れないのか?。。。 厳しいな。

関連記事

AI活用というけど、2026年の進化はMCP活用がポイントか。Claude code、Claude.aiでの進化

「ツールをClaudeに接続」について

生成AIの進化で様々なシーンでAI活用が進んでいるが、2026年はさらに次のステップに入ろうとしている。それは。一言で言うとMCP活用の爆誕である。 これは端的に言えば、(生成)AIとコンピュータを連携させる仕組みの登場である。 さらに言い換えると、AIにIoTへのアクセス権を許可する仕掛けである。これは、一つの新たなリスク領域に踏み込んでしまったともいえる。AIとは何かを理解せぬまま、AIがコンピューターだと誤解したままこの領域に踏み込んでしまった人が引き起こす不幸は見たくはないものだが、間違いなくそれは起こるに違いない。このコンテンツおよび関連記事が、そのような人を一人でも減らすことができることになれば幸いです。

AIとIoTの連携でのリスク
AIとIoTの連携でのリスク

MCPとの関係

はい、認識は正しいです。「ツールをClaudeに接続」はMCP(Model Context Protocol)の連携設定をする機能です。GoogleドライブやSlack、GitHubなどの外部サービスをClaudeに接続し、会話の中でそれらのデータにアクセスしたり操作したりできるようになります。


ブラウザ版とClaude Desktopの違い

別設定です。 それぞれ独立した設定になっています。

ブラウザ版(claude.ai)Claude Desktop
設定場所ブラウザ上の設定ローカルの設定ファイル(JSON)
接続できるものAnthropicが提供するコネクタ中心ローカルのMCPサーバーを含む何でも接続可
柔軟性比較的簡単・限定的自由度が高い
設定の共有アカウントに紐づくそのPCのみ

Claude Desktopの方がより高度なカスタマイズが可能で、自作のMCPサーバーや、ローカルファイルシステムへのアクセスなども設定できます。


コネクタの追加費用について

見分け方はシンプルで、追加費用は一切かかりません。

コネクタの利用に際して、既存のプランのサブスクリプション以上の追加料金は発生しません。 Max Productive AI

ただしプランによる制限はあります:

ディレクトリのコネクタ(50種以上)カスタムコネクタ(MCP URL手入力)
Freeプラン✅ 利用可✅ 1つまで
Proプラン以上✅ 利用可✅ 無制限

カスタムコネクタはFree・Pro・Max・Team・Enterpriseすべてのプランで利用可能ですが、Freeユーザーは1つに制限されます。 Claude

つまり「追加費用がかかるコネクタ」はなく、プランの壁があるだけ、という理解でOKです。


BufferのClaudeコネクタについて

現時点ではブラウザ版の公式コネクタディレクトリには存在しません。

ただし状況が進展中で:

  • Buffer用のMCPサーバーが有志によって作成されており、BufferのGraphQL API(2026年2月パブリックベータ)を使って、Claudeから投稿の作成・スケジュール・管理ができます。 LobeHubただしこれはClaude Desktopへの手動設定が必要なカスタムMCPです。
  • Buffer公式の回答によれば、MCPはベータ機能として提供されており、公式Claudeコネクタは近日公開予定とのことです。 Threads

現時点でBufferをブラウザ版で使う方法としては、ZapierのMCPコネクタ経由で間接的に連携する方法があります(ただしZapierのプランが別途必要)。

公式コネクタが来るまで待つか、Claude Desktopでカスタムメーカー MCP設定をするか、という選択肢になりそうです。


MCP連携 コネクタの有償/無償の確認方法

残念ながら一覧で一括確認する方法はなく、現状では個別に調べるしかありません。また、どんどん更新されているため、動作しない場合は、その都度、調べるのが必要があります。
参考までに2026年3月27日時点での主要コネクタの無料プランの有無をまとめると:

コネクタ無料プラン
Google Drive / Gmail / Calendar✅ あり
GitHub✅ あり
Notion✅ あり(機能制限あり)
Slack✅ あり(履歴制限あり)
Linear✅ あり
Asana✅ あり(機能制限あり)
Jira✅ あり(10人まで)
Canva✅ あり
Figma✅ あり(プロジェクト数制限)
Stripe❌ 無料プランなし(従量課金)
Ahrefs❌ 無料プランなし

入力枠右下の小さなアイコンとの関係

関係あります。 あのアイコン(🔧 や + のようなもの)は、接続済みのツールのオン/オフを切り替えるボタンです。

流れとしては:

  1. 「ツールをClaudeに接続」 → MCPサービスを登録・連携設定する場所
  2. 入力枠のアイコン → 登録済みのツールを、その会話で使うかどうかを選ぶ場所

つまり、まず接続設定をしておいて、会話ごとに必要なツールをアイコンから有効化する、という使い方になります。

各アプリのProプランでの利用可否

アプリProプランで追加費用なし?
Claude Code(ターミナル)✅ 追加費用なし
Cowork✅ 追加費用なし
Claude in Excel✅ 追加費用なし
Claude in Chrome✅ 追加費用なし(有料プランのみ)
デスクトップアプリ・モバイル✅ 追加費用なし
Claude in PowerPoint⚠️ 要注意

PowerPointだけは注意が必要

Claude for PowerPointは現在、Max(月$100)、Team、Enterpriseプランのみ対応で、Proプランには含まれていません。 Pasquale Pillitteri

公式の料金ページでも、Claude for ExcelとClaude for PowerPointはProプランの機能一覧に記載されていますが、 Claude実際の提供状況はExcelとPowerPointで異なります。


本題の危機、リスクとは

MCP連携は非常に有用な仕組みです。しかし、何をしているのかを理解したうえで使わないと、想定外?の危機に見舞われる。1つめは、MCP連携は、AIに何かをする権限を委譲すると言うことである。何を委譲しようとしているのかを理解したうえで「ボタン」を押す必要がある。
つぎに、AIをコンピューターと思ってはいけない。これが重要なポイントだが、AIは見も知らない他人で、基本的には協力してくれるが、そうでもないこともある。具体的には「ハルシネーション」である。単に「誤回答」のことだろうと思っているあなた、まだまだAIに難題をだしていませんね。AIは、自己解決できない問題を無理やり解決しようと想定外の行動に出ることがある。MCP連携で権限委譲しているものの中にやってはいけない行為を許可していることはありませんか?たとえば、WordPress連携で投稿文の編集権を渡している場合、コンテンツを勝手に書き換えや削除してしまうことが考えられます。この損失は軽微なように思われるかもしれませんが、MCP連携で権限委譲する範囲が広がれば、取り返しができない「想定外だった」というような話が今後出てくるかもしれません。

そのようなことがないように、権限委譲の設計をしっかりしながら作業を進めましょう


関連記事

Claude Desktop × WordPress 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 を使って投稿しました。