sunpeak is MCP-App-First (April 2026)
MCP Apps run in ChatGPT, Claude, VS Code, Goose, and JetBrains IDEs. When Claude announced MCP App support in January 2026 and ChatGPT followed in February, the standard went from spec to production in weeks. Since then, the ecosystem has grown fast: launch partners like Figma, Canva, Slack, Asana, and Salesforce have live MCP Apps in the directory, and the ext-apps spec is actively maintained under the Linux Foundation.
TL;DR: sunpeak is an MCP App framework built around the MCP App standard. Core APIs work across every host. ChatGPT and Claude-specific features are layered on top as optional imports. Write your app once, test it locally with a built-in inspector, and deploy it everywhere.
Why MCP-App-First
When ChatGPT Apps launched in October 2025, they had their own proprietary SDK. Building for ChatGPT meant building only for ChatGPT.
That changed when OpenAI contributed to MCP Apps as the open standard. The rendering model, the iframe sandbox, the UI resource system, all of it became portable. By early 2026, the major hosts shipped real implementations.
sunpeak followed the same trajectory. We started as a ChatGPT App framework because ChatGPT was the only major host supporting embedded UIs. Now we’re an MCP App framework, because the standard is real and the host list keeps growing.
What that means in practice: sunpeak’s core APIs target the MCP App interface, not any single host. At the same time, sunpeak layers in host-specific functionality that developers need to seamlessly support differentiated platforms (think React Native). You get portability by default and platform power when you need it.
How It Works
sunpeak separates standard MCP App APIs from host-specific ones at the import level.
Core APIs come from the top-level sunpeak import. These work in every host (see the React hooks reference for the full API):
import { useToolData, useHostContext, useDisplayMode, AppProvider } from 'sunpeak';
import type { ResourceConfig } from 'sunpeak';
export const resource: ResourceConfig = {
description: 'Show analytics dashboard',
};
export function DashboardResource() {
const { output } = useToolData();
const context = useHostContext();
const displayMode = useDisplayMode();
return <div>{/* Your UI runs in ChatGPT, Claude, VS Code, Goose */}</div>;
}
Inspector and testing APIs come from dedicated subpath imports. sunpeak/inspector gives you the Inspector component for local development, and the testing framework provides unit tests, e2e tests, visual regression tests, and multi-model LLM evals:
pnpm dev # Inspector at localhost:3000
pnpm test # Unit + e2e tests
pnpm test:visual # Visual regression across hosts/themes
pnpm test:eval # Multi-model evals (GPT-4o, Claude, Gemini)
The inspector, testing utilities, and dev tools live in dedicated subpaths. They’re first-class, not afterthoughts, but they don’t pollute your app code. Your resource components stay portable.
The Host List
Here’s where MCP Apps run today:
- ChatGPT — OpenAI contributed elements of the original ChatGPT Apps protocol to MCP and supports the open standard. Inline, picture-in-picture, and fullscreen display modes are available.
- Claude — Anthropic’s web and desktop clients render MCP Apps natively via Claude Connectors. First-party integrations from Figma, Canva, Asana, Slack, and others are live in the Connectors Directory.
- VS Code — Microsoft’s editor renders MCP Apps in the Copilot chat sidebar.
- Goose — Block’s open-source AI agent supports MCP Apps.
- JetBrains IDEs — JetBrains is evaluating MCP App support across their IDE lineup.
The MCP App standard is under the Linux Foundation, and the spec is actively developed at modelcontextprotocol/ext-apps. The ui:// URI scheme lets tools declare HTML templates that hosts prefetch and render in sandboxed iframes, with JSON-RPC 2.0 over postMessage handling communication. Any compliant host can render them.
Host-Specific Features Are First-Class
MCP-App-first doesn’t mean lowest-common-denominator. ChatGPT has features that Claude doesn’t, and vice versa. sunpeak treats these as first-class extensions, not hacks.
For ChatGPT, that means the ChatGPT inspector for local development, display mode control, and ChatGPT-specific runtime APIs. For Claude, it means Connector data access patterns, OAuth authentication, and interactive Connector support. These are maintained alongside the core framework, tested in CI, and documented.
The pattern scales: core stays portable, extensions stay organized. Import from sunpeak for the standard, import from sunpeak/chatgpt or sunpeak/claude for the host-specific parts.
Testing Across Hosts
One of the practical benefits of MCP-App-first architecture is testing. Because sunpeak’s inspector replicates the MCP App runtime that all hosts implement, you can run your full test suite locally without paid accounts or host credits.
sunpeak’s testing framework includes unit tests, Playwright-based e2e tests, snapshot tests, visual regression tests with screenshot comparison across hosts and themes, and multi-model LLM evals that verify tool calling across GPT-4o, Claude, and Gemini. All of it runs locally and in CI/CD.
pnpm test # Unit + e2e
pnpm test:visual # Screenshot comparison across ChatGPT/Claude themes
pnpm test:eval # Multi-model LLM evals
Get Started
sunpeak is open-source (MIT) and works locally and in CI/CD with no paid AI host accounts. Scaffold a project, start the inspector, and build your first MCP App.
npx sunpeak new
cd sunpeak-app && pnpm dev
See the quickstart guide to get started, or explore the MCP App framework page for the full feature set.
Get Started
npx sunpeak new
Further Reading
- What is an MCP App? Architecture, hosts, and how to build one
- How to choose an MCP App framework in 2026
- Building one MCP App for ChatGPT and Claude
- Complete guide to testing ChatGPT Apps and MCP Apps
- MCP App framework overview
- ChatGPT App framework overview
- Claude Connector framework overview
- Testing framework
- Documentation - quickstart guide
- MCP Apps introduction - core concepts and architecture
- GitHub - source code and issue tracker
Frequently Asked Questions
What does MCP-App-first mean for sunpeak?
MCP-App-first means sunpeak builds its core APIs (useToolData, useHostContext, useDisplayMode, AppProvider, ResourceConfig) around the MCP App standard rather than any single host. Host-specific features for ChatGPT and Claude are layered on top as optional subpath imports (sunpeak/chatgpt, sunpeak/claude), so your app code is portable by default across all MCP-compatible hosts.
What hosts support MCP Apps in 2026?
As of April 2026, MCP Apps run in ChatGPT, Claude (web and desktop), VS Code, Goose, and JetBrains IDEs. Launch partners like Figma, Canva, Slack, Asana, Salesforce, and others already have live MCP Apps in the directory. sunpeak lets you build once and deploy across all of these hosts.
How do I use ChatGPT-specific features in sunpeak?
Import ChatGPT-specific exports from the sunpeak/chatgpt subpath. Core hooks like useToolData and useHostContext come from the top-level sunpeak import. This separation keeps your app code portable while giving you full access to ChatGPT-specific display modes and runtime APIs.
What is the difference between MCP Apps and ChatGPT Apps?
MCP Apps are interactive UI applications built on the MCP Apps extension (ext-apps) that run across multiple AI hosts. ChatGPT Apps are MCP Apps running specifically inside ChatGPT, with optional ChatGPT-specific UI components and the window.openai bridge. sunpeak supports both through its MCP-App-first architecture.
Can I test MCP Apps for ChatGPT and Claude locally?
Yes. Run pnpm dev to start a local inspector at localhost:3000 that replicates the MCP App runtime for both ChatGPT and Claude. You can test all display modes, themes, and tool invocations without a paid ChatGPT or Claude account. sunpeak also includes a built-in testing framework with unit tests, e2e tests, visual regression tests, and multi-model LLM evals.
Do I need to rewrite my ChatGPT App to support Claude?
No. If your app uses sunpeak core APIs (useToolData, useHostContext, etc.), it already works across all MCP App hosts. The MCP App standard defines the rendering model, communication protocol, and iframe sandbox that all hosts implement. Host-specific code stays isolated in optional subpath imports.
What is the MCP App standard?
The MCP App standard (defined in @modelcontextprotocol/ext-apps) is the first official extension to the Model Context Protocol. It lets MCP tools return interactive UI components that render in sandboxed iframes inside AI conversations. Communication between host and app uses JSON-RPC 2.0 over postMessage via the ui:// URI scheme.
How do I get started building MCP Apps with sunpeak?
Create a project with npx sunpeak new, then run pnpm dev to start the local inspector. Your app works across ChatGPT, Claude, and other MCP App hosts out of the box. See the sunpeak quickstart guide at sunpeak.ai/docs/quickstart for step-by-step instructions.