immichctrl
ActiveYour Immich library holds your whole life in photos, but the web UI is built for clicking, not for "find every duplicate and tell me which to keep" across thousands of assets. immich-mcp hands the library to your agent as typed, write-gated tool calls: smart search, albums, people, memories, and checksum-safe dedupe, all over stdio.
See it workrepresentative session
Representative session. Illustrative values, RFC 5737 addresses. Nothing leaves your box, and no write runs without IMMICH_ALLOW_WRITES plus a per-call confirm.
What it does
immich-mcp (repo immichctrl) is an operator control surface for Immich, the self-hosted photo and video library: an MCP adapter plus a read-only `immichctrl` CLI for shells and cron. Point any MCP client at it and Immich's REST API becomes 74 schema-validated tools across 16 domains, so an agent can smart-search by natural language, curate albums and tags, recognize and merge people, surface "on this day" memories, and resolve duplicates in plain language instead of clicking through a grid. It differs from other Immich MCP servers in breadth and safety: it covers memories, motion-photo stacks, checksum-safe duplicate resolution, trash auditing, and job control, and it ships a two-tier write model where reads always work but every write hides behind `IMMICH_ALLOW_WRITES=true` and every destructive call demands a per-request `confirm: true`, so an agent cannot quietly delete your photos.
Capabilities74 tools across 16 domains
Search & discovery
3 toolsCLIP smart search, structured metadata search, and a server-side explore feed.
Assets & EXIF
11 toolsList, read metadata and EXIF, favorite, archive, rate, geotag, trash, restore, and confined upload.
Albums, tags & shared links
20 toolsFull lifecycle for albums, tags, and shared links, plus search-then-album in one gated step.
People & faces
7 toolsEnumerate faces, rename, hide, suggest names for unnamed clusters, and merge duplicate clusters.
Duplicates & dedupe
10 toolsCategorize groups, find byte-identical and CLIP dupes, audit active library and trash, resolve by keep strategy.
Memories, stacks, trash & jobs
16 toolsOn-this-day lanes and daily digest, motion-photo stacks, trash audit and empty, and background job control.
Setup
npm i -g immich-mcp (or npx -y immich-mcp, no install)
Set IMMICH_BASE_URL (note the /api suffix) and IMMICH_API_KEY from Account Settings > API Keys. IMMICH_ALLOW_WRITES defaults to false; set true to expose write and delete tools. Optional: IMMICH_UPLOAD_BASE_DIR to allow confined path uploads, IMMICH_VERIFY_SSL=false for self-signed certs.
{ "mcpServers": { "immich-mcp": { "command": "npx", "args": ["-y", "immich-mcp"], "env": { "IMMICH_BASE_URL": "https://photos.example.com/api", "IMMICH_API_KEY": "YOUR_KEY", "IMMICH_ALLOW_WRITES": "false" } } } }