Layout Detector MCP
An MCP (Model Context Protocol) server that analyzes webpage screenshots to extract layout information. Given a screenshot and image assets, it finds where each asset appears and calculates spatial relationships - enabling AI assistants to rebuild layouts with proper semantic structure.
Quick Start
Install from GitHub
Or clone and install locally
Verify installation:
Configuration
Add to your Claude Code MCP settings (~/.claude.json or project .claude/settings.json):
After adding the configuration, restart Claude Code and run /mcp to verify the server is connected.
The Problem
When an AI assistant looks at a screenshot, it can describe what it sees but cannot extract precise pixel measurements. This makes it difficult to accurately recreate layouts without human intervention or extensive trial-and-error.
The Solution
This MCP server uses computer vision (OpenCV template matching) to:
Find known assets - Locate images within a screenshot with pixel-perfect coordinates
Analyze relationships - Calculate angles, distances, and relative positions
Detect patterns - Identify radial, grid, stacked, sidebar, or freeform layouts
Enable semantic rebuilds - Provide structured data for modern CSS implementation
Tools
analyze_layout
Performs full layout analysis including pattern detection. This is the main tool you'll use.
Parameters:
screenshot_path(string, required): Absolute path to the screenshot imageasset_paths(array of strings, required): Absolute paths to asset images to findthreshold(number, optional): Match confidence 0-1, default 0.8
Returns:
find_assets_in_screenshot
Locates image assets within a screenshot without layout analysis.
Parameters:
screenshot_path(string, required): Path to the screenshot imageasset_paths(array of strings, required): Paths to asset images to findthreshold(number, optional): Match confidence 0-1, default 0.8
Returns:
get_screenshot_info
Get basic screenshot dimensions.
Parameters:
screenshot_path(string, required): Path to the screenshot image
Returns:
Supported Layout Patterns
Pattern | Description | Key Data Returned |
Radial | Elements arranged around a center point | Center element, angles, distances |
Grid | Elements in rows and columns | Row/column positions, gaps |
Stacked | Vertical sections (header/main/footer) | Section names, Y positions |
Sidebar | Two-column with narrow sidebar | Sidebar side, widths |
Freeform | No clear pattern | Raw X/Y coordinates |
Example Usage
Once configured, Claude Code can use these tools:
Supported Image Formats
PNG
JPEG
GIF (including animated - uses first frame)
WebP
BMP
Troubleshooting
"No module named 'cv2'"
OpenCV isn't installed. Run:
MCP server not showing in /mcp
Check your settings file path is correct
Ensure the command path is absolute (for source installs)
Restart Claude Code after changing settings
Run
python3 test_install.pyto verify the package works
Low confidence matches
Try lowering the threshold parameter (default 0.8). Values between 0.6-0.7 may help with compressed or scaled images.
Development
Requirements
Python 3.11+
OpenCV (opencv-python-headless)
NumPy
Pillow
MCP SDK
License
MIT