本文へスキップ
ナレッジ

Claude Code × MCPでWordPressの記事作成を自動化する方法|設定手順とハマりどころを実例で解説


「WordPressのコラム更新、毎回の入稿作業が地味に重い」——。記事の執筆はもちろん、見出しの装飾、画像の用意、メタ情報の設定まで、公開までの手作業は意外と多いものです。

本記事では、AIコーディング環境「Claude Code」とMCP(Model Context Protocol)を使って、WordPressの記事作成・更新を自動化した一連の手順を、実際に構築してつまずいた「ハマりどころ」とあわせて、再現できる形で解説します。プラグインを最小限に抑え、WordPress標準のREST APIで動かす構成です。

この記事を読むと、次のことがわかります。

  • Claude Code から WordPress を操作する全体の仕組みと必要なもの
  • mcp-wordpress のセットアップ手順(アプリケーションパスワード・環境変数)
  • 多くのサイトでつまずく「カスタム投稿タイプ」「ACF本文」「権限」の壁と、その越え方
  • 画像生成やメタ情報まで含めた、現実的な運用フロー

全体像:Claude Code から WordPress を動かす仕組み

まず構成を押さえます。登場人物が一直線につながります。

Claude Code・mcp-wordpress・WordPress の連携構成図

  • Claude Code:記事の執筆・入稿を指示するAI環境
  • MCP:AIと外部ツールをつなぐ共通規格。これにより「WordPressを操作する道具」をAIに持たせられる
  • mcp-wordpress:WordPress操作を担うMCPサーバー(npmパッケージ)。記事・固定ページ・メディアなどの操作ツールを提供する
  • WordPress:5.6以降に標準搭載の「アプリケーションパスワード」と「REST API」だけで動く。サイト側へのプラグイン追加は原則不要

ポイントは、WordPress側を大きく改造せずに済むことです。認証は標準のアプリケーションパスワード、操作は標準のREST API。この2つだけで成立します。

事前に用意するもの

  • HTTPSで公開されたWordPressサイト(アプリケーションパスワードはHTTPS必須)
  • 記事更新用のWordPressユーザー(管理者の使い回しは避け、専用ユーザーを推奨)
  • Node.js環境(mcp-wordpressの実行に使用)
  • Claude Code(ローカルCLIまたはWeb版)

手順1:アプリケーションパスワードを発行する

WordPress管理画面で、記事更新に使うユーザーの認証情報を作ります。

  1. 管理画面の ユーザー → プロフィール(または対象ユーザーの編集画面)を開く
  2. ページ下部の「アプリケーションパスワード」セクションで名前(例:Claude Code)を入力し、「新しいアプリケーションパスワードを追加」をクリック
  3. 表示される xxxx xxxx xxxx xxxx xxxx xxxx 形式のパスワードを控える(この画面でしか表示されません

このパスワードは通常のログインパスワードとは別物で、いつでも管理画面から失効(削除)できます。漏えいが疑われたら、まず失効させれば安全です。

手順2:mcp-wordpress を設定する

プロジェクト直下に .mcp.json を置き、mcp-wordpress を登録します。認証情報は環境変数から読み込ませ、ファイルには直接書きません。

{
  "mcpServers": {
    "wordpress": {
      "command": "npx",
      "args": ["-y", "mcp-wordpress"],
      "env": {
        "WORDPRESS_SITE_URL": "${WORDPRESS_SITE_URL}",
        "WORDPRESS_USERNAME": "${WORDPRESS_USERNAME}",
        "WORDPRESS_APP_PASSWORD": "${WORDPRESS_APP_PASSWORD}",
        "WORDPRESS_AUTH_METHOD": "app-password"
      }
    }
  }
}

必要な環境変数は次の3つです。

  • WORDPRESS_SITE_URL:サイトのURL(例:https://example.com
  • WORDPRESS_USERNAME:WordPressのユーザー名
  • WORDPRESS_APP_PASSWORD:手順1で発行したアプリケーションパスワード

ローカルなら .env に書いて読み込み、Web版なら環境設定画面に登録します。いずれの場合も、認証情報はGitにコミットしないのが鉄則です(.gitignoreで除外)。

手順3:MCPサーバーを承認し、接続を確認する

新しいセッションを開始すると、プロジェクトの .mcp.json に定義したサーバーを使ってよいか確認されます。承認すると、WordPress操作ツールが使えるようになります。

接続できているかは、自然言語で「下書きの記事を一覧して」のように頼んで、結果が返れば成功です。うまくいかないときは、mcp-wordpress に付属する状態診断コマンドで、接続・認証・権限を一括チェックできます(出力に認証情報が含まれるため取り扱いには注意)。

ここからが本番:実運用でハマった5つの落とし穴

「つなぐ」までは簡単です。難しいのは、実際のサイト構成に合わせて記事を正しく入稿するところ。多くの実サイトで起きる典型的な5つの壁と、その越え方を共有します。

実運用でつまずく5つの落とし穴

落とし穴1:記事を作ったのに管理画面に表示されない

最初に下書きを作成したところ、APIは成功を返すのに管理画面の記事一覧に出てこない、という事態に遭遇しました。原因は、そのサイトのコラムが標準の「投稿(post)」ではなく、独自のカスタム投稿タイプで管理されていたこと。標準「投稿」はメニューから隠され、入稿先として使われていなかったのです。

教訓:まず「コラムが実際にどの投稿タイプで管理されているか」を確認する。管理画面でコラム一覧を開き、URLの post_type=○○ を見れば内部名がわかります(例:articlenews)。

落とし穴2:カスタム投稿タイプがREST APIに公開されていない

入稿先のカスタム投稿タイプ(例:article)が判明しても、REST API側に rest_no_route が返り操作できないことがあります。これは、その投稿タイプが show_in_rest 無効で登録されているためです。

テーマのファイルを直接いじるのはリスクがあるので、「Code Snippets」プラグインで安全に有効化します。次のコードを1つ追加するだけです(投稿タイプの内部名は自分のサイトに合わせて書き換え)。

add_filter( 'register_post_type_args', function ( $args, $post_type ) {
    if ( in_array( $post_type, array( 'article', 'news' ), true ) ) {
        $args['show_in_rest'] = true;
    }
    return $args;
}, 10, 2 );

有効化されると /wp-json/wp/v2/article のようなエンドポイントが生え、API経由の作成・更新ができるようになります。なお、CPT UIなどのプラグインで投稿タイプを登録している場合は、設定画面の「REST API で表示」をオンにするだけで済みます。

落とし穴3:本文が標準の「本文」欄にない(ACF管理)

さらに、その投稿タイプが標準の本文(content)を持たず、本文をACF(Advanced Custom Fields)のカスタムフィールドで管理しているケースがあります。実際、対象サイトは本文用のリッチエディターフィールド(例:blog_txt1)に文章を入れる構造でした。

この場合、APIに content を渡しても無視されます。対処は2つです。

  1. ACFのフィールドグループ設定で「REST API で表示」をオンにする
  2. 入稿時は content ではなく acf.blog_txt1 に本文HTMLを入れる

アイキャッチ画像は、先にメディアをアップロードして得たIDを featured_media に指定します。

落とし穴4:ユーザー権限の壁

安全のため記事更新用ユーザーは最小権限にするのが定石ですが、権限を絞るとできない操作が出てきます。たとえば「投稿者(author)」権限では、自分の記事の作成・編集・メディアのアップロードはできますが、カテゴリーの新規作成や、サイト全体の設定変更はできません(REST APIが rest_forbidden を返す)。

教訓:自動化でやりたい操作と、付与する権限の対応をあらかじめ確認しておく。カテゴリ作成など権限外の準備は、管理者に依頼して先に済ませておくとスムーズです。

落とし穴5:SEOプラグインのメタや見出しの見た目

仕上げで2つ、細かいけれど重要な点に当たりました。

  • SEOプラグイン(AIOSEO)のメタ情報はAPIから書きにくい:メタタイトルやメタディスクリプションは、最小権限ユーザーではAPIから設定できないことがあります。その場合は管理画面で手動設定するか、フィルターでカスタムフィールドの値を出力に流し込む「橋渡し」を用意します。メタディスクリプションは検索順位そのものより検索結果でのクリック率に効く要素なので、優先度を見極めて対応すれば十分です。
  • 見出しがテーマで小さく表示される:テーマによっては本文中の見出し(h2/h3)がほとんど装飾されず、本文より目立たないことがあります。テーマCSSを触れない場合は、入稿する本文HTMLの見出しに直接スタイルを付与すれば確実に整います。

画像も自動化する:無料の「コード描画」という選択肢

記事に図解を入れたいとき、毎回AIで画像を生成してダウンロード…という作業は手間もコストもかかります。そこで有効だったのが、図解をコード(SVG)で描画してPNGに変換する方法です。

コード描画(SVG)とAI画像生成の使い分け

  • コード描画(無料)が向くもの:フローチャート、3分割パネル、ステップ図、サイクル図、比較表のような構造化された図解。日本語テキストが文字化けせず正確に出る、ブランドカラーをぴったり再現できる、文言修正が一瞬、という利点があります。
  • AI画像生成が向くもの:人物や柔らかいイラストが主役のビジュアル、アイキャッチなど。有機的な質感はAIが得意です。

実際に見比べてみる:同じ図解を「SVG」と「AI生成」で作る

百聞は一見にしかず。同じ内容(「業務自動化で得られる3つのメリット」)の図解を、2つの方法で作って見比べてみましょう。

方法A:SVG(コード描画)で生成した図解

業務自動化で得られる3つのメリット(SVGコード描画で生成した図解)

これはAIではなく、コードでSVGを組み立ててPNGに書き出したものです。日本語テキストが一字も崩れず、色・余白・配置が完全に揃います。文言を直したいときはコードのテキストを書き換えるだけで一瞬です。

方法B:画像生成AIで作る場合のプロンプト

同じ図解をAIで作るなら、次のような「描画する文字まで指定したプロンプト」を画像生成AIに渡します。

横長16:9のフラットデザイン図解画像を作成してください。
背景は白〜薄い青のグラデーション、メインカラーは青、アクセントにオレンジ。
日本語は太めのゴシック体でくっきり描画してください。

上部にタイトル帯「業務自動化で得られる3つのメリット」。
その下に等サイズの3パネルを横一列に並べる:
- パネル1:時計のアイコン + 見出し「時間を短縮」+ 補足「手作業をなくし、本来の業務に集中」
- パネル2:コインを積み重ねたアイコン + 見出し「コストを削減」+ 補足「繰り返し作業の人的コストを圧縮」
- パネル3:チェックマーク付きの盾のアイコン + 見出し「ミスを防ぐ」+ 補足「手順を標準化し、品質を安定させる」
各パネルの左上に丸い番号バッジ(1 / 2 / 3)を配置。

以下のテキストを一字一句正確に描画してください:
「業務自動化で得られる3つのメリット」「時間を短縮」「コストを削減」「ミスを防ぐ」。
指定した以外の文字・英語・透かしは入れないでください。

プロンプトのコツは3つです。

  • 描画する日本語を「」で全部列挙し、「一字一句正確に描画」と明示する(AIは日本語の文字を崩しやすいため)
  • レイアウト・配色・アイコンを具体的に指定する(「いい感じに」では再現性が出ない)
  • 「指定した以外の文字は入れない」で締める(余計な英字や透かしの混入を防ぐ)

実際に並べると、AI生成版は質感が有機的で華やかな一方、文字が微妙に崩れたり、色や余白が毎回ぶれたりします。SVG版は文字が完璧で統一感がありますが、アイコンはシンプル。「構造が主役」の図解はSVG、イラストの雰囲気が主役のビジュアルはAI、と覚えておくとよいでしょう。

品質と安全を担保する運用ルール

自動化は「速い」だけでは不十分で、事故らない仕組みがあって初めて実戦投入できます。実際に採用したルールは次のとおりです。

  • 原稿はGitで管理:本文をリポジトリに保存してから入稿。いつでも差分を追え、元に戻せる。
  • 既定は下書き:新規記事は必ず draft で作成し、公開は人が明示的に指示したときだけ。誤って公開する事故を防ぐ。
  • 更新前に対象を特定:記事を更新する前に、対象のID・タイトル・状態を取得して確認してから書き換える。本文の取得なしに全文を上書きしない。
  • 編集ルールをドキュメント化:文体・見出しスタイル・CTAの置き方などをガイドラインにまとめ、AIが毎回同じ品質で書けるようにする。
  • 認証情報を出力・コミットしない:アプリケーションパスワードはファイルにもログにも残さない。

まとめ:再現のためのチェックリスト

Claude Code × MCP によるWordPress自動化は、「つなぐ」ところより「サイト固有の構造に合わせる」ところに勘所があります。最後に、再現するための要点を整理します。

  • WordPressは標準のアプリケーションパスワード+REST APIで動く(サイト側プラグイン追加は原則不要)
  • .mcp.json でmcp-wordpressを登録し、認証情報は環境変数で渡す
  • コラムの実際の投稿タイプを確認する(標準「投稿」とは限らない)
  • カスタム投稿タイプは show_in_rest を有効化(Code Snippetsで安全に)
  • 本文がACF管理なら、ACFをREST公開し acf.○○ に本文を入れる
  • ユーザー権限でできる操作・できない操作を事前に把握する
  • 原稿はGit管理、既定は下書き、公開は明示指示のみ——の安全運用を徹底する

一度この土台を作れば、企画から入稿・画像生成までを一気通貫で回せるようになります。日々のコンテンツ運用の手間を、本質的な「何を書くか」に集中できる形へと変えていけるはずです。

CONTACT

同じような課題、ありませんか?

無料で相談する

24時間365日 ご相談受付・月3万円〜

無料で相談する

24時間365日 受付・月3万円〜