**WordPressプラグインの機能を、AIアシスタントから直接呼び出せたら便利だと思いませんか?** WordPress 6.9で導入予定の**Abilities API**と **MCP(Model Context Protocol)** を組み合わせることで、これが実現できます。 この記事では、実際にMCP統合基盤を実装した経験をもとに、設計のポイントとコード例を紹介します。 ## こんな人におすすめ - WordPressプラグイン開発者で、AI統合に興味がある方 - MCP(Model Context Protocol)をWordPressで活用したい方 - WordPress 6.9のAbilities APIを先取りして学びたい方 - 自作プラグインの機能をClaude等のAIから操作可能にしたい方 ## 目次 - [WordPress MCPとは?AI連携の背景と課題](#wordpress-mcpとはai連携の背景と課題) - [MCPとは](#mcpとは) - [なぜWordPressでAI連携が必要なのか](#なぜwordpressでai連携が必要なのか) - [従来のREST API連携の課題](#従来のrest-api連携の課題) - [Abilities API + MCPの組み合わせ](#abilities-api--mcpの組み合わせ) - [この記事で実装する内容](#この記事で実装する内容) - [MCP統合アーキテクチャの全体像](#mcp統合アーキテクチャの全体像) - [WordPress MCP実装コード(PHP)](#wordpress-mcp実装コードphp) - [MCP初期化クラスの実装](#mcp初期化クラスの実装) - [プラグイン初期化への統合方法](#プラグイン初期化への統合方法) - [Abilities API統合の設計ポイント](#abilities-api統合の設計ポイント) - [MCP実装でつまづいた点と解決策](#mcp実装でつまづいた点と解決策) - [Abilities APIの仕様が未確定](#abilities-apiの仕様が未確定) - [MCP Adapterとの連携タイミング](#mcp-adapterとの連携タイミング) - [WordPress AI連携で得られた効果](#wordpress-ai連携で得られた効果) - [今後の拡張予定](#今後の拡張予定) - [まとめ](#まとめ) - [参考リンク](#参考リンク) ## WordPress MCPとは?AI連携の背景と課題 ### MCPとは **MCP(Model Context Protocol)** は、AIアシスタントが外部サービスやツールと連携するための標準プロトコルです。 Anthropic社が提唱し、ClaudeやChatGPTなどのAIが、APIを介してさまざまなサービスの機能を呼び出せるようになります。 従来、AIと外部サービスを連携させるには、個別にAPIを実装し、プロンプトで使い方を教える必要がありました。 MCPを使えば、AIが自動的に利用可能な機能(ツール)を発見し、適切なタイミングで呼び出せるようになります。 ### なぜWordPressでAI連携が必要なのか WordPressプラグインの管理画面操作は、意外と手間がかかります。 - データの登録・更新のために管理画面を開く - 複数のフィールドに手動で入力する - 検索や絞り込みのためにフィルタを設定する これらの作業を、**自然言語で指示するだけで完了できたら**どうでしょうか? 「先月の売上データを集計して」「新しいユーザーを登録して」といった指示だけで、AIがプラグインの機能を実行してくれる——そんな未来がMCP統合で実現できます。 ### 従来のREST API連携の課題 WordPressには既にREST APIがありますが、AI連携には以下の課題がありました。 | 課題 | 詳細 | |------|------| | **認証の複雑さ** | OAuth認証やApplication Passwordsの設定が必要 | | **エンドポイントの発見** | どのAPIが使えるかをAIに教える必要がある | | **スキーマの理解** | リクエスト/レスポンスの形式をプロンプトで説明 | | **エラーハンドリング** | API固有のエラーコードをAIが理解できない | MCPプロトコルを使えば、これらの課題が解消されます。 AIが自動的に利用可能な機能を発見し、スキーマを理解して、適切に呼び出せるようになるのです。 ### Abilities API + MCPの組み合わせ WordPress 6.9で導入予定の**Abilities API**は、プラグインの機能を「能力(Ability)」として登録できる仕組みです。 この**Abilities API**と**MCP Adapter**を統合することで、以下が実現できます。 - プラグイン機能をMCPツールとして自動公開 - AIアシスタント(Claude、ChatGPTなど)からの直接呼び出し - 認証・スキーマ管理の自動化 ### この記事で実装する内容 今回は、MCP統合の**基盤クラス**を実装します。 現時点では基盤のみの実装で、WordPress 6.9のリリース後に具体的なAbilities(データ作成、ユーザー管理など)を段階的に追加していく設計です。 基盤を先に実装しておくことで、WordPress 6.9がリリースされた直後から、すぐにAI連携機能を有効化できます。 ## MCP統合アーキテクチャの全体像 AIアシスタントからプラグイン機能を呼び出す際の通信の流れは以下のようになります。 ```mermaid sequenceDiagram participant User as ユーザー participant AI as AIアシスタント<br/>(Claude/ChatGPT) participant MCP as MCP Adapter participant WP as WordPress participant Plugin as プラグイン機能 User->>AI: 自然言語でリクエスト<br/>「データを作成して」 AI->>MCP: MCP Protocol<br/>ツール呼び出し MCP->>WP: Abilities API<br/>能力の検索 WP->>Plugin: 登録済みAbilityを実行 Plugin-->>WP: 実行結果 WP-->>MCP: レスポンス MCP-->>AI: 結果をJSON形式で返却 AI-->>User: 自然言語で結果を説明<br/>「データを作成しました」 ``` このシーケンス図のポイントは、**ユーザーが自然言語で指示するだけで、AIがMCPを介してWordPressプラグインの機能を実行できる**点です。 正直なところ、この設計に至るまでには試行錯誤がありました。 最初はREST APIで直接公開することも考えましたが、MCPプロトコルを使うことで、AIアシスタント側の実装が大幅に簡素化できることに気づきました。 ## WordPress MCP実装コード(PHP) ### MCP初期化クラスの実装 `class-mcp-initializer.php` として新規作成します。 ```php <?php /** * MCP Adapter Initializer * * WordPress 6.9+ の Abilities API と連携して * プラグインの機能を MCP プロトコル経由で公開する基盤クラス * * @package YourPlugin * @since 1.0.0 */ namespace YourPlugin\mcp; /** * MCP初期化クラス */ class MCP_Initializer { /** * シングルトンインスタンス */ private static $instance = null; /** * Abilities APIが利用可能かどうか */ private $abilities_api_available = false; /** * コンストラクタ */ private function __construct() { $this->abilities_api_available = $this->check_abilities_api(); if ( ! $this->abilities_api_available ) { $this->log_debug( 'Abilities API is not available. MCP integration disabled.' ); return; } $this->log_debug( 'Abilities API detected. Initializing MCP integration.' ); // Abilities 登録(将来の機能追加用フック) add_action( 'wp_abilities_api_init', array( $this, 'register_abilities' ) ); // MCP Adapter 初期化 add_action( 'plugins_loaded', array( $this, 'init_mcp_adapter' ), 20 ); } /** * Abilities API が利用可能かチェック */ private function check_abilities_api(): bool { global $wp_version; // WordPress 6.9 以上かつ関数が存在するかチェック return version_compare( $wp_version, '6.9', '>=' ) && function_exists( 'wp_register_ability' ); } /** * MCP Adapter を初期化 */ public function init_mcp_adapter() { if ( class_exists( '\\WP\\MCP\\Core\\McpAdapter' ) ) { \WP\MCP\Core\McpAdapter::instance(); $this->log_debug( 'MCP Adapter initialized successfully.' ); } } /** * Abilities を登録 */ public function register_abilities() { /** * カスタムAbilities登録用フック * 将来の機能追加時にこのフックを使用 */ do_action( 'yourplugin_mcp_register_abilities' ); } } ``` ### プラグイン初期化への統合方法 メインのプラグイン初期化クラスに統合します。 ```php // MCP統合(WordPress 6.9+) use YourPlugin\mcp\MCP_Initializer; // init() メソッド内 $this->mcp_initializer(); /** * MCP Initializer インスタンスを取得 * * WordPress 6.9以上でAbilities APIが利用可能な場合のみ初期化される。 * * @since 1.0.0 * @return MCP_Initializer */ function mcp_initializer() { if ( empty( $this->classes['mcp_initializer'] ) ) { $this->classes['mcp_initializer'] = MCP_Initializer::instance(); } return $this->classes['mcp_initializer']; } ``` ## Abilities API統合の設計ポイント 実装にあたって、以下の4点を特に意識しました。 1. **後方互換性**: WordPress 6.8以下では自動的に無効化され、既存機能に影響しない 2. **シングルトンパターン**: プラグイン内で一貫したインスタンス管理 3. **拡張性**: `yourplugin_mcp_register_abilities` フックで将来の機能追加が容易 4. **デバッグ対応**: WP_DEBUG有効時のみログ出力 特に後方互換性は重要です。 WordPress 6.9がリリースされるまでは、この機能は完全に無効化されます。 既存ユーザーに影響を与えることなく、先行して実装を進められるのは大きなメリットでした。 ## MCP実装でつまづいた点と解決策 実際に実装してみると、いくつかの課題に直面しました。 ### Abilities APIの仕様が未確定 WordPress 6.9はまだリリース前のため、Abilities APIの仕様が変更される可能性があります。 そのため、APIの存在チェックを厳密に行い、関数が存在しない場合は完全にスキップする設計にしました。 ```php // WordPress 6.9 以上かつ関数が存在するかチェック return version_compare( $wp_version, '6.9', '>=' ) && function_exists( 'wp_register_ability' ); ``` ### MCP Adapterとの連携タイミング MCP Adapterの初期化タイミングが早すぎると、他のプラグインが読み込まれる前に実行されてしまいます。 `plugins_loaded` フックの優先度を `20` に設定することで、この問題を解決しました。 ## WordPress AI連携で得られた効果 この基盤を実装したことで、以下の効果が得られました。 - **開発効率**: 新しいAbilityの追加が**数行のコード**で可能に - **保守性**: シングルトンパターンにより、インスタンス管理が明確化 - **テスト容易性**: 199行のテストコードを追加し、カバレッジを確保 - **将来への準備**: WordPress 6.9リリース後、即座に機能を有効化可能 個人的には、フック機構による拡張性の確保が最も満足している点です。 今後のAbility追加時に、コアのコードを変更する必要がありません。 ## 今後の拡張予定 WordPress 6.9リリース後、以下のAbilitiesを段階的に追加予定です。 - データ作成Ability - ユーザー情報取得Ability - コンテンツ検索Ability - AI画像生成Ability ## まとめ **WordPress MCPによるAI連携**の基盤クラスを実装しました。 WordPress 6.9のAbilities APIとMCPプロトコルを統合することで、**ClaudeやChatGPTからプラグイン機能を直接呼び出せる**環境が整います。 **この記事のポイント**: | 項目 | 内容 | |------|------| | **後方互換性** | WordPress 6.8以下では自動無効化 | | **拡張性** | フック機構で新機能追加が容易 | | **AI連携** | MCP経由でClaude/ChatGPTと連携 | | **先行実装** | WordPress 6.9リリース前に準備完了 | WordPress MCPの実装は、今後のAI時代におけるプラグイン開発の新しいスタンダードになる可能性があります。 **次のステップ**として、WordPress 6.9リリース後に具体的なAbilities(データ作成、コンテンツ検索など)を追加していく予定です。 AI連携に興味のあるWordPressプラグイン開発者は、ぜひこの設計パターンを参考にしてみてください。 ## 参考リンク - [WordPress Abilities API RFC](https://github.com/WordPress/gutenberg/discussions/...) - [MCP Protocol仕様](https://modelcontextprotocol.io/)

WordPressプラグインの機能を、AIアシスタントから直接呼び出せたら便利だと思いませんか?

WordPress 6.9で導入予定のAbilities APIMCP(Model Context Protocol) を組み合わせることで、これが実現できます。

この記事では、実際にMCP統合基盤を実装した経験をもとに、設計のポイントとコード例を紹介します。

こんな人におすすめ

  • WordPressプラグイン開発者で、AI統合に興味がある方
  • MCP(Model Context Protocol)をWordPressで活用したい方
  • WordPress 6.9のAbilities APIを先取りして学びたい方
  • 自作プラグインの機能をClaude等のAIから操作可能にしたい方

目次

WordPress MCPとは?AI連携の背景と課題

MCPとは

MCP(Model Context Protocol) は、AIアシスタントが外部サービスやツールと連携するための標準プロトコルです。

Anthropic社が提唱し、ClaudeやChatGPTなどのAIが、APIを介してさまざまなサービスの機能を呼び出せるようになります。

従来、AIと外部サービスを連携させるには、個別にAPIを実装し、プロンプトで使い方を教える必要がありました。

MCPを使えば、AIが自動的に利用可能な機能(ツール)を発見し、適切なタイミングで呼び出せるようになります。

なぜWordPressでAI連携が必要なのか

WordPressプラグインの管理画面操作は、意外と手間がかかります。

  • データの登録・更新のために管理画面を開く
  • 複数のフィールドに手動で入力する
  • 検索や絞り込みのためにフィルタを設定する

これらの作業を、自然言語で指示するだけで完了できたらどうでしょうか?

「先月の売上データを集計して」「新しいユーザーを登録して」といった指示だけで、AIがプラグインの機能を実行してくれる——そんな未来がMCP統合で実現できます。

従来のREST API連携の課題

WordPressには既にREST APIがありますが、AI連携には以下の課題がありました。

課題 詳細
認証の複雑さ OAuth認証やApplication Passwordsの設定が必要
エンドポイントの発見 どのAPIが使えるかをAIに教える必要がある
スキーマの理解 リクエスト/レスポンスの形式をプロンプトで説明
エラーハンドリング API固有のエラーコードをAIが理解できない

MCPプロトコルを使えば、これらの課題が解消されます。

AIが自動的に利用可能な機能を発見し、スキーマを理解して、適切に呼び出せるようになるのです。

Abilities API + MCPの組み合わせ

WordPress 6.9で導入予定のAbilities APIは、プラグインの機能を「能力(Ability)」として登録できる仕組みです。

このAbilities APIMCP Adapterを統合することで、以下が実現できます。

  • プラグイン機能をMCPツールとして自動公開
  • AIアシスタント(Claude、ChatGPTなど)からの直接呼び出し
  • 認証・スキーマ管理の自動化

この記事で実装する内容

今回は、MCP統合の基盤クラスを実装します。

現時点では基盤のみの実装で、WordPress 6.9のリリース後に具体的なAbilities(データ作成、ユーザー管理など)を段階的に追加していく設計です。

基盤を先に実装しておくことで、WordPress 6.9がリリースされた直後から、すぐにAI連携機能を有効化できます。

MCP統合アーキテクチャの全体像

AIアシスタントからプラグイン機能を呼び出す際の通信の流れは以下のようになります。

sequenceDiagram
    participant User as ユーザー
    participant AI as AIアシスタント<br/>(Claude/ChatGPT)
    participant MCP as MCP Adapter
    participant WP as WordPress
    participant Plugin as プラグイン機能

    User->>AI: 自然言語でリクエスト<br/>「データを作成して」
    AI->>MCP: MCP Protocol<br/>ツール呼び出し
    MCP->>WP: Abilities API<br/>能力の検索
    WP->>Plugin: 登録済みAbilityを実行
    Plugin-->>WP: 実行結果
    WP-->>MCP: レスポンス
    MCP-->>AI: 結果をJSON形式で返却
    AI-->>User: 自然言語で結果を説明<br/>「データを作成しました」

このシーケンス図のポイントは、ユーザーが自然言語で指示するだけで、AIがMCPを介してWordPressプラグインの機能を実行できる点です。

正直なところ、この設計に至るまでには試行錯誤がありました。
最初はREST APIで直接公開することも考えましたが、MCPプロトコルを使うことで、AIアシスタント側の実装が大幅に簡素化できることに気づきました。

WordPress MCP実装コード(PHP)

MCP初期化クラスの実装

class-mcp-initializer.php として新規作成します。

<?php
/**
 * MCP Adapter Initializer
 *
 * WordPress 6.9+ の Abilities API と連携して
 * プラグインの機能を MCP プロトコル経由で公開する基盤クラス
 *
 * @package YourPlugin
 * @since 1.0.0
 */

namespace YourPlugin\mcp;

/**
 * MCP初期化クラス
 */
class MCP_Initializer {

	/**
	 * シングルトンインスタンス
	 */
	private static $instance = null;

	/**
	 * Abilities APIが利用可能かどうか
	 */
	private $abilities_api_available = false;

	/**
	 * コンストラクタ
	 */
	private function __construct() {
		$this->abilities_api_available = $this->check_abilities_api();

		if ( ! $this->abilities_api_available ) {
			$this->log_debug( 'Abilities API is not available. MCP integration disabled.' );
			return;
		}

		$this->log_debug( 'Abilities API detected. Initializing MCP integration.' );

		// Abilities 登録(将来の機能追加用フック)
		add_action( 'wp_abilities_api_init', array( $this, 'register_abilities' ) );

		// MCP Adapter 初期化
		add_action( 'plugins_loaded', array( $this, 'init_mcp_adapter' ), 20 );
	}

	/**
	 * Abilities API が利用可能かチェック
	 */
	private function check_abilities_api(): bool {
		global $wp_version;

		// WordPress 6.9 以上かつ関数が存在するかチェック
		return version_compare( $wp_version, '6.9', '>=' )
			&& function_exists( 'wp_register_ability' );
	}

	/**
	 * MCP Adapter を初期化
	 */
	public function init_mcp_adapter() {
		if ( class_exists( '\\WP\\MCP\\Core\\McpAdapter' ) ) {
			\WP\MCP\Core\McpAdapter::instance();
			$this->log_debug( 'MCP Adapter initialized successfully.' );
		}
	}

	/**
	 * Abilities を登録
	 */
	public function register_abilities() {
		/**
		 * カスタムAbilities登録用フック
		 * 将来の機能追加時にこのフックを使用
		 */
		do_action( 'yourplugin_mcp_register_abilities' );
	}
}

プラグイン初期化への統合方法

メインのプラグイン初期化クラスに統合します。

// MCP統合(WordPress 6.9+)
use YourPlugin\mcp\MCP_Initializer;

// init() メソッド内
$this->mcp_initializer();

/**
 * MCP Initializer インスタンスを取得
 *
 * WordPress 6.9以上でAbilities APIが利用可能な場合のみ初期化される。
 *
 * @since 1.0.0
 * @return MCP_Initializer
 */
function mcp_initializer() {
    if ( empty( $this->classes['mcp_initializer'] ) ) {
        $this->classes['mcp_initializer'] = MCP_Initializer::instance();
    }
    return $this->classes['mcp_initializer'];
}

Abilities API統合の設計ポイント

実装にあたって、以下の4点を特に意識しました。

  1. 後方互換性: WordPress 6.8以下では自動的に無効化され、既存機能に影響しない
  2. シングルトンパターン: プラグイン内で一貫したインスタンス管理
  3. 拡張性: yourplugin_mcp_register_abilities フックで将来の機能追加が容易
  4. デバッグ対応: WP_DEBUG有効時のみログ出力

特に後方互換性は重要です。
WordPress 6.9がリリースされるまでは、この機能は完全に無効化されます。
既存ユーザーに影響を与えることなく、先行して実装を進められるのは大きなメリットでした。

MCP実装でつまづいた点と解決策

実際に実装してみると、いくつかの課題に直面しました。

Abilities APIの仕様が未確定

WordPress 6.9はまだリリース前のため、Abilities APIの仕様が変更される可能性があります。
そのため、APIの存在チェックを厳密に行い、関数が存在しない場合は完全にスキップする設計にしました。

// WordPress 6.9 以上かつ関数が存在するかチェック
return version_compare( $wp_version, '6.9', '>=' )
    && function_exists( 'wp_register_ability' );

MCP Adapterとの連携タイミング

MCP Adapterの初期化タイミングが早すぎると、他のプラグインが読み込まれる前に実行されてしまいます。
plugins_loaded フックの優先度を 20 に設定することで、この問題を解決しました。

WordPress AI連携で得られた効果

この基盤を実装したことで、以下の効果が得られました。

  • 開発効率: 新しいAbilityの追加が数行のコードで可能に
  • 保守性: シングルトンパターンにより、インスタンス管理が明確化
  • テスト容易性: 199行のテストコードを追加し、カバレッジを確保
  • 将来への準備: WordPress 6.9リリース後、即座に機能を有効化可能

個人的には、フック機構による拡張性の確保が最も満足している点です。
今後のAbility追加時に、コアのコードを変更する必要がありません。

今後の拡張予定

WordPress 6.9リリース後、以下のAbilitiesを段階的に追加予定です。

  • データ作成Ability
  • ユーザー情報取得Ability
  • コンテンツ検索Ability
  • AI画像生成Ability

まとめ

WordPress MCPによるAI連携の基盤クラスを実装しました。
WordPress 6.9のAbilities APIとMCPプロトコルを統合することで、ClaudeやChatGPTからプラグイン機能を直接呼び出せる環境が整います。

この記事のポイント:

項目 内容
後方互換性 WordPress 6.8以下では自動無効化
拡張性 フック機構で新機能追加が容易
AI連携 MCP経由でClaude/ChatGPTと連携
先行実装 WordPress 6.9リリース前に準備完了

WordPress MCPの実装は、今後のAI時代におけるプラグイン開発の新しいスタンダードになる可能性があります。

次のステップとして、WordPress 6.9リリース後に具体的なAbilities(データ作成、コンテンツ検索など)を追加していく予定です。

AI連携に興味のあるWordPressプラグイン開発者は、ぜひこの設計パターンを参考にしてみてください。

参考リンク