by Alignbase
A server‑agnostic framework for building, testing, and inspecting MCP Apps across ChatGPT, Claude and other host platforms, providing local runtime simulation, hot‑module reload, and multi‑model evaluation.
Sunpeak provides a full‑stack framework that lets developers create cross‑platform MCP Apps (ChatGPT Apps, Claude Connectors, etc.) and run end‑to‑end, visual, and live tests locally. It replicates host runtimes, supplies an inspector UI, and integrates with Vercel AI SDK to run model‑level evals across several LLMs.
# Create a new MCP app project with HMR and an inspector
npx sunpeak new
# Initialize tests for an existing MCP server
npx sunpeak test init --server http://localhost:8000/mcp
# Run the full test suite (e2e, visual, live, evals)
npx sunpeak test
# Launch the inspector against any MCP server
npx sunpeak inspect --server http://localhost:8000/mcp
The CLI scaffolds project structure, discovers tools/resources automatically, and ties into Playwright fixtures for CI.
Q: Do I need a paid OpenAI or Anthropic account for CI testing? A: No. Sunpeak simulates host runtimes locally, so tests run without external API credits.
Q: Can I test apps written in languages other than TypeScript? A: Yes. The testing framework communicates with any MCP server via the protocol, regardless of implementation language.
Q: How are simulation fixtures created?
A: Place JSON files under tests/simulations/. Sunpeak auto‑discovers them and uses them to mock tool input/output.
Q: What browsers are supported for live tests? A: Playwright handles Chromium, Firefox, and WebKit out of the box.
Q: Is the inspector compatible with future host platforms? A: Sunpeak’s architecture is host‑agnostic; new host adapters can be added while keeping the same inspector UI.
Server-agnostic MCP testing framework and full-stack MCP App framework.
MCP Apps are cross-platform, meaning sunpeak is a ChatGPT App framework, Claude Connector framework, and more.
Current releases use MCP Apps SDK 2.0 and the split MCP TypeScript client, server, core, and Node packages. Projects that read tool handler context directly should use extra.mcpReq for request data and extra.http?.authInfo for validated HTTP auth.
ChatGPT apps are now submitted and published as plugins. The app remains an MCP-backed app, so sunpeak's architecture and runtime do not change. The plugin is the package used for local installation, review, and public distribution.
npx sunpeak new
Demo (Hosted) ~ Demo (Video) ~ Discord ~ Documentation ~ GitHub
Building an MCP App today means testing in ChatGPT and Claude by hand. Every code change costs a 4-click refresh in each host, every teammate needs a $20/month account per host, and every test burns credits.
sunpeak replicates the ChatGPT and Claude runtimes locally so you can:
sunpeak also runs evals against your MCP server across multiple models (GPT-4o, GPT-4o-mini, o4-mini, Claude Sonnet, Gemini 2.0 Flash) via the Vercel AI SDK. Each case runs N times per model, so you can prove your tool descriptions, schemas, and model-visible App Context hold up on cheaper models, not just the flagship ones.
Eval cases can seed App Context with appContext, which lets you test follow-up prompts such as "Book this one" against state the app has shared through updateModelContext.
The same foundation powers an app framework for multi-platform MCP Apps and a standalone inspector that works with any MCP server in any language.
Building an MCP App from scratch means wiring up an MCP server, handling protocol message routing, managing resource HTML bundles, and setting up a dev environment with hot reload. Each host has different capabilities and CSS variables, so you end up writing platform-specific code without a clear structure.
sunpeak gives you a convention-over-configuration framework with the inspector and testing built in.
npx sunpeak new
This creates a project, starts a dev server with HMR, and opens the inspector at localhost:3000:
sunpeak-app/
├── src/resources/review/review.tsx # UI component (React)
├── src/tools/review-diff.ts # Tool handler, schema, resource link
├── tests/simulations/review-diff.json # Mock data for the inspector
└── package.json
Tools, resources, and simulations are auto-discovered from the file system. Multi-platform React hooks (useToolData, useAppState, useTheme, useDisplayMode) let you write your app logic once and deploy it across ChatGPT, Claude, and future hosts.
MCP Apps render inside host iframes with host-specific themes, display modes, and capabilities. Standard browser testing can't replicate this because the runtime environment only exists inside ChatGPT and Claude. Each app also has many dimensions of state: tool inputs, tool results, server tool responses, host context, and display configuration. Testing all combinations manually is slow and error-prone.
sunpeak replicates these host runtimes and provides simulation fixtures (JSON files that define reproducible tool states) so you can test every combination of host, theme, and data in CI without accounts or API credits.
npx sunpeak test init --server http://localhost:8000/mcp
This scaffolds E2E tests, visual regression, live tests, and multi-model evals. Then run them:
npx sunpeak test
Playwright fixtures handle inspector startup, MCP connection, iframe traversal, and host switching. Works with Python, Go, TypeScript, Rust, or any language.
Evals add a second dimension: model compatibility. The eval framework connects to your MCP server via the MCP protocol, discovers its tools, and sends prompts to multiple models (GPT-4o, GPT-4o-mini, o4-mini, Claude Sonnet, Gemini 2.0 Flash) via the Vercel AI SDK. Each case runs N times per model and reports pass/fail counts, so you can measure whether your tool descriptions, schemas, and model-visible App Context work reliably across smaller and cheaper models, not just the flagship ones.
import { test, expect } from 'sunpeak/test';
test('search tool returns results', async ({ mcp }) => {
const result = await mcp.callTool('search', { query: 'headphones' });
expect(result.isError).toBeFalsy();
});
test('album cards render', async ({ inspector }) => {
const result = await inspector.renderTool('show-albums');
await expect(result.app().locator('button:has-text("Summer Slice")')).toBeVisible();
});
MCP servers are opaque. You can call tools and read the JSON responses, but you can't see how your app actually looks and behaves inside ChatGPT or Claude without deploying to each host, setting up a tunnel, paying for accounts, and manually refreshing through a multi-step cycle on every code change.
The sunpeak inspector replicates the ChatGPT and Claude app runtimes locally. Point it at any MCP server and see your tools and resources rendered the same way they appear in production hosts.
npx sunpeak inspect --server http://localhost:8000/mcp
Toggle between hosts, themes, display modes, and device types from the sidebar. Call real tool handlers or load simulation fixtures for deterministic mock data. Changes reflect instantly via HMR. Works with any MCP server in any language.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.