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
| クライアント | MCP Apps | OAuth Client Credentials | Enterprise Auth | Skills |
|---|---|---|---|---|
| Claude(web) | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| Claude Desktop | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| VS Code GitHub Copilot | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| Microsoft 365 Copilot | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| Goose | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| Postman | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| MCPJam | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| ChatGPT | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | SkillsPartial |
| Cursor | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| Archestra.AI | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth✓ | Skills— |
| PostHog Code | MCP Apps✓ | OAuth Client Credentials— | Enterprise Auth— | Skills— |
| fast-agent | MCP Apps— | OAuth Client Credentials— | Enterprise Auth— | SkillsPartial |
| MCP Inspector | MCP Apps— | OAuth Client Credentials— | Enterprise Auth— | SkillsPartial |
| mcpc MCP CLI | MCP 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
UIの事前読み込み
ツールの説明に
_meta.ui.resourceUriが入っていて、ui://のリソースを指します。ホストはツールが呼ばれる前にこれを読み込めるので、ツール入力をアプリへストリーミングする機能も成り立ちます。 - 2
リソースの取得
ホストがサーバーからUIリソースを取ります。中身はHTMLで、多くの場合JavaScriptやCSSがまとめて入っています。外部のスクリプトやリソースは、
_meta.ui.cspで指定した配信元から読み込めます。 - 3
サンドボックスでの描画
Webホストは通常、これをサンドボックス化したiframeに描画します。マイクやカメラのような追加権限は、リソースの
_meta.uiのpermissionsで求めます。 - 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のように対応済みのクライアントを選ぶか、サーバー側で別の認可方式を用意しておく判断です。