| Filename | Latest commit message | Latest commit date |
|---|---|---|
The Windows WSL job is the critical path of every CI run (589 to 752 s). Its checkout sits on the Windows drive, which WSL reaches over 9P, and writing node_modules there is what makes npm ci take about three minutes where the Linux job takes 23 s. The step now copies the tree onto the distro's ext4 filesystem before installing and building, as Microsoft's WSL guidance recommends for I/O-heavy work. The e2e job downloaded the full Chromium build (about 165 MB) on every run, but a headless run with no channel launches chromium-headless-shell and never opens it. `--only-shell` skips that download. Every tsconfig now lists the @types packages it uses (node, bun, vite/client, dom-speech-recognition) instead of relying on TypeScript auto-including everything under node_modules/@types. On TypeScript 5.9 this is a no-op: identical diagnostics across all 48 projects and byte-identical emitted .d.ts files. It is a prerequisite for TypeScript 7, which drops the auto-inclusion; with these lists the Go compiler passes all 48 projects, so that upgrade becomes a version bump once TypeDoc supports it. Two cache-based approaches were evaluated and rejected: an npm cache for the WSL job (npm ci is slow there because of 9P, not downloads, and a prefix-restored cache grows without bound) and a Playwright browser cache (Playwright's docs advise against it; the download is under 10 s). |
||
| .. | ||
| src | ||
| .gitignore | ||
| grid-cell.png | ||
| main.ts | ||
| mcp-app.html | ||
| package.json | ||
| README.md | ||
| screenshot.png | ||
| server.ts | ||
| tsconfig.json | ||
| tsconfig.server.json | ||
| vite.config.ts | ||
Debug Server
A comprehensive testing/debugging tool for the MCP Apps SDK that exercises every capability, callback, and result format combination.
Tools
debug-tool
Configurable tool for testing all result variations:
| Parameter | Type | Default | Description |
|---|---|---|---|
contentType |
"text" | "image" | "audio" | "resource" | "resourceLink" | "mixed" |
"text" |
Content block type to return |
multipleBlocks |
boolean | false |
Return 3 content blocks |
includeStructuredContent |
boolean | true |
Include structuredContent in result |
includeMeta |
boolean | false |
Include _meta in result |
largeInput |
string | - | Large text input (tests tool-input-partial) |
simulateError |
boolean | false |
Return isError: true |
delayMs |
number | - | Delay before response (ms) |
debug-refresh
App-only tool (hidden from model) for polling server state. Returns current timestamp and call counter.
App UI
The debug app provides a dashboard with:
- Event Log: Real-time log of all SDK events with filtering
- Host Info: Context, capabilities, container dimensions, styles
- Callback Status: Table of all callbacks with call counts
- Actions: Buttons to test every SDK method:
- Send messages (text/image)
- Logging (debug/info/warning/error)
- Model context updates
- Display mode requests
- Link opening
- Resize controls
- Server tool calls
- File operations
Usage
# Build
npm run --workspace examples/debug-server build
# Run standalone
npm run --workspace examples/debug-server serve
# Run with all examples
npm start
Then open http://localhost:8080/basic-host/ and select "Debug MCP App Server" from the dropdown.