The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Image Reader MCP listing page.
Merged into anymd (2026-09-25). anymd reads PDFs, Office files, EPUB, web pages, images and video into clean Markdown for AI agents:
npx -y @sylphx/anymd. This repository is archived.
Dimensions, format, and metadata by default. Local Tesseract OCR only when requested.
npm @sylphx/iris · bin iris · MCP io.github.SylphxAI/iris
A screenshot is not a paragraph. An agent that guesses the text, the size, or the pixels it never measured will cite something it cannot show.
| The ask | Iris returns |
|---|---|
| “Read this screenshot.” | dimensions, format, metadata, and trust warnings. No OCR unless you ask. |
| “Read the text.” | OCR lines with boxes, only when include_ocr is true or profile is quality. |
| “What changed between these two captures?” | changed pixels and a changed box, when both images are the same size. |
| “Crop this region.” | pixel bounds and a hash. PNG bytes only if include_region_image is true. |
Iris does not run a generative vision model. A missing Tesseract binary is a gap, not a made-up transcription.
That starts a stdio MCP server. No API key. OCR needs the tesseract binary on PATH.
| Your client | Setup |
|---|---|
| Any agent / CLI | npx -y @sylphx/iris |
| Claude Code | claude mcp add iris -- npx -y @sylphx/iris |
| Claude Desktop / Cursor / VS Code / Codex | "command": "npx", "args": ["-y", "@sylphx/iris"] |
fast, or no profile, returns dimensions, format, metadata, and trust warnings. It does not run OCR.
include_ocr: true, or profile: "quality", runs local Tesseract. Explicit include_ocr: false wins over quality. If Tesseract is missing, status stays ok and gaps includes OCR_UNAVAILABLE.
| Tool | When to call it |
|---|---|
read_image | One local image. Geometry and metadata. OCR only when requested. An optional region crops inside this read. |
image_probe | Format, dimensions, pixel count, and source hash. No OCR and no crop. |
crop_region | One citeable region: bounds and hash. Set include_region_image for PNG bytes. No OCR. |
compare_images | Changed pixels between two images of equal dimensions. No OCR. |
compare_images requires equal dimensions. It does not resize either image.{text, bbox, confidence}. The default language is eng.| Product | Job |
|---|---|
| Citra | PDF answers with page-level proof |
| Cue | Video timelines and timestamp evidence |
| Spine | Repository architecture and impact |
| Locus | Exact code-chunk retrieval |
| Lookout | Web research with source excerpts |
Each product is independent. Install only the tools your agent needs.
| Website | sylphxai.github.io/iris |
| Quickstart | Install and first call |
| Compare | What Iris does, and what it refuses |
MIT