メインコンテンツまでスキップ

WordPress MCP

WordPressはMCP Adapterプラグインを通じてMCPサーバーを公開します。これはWordPressのAbilities APIの上に構築されています。プラグインをインストールしただけではMCPツールは追加されません。Abilitiesを公開する必要があります。WordPressコアには3つのAbilityしか含まれていないため、多くの場合はカスタムAbilityも必要になります。

このページでは、MCP Adapterのインストール、コアAbilitiesの公開、カスタムAbilityの追加という3つのステップを順に説明します。

前提条件

  • WordPress 6.9以降(Abilities APIを含む)
  • プラグインのインストールとmu-pluginsの編集ができる管理者権限
  • WordPressユーザーのアプリケーションパスワードを作成できること

ステップ1:MCP Adapterをインストールする

WP-CLIを使う場合:

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

手動でインストールする場合:

  1. MCP AdapterのGitHubリリースページから最新版をダウンロードします。
  2. wp-content/plugins/に展開します。
  3. WordPress管理画面のプラグインから有効化します。

これにより、以下のURLにMCPサーバーが作成されます。

https://<your-site>/wp-json/mcp/mcp-adapter-default-server

ステップ2:コアAbilitiesを公開する

WordPressコアは3つのAbility(core/get-site-infocore/get-user-infocore/get-environment-info)を登録しますが、デフォルトではどれもMCPに公開されていません。小さなmu-pluginでこれらを公開します。

wp-content/mu-plugins/mcp-expose-core-abilities.phpを作成します。

<?php
add_filter( 'wp_register_ability_args', function ( $args, $ability_id ) {
$core_abilities = array(
'core/get-site-info',
'core/get-user-info',
'core/get-environment-info',
);

if ( in_array( $ability_id, $core_abilities, true ) ) {
$args['meta']['mcp']['public'] = true;
}

return $args;
}, 10, 2 );

mu-plugins(Must-Use Plugins)は自動的に読み込まれ、管理画面から無効化できないため、この種のインフラレベルの設定に適しています。

ステップ3:アプリケーションパスワードを作成する

MCPクライアントは、WordPressのユーザー名とアプリケーションパスワード(ログインパスワードではありません)を使ったHTTP Basic Authで認証します。

  1. ユーザー → プロフィール に移動します。
  2. アプリケーションパスワードまでスクロールし、名前を入力して新しいアプリケーションパスワードを追加をクリックします。
  3. 生成されたパスワードをすぐにコピーします。一度しか表示されません。

ステップ4(任意):カスタムAbilityを追加する

コアAbilitiesはサイト・ユーザー・環境情報しかカバーしません。それ以外のもの——例えば他のプラグインのデータに対するカスタムクエリ——を公開するには、独自のAbilityを登録します。

mu-plugin(例:wp-content/mu-plugins/my-ability.php)を作成します。

<?php
add_action( 'wp_abilities_api_init', 'myplugin_register_abilities' );

function myplugin_register_abilities() {
wp_register_ability( 'myplugin/list-things', array(
'label' => 'List things',
'description' => 'Returns a list of things.',
'category' => 'site', // 必須 — 省略すると登録が黙って失敗する
'input_schema' => array(
'type' => 'object',
'properties' => array(
'limit' => array( 'type' => 'integer', 'default' => 20 ),
),
),
'output_schema' => array(
'type' => 'array',
'items' => array( 'type' => 'object' ),
),
'permission_callback' => function () {
return current_user_can( 'manage_options' );
},
'execute_callback' => function ( $input ) {
// ここに処理を書く。
return array();
},
'meta' => array(
'mcp' => array( 'public' => true ),
),
) );
}

補足:

  • categoryは必須です。省略するとwp_register_ability()が黙って失敗します。
  • meta.mcp.publictrueにしないと、Abilityは登録されてもMCP経由では到達できません。
  • permission_callbackはAbilityを実行できるユーザーを制限します。信頼できるクライアントのみを想定している場合でも必ず設定してください。

動作確認

MCPサーバーに直接リクエストを送り、Abilitiesが有効になっていることを確認します。<username><app-password>を実際の認証情報に置き換えてください。

curl -u '<username>:<app-password>' \
-H 'Content-Type: application/json' \
-X POST 'https://<your-site>/wp-json/mcp/mcp-adapter-default-server' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "mcp-adapter-discover-abilities", "arguments": {} }
}'

レスポンスには、コアAbilitiesと、public => trueで登録したカスタムAbilityが表示されます。

次のステップ

WordPress MCPサーバーをHubに追加します。

  1. Bloqueで、ステップ1のURL(https://<your-site>/wp-json/mcp/mcp-adapter-default-server)を使ってHTTPトランスポートの新しいサーバーを追加します。MCPサーバーを追加するを参照してください。
  2. ステップ3の<username>:<app-password>をBase64エンコードします。
  3. サーバーフォームのカスタムヘッダー欄に次を追加します:Authorization: Basic <encoded-value>

WordPressのMCPサーバーはOAuthやベアラートークンではなくHTTP Basic Authを使うため、通常の認証フローではなく、このヘッダーに認証情報を設定します。