WordPressをMCPを使ってClaudeとつないでみた

「ブログの下書き、チャットで頼んだらそのままWordPressに入っていてほしい」——そんな環境を、MCP(Model Context Protocol)を使って作ってみました。実際にこの記事自体も、Claude(AIアシスタント)からMCP経由でWordPressに下書き投稿されています。

本記事では、初級〜中級の方向けに、仕組みの概要・導入手順・ハマりどころ・セキュリティのポイントをまとめます。

MCPとは何か

MCP(Model Context Protocol)は、AIアシスタントと外部ツールをつなぐための標準プロトコルです。よく「AI界のUSB-C」と例えられます。ツールごとにバラバラだった連携方法を共通規格にすることで、AI側は「どんなツールがあるか」を自動で発見(discover)し、許可された操作だけを実行(execute)できます。

今回の登場人物は次の3つです。

  • MCPクライアント: Claude Code(PC上で動くAIエージェント)
  • MCPサーバー: WordPress側のプラグインが提供するHTTPエンドポイント
  • アビリティ(Ability): 「投稿を作成する」「バックアップを実行する」など、AIに開放する操作の1単位

全体構成

WordPress 6.9からAbilities APIがコアに搭載され、プラグインが「AIに使わせてよい機能」を標準的な方法で登録できるようになりました。そこに公式のMCP Adapterプラグインを組み合わせると、登録されたアビリティがそのままMCPのツールとして外部に公開されます。

Claude Code(PC)
   │  HTTPS + Basic認証(アプリケーションパスワード)
   ▼
WordPress
 ├─ MCP Adapter プラグイン(MCPエンドポイントを提供)
 ├─ Abilities API(WordPress 6.9〜 コア機能)
 └─ Enable Abilities for MCP プラグイン(投稿・固定ページ等のアビリティを登録)

使ったものは以下のとおりです。

  • WordPress 6.9以降(Abilities APIコア搭載)
  • MCP Adapter(公式プラグイン)
  • Enable Abilities for MCP(投稿・固定ページなど58種のアビリティを追加し、1つずつON/OFF管理できる)
  • Claude Code(MCPクライアント)

導入手順

1. プラグインの導入

「MCP Adapter」と「Enable Abilities for MCP」をインストール・有効化します。MCP Adapterを有効化すると、次のようなMCPエンドポイントが生えます。

https://example.com/wp-json/mcp/mcp-adapter-default-server

2. アプリケーションパスワードの発行

認証には、WordPress標準のアプリケーションパスワードを使います。管理画面の「ユーザー → プロフィール」から発行でき、ログインパスワードとは別物なので、漏えい時は単体で失効できます。AI連携用に専用の1本を発行しましょう。

3. Claude Code側にMCPサーバーを登録

ターミナルで次のコマンドを実行します(認証はBasic認証。ユーザー名:アプリケーションパスワードをBase64エンコードした値を使います)。

claude mcp add --transport http wordpress \
  "https://example.com/wp-json/mcp/mcp-adapter-default-server" \
  --header "Authorization: Basic <BASE64値>"

claude mcp list✓ Connected と表示されれば接続成功です。

4. アビリティを最小限だけONにする

Enable Abilities for MCPの設定画面(Abilitiesタブ)で、AIに許可する操作を選びます。初期状態では全部ONなので、いったんDisable Allしてから必要なものだけONにするのがおすすめです。今回は「投稿の作成・更新」「固定ページの参照」「カテゴリ・タグの参照」など10個程度に絞り、削除系・設定変更系はすべてOFFにしました。

ハマりどころ

  • /wp-json/ がリダイレクトされる: パーマリンクや他プラグインの設定によっては /wp-json/ 形式のURLがトップページへ飛ばされることがあります。その場合は ?rest_route= 形式(例: https://example.com/?rest_route=/mcp/mcp-adapter-default-server)を使うと確実です。
  • セキュリティプラグインとの干渉: Wordfenceを使っている場合、ブルートフォース保護の「Disable WordPress application passwords」が有効だとアプリケーションパスワード自体が使えず、接続できません。この項目のチェックを外す必要があります(その分、パスワードの管理は厳重に)。
  • 接続はできるのにツールが出てこない: MCPエンドポイントは「登録されたアビリティを公開する器」なので、アビリティを登録するプラグインがないと、投稿操作などのツールは何も見えません。「つながったのに何もできない」ときはアビリティ側を疑いましょう。

できるようになったこと

接続後は、Claudeとの会話だけで次のような操作ができるようになりました。

  • 投稿一覧・固定ページ一覧の取得(「最近の投稿を見せて」)
  • 下書き投稿の作成・更新(この記事がまさにそれです)
  • BackWPupによるバックアップの実行と履歴確認(プラグイン変更前に「バックアップ取っておいて」が通る)
  • Yoast SEOのメタディスクリプション設定

「管理画面を開いてログインして…」という往復がなくなり、記事の構成相談からそのまま下書き投入まで一気通貫でできるのは想像以上に快適です。

セキュリティのポイント

便利な反面、AIにサイトの操作権限を渡すことになるので、以下は必ず押さえておきましょう。

  1. 最小権限の原則: アビリティは使うものだけON。削除系・ユーザー管理・設定変更系は、必要になるまでOFF。
  2. アプリケーションパスワードの管理: 用途ごとに専用発行し、不要になったら即失効。ログインパスワードは絶対に使い回さない。
  3. エンドポイントは公開されている: MCPエンドポイントはインターネットから到達可能です。認証があるとはいえ、WAFやログ監視と組み合わせるのが安心です。
  4. 操作ログの確認: Enable Abilities for MCPにはActivity Logタブがあり、どのユーザーがどのアビリティを実行したか追跡できます。
  5. 作業前バックアップ: AIに変更系の作業を任せる前に、バックアップを取る習慣を。今回はバックアップ自体もMCP経由で実行できるようにしました。

まとめ

WordPress 6.9のAbilities APIと公式MCP Adapterの登場で、「AIとWordPressの連携」は自作コード不要のプラグイン2つで実現できるところまで来ました。ポイントは次の3つです。

  • 接続は公式MCP Adapter+アプリケーションパスワードでシンプルに
  • 権限はDisable Allから必要な分だけONが鉄則
  • ハマったら ?rest_route= 形式とセキュリティプラグインの設定を疑う

「ブログ運営の相棒としてAIを迎える」第一歩として、まずは読み取り系アビリティだけONにして試してみるのがおすすめです。