前回(Claude に Gmail を繋いで、メールの下書きをさせる)の続き。MCP でもう一つ繋いでいるのが WordPress で、このブログの記事、下書きは全部 Claude から投稿している。この記事もそう。
何をしているか
- ローカルに書いた下書き(Markdown)を、WordPress の下書きとして投稿
- 公開済み記事の修正(本文・抜粋・カテゴリー)
- カテゴリーやタグの作成
- 記事一覧や中身の取得(確認用)
実際のワークフロー
- プロジェクトのメモ(
NOTES.md)にネタが溜まる - ネタ帳から1本選んで、ローカルに Markdown で下書きを書く(Claude と一緒に)
- 「この下書きを WordPress に下書きとして入れて」と頼む → 下書きとして投稿される
- 自分が管理画面でプレビューを確認、スラッグを整える
- 「公開」または「予約投稿」は自分の手で押す
Gmail の「送信はさせない」と同じで、Claude は下書きまで。プレビューと公開ボタンは自分、という線引きにしている。
なぜローカルに下書きを持つのか
- テキストファイルなのでバージョン管理できる(何をどう直したかが残る)
- 次に相談を再開したとき、Claude がファイルを読んで前提を思い出せる
- WordPress の中だけで完結させると、AI との往復がやりづらい
詰まったところ
サーバーの WAF が更新をブロックしていた。
新規投稿(POST)は通るのに、既存記事の修正(PUT)だけ「Forbidden」で弾かれる。原因は、レンタルサーバーの WAF が「PUT メソッドの拒否」というルールで REST API の更新まで止めていたこと。コントロールパネルの WAF ログから、その1件を「除外」に登録して解決した。同じ構成(ConoHa WING など)で REST API から更新したい人は、ここで一度つまずくと思う。
日本語タイトルだとスラッグが自動生成でぐちゃぐちゃになる。
パーセントエンコードされた長い URL になるので、投稿後に手で英字スラッグ(claude-wordpress-mcp など)に直す運用にしている。
MCP が一覧の結果をキャッシュする。
カテゴリー一覧などが古い値のまま返ってくることがあり、「消したはずのカテゴリーがまだある」と勘違いした。確認の前にキャッシュをクリアするようにした。
使っているもの
- MCP サーバー:
mcp-wordpress - 認証:WordPress のアプリケーションパスワード(管理画面で発行、ローカルに保存、リポジトリには置かない)
決めているルール
- Claude は「下書き」で止める。公開・予約は自分
- 認証情報はコミットしない
- 見た目の最終確認は人間が管理画面でやる(ブロックの崩れ、表の見え方など)
まとめ
- このブログは「メモ → ローカル下書き → Claude が下書き投稿 → 自分がプレビュー → 自分で公開」で回している
- Gmail と同じで、下書きまでを AI、最終チェックと公開ボタンを自分、の線引き
- WAF・スラッグ・キャッシュで一度ずつつまずいたので、同じ構成の人は先に知っておくと楽
このブログ自体が「AI を相棒に生活のプロジェクトを回す」実験なので、その運営の裏側も、こうして記事にしている。

