Labsco
MCP SERVER

IIIF Images Server

by mikeapp

Read IIIF manifests and pull images — whole, or a percentage region zoomed in — already scaled to something a model can actually look at.

Stock Media LibrariesVerified
Summary
Region fetching is what makes a model useful on an archival scan.

A whole page scaled down to 800,000 pixels is legible as a layout and illegible as text. Asking for a percentage region — the bottom third, the marginal note, the signature — returns that area at the same pixel budget, which is enough to transcribe from. The natural loop is manifest first to see what the object contains, then the full image to orient, then regions for the parts you actually want read.

What it is

An MCP server for IIIF, the framework libraries, museums and archives use to publish high-resolution images. It fetches manifests, retrieves images through the IIIF Image API, and — the part that matters — scales what it returns to dimensions a model can process, so a gigapixel scan of a manuscript page becomes something answerable.

What you get
  • A IIIF manifest fetched and validated from a URL, so the structure of a digitised object can be read before any image is pulled — `fetch_iiif_manifest`
  • An image retrieved from its base URI, with `info.json` read first and the result capped at a 1500px dimension and 800,000 pixels total by default — `fetch_iiif_image`
  • A named region of that same image, given in IIIF's percentage form — `pct:` followed by x, y, width and height as percentages — scaled to the same limits, which is how you get real detail out of a page instead of a downscaled whole — `fetch_iiif_image_region`
Requirements

No account and no key — IIIF endpoints are public. The npm package name is `mcp-iiif-images` (1.0.0); install the released `.dxt` file by double-clicking it in Claude Desktop, or clone and run `npm install`. Stdio is the default; `--http` with an optional `--port` runs it over HTTP streaming on port 3000 by default. It needs the server on the other end to support IIIF Image API scaling: a Level 0 implementation, which serves only pre-generated tiles, will not work. Very large manifests may also be too much JSON for a client to process.

Setup effort

One command — npx -y github:mikeapp/mcp-iiif-images