MCP App Inspector & Testing Framework
sunpeak is an open-source MCP App inspector and testing framework. Inspect any MCP server in replicated ChatGPT and Claude runtimes. Test every host, theme, display mode, and device type locally and in CI/CD — no paid accounts, no AI credits.
pnpm add -g sunpeak && sunpeak inspect --server URL Definition
The sunpeak inspector replicates the ChatGPT and Claude MCP App runtimes on localhost so you can develop and test MCP Apps without deploying to a real host. It also serves as the test runtime for automated Playwright E2E tests in CI/CD.
Why Use the sunpeak Inspector?
MCP Apps run inside AI hosts like ChatGPT and Claude. Testing them against real hosts means paid subscriptions, burned AI credits, and non-deterministic LLM behavior on every code change.
The sunpeak inspector replicates those host runtimes on localhost. It renders your resources exactly as ChatGPT and Claude would — same display modes, themes, safe areas, and conversation chrome — so you can develop and test without deploying.
The inspector works with any MCP server. Run sunpeak inspect --server URL to inspect any running server, or sunpeak dev in a sunpeak project where the inspector is built into the dev server.
Inspect Manually. Test Automatically.
Manual Inspection
Develop your MCP App with instant feedback. Switch between ChatGPT and Claude hosts, toggle themes and display modes, edit tool data live in the sidebar, and see changes instantly with HMR.
- Toggle ChatGPT/Claude, light/dark, mobile/tablet/desktop
- Edit tool input and output live in the sidebar
- HMR — changes appear instantly, no reload needed
- Works with any MCP server, not just sunpeak projects
Automated Testing
The inspector doubles as the test runtime for Playwright E2E tests. Define states with simulation files, load them via URL, and assert against the rendered resource. Test every host, theme, and display mode in CI/CD.
- Playwright E2E tests against the local inspector
- Simulation files for deterministic, reproducible states
- Live tests against real ChatGPT with sunpeak/test fixtures
- No paid accounts or AI credits in CI/CD
Try the Inspector
The sunpeak inspector replicates the ChatGPT and Claude runtimes for MCP App testing locally and in CI/CD. Toggle hosts, themes, and display modes from the sidebar.
How MCP App Testing Works
| Command | What it tests | Runtime |
|---|---|---|
pnpm test | Unit tests (Vitest) | jsdom |
pnpm test:e2e | E2E tests against the inspector | Playwright + inspector |
pnpm test:live | Live tests against real ChatGPT | Playwright + real host |
Define Simulations
Create JSON fixtures in tests/simulations/ that define tool input, tool result, and server tool mocks. Each simulation is a reproducible
state your resource can render.
Write E2E Tests
Use createInspectorUrl to load a simulation in the inspector with specific host, theme, and display mode settings.
Assert against the rendered resource with Playwright.
Test Across Hosts
Loop over ChatGPT and Claude hosts in your test suite. The inspector renders your resource in each host's runtime so you validate cross-host rendering automatically.
Run in CI/CD
Add pnpm test:e2e to your pipeline. Playwright starts the dev server, runs all tests against the inspector,
and shuts down. No accounts, keys, or credits on your CI runners.
Inspector & Testing Features
- Multi-Host Runtime Replication
Replicated ChatGPT and Claude runtimes with accurate display modes, themes, safe areas, and conversation chrome.
- Interactive Sidebar Controls
Configure host, theme, device width, display mode, tool input/output, and app context from the sidebar. All settings reflected in the URL.
- Playwright E2E Tests
Load simulations via
createInspectorUrland assert with Playwright. Test every host, theme, and display mode combination. - Live Tests Against Real Hosts
Playwright fixtures that open real ChatGPT, send messages, and return the app iframe. All host DOM interaction maintained by sunpeak.
- Simulation Fixtures
JSON files that define reproducible tool states. Support simple and conditional server tool mocks for testing interactive flows.
- Works with Any MCP Server
Inspect any MCP server with
sunpeak inspect --server URL. No sunpeak project required.
Who the inspector is for
Coding Agents
Agents like Claude Code, Codex, and Cursor can run the inspector, execute Playwright tests, and iterate on MCP Apps without manual testing in a real host.
MCP Server Authors
Inspect any MCP server — Python, TypeScript, Go, anything. No sunpeak project needed. Just point the inspector at your server URL or startup command.
QA & Testing Teams
Automated Playwright tests against the inspector catch rendering regressions across hosts, themes, and devices. Run in CI/CD with zero external dependencies.
Getting Started
Inspect any MCP server — no sunpeak project required:
pnpm add -g sunpeak && sunpeak inspect --server URL Or in a sunpeak project, the inspector is built into the dev server:
sunpeak dev
Run pnpm test:e2e for automated Playwright tests against the inspector. See the testing documentation for the full setup.
Frequently Asked Questions
What is the sunpeak inspector?
The sunpeak inspector replicates MCP App host runtimes (ChatGPT, Claude) on your local machine. It renders your MCP App resources exactly as they appear inside the real hosts, with full control over host, theme, display mode, and device type. Use it for manual development and automated testing.
Do I need a sunpeak project to use the inspector?
No. The inspector works with any MCP server. Run "sunpeak inspect --server http://localhost:8000/mcp" to inspect any running MCP server, or pass a command like "sunpeak inspect --server python my_server.py" to start and inspect it in one step.
How do I test MCP Apps across ChatGPT and Claude?
The inspector ships with both ChatGPT and Claude host runtimes built in. Switch between them from the sidebar dropdown, or pass ?host=claude in the URL. In Playwright tests, use createInspectorUrl with a host parameter and loop over both hosts to test cross-host rendering automatically.
What are simulation files?
Simulation files are JSON fixtures in tests/simulations/ that define reproducible tool states — tool input, tool result, and server tool mocks. The inspector loads them automatically. Select a simulation from the sidebar to render your resource with that mock data, or select "None" to call the real tool handler.
Can I run inspector tests in CI/CD?
Yes. E2E tests are Playwright specs that load simulations in the inspector via createInspectorUrl and assert against the rendered resource. Run "pnpm test:e2e" in your CI pipeline. No paid host accounts, API keys, or AI credits needed.
What is the difference between E2E tests and live tests?
E2E tests run against the local inspector with simulation fixtures — fast, deterministic, and free. Live tests run against real ChatGPT using sunpeak/test fixtures that handle auth, message sending, and iframe access. E2E tests catch UI and rendering issues; live tests catch MCP connection and host-specific iframe behavior.
Does the inspector support live tests against real ChatGPT?
Yes. sunpeak provides Playwright fixtures (sunpeak/test) that open real ChatGPT, send messages to trigger tool calls, and return the app iframe for assertions. All host DOM interaction is maintained by sunpeak — you only write resource assertions. Run with "pnpm test:live".
Is the sunpeak inspector free?
Yes. sunpeak is MIT licensed and open source. The inspector, testing framework, and all tooling are free to use. No paid accounts needed for local development or CI testing.
Open Source & MIT Licensed
sunpeak is free to use, modify, and distribute.
Building MCP Apps? See the MCP App Framework page. Building for ChatGPT? See the ChatGPT App Framework page. Building for Claude? See the Claude Connector Framework page.