AI
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

LiferayをMCPサーバーとして使用する

Liferay DXP 2026.Q3+ リリース機能

モデルコンテキストプロトコル(MCP)は、 GitHub Copilot や Cursor などの AI アプリケーションを外部ツールやデータに接続するためのオープンソース標準です。 Liferay DXPは、AIアプリケーションが接続できるMCPサーバーとして機能することができます。有効にするには、LPD-63311機能フラグを有効にしてから、MCPサーバー構成を有効にしてください。その後、MCPをサポートする任意のAIサービスをLiferay DXPと連携するように設定できます。

MCPサーバーは、 /o/mcp上で、基本認証とOAuth 2.0ベアラートークンの2つの認証方式を受け入れます。基本認証の場合、 資格情報をエンコードしてトークン を作成し、それを Authorization ヘッダーで渡します。ベアラートークンについては、 OAuth 2.0 での接続 を参照してください。

MCPサーバーは、追加の設定なしに複数のLiferay DXPノード間で動作します。ロードバランサーは、セッションアフィニティ(スティッキーセッション)を必要とせずに、Liferay PaaSやその他のクラスタ構成を含むあらゆるノードにリクエストをルーティングできます。

重要

どちらの方式も、リクエストの背後にいるLiferay DXPユーザーを特定し、AIクライアントはそのユーザーの権限で動作します。

MCPサーバーを有効にする

MCPサーバーの設定は単一の仮想インスタンスに適用され、デフォルトでは無効になっています。複数の仮想インスタンスを実行している場合は、MCPリクエストを処理するインスタンスでのみ有効にしてください。

  1. LPD-63311 リリース機能フラグ を有効にします。このフラグを有効にするまで、 MCP サーバー のエントリはインスタンス設定に表示されません。

  2. コントロール パネル → インスタンス設定 → プラットフォーム → MCP サーバー に移動します。

  3. 有効 をチェックし、 保存 をクリックします。

    インスタンス設定のMCPサーバー構成には、「有効」チェックボックスがあります。

MCPサーバーを無効にする

MCP サーバーを無効にするには、 コントロール パネル → インスタンス設定 → プラットフォーム → MCP サーバーに移動し、 有効のチェックを外し、 保存 をクリックします。

無効化されると、 /o/mcp へのリクエストは、仮想インスタンスに対して 404 を返します。そのインスタンスに対して設定されたAIアプリケーションはLiferay DXPにアクセスできなくなりますが、他の仮想インスタンスには影響はありません。

GitHub Copilotの設定

注記

GitHub Copilot の設定には Visual Studio Code を使用する必要があります。

  1. VS Code の場合は、 の手順に従ってください。

  2. mcp.json ファイルを追加したら、Liferay DXP 用にこの設定を保存します。

    {
      "servers": {
        "liferay": {
          "url": "http://localhost:8080/o/mcp",
          "type": "http",
          "headers": {
            "Authorization": "Basic [basic auth token]"
          }
        }
      }
    }
    

カーソルの設定

  1. クイックスタート手順 に従って、CursorアプリケーションでMCPサーバーを設定します。

  2. MCPサーバーの設定は、デフォルトでは [ホームディレクトリ]/.cursor/mcp.json にあります。 Liferay DXPを使用するには、この設定をファイルに保存してください。

    {
      "mcpServers": {
        "liferay": {
          "url": "http://localhost:8080/o/mcp",
          "type": "http",
          "headers": {
            "Authorization": "Basic [basic auth token]",
            "Content-Type": "application/json"
          }
        }
      }
    }
    

Claude Desktopの設定

  1. これらの指示に従ってください。

  2. Claude Desktop アプリケーションの開発者設定を開いて、サーバー構成にアクセスします。 claude_desktop_config.json。 Liferay DXPを使用するには、この設定を保存してください。

    {
      "mcpServers": {
        "liferay": {
          "command": "npx",
          "args": [
            "mcp-remote",
            "http://localhost:8080/o/mcp",
            "--header",
            "Authorization: Basic [basic auth token]"
          ]
        }
      }
    }
    

Gemini CLIの設定

  1. これらの指示に従ってください。

  2. settings.json ファイルを追加したら、Liferay DXP 用にこの設定を保存します。

    {
      "mcpServers": {
        "liferay": {
          "httpUrl": "http://localhost:8080/o/mcp",
          "headers": {
            "Authorization": "Basic [basic auth token]"
          }
        }
      }
    }
    

OAuth 2.0 で接続する

Liferay DXP は、OAuth 2.0 認証サーバーを介して Bearer トークンを発行し、MCP サーバーは Liferay DXP の通常の REST 認証に委任するのではなく、それらを自身で検証します。 OAuth 2.0 の使用 および OAuth 2.0 アプリケーションの作成 を参照してください。

上記のクライアントのいずれかでベアラートークンを使用するには、 Basic [基本認証トークン] の値を Bearer [アクセストークン] に置き換えます。

ベアラートークンは、そのトークンが対象とするリソースに対してのみ有効です。 MCP サーバーのリソース URI は、Liferay DXP インスタンスのベース URL、パス コンテキスト、および /o/mcp を組み合わせたものです。デフォルトのインストールでは、パス コンテキストは空なので、 http://localhost:8080/o/mcp となります。クライアントは、トークンを要求する際に、URIを リソース パラメータとして送信することで、そのオーディエンスを要求します。 MCPサーバーは、このオーディエンスが含まれていないトークンはすべて拒否します。Liferay DXPの他のREST APIでは機能するトークンであっても同様です。

認証サーバーの検出

/o/mcp へのリクエストで Authorization ヘッダーがない場合、 401 が返され、レスポンスヘッダーは次のようになります。

WWW-Authenticate: Bearer realm="mcp", resource_metadata="http://localhost:8080/o/.well-known/oauth-protected-resource/mcp"

無効化されたサーバーは 404を返すので、 401 はサーバーが稼働していることを示します。 MCPクライアントは、 resource_metadata URLをたどって認証サーバーを検出します。

重要

resource_metadata エンドポイントは、LPD-63311 に加えて、 RFC 8414: Authorization Server Metadata リリース機能フラグ (LPD-63415) を必要とします。これがないと、エンドポイントは 404 を返し、クライアントは検出を完了できません。

トークンが拒否される理由

Authorization ヘッダーが /o/mcp で拒否され、 401 が error="invalid_token" と、次のいずれかの error_description 値とともに返されます。

エラーの説明原因
Authorization header is not a bearer tokenAuthorization ヘッダーが存在しますが、 Basic または Bearer のいずれでも開始されません。
Access token is unknown or revoked一致する認証が存在しないか、認証が別の仮想インスタンスに属しているか、または認証に保存されているトークンの内容が無効になっています。サーバーは、トークンがユーザーまたはゲストユーザーに解決された場合にも、この説明を返します。これは、オーディエンスを検証した後に確認されます。
Access token has expiredトークンの有効期限が過ぎました。
Access token is not bound to this MCP serverトークンのオーディエンスリストには、MCPサーバーのリソースURIが含まれていません。

ツール呼び出しトークンの使用量を削減する

LiferayのMCPサーバーツールは、以下のような方法でトークンの消費量を削減します。

  • GET ベースのツールは フィールド パラメータを受け入れるため、呼び出し元は必要な応答フィールドのみを要求して、応答ペイロードをトリミングできます。これは、Liferay のヘッドレス REST API と同じ フィールド パラメータ 規約を使用します。
  • ツールの入力スキーマにおけるネストされたオブジェクト参照は、3階層を超えると展開が停止します。それより深い階層は不透明なオブジェクトに縮退するため、深くネストされたエンティティはツールのスキーマを膨張させることはありません。
  • 書き込み操作 (POST、PUT、および PATCH) ツールの入力スキーマでは、サーバーが自身で設定するフィールド ( や および dateCreated など) は省略されます。

公式MCPインスペクターを使用したデバッグ

サーバーの設定が完了したら、公式の MCP インスペクター を使用してテストおよびデバッグできます。

インスペクターを起動するには、以下のコマンドを実行します。

npx @modelcontextprotocol/inspector

インスペクターを以下のパラメータで設定してください。

URL: http://localhost:8080/o/mcp

トランスポート: ストリーミング可能なHTTP

ヘッダー: 認証: Basic [基本認証トークン] または 認証: Bearer [アクセストークン]

機能の利用可能性

Liferayバージョン機能ステータス機能フラグラベル依存関係
Liferay DXP 2025.Q4ベータLiferayモデルコンテキストプロトコル(MCP)サーバー(LPD-63311)該当なし
Liferay DXP 2026.Q3リリースLiferayモデルコンテキストプロトコル(MCP)サーバー(LPD-63311)リリース LPD-63415、OAuth 2.0 検出専用