kaleidoscope
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., "@kaleidoscopeCapture screenshots of localhost:3000 on iPhone and desktop"
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.
Kaleidoscope
Kaleidoscope is a local-first responsive visual QA tool for web apps and coding agents. It lets you preview a page across real device emulation profiles, capture evidence, inspect rendered elements, and verify a UI edit against a structured layout baseline.
Use the visual workspace when you want to review a page yourself. Use the included MCP server when an agent needs browser evidence before or after changing UI code.
Why Kaleidoscope
Code can tell an agent what it changed; it cannot prove what the browser rendered. Kaleidoscope closes that gap with a tight browser-feedback loop:
capture a page across selected device profiles;
make a UI change;
recapture after the app rebuilds; and
return a concise
noChange,changed, orinconclusiveverdict, with the affected elements and source locations when available.
It is deliberately local-first: the server binds to loopback by default and inspect mode is restricted to trusted local pages.
Related MCP server: paparazzi
What You Can Do
Review responsive layouts visually
Load local or public HTTP/HTTPS pages once and compare mobile, tablet, and desktop profiles side by side.
Pin device frames, switch quickly between profiles, and use a stacked comparison view on narrow screens.
Use Playwright device emulation for supported profiles, including the appropriate mobile/touch defaults where available.
Capture visual evidence
Capture viewport or full-page screenshots across several devices in one run.
Save screenshots locally and return chat-ready image paths, Markdown image tags, resource links, and inline previews when the MCP client supports them.
Compare two captured PNGs pixel by pixel and produce a highlighted diff image with exact mismatch metrics.
Verify a UI edit structurally
Capture a structured layout baseline across one or more devices before editing.
Recapture after the edit and compare visible elements for additions, removals, text changes, and significant geometry changes.
Receive a short no-change verdict when the rendered layout is stable; otherwise receive a ranked, source-attributed summary of affected elements.
Layout comparison uses stable selectors and fallback identities where possible. Pixel comparison is available separately for screenshots captured at matching dimensions.
Discover failures between device presets
Sweep a continuous viewport range rather than checking only a few named devices.
Return compact sampled width ranges for deterministic failures: document-level horizontal overflow and visible interactive controls clipped horizontally.
Start with a clear, concrete signal instead of asking an agent to inspect dozens of screenshots. A clear result means none of the currently supported checks found a problem, not that every possible visual defect has been ruled out.
Connect a rendered element to its code
Find likely visible elements from a natural-language query such as “save button” or “hero section.”
Inspect a selected element on a trusted local page and return viewport context plus runtime source metadata when it is available.
Use the same source attribution in layout comparison results to help an agent move from a rendered regression to the responsible component.
Give coding agents browser tools
Kaleidoscope is available as a stdio MCP server for Claude Code, Codex, Cursor, Windsurf, VS Code, and other MCP clients. It can start its packaged runtime automatically, capture artifacts, inspect local pages, and return structured results instead of only prose.
Visual Tour
Agent Workflows
Prove an edit did not disturb the rest of the page
Ask your agent to:
Use Kaleidoscope to capture a layout baseline for http://localhost:3000/checkout on iphone-14, ipad, and desktop. After I edit the checkout form, wait for the app to reload and compare it with the baseline. Report only meaningful layout or text changes and their source locations.The agent can use kaleidoscope_read_layout, wait for the target app to rebuild, then call kaleidoscope_after_edit. Layout captures are stored in the running server for a limited time; they are not durable project baselines yet.
Find the code behind a rendered problem
On http://localhost:3000/checkout, find the save button on an iPhone 16 viewport and inspect its source under c:/Code/my-app/src.Use discover_page_elements to obtain ranked selector candidates, then inspect_element_source for the source payload. Inspect mode only accepts loopback URLs.
MCP Client Setup
No global install is required. Configure your MCP client to run the package through npx:
npx -y kaleidoscope-mcp-server@latestClaude Code, Claude Desktop, Cursor, Windsurf, VS Code, and similar clients:
{
"mcpServers": {
"kaleidoscope": {
"command": "npx",
"args": ["-y", "kaleidoscope-mcp-server@latest"],
"env": {
"KALEIDOSCOPE_SERVER_URL": "http://localhost:5000"
}
}
}
}Codex config.toml:
[mcp_servers.kaleidoscope]
command = "npx"
args = ["-y", "kaleidoscope-mcp-server@latest"]
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 60
[mcp_servers.kaleidoscope.env]
KALEIDOSCOPE_SERVER_URL = "http://localhost:5000"Codex desktop connector UI:
Name:
kaleidoscopeTransport:
STDIOCommand to launch:
npxArguments:
-y,kaleidoscope-mcp-server@latestEnvironment variable:
KALEIDOSCOPE_SERVER_URL=http://localhost:5000Working directory: leave blank
The npm package includes the Kaleidoscope MCP server, backend, and built web client. When an MCP tool needs Kaleidoscope and no server is already running, it can start the packaged runtime automatically.
Optional Global Install
npm install -g kaleidoscope-mcp-server@latestThen run kaleidoscope-mcp from the MCP client configuration instead of npx.
MCP Tool Reference
Tool | Use it for |
| Checking the local Kaleidoscope runtime. |
| Listing supported device profiles and default screenshot devices. |
| Opening a URL in the Kaleidoscope multi-device workspace. |
| Saving viewport or full-page screenshots across selected device profiles. |
| Comparing two captured PNGs and producing mismatch metrics plus a diff image. |
| Finding visible elements from a natural-language query. |
| Resolving a local rendered element to source context. |
| Capturing a structured, optionally source-attributed layout baseline. |
| Recapturing and comparing a page after a known rebuild. |
| Sweeping a width range to find sampled horizontal-overflow and clipped-control failures. |
The tool descriptions above are also exposed to MCP clients at runtime, so agents can discover the available structured inputs and outputs directly.
Device Profiles
The shared device catalog includes iPhone 14–17, Samsung Galaxy S21/S24/S24 Ultra/S25 Ultra, Pixel 6, iPad, iPad Pro, MacBook Air, Desktop HD, and Desktop 4K. Use kaleidoscope_list_devices for the authoritative runtime list and dimensions.
Environment Options
KALEIDOSCOPE_SERVER_URL: Kaleidoscope backend URL. Defaults tohttp://localhost:5000.KALEIDOSCOPE_REQUEST_TIMEOUT_MS: MCP request timeout. Defaults to60000.KALEIDOSCOPE_WORKSPACE_ROOT: source-inspection root for local projects.KALEIDOSCOPE_PROXY_TIMEOUT_MS: proxy request timeout. Defaults to30000.KALEIDOSCOPE_PROXY_MAX_RESPONSE_BYTES: proxy response byte limit. Defaults to10485760.KALEIDOSCOPE_LAYOUT_CAPTURE_MAX_AGE_MS: how long in-memory layout captures remain available. Defaults to7200000(two hours).KALEIDOSCOPE_LAYOUT_CAPTURE_MAX_COUNT: maximum in-memory layout captures retained by the server. Defaults to50.
Current Boundaries
Pixel comparison requires two PNGs with identical dimensions; persistent named baselines and broad automatic visual issue finding are not yet provided.
Breakpoint scanning currently detects horizontal document overflow and horizontally clipped in-viewport interactive controls. It reports sampled ranges, not exact CSS-media-query boundaries, and it does not yet diagnose the responsible source rule.
Layout and screenshot capture use the supported Chromium/Playwright runtime; they are not Safari or Firefox rendering verification.
Runtime source attribution is best effort and depends on the target app's build/runtime metadata.
Inspect mode is limited to trusted loopback targets such as
localhostand127.0.0.1.Inspect sessions and layout captures are temporary, local runtime state.
Troubleshooting
Browser executable not found: runnpx playwright install chromiumin the environment that launches the MCP server.spawn C:\Windows\system32\cmd.exe ENOENT: install the package globally and configure your MCP client to runkaleidoscope-mcpdirectly.sourceDir must be inside...: setKALEIDOSCOPE_WORKSPACE_ROOTto the project root you want Kaleidoscope to inspect.Port conflicts: set
KALEIDOSCOPE_SERVER_URL=http://localhost:<free-port>or stop the process using port5000.
Privacy And Safety
Kaleidoscope is designed for local preview and inspection workflows.
The local API binds to
127.0.0.1by default.Inspect mode is limited to loopback targets, and source reads must stay under
KALEIDOSCOPE_WORKSPACE_ROOT.
License
Kaleidoscope is released under the MIT License. See LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/Nathanael-R/kaleidoscope'
If you have feedback or need assistance with the MCP directory API, please join our Discord server