Deprecated. Deprecated by the publisher: Merged into @sylphx/anymd (npx -y @sylphx/anymd).
Iris — image facts with pixel-level proof. OCR runs only when requested.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y @sylphx/iris
MCP client config
{
"mcpServers": {
"iris": {
"command": "npx",
"args": [
"-y",
"@sylphx/iris"
]
}
}
}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.
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"] }
}
}
{ "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.
| 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 |
bun install
bun test
bun run check
bun run docs:build
cargo test
MIT