Iris

io.github.SylphxAIPublished by GitHub account SylphxAIv0.4.1Updated Oct 24, 2026

Iris — image facts with pixel-level proof. OCR runs only when requested.

VerifiedSTDIODesktop onlyFiles & StorageMedia & Design

Overview

AI-generated overview

Iris is a local MCP server that gives an assistant measured facts about images — dimensions, format, metadata, crops and pixel diffs — with optional local OCR.

What you can do
Read one local image for geometry, metadata and trust warnings, with an optional crop region and optional OCR text lines with boxes and confidence scores. Probe an image for format, dimensions, pixel count and source hash without OCR or cropping. Crop a region to citeable bounds and a hash, returning PNG bytes only when asked. Compare two same-size images to report changed pixels and a changed box.
When to use it
Use it when an assistant needs verifiable facts about screenshots or other local images rather than a guessed description: checking size and format, extracting text from an image, citing a specific region, or spotting what changed between two captures.
Requirements
Runs as a local stdio process, started with npx from the npm package; Node.js and network access for the package fetch are implied. No API key is needed. OCR requires the tesseract binary on PATH; without it, reads still succeed but report an OCR_UNAVAILABLE gap.
Before you install
It reads local image files by path, so point it only at files you are willing to expose to the assistant. OCR runs locally and only when requested. GPS metadata fields are always redacted and cannot be restored. Files over the default 32 MiB cap or undecodable files fail with an error. The README states the project is archived and merged into another tool, so it may not receive updates.

Installation

In SourceWeft

  1. Open Iris in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

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]

Iris

Image facts with pixel-level proof.

Dimensions, format, and metadata by default. Local Tesseract OCR only when requested.

[npm] [license]

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 askIris 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

bash
npx -y @sylphx/iris

That starts a stdio MCP server. No API key. OCR needs the tesseract binary on PATH.

Your clientSetup
Any agent / CLInpx -y @sylphx/iris
Claude Codeclaude mcp add iris -- npx -y @sylphx/iris
Claude Desktop / Cursor / VS Code / Codex"command": "npx", "args": ["-y", "@sylphx/iris"]
json
{  "mcpServers": {    "iris": { "command": "npx", "args": ["-y", "@sylphx/iris"] }  }}

A read, then text only if you ask

json
{ "path": "/absolute/path/to/screenshot.png" }

fast, or no profile, returns dimensions, format, metadata, and trust warnings. It does not run OCR.

json
{  "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.

Reference: tools · defaults

Tools

ToolWhen to call it
read_imageOne local image. Geometry and metadata. OCR only when requested. An optional region crops inside this read.
image_probeFormat, dimensions, pixel count, and source hash. No OCR and no crop.
crop_regionOne citeable region: bounds and hash. Set include_region_image for PNG bytes. No OCR.
compare_imagesChanged 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_images requires equal dimensions. It does not resize either image.
  • OCR lines are {text, bbox, confidence}. The default language is eng.
  • Oversized or undecodable files fail with an error. They are not returned as a successful read.

Companion MCP tools

ProductJob
CitraPDF answers with page-level proof
CueVideo timelines and timestamp evidence
SpineRepository architecture and impact
LocusExact code-chunk retrieval
LookoutWeb research with source excerpts

Each product is independent. Install only the tools your agent needs.

Documentation

Development

bash
bun installbun testbun run checkbun run docs:buildcargo test

License

MIT

Source: README.md at commit 90fb41a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

4
  1. v0.4.1LatestSep 23, 2026
  2. v0.4.0Sep 23, 2026
  3. v0.3.3Sep 23, 2026
  4. v0.3.2Sep 23, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts