Claude Media
MCP Appsの対応クライアント一覧とExtensionsの仕組み

MCP Appsの対応クライアント一覧とExtensionsの仕組み

MCP Apps対応は表の14クライアント中11個で、ClaudeのwebとDesktopも含みます。OAuth Client Credentialsに対応するのはCLIのmcpcだけです。公式3ページの一覧の食い違いも扱います。

Extension Support MatrixでMCP Appsに✓が付くクライアントは11個、ChatGPTやCursorも含まれる

MCPのExtension Support Matrixは、14のクライアントと4つの公式Extensionの対応状況を並べています。MCP Apps(対話型のHTMLインターフェースをチャット内に描画する拡張機能)に✓が付くのは、そのうち次の11個です。ClaudeはwebとDesktopの両方に✓が付きます。

数字

Extension Support Matrixの対応数

  • MCP Apps

    11

    Claude・ChatGPT・Cursorを含む

  • OAuth Client Credentials

    1

    mcpcのみ。チャット系は0

  • Enterprise-Managed Authorization

    2

    Archestra.AIとmcpc

  • Skills over MCP

    1

    mcpcが✓。ChatGPTなど3つはPartial

表に載る14クライアントのうち、各Extensionに✓が付いている数
クライアントMCP AppsOAuth Client CredentialsEnterprise AuthSkills
Claude(web)MCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
Claude DesktopMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
VS Code GitHub CopilotMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
Microsoft 365 CopilotMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
GooseMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
PostmanMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
MCPJamMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
ChatGPTMCP Apps✓OAuth Client Credentials—Enterprise Auth—SkillsPartial
CursorMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
Archestra.AIMCP Apps✓OAuth Client Credentials—Enterprise Auth✓Skills—
PostHog CodeMCP Apps✓OAuth Client Credentials—Enterprise Auth—Skills—
fast-agentMCP Apps—OAuth Client Credentials—Enterprise Auth—SkillsPartial
MCP InspectorMCP Apps—OAuth Client Credentials—Enterprise Auth—SkillsPartial
mcpc MCP CLIMCP Apps—OAuth Client Credentials✓Enterprise Auth✓Skills✓

MCP Appsの✓はチャット型クライアントに集まっています。認証系とSkillsの✓やPartialは、mcpc・MCP Inspector・fast-agentのような非チャット型が中心で、ChatGPTとArchestra.AIにも一部あります。

表の4つの列は、それぞれ識別子を持つ公式Extensionに対応します。MCP Appsはio.modelcontextprotocol/uiで、対話型のHTMLインターフェースをチャット内に描画します。OAuth Client Credentialsはio.modelcontextprotocol/oauth-client-credentialsで、対話的なユーザーログインなしの機械間認証です。Enterprise Authはio.modelcontextprotocol/enterprise-managed-authorizationで、企業のIdPによる一元的なアクセス制御を担います。Skillsはio.modelcontextprotocol/skillsで、Skillを見つけ、その指示と付属ファイルを読むための拡張です。

表はコミュニティが維持しており、GitHubのプルリクエストで更新されます。載っていないクライアントが「未対応」なのか「未掲載」なのかは、表だけでは区別できません。

拡張機能そのものの仕組みと、4つの拡張の中身はMCP拡張機能のサポートマトリクスの読み方で扱っています。この記事は、MCP Appsに絞ってクライアントごとの対応を見ます。

自分の状況ではどのExtensionを確認すればよいか

表の読み方は、立場によって変わります。

あなたの立場見る列判断のポイント
MCPサーバーを作っていて、画面付きの結果を返したい見る列MCP Apps判断のポイント対象クライアントが表で✓か。含まれなくても、テキストの応答で成立する作りにしておく
チャット型クライアントを選ぶ見る列MCP Apps判断のポイントClaude・ChatGPT・Cursor・VS Code Copilotは✓。実際に画面が出るかはサーバー側の宣言にもよる
機械同士で認証したい(CI・バッチ)見る列OAuth Client Credentials判断のポイントチャット系クライアントに✓は無く、CLIのmcpcが対応
社内のID基盤でアクセスを統制したい見る列Enterprise Auth判断のポイントチャット型で✓があるのはArchestra.AI
クライアントを自作している見る列全列判断のポイント表の更新もプルリクエストで行う

認証系の2つは、MCPのコア認可機能(Dynamic Client RegistrationやOAuth Client ID Metadata Documents)とは別枠で追跡されています。表の注記は、実装状況を各Extensionの仕様とext-authリポジトリで見るよう案内しています。仕様の中身はOAuth Client CredentialsとEnterprise-Managed Authorizationで扱っています。

mcpcのREADMEには、OAuth Client Credentialsの使い方がコマンドで載っています。

mcpc login <server> --grant client-credentials --client-id <id> --client-secret <secret>

同じmcpcで、Enterprise対応はmcpc login <server> --grant id-jagで使えます。Skills列で唯一✓のmcpcは、skills-list・skills-get・resources-directory-readに対応しますが、対象はMCP 2026-07-28版のサーバーです。Skillsはサーバーだけが宣言する拡張で、クライアントは宣言を見てからskills/listとskills/getを発行します。

そもそもMCP Appsで何ができるのか

MCP Appsは、MCPサーバーが対話型のHTMLインターフェース(データの可視化・フォーム・ダッシュボードなど)をチャットの中にそのまま描画できるようにする拡張機能です。概要ページは、向いている場面を5つ挙げています。

  • 複雑なデータの探索: 「地域別の売上を見せて」に、クリックでドリルダウンできる地図を返す
  • 選択肢の多い設定: デプロイ設定のような依存関係のある選択肢を、1画面のフォームで見せる
  • リッチメディア: PDFや3Dモデル、生成画像を実際のビューアーで表示する
  • リアルタイムの監視: ログやメトリクスを、更新され続ける状態で表示する
  • 複数ステップの作業: 経費の承認やコードレビューのように、1件ずつ確認する作業を操作ボタンと状態付きで進める

別にWebアプリを作らずMCP Appsを選ぶ理由として、概要ページは3点を挙げています。アプリはMCPサーバーのどのツールでも呼べて、ホストも新しい結果をアプリへ押し出せる、双方向のデータの流れが1点目です。2点目は、アプリが「この会議を設定して」のような成果を求めると、ホストがユーザーの同意のもとで、ユーザーの接続済みの機能を通して処理することです。3点目は、ユーザーがタブを切り替えず、会話の中で作業を続けられることです。

動き方は、ツール呼び出しから4段階で進みます。

手順

MCP Appsが描画されるまで

  1. 1

    UIの事前読み込み

    ツールの説明に_meta.ui.resourceUriが入っていて、ui://のリソースを指します。ホストはツールが呼ばれる前にこれを読み込めるので、ツール入力をアプリへストリーミングする機能も成り立ちます。

  2. 2

    リソースの取得

    ホストがサーバーからUIリソースを取ります。中身はHTMLで、多くの場合JavaScriptやCSSがまとめて入っています。外部のスクリプトやリソースは、_meta.ui.cspで指定した配信元から読み込めます。

  3. 3

    サンドボックスでの描画

    Webホストは通常、これをサンドボックス化したiframeに描画します。マイクやカメラのような追加権限は、リソースの_meta.uiのpermissionsで求めます。

  4. 4

    双方向の通信

    アプリとホストはpostMessage上のJSON-RPCで話します。tools/callはコアのMCPと共通です。ui/initializeのようにコアに似たものもありますが、大半はui/で始まる新しいメソッドです。

サンドボックスは、アプリが親ページのDOMやホストのCookie・ローカルストレージに触れることを防ぎます。サーバー作者を完全に信用しなくても、ホストがサードパーティ製のアプリを描画できる設計です。

Extensionsはなぜ「オプトイン」なのか

Extensionsは、コアプロトコルにない機能を足す仕組みで、常に無効が既定です。有効にするには明示的なオプトインが要り、クライアントは各リクエストの_metaにあるio.modelcontextprotocol/clientCapabilitiesで対応を宣言します。サーバー側の対応はserver/discoverのレスポンスのcapabilities.extensionsに出ます。

"io.modelcontextprotocol/clientCapabilities": {
  "extensions": {
    "io.modelcontextprotocol/ui": {
      "mimeTypes": ["text/html;profile=mcp-app"]
    }
  }
}

片方しか対応していないとき、対応している側はコアのプロトコルの動作に戻るか、拡張が必須ならエラーで拒否します。表の✓は「対応している」の意味で、実際に画面が出るかは接続先のサーバーが同じ拡張を宣言しているかにもよります。

ChatGPTの開発者向けページは、この前提に沿って「UIを描画しないクライアントでもモデルが作業を完了できるよう、UIなしでも役に立つツールにしておく」よう書いています。Cursorのドキュメントも、ホストがアプリのUIを描画できなくても、同じツールが通常のMCP応答で動くと説明しています。

ClaudeでMCP Appsは使えるか

Extension Support Matrixでは、Claude(web)とClaude Desktopの2つにMCP Appsの✓が付いています。Claudeのヘルプセンターは、対話型のコネクターをConnectors Directoryの「Interactive」バッジで見分けると案内しています。

Claude Codeは、Matrixの14クライアントに載っていません。載っていないことは、未対応を意味するとは限りません。

3つの公式ページで対応クライアントの一覧が違う

MCP Appsの対応クライアントは、公式の3つの場所で別々の一覧になっています。

一覧

MCP Appsの対応クライアントを挙げる3つの場所

  • Extension Support Matrix

    上の表で✓が付く11個です。以下の2か所は、これと顔ぶれが違います。

  • MCP Apps概要ページ

    Matrixの11個からChatGPT・Cursor・PostHog Codeを除いた8個です。概要ページは全体の一覧としてMatrixを案内しています。

  • ext-appsリポジトリのREADME

    ChatGPT・Claude・VS Code・Goose・Postman・MCPJamに加え、mcp-useのインスペクターとAlpicのプレイグラウンドです。MatrixにあるCursorやMicrosoft 365 Copilotは並んでおらず、mcp-useとAlpicはMatrixに載っていません。

3か所の一覧は一致していないため、対応の有無を確かめるときは、そのクライアント自身のドキュメントが最も確実です。たとえばVS Codeのドキュメントは「MCP Appsは、MCPサーバーが対応しているとチャット内にインラインで表示される」と書いています。ChatGPTは_meta.ui.resourceUriを標準のリンク方法としたうえで、従来のopenai/outputTemplateを互換用の別名として残しています。Claude Codeのドキュメントは、MCP AppsのUIリソースの扱いを書いています。ui://のURIかtext/html;profile=mcp-appのメディアタイプを持つものは、@の候補やリソース一覧ツールの結果に出ません。UIリソースだけを提供するサーバーでは、リソース一覧は空になります。VS CodeとClaude Desktopの具体的な違いはVS CodeとClaude DesktopのMCP Apps対応差に書いています。

クライアントを実装する側がこの表をどう使うか

クライアントを作る側は、ext-appsかext-authリポジトリの仕様を読みます。次にclientCapabilitiesで対応を宣言し、要件を実装して、Matrixを更新するプルリクエストを送ります。4段階の詳細はMCP拡張機能のサポートマトリクスの読み方にあります。

MCP Appsの実装には入り口が2つあります。1つは@mcp-ui/clientで、MCP Appsのビューをホストアプリに描画するReactコンポーネントを提供します。もう1つはSDKのApp Bridgeモジュールで、サンドボックス化したiframeでの描画、メッセージのやり取り、ツール呼び出しの中継、セキュリティポリシーの適用を扱います。

@modelcontextprotocol/ext-appsのAppクラスは便利なラッパーで、必須ではありません。postMessageのプロトコルを直接実装する選択肢もあります。リポジトリにはReact・Vue・Svelte・Preact・Solid・素のJavaScriptのスターターテンプレートがあります。サーバー側の例も3D可視化・データ探索・業務アプリ・メディア・ユーティリティの分野で公開されています。ホストの実装は、examples/basic-hostの例を除き、このリポジトリに公式サポート付きのものはありません。ワイヤープロトコルはext-appsの1.xと2.xで変わっておらず、2.xのViewは1.xのホストで動き、2.xのホストは1.xのViewを描画します。

拡張が公式になるまでの流れはMCPのSEPプロセス、実験的な機能が拡張へ移った例はMCP Tasksが拡張機能に移った理由で扱っています。Appsを作る側の視点はMCP Appsとはに、MCPの基礎はMCPとはにあります。

まとめ — 3つの一覧が食い違うので、確認先は順番で決める

MCP Appsの対応は、Matrix・概要ページ・READMEの一覧が食い違うため、まずそのクライアント自身のドキュメントで確かめ、次にMatrixを見る順番になります。認証系のExtensionは、チャット系クライアントに✓が無いので、CLIのmcpcのように対応済みのクライアントを選ぶか、サーバー側で別の認可方式を用意しておく判断です。

この記事を共有:XはてブLinkedIn
MCP をもっと見る →