Claude Inspector for MCP Apps: Test Claude Connectors Locally with sunpeak
sunpeak Claude inspector.
TL;DR: sunpeak includes a local Claude inspector. Run pnpm dev, pick Claude from the Host dropdown (or ?host=claude URL Param), and test your MCP App in both Claude and ChatGPT from one dev server.
Until now, sunpeak’s local inspector only replicated the ChatGPT runtime. If you wanted to test how your MCP App looked in Claude, you had to deploy it and connect it manually. That’s fixed.
sunpeak ships with first-class Claude support. Both Claude and ChatGPT are registered as host shells out of the box. Switch between them with a dropdown, a URL param, or a prop.
What Changed
The inspector is now multi-host. Instead of a single ChatGPT-specific component, sunpeak uses a pluggable host shell system. Each host registers its own conversation chrome, color palette, and theme behavior. The Inspector component renders whichever host you select.
Two hosts ship by default:
- ChatGPT uses the familiar gray/white palette with the ChatGPT conversation layout.
- Claude uses a warm beige/cream palette matching claude.ai, with Claude’s conversation chrome.
Both implement the core MCP App protocol, but each host adds its own extras. ChatGPT supports host-specific features like file uploads and downloads on top of the standard. Claude doesn’t have additional host APIs today, though sunpeak’s Claude host shell does handle Claude’s rendering quirks. If Claude adds host-specific capabilities in the future, they’ll be built into this shell. Your resource component renders in both, wrapped in each host’s chat UI, so you see exactly what your users will see.
How to Use It
If you already have a sunpeak project, update and run:
sunpeak upgrade
Then run the dev server:
pnpm dev
Open localhost:3000. You will see a Host dropdown in the inspector sidebar. Select Claude to test your app in the Claude runtime. Select ChatGPT to switch back.
If you are starting fresh:
npx sunpeak new sunpeak-app
cd sunpeak-app && pnpm dev
The scaffolded project uses the new Inspector component by default. Both hosts are available from the first run.
Host Selection
Three ways to pick a host:
Sidebar dropdown. The Host control appears in the sidebar when multiple hosts are registered. Click it to switch at runtime.
URL parameter. Add ?host=claude or ?host=chatgpt to the inspector URL. This is useful for bookmarking a specific host, linking teammates to a particular test configuration, or testing certain rendering states automatically.
defaultHost prop. Set the initial host in code:
import { Inspector } from 'sunpeak/inspector';
<Inspector
simulations={simulations}
defaultHost="claude"
/>
The default is chatgpt if you don’t specify one.
Inspector Import
The Inspector component is imported from sunpeak/inspector:
import { Inspector } from 'sunpeak/inspector';
<Inspector simulations={simulations} />
Same simulations, same resource components, same test suite. The Inspector includes the host dropdown and each host’s rendering behavior.
What Your App Looks Like in Claude
The Claude host shell wraps your resource component in Claude’s conversation UI. The background uses Claude’s warm beige and grey instead of ChatGPT’s white and dark grey. User messages appear in Claude’s bubble style. The toolbar and display mode controls (inline, fullscreen, picture-in-picture) work the same way.
The core data flow is shared across hosts. useToolData receives the tool output. useAppState syncs state back to the host. SafeArea handles safe rendering boundaries. These work the same in both Claude and ChatGPT.
Where hosts differ is in extras. ChatGPT supports host-specific features like file uploads and downloads that go beyond the MCP App standard. Claude has its own rendering quirks that sunpeak’s host shell accounts for. If Claude adds host-specific APIs later, sunpeak will surface them through the same shell system.
The inspector lets you catch these differences locally instead of deploying to find out.
Extensible Host System
The host shell registry is open. If a new major MCP App host appears, sunpeak can add support without changing the Inspector component or your resource code. Each host registers itself with an id, a label, a conversation component, a theme function, and style variables. The inspector picks up all registered hosts automatically.
For now, Claude and ChatGPT cover the two largest MCP App hosts.
Get Started
npx sunpeak new
Further Reading
- How to Build a Claude App - covers architecture and code patterns for Claude.
- ChatGPT App Tutorial - walks through building a resource from scratch (same steps work for Claude).
- Building One MCP App for ChatGPT and Claude - covers the cross-platform story.
- Testing guide - covers sunpeak's testing framework.
- sunpeak documentation - has the quickstart and full API reference.
- Claude Connector Framework - Claude Connector capabilities
Frequently Asked Questions
How do I test a Claude App locally?
Scaffold a project with npx sunpeak new sunpeak-app, cd into it, and run pnpm dev. The local inspector starts at localhost:3000 with both Claude and ChatGPT hosts available. Select Claude from the Host dropdown in the sidebar to test your app in the Claude runtime. No Claude account is needed for local development.
Does sunpeak support both Claude and ChatGPT?
Yes. sunpeak includes first-class support for both Claude and ChatGPT. The Inspector component automatically registers both host shells. You can switch between them using the Host dropdown in the sidebar or by adding ?host=claude or ?host=chatgpt to the URL.
What is the sunpeak Inspector?
The sunpeak Inspector is a local development tool that replicates AI host runtimes (Claude, ChatGPT) on localhost. It renders your MCP App resources in a realistic chat environment with simulated tool calls, display modes, theming, and device simulation. It replaces the previous ChatGPT-only Inspector component.
Can I test the same MCP App in both Claude and ChatGPT?
Yes. The Inspector renders the same resource component in both host runtimes. Switch between Claude and ChatGPT using the Host dropdown to verify your app looks and works correctly in each environment. Both hosts share the core MCP App protocol. ChatGPT adds host-specific features like file uploads and downloads. Claude has its own rendering quirks that sunpeak handles automatically.
What is the difference between the Claude and ChatGPT inspectors?
The Claude inspector uses Claude conversation chrome with a warm beige color palette matching claude.ai. The ChatGPT inspector uses ChatGPT conversation chrome with a gray/white palette. Beyond visuals, each host has its own behavior. ChatGPT supports host-specific APIs like file uploads and downloads. Claude has its own rendering quirks. sunpeak handles these differences in each host shell so your core component code stays the same.
How do I switch between Claude and ChatGPT in the inspector?
Use the Host dropdown in the inspector sidebar to switch between Claude and ChatGPT at runtime. You can also set the host via URL parameter (?host=claude) or set a default in code with the defaultHost prop on the Inspector component. The default is ChatGPT if not specified.
Do I need to change my code to support Claude?
If your MCP App uses the core sunpeak API (useToolData, useAppState, SafeArea, useDisplayMode), it already works in Claude. The Inspector component automatically includes both host shells. Claude has its own rendering quirks, which sunpeak handles for you. If you use ChatGPT-specific features like file uploads, those parts won't apply in Claude, but the rest of your app works without changes. Run pnpm dev and select Claude from the Host dropdown to verify.
What happened to Inspector?
The Inspector component lives at sunpeak/inspector and supports multiple hosts (Claude, ChatGPT, and any future hosts) through a pluggable host shell system. All projects use the Inspector by default.