frameshot
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@frameshotScreenshot this React button component"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
frameshot
Give your AI agent eyes. Render components with real Vite imports, Tailwind, and CSS Modules — right in your terminal or AI chat. No story files required.
Claude Code
claude mcp add frameshot -- npx frameshot-mcp@latest{
"mcpServers": {
"frameshot": {
"command": "npx",
"args": ["frameshot-mcp@latest"]
}
}
}Watch mode — live AI feedback loop
The AI edits a file, saves it, and immediately sees how it looks — without you calling anything.
watch_start({ patterns: ["src/components/Button.tsx"] })
→ renders on every save → call watch_get_latest("watch-1") to see itThe agent fixes → saves → sees → fixes again. You just watch.
Related MCP server: rendex-mcp
GitHub Action — free Chromatic alternative
Two lines. Auto-detects changed components. Posts before/after/diff screenshots directly in the PR comment.
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: kamegoro/frameshot@v0.8.0Changed .tsx, .jsx, .vue, .svelte, .astro, .mdx files detected automatically. No Storybook. No signup. Free forever.
- uses: kamegoro/frameshot@v0.8.0
with:
paths: "./src/components/*.tsx" # default: auto-detect
extensions: ".jsx,.tsx,.vue" # default: .jsx,.tsx,.vue,.svelte,.astro,.mdx
exclude: "*.test.*,*.spec.*" # default: *.test.*,*.spec.*,*.stories.*Render any component
Point to a file. Get a screenshot. Full Vite pipeline.
render_file("src/components/Dashboard.tsx")Resolves your project's real imports, Tailwind config, CSS Modules, and path aliases — not a CDN polyfill.
Using with Claude
After installing, just describe what you want:
"Render src/components/PricingCard.tsx — does it look right?"
"Refactor the layout to CSS grid and show me before/after"
"Watch Button.tsx while I edit — tell me when something looks off"Claude calls render_file, diff_component, watch_start, or any other tool automatically.
Try it without an AI client
Works standalone on any React / Vue / Svelte project:
npx frameshot render src/components/Button.tsx
npx frameshot diff src/components/Header.tsx
npx frameshot catalog src/components/ --recursiveImages display inline in iTerm2, Kitty, and Sixel terminals. Saved to .frameshot/ by default.
First run installs Playwright's Chromium (~150MB). Subsequent renders are fast.
Tools
Tool | What it does |
| Render a file via Vite — real imports, Tailwind, CSS Modules |
| Pixel diff before/after — % changed, highlighted pixels |
| Watch files — auto-render on every save |
| Get the latest render from a watch session |
| Render every component in a directory at once |
| Screenshot any URL — localhost, staging, prod |
| Mobile + tablet + desktop in one call |
| Light + dark mode side by side |
| axe-core accessibility audit (WCAG violations) |
| Render a self-contained code snippet |
Tool | What it does |
| Render a project file with full Vite dependency resolution |
| Render a self-contained snippet → screenshot |
| Screenshot any URL with retry and network idle wait |
| Mobile + tablet + desktop in one call |
| Multiple prop/state variants at once |
| Light + dark mode side by side |
| Simulate click/hover/type, then screenshot |
| Multiple snippets in a labeled grid |
| Viewport × theme matrix in one call |
| Multi-frame CSS animation capture |
| Before/after pixel diff with % changed |
| Compare render against a reference image (Figma QA) |
| axe-core accessibility audit |
| DOM count, depth, render timing |
| Render all components in a directory |
| Save a render as named baseline |
| Compare current render against saved baseline |
| List all saved snapshots |
| Start watching files — renders on every save |
| Stop a watch session |
| Get the latest rendered screenshot from a session |
| List active watch sessions |
Performance
Scenario | Time |
Warm render (Vite server cached) | ~200–500ms |
CDN fallback (no Vite) | ~120ms |
Cold start (first render) | ~1–3s |
Subsequent renders (same session) | ~200ms |
Vite server is cached per project root. Browser pool stays warm between MCP calls.
vs. alternatives
Storybook | Chromatic | Browser MCP | frameshot | |
Setup | Stories + config | SaaS signup | Browser install |
|
Speed | Dev server startup | Cloud round-trip | 2–5s | ~200ms warm |
Cost | Free (labor cost) | $149–800+/mo | Free | Free forever |
Story files needed | Yes | Yes | No | No |
Real imports resolved | Via Storybook | Via Storybook | No | Via Vite |
Works offline | Yes | No | Yes | Yes |
Watch mode | No | No | No | Yes |
AI-native (MCP) | No | No | Full-page only | Component-level |
Development
git clone https://github.com/kamegoro/frameshot.git
cd frameshot && npm install
npx playwright install chromium
npm run build && npm testSee CONTRIBUTING.md for architecture details.
MIT © kamegoro
Maintenance
Related MCP Servers
- AlicenseAquality-maintenanceEnables AI tools to interact with browsers for enhanced frontend development, providing context to LLMs through tools like API call analysis, screenshots, element selection, and documentation ingestion.Last updated9910
- AlicenseAqualityBmaintenanceCapture screenshots, generate PDFs, and render HTML to images via AI agents. Supports batch capture, geo-targeting, async webhooks, and CSS/JS injection.Last updated112727MIT
- Alicense-qualityCmaintenanceProvides AI agents with isolated virtual desktops containing a real Chromium browser, enabling them to see, click, type, and navigate like a human, with features like snapshots and remote control.Last updated19AGPL 3.0
- Flicense-qualityDmaintenanceEnables AI agents to automate and debug real Chromium browsers with capabilities like screenshots, video recording, performance analysis, visual regression testing, and OCR text extraction.Last updated13
Related MCP Connectors
Generate images, GIFs, and PDFs from HTML, URLs, or templates — from your AI agent.
Capture screenshots, detect visual regressions between page versions, and analyze with AI.
Screenshots, PDFs and Markdown from any URL or HTML for AI agents, via the SnapForge API
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kamegoro/frameshot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server