About Iris
Iris is an MCP server for agents that need verifiable information about local images. It returns dimensions, format, and metadata by default, and invokes local Tesseract OCR only on request.
Key features
- 01Read dimensions, format, and metadata
- 02Run local OCR on request
- 03Return OCR text boxes and confidence
- 04Crop regions with bounds and hashes
- 05Compare pixel changes in equal-size images
Use cases
- 01Inspect image properties in screenshots
- 02Extract text with location and confidence
- 03Create citable evidence for an image region
- 04Compare changes across equal-size screenshots
MCP support
Iris runs as a stdio MCP server and provides image reading, probing, cropping, and comparison tools to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMerged 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.
Iris
Image facts with pixel-level proof.
Dimensions, format, and metadata by default. Local Tesseract OCR only when requested.
npm @sylphx/iris · bin iris · MCP io.github.SylphxAI/iris
The problem
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 difference
| 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.
Install
npx -y @sylphx/iris
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"] |
{
"mcpServers": {
"iris": { "command": "npx", "args": ["-y", "@sylphx/iris"] }
}
}
A read, then text only if you ask
{ "path": "/absolute/path/to/screenshot.png" }
fast, or no profile, returns dimensions, format, metadata, and trust warnings. It does not run OCR.
{
"path": "/absolute/path/to/screenshot.png",
"include_ocr": true
}
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.
Tools
| 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. |
What it will not pretend
- GPS fields are always redacted. There is no switch that puts them back.
- The default file cap is 32 MiB (33,554,432 bytes). A cropped region may not exceed 67,108,864 pixels.
compare_imagesrequires equal dimensions. It does not resize either image.- OCR lines are
{text, bbox, confidence}. The default language iseng. - Oversized or undecodable files fail with an error. They are not returned as a successful read.
Companion MCP tools
| 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.
Documentation
| Website | sylphxai.github.io/iris |
| Quickstart | Install and first call |
| Compare | What Iris does, and what it refuses |
Development
bun install
bun test
bun run check
bun run docs:build
cargo test
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.