- mcp server
- mit
- node 20+
image-tiler-mcp-server
Stop LLMs from crushing your screenshots. Split large images into optimally-sized tiles so Claude, ChatGPT, and Gemini process full-resolution content, not a blurry downscale.

Presets
| Model | Tile size | Tokens / tile | Max dimension |
|---|---|---|---|
| Claude | 1,092px | ~1,590 | 1,568px |
| OpenAI | 768px | ~765 | 2,048px |
| Gemini 3 | 1,536px | ~1,120 | 3,072px |
| Gemini | 768px | ~258 | 768px |
Updated 03/01/2026. Any other model: pass a custom tile size.
Usage
# 1. send just the image, get a comparison table tiler(filePath: "screenshot.png") → model comparison table with token estimates → outputDir: "tiles/screenshot_v1/" # 2. pick a preset, get tiles with metadata tiler( filePath: "screenshot.png", preset: "claude", outputDir: "tiles/screenshot_v1/" )
FAQ
- Why does my LLM miss details in screenshots?
- Vision models have a maximum image dimension. Anything larger gets silently downscaled before the model sees it. A 3,600 x 20,220px screenshot becomes 279 x 1,568px, losing 99.4% of pixels. Buttons, labels, and fine UI details turn into unreadable noise.
- Does it work with URLs, not just local files?
- Yes. It captures full-page screenshots from any URL via headless Chrome with scroll-stitching support up to 200,000px tall. Ask to capture in mobile view and it sets a 390px viewport, 2x retina scale, and a mobile Safari user agent, so sites that detect the user agent or touch capability serve their real mobile HTML rather than a narrowed desktop layout.
- Will it waste tokens on blank tiles?
- No. Each tile is analyzed locally via Sharp for entropy-based content density: blank, low-detail, mixed, or high-detail. Blank and low-detail tiles are flagged so your LLM can skip them and spend tokens only where it matters.
- What input and output formats does it accept?
- Local file paths, remote URLs, base64 strings, and data URIs. Output is WebP by default or lossless PNG. Iterative runs write to versioned directories (_v1, _v2) so previous results are never overwritten.
- Can I use it for visual QA: capture, analyze, fix, re-verify?
- That's the primary workflow. Point it at a URL, tile the result, and let your LLM flag layout issues, misaligned elements, or broken styling at full resolution. Fix the code, re-capture, and the server writes to a new versioned directory (_v2, _v3, ...) so you can compare before and after without losing prior runs.
- Can I get just a screenshot without tiling?
- Yes. Ask for a screenshot and stop after the comparison step. The server returns the full-page capture and the interactive HTML preview without slicing the image into tiles.