--- name: mcp-app-verification description: Comprehensive verification checklists for MCP Apps. Tests with basic-host reference, validates handler-before-connect, text fallback, resource URI linking, single-file bundling, host styling, CSP, and legacy pattern detection. allowed-tools: Read, Bash, Glob, Grep graph: domains: [domain:software-engineering] specializations: [specialization:ai-agents-conversational] skillAreas: [skill-area:mcp-server-implementation, skill-area:agent-simulation-testing] roles: [role:backend-engineer, role:fullstack-engineer] workflows: [workflow:feature-development] topics: [topic:api-design] --- # mcp-app-verification Run comprehensive verification checklists for MCP Apps covering correctness, compatibility, and migration completeness. ## Overview MCP Apps have several critical invariants that must be verified before deployment. This skill provides systematic verification across multiple dimensions: 1. **Runtime verification**: App loads and functions in basic-host reference 2. **Pattern verification**: Critical code patterns are correct (handler-before-connect, text fallback) 3. **Build verification**: Single-file bundle is valid and complete 4. **Styling verification**: Host theming applies correctly 5. **CSP verification**: All origins declared, no silent failures 6. **Migration verification**: No remaining legacy patterns (OpenAI, old MIME types, snake_case) ## Capabilities ### basic-host Test Execution - Build the MCP App - Start the server - Launch basic-host reference implementation against the server - Verify app loads without console errors - Verify handlers fire correctly ### Handler-Before-Connect Invariant - Search source code for `app.connect()` call - Verify ALL handlers (`ontoolinput`, `ontoolresult`, `onhostcontextchanged`, `onteardown`) are registered BEFORE connect - Flag violations -- handlers registered after connect will silently not work ### Text Fallback Verification - Search all tool handlers for `content` array in return value - Verify each tool returns at least one `{ type: 'text', text: '...' }` entry - Flag tools that only return `structuredContent` without text fallback ### Resource URI Link Integrity - Extract all `resourceUri` values from `registerAppTool` calls - Extract all URIs from `registerAppResource` calls - Verify every tool `resourceUri` has a matching registered resource - Flag orphaned resources (registered but not referenced) ### Single-File Bundle Verification - Build the project - Verify `dist/mcp-app.html` (or equivalent) exists - Check the HTML file is self-contained (no external `