By drolosoft
Manage self-hosted Immich photo libraries through Claude: organize albums by geography, detect duplicates and junk, fix metadata, analyze storage, search visually, and generate interactive map galleries.
Scan library for screenshots, duplicates, junk
Create a geographic album from a location
Check Immich connection and library stats
Discover all travel destinations in your photo library
First-time setup or credential update — configure your Immich MCP server connection and verify everything works
Analyze the photo timeline to find suspicious gaps — months or years with zero or very few photos. Helps identify failed imports, missing backups, or periods where photos exist in only one ecosystem. Use when the user says "timeline gaps", "missing months", "missing photos", "are there gaps", "what months am I missing", "photo timeline", "coverage check", "find missing periods", "when am I missing photos", or any variation of wanting to find holes in their photo timeline.
Generate an interactive map showing every location where photos were taken, clustered by city/region with photo counts, date ranges, and album links. Outputs a standalone HTML file with Leaflet.js that can be hosted or viewed locally. Use when the user says "travel map", "show me everywhere I've been", "photo map", "map my photos", "where have I traveled", "GPS map", "location map", "map of my trips", "generate a map", "interactive map", or any variation of wanting to see their photos plotted on a map.
Create, curate, and publish Immich albums organized by geography, theme, or custom criteria. Use when the user says "create an album", "organize my photos by location", "make a gallery album", "curate photos from Italy", "publish album", "geographic albums", "album from my trip to X", "share this album", or any variation of creating, managing, or publishing photo albums in Immich. Also triggers on "what albums do I have", "list albums", "album stats", "show me photos from", "generate gallery for", "show me the album".
Monitor your Immich library for new photos that match existing albums and suggest additions. Keeps albums fresh by finding new photos that belong in existing collections based on GPS location, visual similarity (CLIP), and date patterns. Use when the user says "update my albums", "refresh albums", "new photos for albums", "curate albums", "auto-curate", "keep albums fresh", "album suggestions", "what new photos belong in my albums", "smart album update", or any variation of wanting to keep their albums up to date with recent imports.
Run a comprehensive duplicate analysis on an Immich photo library using perceptual hashing. Finds cross-source duplicates (e.g. Apple Photos vs Google Photos exports), internal duplicates, and generates a detailed report with removal recommendations. Use when the user says "find duplicates", "duplicate report", "how many duplicates", "library health check", "photo dedup report", "run duplicate analysis", "compare my photo sources", or any variation of wanting to understand duplicate photos across import sources.
Requires secrets
Needs API keys or credentials to function
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
MCP server for intelligent photo management with Immich — your self-hosted library, understood.
If your Immich library has grown past what you can manage by hand, immich-photo-manager gives any AI assistant direct access to your instance — search, organize, deduplicate, and curate albums through natural conversation. Works with Claude, Gemma, or any MCP-compatible client. Runs locally — your photos never leave your server.

Say "create albums for all my trips" and watch it work:

GPS coordinates, CLIP visual search, and temporal matching — combined in one request to create dozens of curated albums. No scripts, no manual sorting.
pip (download)git clone https://github.com/drolosoft/immich-photo-manager.git
cd immich-photo-manager
claude plugin marketplace add .
claude plugin install immich-photo-manager
That's it. Ask Claude: "how healthy is my photo library?"

For manual MCP server setup, see Getting Started.
The same plugin runs in Claude Code — search your library, curate albums, and generate galleries right from the terminal.

Full conversation transcript: Claude Code demo
immich-photo-manager is an MCP server — it works with any AI assistant that speaks the Model Context Protocol, not just Claude.
Use the package entry point directly with uvx:
{
"mcpServers": {
"immich": {
"command": "uvx",
"args": ["immich-photo-manager"],
"env": {
"IMMICH_BASE_URL": "https://your-immich-server.com",
"IMMICH_API_KEY": "your-api-key"
}
}
}
}
immich-photo-manager defaults to MCP stdio transport. Set MCP_TRANSPORT=http when you want to run the server as a Streamable HTTP service.
============================================================
IMMICH-PHOTO-MANAGER × GEMMA 4 (LM STUDIO)
============================================================
Immich: https://your-immich-server.com
Model: gemma4-26b-it (local, LM Studio)
Query: "Show me my Lanzarote albums"
1. Getting MCP tool schemas...
50 MCP tools available
2. Asking Gemma 4...
Gemma 4 chose: list_albums({})
3. Executing 'list_albums' against Immich...
Found 124 total albums, 14 Lanzarote albums:
- Lanzarote Amarillo (26 photos)
- Lanzarote Rojo (201 photos)
- Lanzarote Azul (187 photos)
- Lanzarote Marrón (208 photos)
- Lanzarote Negro (193 photos)
- Lanzarote Verde (201 photos)
- Lanzarote Gasolina (174 photos)
...
4. Gemma 4 interpreting results...
"I found 14 Lanzarote albums — 7 color-themed with
1,190 photos and 7 location-specific albums."
RESULT: Zero cloud dependency — fully self-hosted stack.
| Client | Status |
|---|---|
| Claude Code | Tested |
| Claude Desktop | Tested |
| LM Studio (Gemma 4) | Tested |
| Cursor, Windsurf, VS Code, Cline, Zed | Compatible (MCP stdio) |
Full transcript: Gemma 4 demo · Test script:
test-lmstudio-mcp.py
npx claudepluginhub drolosoft/immich-photo-manager --plugin immich-photo-managerAI-powered visual asset management for Claude Code. Search, tag, analyze, edit, and organize your media library using natural language.
Start or reuse a self-contained local web gallery for browsing Codex-generated images. Use when the user asks to browse Codex generated images, open a local image gallery, inspect ~/.codex/generated_images, view a Codex image output folder, or browse image files produced by Codex.
Strip sensitive EXIF metadata from images before publishing. Auto-strips on commit, or use /exif:strip manually.
Auto-resize oversized screenshots to prevent Claude API dimension errors and session corruption
Computer vision image processing and analysis
Harness-native ECC operator layer - 67 agents, 278 skills, 94 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses