リモート開発メインのソフトウェア開発企業のエンジニアブログです

WordPress MCP (MCP Adapter) を使う

全世界のウェブサイトのうち約4割が WordPress で出来ていると言われています。単純なウェブサイトだけでなく、プラグインを使う事で EC サイト、コミュニティサイトなども作れますし、お問い合わせフォームなども簡単に設置ができます。

WordPress サイト内には貴重な情報が溜まっていることが多いので、AI エージェントがそのデータを読み書きできるようになれば、出来る事の幅が広がります。ということで MCP サーバーの出番です。

概要

目標

AI エージェント等のMCP クライアントから WordPress の MCP サーバー経由で WordPress の情報を取得することを今回の目標とします。

前提

  • WordPress 6.9 以上
  • PHP、WordPress、MCP についての基本的な知識

やる事

今回やる事を先にまとめておきます。補足説明などは後ろの方で行います。

  • WordPress 側の作業
    • MCP Adapter プラグインのインストール
    • Core Abilities の有効化
    • アプリケーションパスワードの作成
  • 動作確認
  • MCP クライアントの設定

では、早速実際の作業に移りましょう。

WordPress 側の作業

MCP Adapter プラグインのインストール・有効化

MCP Adapter プラグインはまだプラグインディレクトリに登録されていないため、手動でインストールする必要があります。

WordPress 初心者でも分かりやすいのは、以下のページより最新版のプラグインをダウンロードして、 wp-content/plugins/ の下に解凍し、WordPress 管理画面より有効化する方法です。

Releases · WordPress/mcp-adapter

WP CLI を使える人であれば、以下のコマンドにより一発でインストール・有効化が出来ます。

wp plugin install https://github.com/WordPress/mcp-adapter/releases/latest/download/mcp-adapter.zip --activate

詳しくは以下のドキュメントを参照してください。

mcp-adapter/docs/getting-started/installation.md at trunk · WordPress/mcp-adapter

Core Abilities の有効化

Ability というのは WordPress 6.9 で導入された概念です。Ability が何かについてはさておき、 wp-content/mu-plugins/ というディレクトリ(無ければ作成してください)に、以下の内容で mcp-expose-core-abilities.php というファイルを作成します。

<?php
/**
 * Plugin Name: Enable core abilities
 * Version: 1.0.0
 *
 * @package enable-core-abilities
 */

add_filter( 'wp_register_ability_args', 'myplugin_enable_core_abilities_mcp_access', 10, 2 );
/**
 * Enable MCP access for core abilities.
 *
 * @param array  $args        Ability registration arguments.
 * @param string $ability_name  Ability ID.
 * @return array Modified ability registration arguments.
 */
function myplugin_enable_core_abilities_mcp_access( array $args, string $ability_name ) {
    // Enable MCP access for the three current core abilities.
    $core_abilities = array(
        'core/get-site-info',
        'core/get-user-info',
        'core/get-environment-info',
    );
    if ( in_array( $ability_name, $core_abilities, true ) ) {
        $args['meta']['mcp']['public'] = true;
    }

    return $args;
}

これは WordPress に最初から入っている Core Abilities というものを有効にするプログラムです。

アプリケーションパスワードの作成

最後にアプリケーションパスワードを作ります。WordPress をそれなりに使っている人でもアプリケーションパスワードというのは知らない人もいるかもしれません。私も知りませんでした。

WordPress 管理画面の「ユーザー」> 「プロフィール」画面の下の方で作成できます。

アプリケーションパスワードは作成後に1度しか表示されないので、テキストファイルなどに保存しておきます。

なお、このパスワードは WordPress 管理画面にログインするためのパスワードとは異なります。

Moba Pro

MCP サーバーの動作確認

MCP サーバーが機能しているか

いきなり MCP クライアントの設定を行って動作確認をしても良いのですが、curl コマンドで MCP サーバーが機能しているかを確認します。

MCP Adapter の Changelog を見る限り MCP Version 2026-07-28 には対応してなさそうなので、 initialize を呼んだ後で tools/list を呼びます。

SESSION=$(curl -s -D - -u "WordPressのユーザー名:アプリケーションパスワード" \
  -X POST https://WordPressサイト/wp-json/mcp/mcp-adapter-default-server \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}' \
  | grep -i "mcp-session-id" | awk '{print $2}' | tr -d '\r')

curl -u "WordPressのユーザー名:アプリケーションパスワード" \
  -X POST https://WordPressサイト/wp-json/mcp/mcp-adapter-default-server \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Mcp-Session-Id: $SESSION" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

Ability が有効か

次に、以下のコマンドで、3つの Core Abilities が有効かどうかを確認します。

curl -u "WordPressのユーザー名:アプリケーションパスワード" \
  -X POST https://WordPressサイト/wp-json/mcp/mcp-adapter-default-server \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Mcp-Session-Id: $SESSION" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp-adapter-discover-abilities","arguments":{}}}'

MCP クライアントの設定

以下の内容で WordPress MCP サーバーを AI エージェント等の MCP クライアントに登録します。

{
  "mcpServers": {
    "wordpress-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@automattic/mcp-wordpress-remote@latest"
      ],
      "env": {
        "WP_API_URL": "https://WordPressサイト/wp-json/mcp/mcp-adapter-default-server",
        "WP_API_USERNAME": "WordPressのユーザー名",
        "WP_API_PASSWORD": "アプリケーションパスワード",
      }
    }
  }
}

私は、Claude Code から弊社の MCP ゲートウェイサービス(現在β版、以下のリンク)を経由して MCP サーバーを使っていますので、Bloque – WordPress MCP サーバー間の設定は、上の JSON ファイルを 画面上で貼り付けるだけで完了します。

Bloque – All Your MCPs, Centrally Managed.

設定完了後は、AI エージェントに「WordPress MCP で何が出来るのか」とか聞いてみると、どのような事が出来るかが分かるかと思います。

補足説明

Ability, Abilities API とは何か

世の中の MCP サーバーは API をラップしただけのものが結構多いです。ご存知の通り WordPress にも REST API があります。それをラップして MCP サーバーを実装するという選択もあり得ましたが、

  • API エンドポイント毎に権限・スキーマ等が標準化されていない
  • ほぼ全ての処理が API で行えるので、意図しない操作を誘発する可能性がある

といった理由から、WordPress MCP サーバーから REST API を直接呼び出すことはしていません。

Abilities API は、従来の REST API をラップする中間層で、スキーマなどがかっちり決まっています。そして、WordPress MCP サーバー(MCP Adapter)は Abilities API を薄くラップするだけの実装となっています。

なお、Abilities API は MCP サーバーの為だけに使われるわけではなく、他のプラグイン(PHP, JavaScript)や REST API からも呼び出し可能のようです。

Abilities API についての詳しい情報は、以下のリンクから辿ってみてください。

mu-plugins とは何か

上の方で wp-content/mu-plugins/ 配下にファイルを作成しましたが、この mu-plugins とは何なのでしょうか。

mu-plugins とは Must-Use Plugins の略で、以下の特徴を持つ「プラグイン」です。

  • ファイルを作成すると自動的に有効化され、無効化できない
  • 最初に読み込まれ、必ず実行される
  • 管理画面からの編集等は行えない

今回のようにデフォルトで用意されているコア機能の Abilities を有効化するという目的であれば、mu-plugins に入れるのが適切かもしれません。

一方、他のプラグインによって作られるカスタム投稿タイプに関する Ability を追加する、例えば WooCommerce の商品を検索する Ability を追加する場合などは、通常のプラグインとして実装するという選択肢もありです。また、コア機能に加えて複数の有名プラグインに関する Abilities を追加する以下のような(通常の)プラグインもあります。

Enable Abilities for MCP – WordPress plugin | WordPress.org

もちろん、プラグインの機能・情報のうちどの部分を Abilities として MCP クライアントに公開するかは、サイト運用側の判断であり各プラグイン側の関心事ではない、という考え方もあり、その場合は mu-plugins に入れてしまうのでも良いかもしれません。

標準で用意されている Abilities

WordPress 6.9 以降に標準で用意されている Abilities は以下の3つのみです。(前述の “From Abilities to AI Agents: Introducing the WordPress MCP Adapters” ページより引用。)

  • core/get-site-info: Returns site information configured in WordPress. By default, returns all fields, or optionally a filtered subset.
  • core/get-user-info: Returns basic profile details for the current authenticated user to support personalization, auditing, and access-aware behavior.
  • core/get-environment-info: Returns core details about the site’s runtime context for diagnostics and compatibility (environment, PHP runtime, database server info, WordPress version).

これだけだと出来る事はかなり限られるため、実際に AI エージェントに WordPress 関連のタスクを行わせる場合は、独自に Ability を作成する必要があります。これについては別の記事で書こうと思います。

Automattic 製の古い WordPress MCP サーバーもあるが、そちらは deprecated

“WordPress MCP” などで検索すると、Automattic 社が作成した以下の WordPress MCP サーバーを使った記事も色々出てきますが、このプラグインは以下のレポジトリを見れば分かるとおりdeprecated になっています。

Automattic/wordpress-mcp: WordPress MCP — This repository will be deprecated as stable releases of mcp-adapter become available. Please use https://github.com/WordPress/mcp-adapter for ongoing development and support.

この MCP サーバーは内部で REST API を使うようになっていますが、前述の理由により Abilities API を使った方が良いという判断になり、現在の MCP Adapter に繋がっています。

まとめ

WordPress に MCP サーバーの機能を追加するには、WordPress 側では

  • MCP Adapter (プラグイン)のインストール
  • Abilities の有効化
  • (MCP クライアント用に)アプリケーションパスワードの作成

という操作が必要です。AI エージェント等の MCP クライアントの設定は特に難しいことはありません。

ただ、標準で用意されている3つの Abilities だけでは出来る事が限られているため、実際には自分で必要な Ability を追加するか、第三者が用意した Enable Abilities for MCP プラグインのようなものを導入する必要があります。

← 前の投稿

MCP Version 2026-07-28 について

次の投稿 →

コメントを残す