how it works
- Claude Desktop & Web
- ChatGPT
- VS Code
- Goose
- screenpipe’s built-in chat
creating an MCP app
1. create your HTML UI
create a single HTML file with embedded CSS and JavaScript:2. register the UI resource
in your MCP server, add the UI as a resource:3. serve the HTML
in theReadResourceRequestSchema handler:
4. declare UI in tool response
when a tool returns results, include the UI reference:contributing an MCP app
want to add your UI to screenpipe? here’s how:file structure
submission checklist
- create your HTML file in the
ui/directory - keep it self-contained - all CSS/JS should be inline
- use dark theme - match screenpipe’s aesthetic
- test locally with MCP Inspector
- submit a PR with:
- your HTML file
- updates to
index.tsto register and serve it - a screenshot in the PR description
design guidelines
| aspect | guideline |
|---|---|
| background | #0a0a0a (dark) |
| cards | #1a1a1a with #333 border |
| text | #fafafa (light) |
| accent | #fff buttons, #666 secondary |
| font | system-ui, sans-serif |
| radius | 6-8px for cards and buttons |
example UIs to build
- timeline viewer - scroll through your day visually
- meeting notes - display transcriptions with speakers
- activity chart - visualize app usage over time
- search dashboard - rich search with filters
- memory cards - google photos-style flashbacks
testing your app
use MCP Inspector to test:- open the inspector at http://localhost:5173
- navigate to resources
- click your
ui://resource - verify the HTML renders correctly
api reference
host → app messages
app → host messages
security
MCP Apps run in sandboxed iframes with:- no access to parent DOM
- no cookies or localStorage from host
- restricted permissions (
allow-scriptsonly) - all communication via postMessage