カラーミーWPオプションのWordPressにGeminiをつないで、記事を書いてもらう方法

執筆者:

カテゴリ:

このブログは、カラーミーショップの「カラーミーWPオプション」で作っている。以前、このWordPressにClaudeをつないで記事を書いてもらう話を書いた。今回はその続きで、GoogleのGeminiをつなぐ。

理由は単純で、「Claudeを使っていない人にはどうすればいいのか」と聞かれたからだ。ChatGPTでもClaudeでもなく、普段Googleのサービスを使っている人が、同じことをできるようにしたい。

結論から書いておく。つながる。ただし、素直にやると必ず失敗する。回り道の場所は決まっていて、そこさえ知っていれば20分程度で終わる。知らないと、私のように半日溶かす。

対象は、カラーミーショップでオウンドメディアを運用している方、これから始めたい方。ターミナル(黒い画面)にコマンドを打つ作業が出てくるが、写経で進められる範囲にしてある。

Claudeを使わない人にも道はある

今回使うのは、Googleが提供しているAntigravity CLIというツールだ。コマンド名はagy。ターミナルからGeminiに話しかけて、作業をしてもらうためのものである。

以前は「Gemini CLI」というツールがその役割を担っていたが、2026年6月18日で個人向けの無料提供が終わっている。いま無料で始めるなら、後継のAntigravity CLIを使うことになる。

WordPress側にはAI Engineというプラグインを入れる。無料版で44のツールが使えるようになり、記事の作成・更新、固定ページの編集、メディアのアップロード、カテゴリーの整理あたりが対象になる。テーマの切り替えやプラグインの導入は有料版の機能なので、無料の範囲ではできない。

つなぎ終わると、こういう頼み方ができるようになる。

「WordPressの記事を新しい順に5件、タイトルとステータスだけ教えて」

「秋の新作コートの紹介記事を書いて、下書きで保存して」

「『お店について』のページに営業時間の項目を追加して」

実際に一件目を試したところ、記事のID・タイトル・公開ステータスが表になって返ってきた。管理画面を開いて一覧をスクロールするより早い。

「記事を新しい順に5件」と頼んだ結果。表にまとめて返ってくる
「記事を新しい順に5件」と頼んだ結果。表にまとめて返ってくる

準備するもの

必要なのは、Antigravity CLIと、WordPressの管理者権限と、Node.jsだけだ。Antigravity CLI自体はGo製の単体ファイルなのでNode.jsを必要としないが、後述する回避策で使うため入れておく。

ひとつ注意がある。Antigravity CLIの無料枠は、個人のGoogleアカウント(Gmail)でしか使えない。独自ドメインのメールをGoogle Workspaceで運用している場合、ログインしようとすると次のエラーで止まる。

Eligibility check failed: Your current account is not eligible for Antigravity.

私も会社のアカウントで試して弾かれた。個人のGmailで入り直したら通った。皮肉なことに、規約上のデータ保護が強いのはWorkspaceアカウントのほうで、そちらでは使えない。使えるほうは、入力した内容が学習データに使われる可能性がある。お客様の氏名や住所が入る受注データを扱うなら、無料枠のままでは進めないほうがいい。記事の執筆だけなら個人情報は出てこないので、そこまで気にしなくてよい。

もうひとつ、始める前にバックアップを取っておくこと。カラーミーWPオプションにはサービス側のバックアップ機能がない。ヘルプにも「オーナー様にてご対応いただくようお願いしております」と明記されている。AIが記事や設定を書き換えられる状態にするのだから、戻せる状態を先に作るのが順序として正しい。私はUpdraftPlusを入れて、保存先をGoogle Driveにした。WPオプションは容量が10GBで、超えるとWordPressそのものが表示されなくなるため、バックアップをサーバー内に溜めない設定にしておく。

接続手順

AI Engineを入れる

WordPressの管理画面から、プラグインの新規追加で「AI Engine」を検索する。

ここで似た名前のプラグインが大量に並ぶEasy MCP AIWPVibe – WordPress MCP ServerSmartyPress AI Engine。とくに最後のものは名前が紛らわしい。目的のプラグインは作者がJordy Meowで、タイトルにMCP for WordPressと入っているものだ。

検索結果。左上が目的のプラグイン。似た名前のものが同じ画面に並ぶ
検索結果。左上が目的のプラグイン。似た名前のものが同じ画面に並ぶ

インストールしたら、有効化を押す。当たり前のようだが、私はここで一度つまずいた。インストールしただけの状態でも一覧に並ぶので、有効になったと勘違いする。プラグイン一覧で「有効化」というリンクが出ているうちは、まだ無効である。有効になると「無効化」に変わり、左メニューにMeow Appsが現れる。

有効化したあと。「無効化」に変わり、左メニューに Meow Apps が追加される
有効化したあと。「無効化」に変わり、左メニューに Meow Apps が追加される

設定画面までの道順

ここが今回いちばん紛らわしかったところだ。

左メニューのMeow Appsを開くと、その下に「ダッシュボード」と「AI Engine」が並ぶ。開くべきは「AI Engine」のほうである。ダッシュボード側にも「Settings」というタブがあるのだが、そこはMeow Appsの全プラグイン共通の設定で、SSL検証とメニュー表示の切り替えしか入っていない。私は最初にそこを開いて、MCPの項目が見つからずに首をかしげた。

※これは違う画面。Meow Apps ダッシュボードの Settings には MCP の項目がない
※これは違う画面。Meow Apps ダッシュボードの Settings には MCP の項目がない

正しくは、Meow Apps → AI Engine → 設定タブ → MCPタブ。この順で進む。プラグイン一覧の「設定」リンクからでも同じ場所に行ける。

なお、AI Engineの初期画面には「まずAIプロバイダーを接続してください」という趣旨の赤い警告が出る。OpenAIのAPIキーを求められるが、MCPを使うだけなら不要である。無視して進んでよい。

AI Engine 本体の画面。赤い警告は AI プロバイダー用で、MCP には関係ない
AI Engine 本体の画面。赤い警告は AI プロバイダー用で、MCP には関係ない

MCPを有効化してトークンを作る

MCPタブで「有効化」のトグルをオンにすると、接続用のURLが表示される。https://ショップドメイン/apps/note/wp-json/mcp/v1/httpという形だ。右側には登録された関数の数が出る。無料版で44。

MCP を有効化した状態。接続用の URL と、登録された関数の数が表示される
MCP を有効化した状態。接続用の URL と、登録された関数の数が表示される

続いてBearer Tokenの項目を開き、Generateボタンを押す。トークンが自動生成されるので、自分で文字列を考える必要はない。

このトークンは、これひとつでWordPressの記事を読み書きできる鍵である。パスワードと同じ扱いにすること。そしてこの画面は、トークンを平文で表示する。私はスクリーンショットを撮って人に見せてしまい、作り直す羽目になった。共有するときはマスクするか、そもそもこの画面は撮らないほうがいい。作り直せば古いトークンはその場で無効になる。

トークンを設定するとAccess Levelという項目が現れる。Admin (Full Access)Read-Write (Content)Read-Only (Browse)の3段階だ。記事の編集が目的なら真ん中で足りる。Fullにすると、サイトのタイトルやパーマリンク設定まで届いてしまう。トークンが漏れたときの被害が、記事だけで済むかサイト全体に及ぶかの差になる。先に絞って、足りなくなったら上げる。

Access Level は3段階。記事の編集が目的なら真ん中で足りる
Access Level は3段階。記事の編集が目的なら真ん中で足りる

いちばんの回り道 — 直接つなぐと必ず失敗する

さて、ここからが本題である。

WordPress側の準備が終わったので、Antigravity CLIに登録する。素直に書くとこうなる。

agy mcp add --header "Authorization: Bearer トークン" wordpress https://ショップドメイン/apps/note/wp-json/mcp/v1/http

登録自体は通る。agy mcp listにもちゃんと並ぶ。ところが起動して接続状態を見ると、真っ赤なエラーが出た。

error: calling "initialize": mismatching session IDs

セッションIDが食い違っている、という意味だ。同じサーバーに対して同じ方式でつないだcolormeのほうは緑のチェックが付いているのに、wordpressだけが赤い。

colorme は緑、wordpress だけが赤い。mismatching session IDs と出ている
colorme は緑、wordpress だけが赤い。mismatching session IDs と出ている

トークンをURLに埋め込む書き方に変えてみた。AI Engineの画面にも載っている別の書き方だ。同じエラーで落ちた。再起動しても、登録し直しても変わらない。

手でハンドシェイクを踏んでみる

ここで、WordPress側とAntigravity側のどちらが悪いのかを切り分けることにした。MCPという仕組みは、最初にinitializeを投げてセッションIDを受け取り、以降のやり取りでそのIDを持ち回る。ならば、その手順を手作業でなぞればいい。

結果はこうだった。

initializeを投げると200が返り、セッションIDも返ってくる。もう一度投げると、別のセッションIDが返る。つまりサーバーは呼ばれるたびに新しいセッションを作る。そして、最初に受け取ったIDを付けてtools/listを投げると、200で44個のツールが正常に列挙された

WordPress側は何も悪くなかった。セッションIDを正しく持ち回りさえすれば、ちゃんと動く。問題はAntigravity CLI側が、そのIDの変化を許容できずに自分で失敗していたことだった。調べてみると、MCPのこの通信方式ではセッション管理まわりの不具合が複数のツールで報告されている。珍しい話ではないらしい。

通訳を挟んだら通った

原因が分かれば対処は見える。Antigravity CLIが直接HTTPで話すとこけるのなら、間に通訳を立てればいい。

mcp-remoteという中継ツールがある。リモートのMCPサーバーを、ローカルの標準入出力経由の接続に変換してくれるものだ。Antigravity CLIから見れば「手元で動いているサーバー」に見えるので、問題の起きる経路を通らない。

agy mcp add wordpress -- npx -y mcp-remote https://ショップドメイン/apps/note/wp-json/mcp/v1/http --header "Authorization: Bearer トークン"

--をコマンドの前に置くのがポイントで、これがないと-yがAntigravity自身のオプションと解釈されて弾かれる。mcp-remotenpxが都度取ってくるので、事前のインストールはいらない。

これで通った。起動して接続状態を見ると、wordpressに緑のチェックが付き、43個のツールが並んでいる。

中継を挟んだあと。wordpress にも緑のチェックが付き、ツールが並んでいる
中継を挟んだあと。wordpress にも緑のチェックが付き、ツールが並んでいる

疎通確認用のmcp_pingを呼ぶと、サイト名とサーバー時刻が返ってきた。記事の一覧も取得できた。

疎通確認。サイト名とサーバー時刻が返る
疎通確認。サイト名とサーバー時刻が返る

半日かけた回り道の答えが、コマンドに数語足すことだった。同じ道を辿る人のために書いておく。最初からこの書き方を使えばいい。

OAuthは使えない、という結論

AI Engineには、Bearer Tokenとは別にOAuthという接続方式もある。Claude Desktopのようなアプリ向けで、ブラウザで承認するとトークンの受け渡しが自動で済む。トークンを手で扱わなくていいので、本来はこちらのほうが安全だ。

だがカラーミーWPオプションでは使えない

AI EngineにはConnection Testという診断機能があり、実行するとこう出る。

Your host blocks /.well-known/* paths.

OAuthの手順を探すために使う/.well-known/という特殊なパスが、サーバー側で遮断されているのだ。WPオプションはロリポップ!マネージドクラウドの上で動いていて、この設定はショップ側では変更できない。プラグインのメッセージも「ホスト事業者に頼め」という書き方をしている。

したがって、WPオプションではBearer Token方式を使う。選択の余地はない。

ついでに書いておくと、このConnection Test赤いままで正常である。検査しているのはOAuthの経路だけで、Bearer Tokenはそのパスを通らない。診断結果の下段にある「MCP endpoint → 401」も、認証情報を付けずに叩いた結果なので問題ない。実際、この警告が出たままで記事の取得はできている。赤い表示を見て「まだ設定が終わっていないのでは」と手を止めなくていい。

安全に使うために

ここからは、動いたあとの話をする。既存の記事にも書いたことだが、大事なので繰り返す。

記事の著者は、必ずオーナーのアカウントを指定する。WordPressはユーザー一覧を外部に公開している。AI用のユーザー名義で記事を公開すると、そのユーザー名――つまりログインIDが誰にでも見える状態になる。

スラッグは英数字で明示する。指定しないと日本語のタイトルがそのままURLになり、80文字を超える長大な文字列になる。SNSで共有したときに崩れる。

表示を確認するときはURLの末尾に?nc=12345のような文字を足す。WPオプションはキャッシュが効いているので、変更したのに反映されていないように見えることがある。効いていないと誤解して余計な修正を重ねると、収拾がつかなくなる。

そして、Antigravity CLI固有の注意をひとつ。

このツールには、Claude Codeにあるような安全弁がない。Claudeで同じ作業をしたとき、記事を「公開」に切り替える操作だけが自動で止められた。下書きの作成も本文の更新も画像のアップロードも通るのに、公開だけは人間の確認を求められる。よくできた仕組みだと思った。

Antigravityにはそれがない。下書きの作成から公開まで一気に走る。「公開していいか確認してから実行して」と毎回伝えるか、下書きまでで止めて管理画面から公開する運用にしたほうがいい。楽になるということは、事故も止まらないということである。

ひとつ、詰め切れていないことがある。Access LevelRead-Write (Content)に絞ったつもりでも、ツールの一覧にはユーザー作成のような管理系の項目が並んでいた。一覧に出るだけで実行時には弾かれるのか、設定が効いていないのかを確認できていない。書き込みを本格的に使う前に、意図しない操作ができないかを確かめたほうがいい。分かったら追記する。

ClaudeとGemini、どちらを選ぶか

これで、WPオプションのWordPressにAIをつなぐ方法が二つ揃った。

Claude Codeは、WordPressが最初から持っているREST APIを直接叩く方式が安定していた。プラグインを入れる必要すらない。ただしClaude Codeを日常的に使っている人は、まだ限られる。

Gemini(Antigravity CLI)は、今回のように中継を一枚挟む手間がかかる。代わりに、個人のGmailさえあれば無料で始められる。すでにGoogleのサービスを使っている人にとっては、入口が近い。

正直に言えば、どちらも「素直につながる」ものではなかった。どこかで必ず一手間かかる。それでも、費用をかけずに試せるという一点で、Antigravity CLIには価値がある。

なお、ChatGPTやClaude Desktopのようなアプリは、OAuthでつなぐ前提になっている。前章で書いたとおりWPオプションではその経路が塞がれているため、こうしたアプリからWordPressを直接操作することは今のところできない。開発者向けのツール(Claude CodeやAntigravity CLI)を使う必要がある。

記事の更新が止まっているオウンドメディアは多い。書く時間がないというより、書き始めるまでの腰が重いのだと思う。「先週の新作について、写真の説明から記事の下書きを作って」と一言頼めば形になるなら、止まっていたものがまた動き出すかもしれない。

余談。今回いちばん驚いたのは、Antigravity自身に「テレメトリの切り方」を聞いたら、存在しないコマンドと存在しない設定ファイルを自信満々に答えてきたことだった。三つとも間違いで、正解はプラグインの設定画面をバイナリごと調べて見つけた。AIは自分自身の仕様についてすら平気で間違える。便利に使わせてもらう一方で、返ってきた答えは確かめる。そのくらいの距離感がちょうどいい。