DevTools currently renders views using the Apps SDK runtime (mocked
window.openai). MCP Apps rendering is not yet supported in DevTools.Quick Start
When you runpnpm dev, DevTools is automatically available at http://localhost:3000/.

Automatic Tool Discovery
DevTools automatically discovers all tools registered in your MCP server. Simply start your development server, and all available tools will appear in the sidebar, ready to test.Testing Tools
DevTools generates a form based on each tool’s input schema, making it easy to test your tools with different inputs. Fill in the form and click “Call Tool” to execute the tool and see its output.
View Inspection
When a tool renders a view, DevTools provides comprehensive inspection capabilities:Apps SDK Environment Inspector
Inspect and edit the Apps SDK environment properties in real-time (mockedwindow.openai):
- Display Mode: Switch between inline, fullscreen, and picture-in-picture modes
- Theme: Toggle between light and dark themes
- Locale: Change the locale settings
- User Agent: Modify device type (mobile/desktop) and capabilities (hover/touch)
- Safe Area: Adjust safe area insets
- Max Height: Set view height constraints
This inspector mocks the Apps SDK runtime (
window.openai). For testing MCP Apps-specific behavior, use a MCP Apps Client like Goose or MCPJam.Inspectable View State
View and monitor the view’s state as it changes. The view state inspector shows the current state object in a JSON tree view, making it easy to debug state management and track state updates.MCP client logs
See all Apps SDK API calls made by your view in real-time. The logs panel displays:- Timestamp of each API call
- Command name (e.g.,
setViewState,callTool,requestDisplayMode) - Arguments passed to each method
- Response data (when applicable)
These logs show Apps SDK (
window.openai) calls. In MCP Apps, views use the MCP ext-apps protocol instead. The Skybridge hooks abstract these differences, so your view code works in both runtimes.
Authenticated servers
When your MCP server requires OAuth, DevTools registers itself as an OAuth client via Dynamic Client Registration on first connect and walks the full PKCE flow. The resultingclient_id and access token are cached in browser localStorage so subsequent sessions reconnect silently.
If you ever see invalid_client or other authorization errors after switching servers, rotating credentials on the auth server, or otherwise leaving DevTools holding stale state, click Sign out in the header to clear the cache and trigger a fresh registration on the next connect.
Limitations
DevTools uses the Apps SDK runtime (mockedwindow.openai) but has some differences from production:
- CSP policies: Some external resources may be blocked in production but allowed locally
- LLM responses: Follow-up messages don’t trigger actual LLM responses—test these in ChatGPT dev mode or MCP Apps clients
- MCP Apps runtime: DevTools does not support MCP Apps view rendering—test MCP Apps views in real clients like Goose or Claude
Custom Integration
If you’re not using the Skybridge starter template, add DevTools to your server:Related
- Fast Iteration - Development workflow and concepts
- Test Your App - Testing in production settings (ChatGPT, Claude, other MCP Apps Clients)