immich-photo-manager
This server provides AI-powered management of self-hosted Immich photo libraries through natural language.
Server & Connectivity
Ping the server, get version, view library statistics (photos/videos/storage), retrieve connection info, and update credentials (URL & API key) without restarting.
Photo Search
AI Visual Search: CLIP-powered natural language search (e.g. "sunset at the beach") with optional location/date filters.
Metadata Search: Filter by EXIF data — city, state, country, camera make/model, date range, favorites, and media type.
Map Markers: Retrieve GPS-tagged assets with lat/lon coordinates to explore geographic distribution.
Asset Management
Fetch full metadata (EXIF, GPS, camera info) for specific assets.
Retrieve base64-encoded thumbnails or previews for single assets or in batch (no album required).
Album Management
List, create, update, and delete albums.
Add/remove assets from albums (photos are never deleted).
Get album details with all asset IDs and retrieve thumbnails for all photos in an album.
Sharing
Create public shared links for albums (with download/metadata options) and list all existing shared links.
Advanced Capabilities (via AI reasoning over the above tools)
Library health assessments, metadata repair suggestions, duplicate detection, and interactive HTML gallery generation.
Enables cross-source duplicate analysis to find re-encoded copies of photos imported from Apple Photos, using perceptual hashing to identify duplicates across different import sources.
Enables cross-source duplicate analysis to find re-encoded copies of photos imported from Google Photos, using perceptual hashing to identify duplicates across different import sources.
Provides intelligent photo management tools for Immich self-hosted photo libraries, including AI-powered search, geographic album creation, duplicate detection, metadata repair, storage optimization, and interactive gallery generation.
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.
What It Does
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.
Related MCP server: exif-mcp
Quick Start
Prerequisites
A running Immich instance (self-hosted, v1.90+)
An Immich API key (how to create one)
Python 3.10+ with
pip(download)
Install as Claude Plugin (recommended)
git clone https://github.com/drolosoft/immich-photo-manager.git
cd immich-photo-manager
claude plugin marketplace add .
claude plugin install immich-photo-managerThat's it. Ask Claude: "how healthy is my photo library?"
For manual MCP server setup, see Getting Started.
Works in Claude Code
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
Works with Any MCP Client
immich-photo-manager is an MCP server — it works with any AI assistant that speaks the Model Context Protocol, not just Claude.
============================================================
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...
22 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
Highlights
AI-powered search — natural language photo search via CLIP ("sunset at the beach", "birthday cake")
Geographic albums — create albums organized by place, combining GPS + CLIP + temporal matching
Metadata repair — fix noon/midnight timestamps, infer missing GPS from neighboring photos, correct timezone offsets
Library cleanup — detect screenshots, duplicates, and low-quality images with multi-signal analysis
Duplicate detection — cross-source analysis using perceptual hashing (finds re-encoded copies across Apple Photos, Google Photos, and other imports)
Library health — one command for asset inventory, metadata quality, storage breakdown, and recommendations
Interactive galleries — self-contained HTML pages with embedded thumbnails, 3 themes, 4 view modes, and a Cowork Actions Panel for batch operations
Select photos in the gallery, click an action, and paste the command into Claude. See Skills Reference for all 11 skills.
Why immich-photo-manager?
Immich is excellent at storing and viewing your photos. But managing a large library — deduplication, metadata repair, album curation, storage analysis — still requires manual effort or custom scripts.
Manual / scripts | immich-photo-manager | |
🔍 | Write API calls, parse JSON | Natural language — "find my sunset photos from Italy" |
🗺️ | Export GPS, cluster manually | Geographic albums — automatic GPS + CLIP + temporal matching |
🧹 | Hash files, diff checksums | Perceptual hashing — finds re-encoded duplicates across import sources |
🔧 | Edit EXIF one file at a time | Metadata repair — batch-fix timestamps, infer GPS, correct timezones |
📊 | Query database, build reports | Library health — one command for metadata quality, storage, recommendations |
🛡️ | Manual review of every action | Safety first — shows findings, asks before acting |
Documentation
Document | Description |
Installation, manual MCP setup, deployment options, and troubleshooting | |
All 11 skills — workflows, triggers, parameters, output formats | |
All 22 MCP tools — parameters, return types, examples | |
How base64-embedded thumbnails solve the Cowork sandbox restriction | |
Optional — enable direct URL thumbnail loading for browser-viewed galleries |
Contributing
Contributions are welcome — bug fixes, new skills, feature ideas. Open an issue or submit a PR.
If immich-photo-manager helps manage your library, consider giving it a star on GitHub — it helps others discover the project.
Support
If immich-photo-manager saved you time or made your photo library easier to manage, consider buying me a coffee — it keeps the next one coming!
License
MIT License — free to use, modify, and distribute.
Forged by Drolosoft · Tools we wish existed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/drolosoft/immich-photo-manager'
If you have feedback or need assistance with the MCP directory API, please join our Discord server