Claude Desktop’s Developer Tools can help you debug MCP Apps. To use them:
- Open Help > Troubleshooting and click Enable Developer Mode. A new Developer menu appears in the menu bar.
- Open Developer Tools by pressing
Cmd+Option+I (Mac) or Ctrl+Shift+I (Windows)
- Inspect the tool call element and look for an iframe nested inside another iframe. Your app will be loaded as the content of the inner iframe.
From the Developer menu, select Reload MCP Configuration after editing your claude_desktop_config.json to apply changes without restarting.
This is the most common issue when developing MCP Apps. Check these two causes:
Missing app.connect() call
Your app must call app.connect() (Vanilla JS) or useApp() (React) to establish communication with Claude Desktop.
import { App } from "@modelcontextprotocol/ext-apps";
const app = new App({ name: "My App", version: "1.0.0" });
// Register handlers before connecting
app.ontoolresult = (result) => {
// Handle tool results
};
await app.connect();
Event handlers like app.ontoolinput and app.ontoolresult won’t be invoked until the app is connected.
Iframe has zero height
Your app needs a non-zero height to be visible. A zero height can occur if:
- Your app’s container has no content yet
- You called
sendSizeChanged({ width, height: 0 })
Check that your root element has explicit dimensions or content that gives it height.