Iris
Iris — image facts with pixel-level proof. OCR runs only when requested.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
@sylphx/irisclaude mcp add iris -- npx -y @sylphx/iris@0.4.1
{
"mcpServers": {
"iris": {
"command": "npx",
"args": [
"-y",
"@sylphx/iris@0.4.1"
]
}
}
}
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
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.
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
Frequently asked questions
What is Iris?
Iris — image facts with pixel-level proof. OCR runs only when requested.
How do I install Iris?
It runs on your machine. In Claude Code: claude mcp add iris -- npx -y @sylphx/iris@0.4.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Iris need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is Iris open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Iris?
It is published by SylphxAI. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.