コンテンツへスキップ

カスタム MCP クライアントを WordPress.com に接続する

このテキストはAIを使用して翻訳されました。英語の原文を表示するには、こちらをクリックしてください。

MCP(Model Context Protocol)クライアントを構築している場合や、既存のクライアントを拡張している場合、WordPress.com と統合することで、ユーザーは標準的な MCP インターフェースを通じて WordPress.com サイトのデータを AI ツールに取り込むことができます。これにより、サイトのコンテンツ全体を検索したり、投稿やページを取得して要約や分析を行ったり、公開済みのコンテンツに基づいて質問に回答したり、MCP 対応アシスタント内で WordPress.com を信頼できるコンテンツソースとして活用するワークフローが可能になります。

このガイドでは、WordPress.com 固有の部分、つまり認証方法と呼び出すべき MCP エンドポイントに焦点を当てています。MCP クライアントの構築に関する一般的なガイダンスについては、公式 MCP クライアントドキュメントを参照してください。

概要

WordPress.com は HTTPS 経由で MCP サーバーを公開しており、以下の方式を使用した OAuth 2.1 で保護されています:

  • 動的クライアント登録:プログラムによるクライアントの登録が可能です。
  • PKCE を使用した認可コードフロー:Proof Key for Code Exchange(PKCE)は、デスクトップアプリケーションや CLI アプリケーションなどのパブリッククライアントに推奨されます。

フローは以下のようになります:

  1. WordPress.com にクライアントを登録して client_id を取得する
  2. ユーザーを OAuth 認可ステップ(PKCE 付き)に誘導する
  3. 認可 codeaccess_token と交換する
  4. Authorization: Bearer … を使用して WordPress.com MCP エンドポイントを呼び出す

WordPress.com エンドポイント

以下のすべてのエンドポイントは次のホスト上で提供されています:

  • ベース URL: https://public-api.wordpress.com

OAuth 2.1

  • クライアント登録: POST /oauth2-1/register
  • 認可: GET /oauth2-1/authorize
  • トークン: POST /oauth2-1/token

MCP

  • WordPress.com MCP サーバー: POST /wpcom/v2/mcp/v1

ステップ 1: OAuth クライアントを登録する

WordPress.com は動的クライアント登録をサポートしています。これにより、MCP クライアントは手動のセットアップ手順なしに自身を登録できます。

リクエスト

  • POST https://public-api.wordpress.com/oauth2-1/register  
  • Content-Type: application/json

例:

curl -X POST "https://public-api.wordpress.com/oauth2-1/register" 
  -H "Content-Type: application/json" 
  --data '{
    "client_name": "My MCP Client",
    "redirect_uris": ["http://localhost:8080/callback"],
    "grant_types": ["authorization_code", "refresh_token"]
  }'

レスポンスの内容

レスポンスには client_id やその他のメタデータが含まれます。WordPress.com はパブリッククライアントをサポートするよう設計されており、登録レスポンスには通常以下が示されます:

  • token_endpoint_auth_method: "none"

つまり、トークンリクエストにクライアントシークレットは不要です。認可コード交換のセキュリティは PKCE によって確保されます。

最低限、登録時に受け取った client_id を保存し、登録した redirect_uri の値のいずれかを常に正確に使用してください。トラブルシューティングやクライアント設定の確認に役立つ場合は、登録レスポンスの残りの情報(タイムスタンプや登録クライアント URI など)もオプションで保持できます。

ステップ 2:ユーザーを認可フローに送る

ユーザーを認証するために、クライアントは以下を行います:

  1. PKCE の code_verifier を生成する
  2. S256 メソッドを使用して code_challenge を導出する
  3. ユーザーを WordPress.com の認可ページに開く(またはリダイレクトする)

認可リクエスト

  • GET https://public-api.wordpress.com/oauth2-1/authorize

例:

https://public-api.wordpress.com/oauth2-1/authorize?
  response_type=code&
  client_id=YOUR_CLIENT_ID&
  redirect_uri=http://localhost:8080/callback&
  code_challenge=YOUR_CODE_CHALLENGE&
  code_challenge_method=S256&
  scope=auth

ユーザーがアクセスを承認すると、WordPress.com はブラウザを redirect_uri にリダイレクトし、code クエリパラメータを付与します。redirect_uri は、登録済みの URL のいずれかと完全に一致する必要があります

ステップ3:認可コードをトークンに交換する

クライアントが認可コードを受け取ったら、トークンエンドポイントでアクセストークンに交換します。

トークンリクエスト

  • POST https://public-api.wordpress.com/oauth2-1/token  
  • Content-Type: application/x-www-form-urlencoded

例: 

curl -X POST "https://public-api.wordpress.com/oauth2-1/token" 
  -H "Content-Type: application/x-www-form-urlencoded" 
  --data "grant_type=authorization_code&code=AUTHORIZATION_CODE&redirect_uri=http://localhost:8080/callback&code_verifier=YOUR_CODE_VERIFIER&client_id=YOUR_CLIENT_ID"

結果

トークンエンドポイントは、access_token を含む OAuth レスポンスを返します。また、expires_inrefresh_token などのフィールドが含まれる場合もあります。

access_token を使用して、Authorization: Bearer YOUR_ACCESS_TOKEN 経由で WordPress.com MCP エンドポイントへの呼び出しを認証します。

ステップ4:WordPress.com MCP サーバーを呼び出す

WordPress.com の MCP サーバーには、OAuth アクセストークンで認証した上で、MCP エンドポイントに MCP リクエストを POST することで HTTP 経由でアクセスします。

MCP リクエスト

  • POST https://public-api.wordpress.com/wpcom/v2/mcp/v1  

ヘッダー:

  • Authorization: Bearer YOUR_ACCESS_TOKEN
  • Content-Type: application/json

例:

{
  "method": "tools/call",
  "params": {
    "name": "wpcom-mcp-posts-search",
    "arguments": {
      "wpcom_site": "yoursite.wordpress.com",
      "search": "recent updates"
    }
  }
}

この例では、クライアントが WordPress.com の MCP サーバーに対して、指定された引数で wpcom-mcp-posts-search という名前のツールを実行するようリクエストしています。

実装に関する注意事項

  • パブリッククライアントには PKCE が必須です。配布するアプリにシークレットを埋め込まないでください。
  • すべての MCP 呼び出しには、有効な WordPress.com アクセストークンを含む Authorization: Bearer … が必要です。
  • リダイレクト URL は登録内容と一致する必要があります。開発中に http://localhost を使用する場合は、そのコールバ��ク URL を正確に登録してください。

最終更新日: 6月 19, 2026