immich-photo-manager
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PYTHONPATH | No | Absolute path to the src/ directory of the cloned repository (required for manual setup) | |
| MCP_TRANSPORT | No | The MCP transport mode (default is stdio) | stdio |
| IMMICH_API_KEY | Yes | Your Immich API key (required for authentication) | |
| IMMICH_BASE_URL | Yes | The base URL of your Immich instance (e.g., https://your-immich-server.com) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Check Immich server connectivity. Use this to verify the server is reachable before running other operations. Read-only. |
| get_server_versionA | Get the Immich server version. Use this to check compatibility or report the running server version. Read-only. |
| get_statisticsA | Get library statistics. Use this for a quick overview of library size without listing individual assets. Read-only. |
| update_credentialsA | Update the Immich connection credentials. Use this when the API key has been rotated or the server URL changed. Validates credentials before applying. Side effect: persists new credentials to disk and hot-swaps the live connection. |
| get_asset_infoA | Get full metadata for a single asset. Use this when you need EXIF details, GPS coordinates, camera info, or file properties for a known asset ID. For finding assets, use search_metadata or search_smart instead. Read-only. |
| update_asset_metadataA | Update metadata fields on a specific asset. Use this to fix dates, correct GPS, add descriptions, or change favorite/rating status. Only provided fields are modified. Side effect: permanently changes asset metadata in Immich. |
| rotate_assetsA | Apply a non-destructive clockwise rotation to one or more assets. Use this to fix orientation issues. The original file is never modified — rotation is a display transform only. Use revert_asset_edits to undo. Provide EITHER asset_ids OR album_id. Side effect: writes rotation edits to Immich; accumulates with existing rotation. |
| revert_asset_editsA | Remove all non-destructive edits (rotation, crop, mirror) from assets, restoring original appearance. Use this to undo rotate_assets or any other display transforms. Provide EITHER asset_ids OR album_id. Side effect: deletes all edit records for the assets. |
| get_map_markersA | Get GPS map markers for all geotagged assets. Use this to discover where photos were taken or to build travel maps. For searching by city/country name, use search_metadata instead. Read-only. Returns up to 500 markers. |
| search_metadataA | Search assets by EXIF metadata fields. Use this when you know specific criteria like city, camera model, or date range. For natural language visual queries (e.g. 'sunset at the beach'), use search_smart instead. For browsing without criteria, use list_assets. Read-only. |
| search_smartA | AI-powered visual search using CLIP embeddings. Use this when describing what a photo looks like in natural language (e.g. 'sunset at the beach', 'dog playing fetch'). For structured criteria (city, camera, date), use search_metadata instead. Requires Immich ML service with Smart Search enabled. Read-only. |
| list_albumsA | List all albums in the library with summary info. Use this to discover existing albums before creating new ones or to find an album ID. Read-only. |
| get_albumA | Get full details for a specific album including all its asset IDs. Use this to inspect album contents or retrieve asset IDs for further operations (thumbnails, metadata, rotation). For listing all albums, use list_albums instead. Read-only. |
| create_albumA | Create a new album, optionally pre-populated with assets. Use this to organize photos into collections. Side effect: creates a new album in Immich. |
| update_albumA | Update an album's name or description. Use this to rename or re-describe an existing album. Side effect: modifies album metadata in Immich. |
| delete_albumA | Delete an album container. The photos inside are NOT deleted — they remain in the library. Use this to remove unwanted album groupings. Side effect: permanently deletes the album (cannot be undone). |
| add_assets_to_albumA | Add existing assets to an album. Use this to curate albums from search results or other asset lists. Assets can belong to multiple albums simultaneously. Side effect: modifies album membership. |
| remove_assets_from_albumA | Remove assets from an album without deleting them. The photos remain in the library and other albums. Use this to un-curate mistakenly added assets. Side effect: modifies album membership. |
| get_asset_thumbnailA | Get a base64-encoded thumbnail image for a single asset. Use this to visually inspect one photo. For multiple photos, use get_thumbnails_batch (by IDs) or get_album_thumbnails (by album). Read-only. |
| get_album_thumbnailsA | Get base64-encoded thumbnails for photos in an album. Use this to generate visual HTML galleries from an existing album. For thumbnails from search results (no album), use get_thumbnails_batch instead. Read-only. |
| get_thumbnails_batchA | Get base64-encoded thumbnails for arbitrary asset IDs without needing an album. Use this to visually display search results or any ad-hoc set of photos. For album-based thumbnails, use get_album_thumbnails. For a single photo, use get_asset_thumbnail. Read-only. |
| list_shared_linksA | List all shared links (public gallery URLs). Use this to see what's currently shared publicly or to find a link ID for updates/deletion. Read-only. |
| create_shared_linkA | Create a public shared link for an album, making it accessible via URL without authentication. Use this to publish a gallery for external viewing. Side effect: creates a publicly accessible URL. |
| get_shared_linkA | Get full details of a shared link including permissions, expiry, and linked assets. Use this to inspect a specific link's configuration. Read-only. |
| update_shared_linkA | Update a shared link's permissions or expiry. Use this to tighten/loosen access or set an expiration date. Side effect: changes public link behavior immediately. |
| delete_shared_linkA | Delete (revoke) a shared link, making the public URL immediately inaccessible. The album and its photos are unaffected. Side effect: permanently removes the link. |
| get_connection_infoA | Return the Immich base URL and a masked API key. Use this to populate gallery template placeholders (e.g. {{IMMICH_URL}}). The API key is intentionally masked for security — thumbnails use base64 data URIs, not direct API calls. Read-only. |
| list_peopleA | List all recognized people (face clusters) in the library. Use this to browse who appears in the photo library or find a person's ID. For searching by name, use search_people instead. Read-only. |
| get_personA | Get full details for a specific person including name, birth date, and photo count. Use this after finding a person via list_people or search_people. Read-only. |
| update_personA | Update a person's profile details. Use this to name unnamed faces, set birth dates, hide clutter faces, or change the representative thumbnail. Only provided fields are modified. Side effect: changes person metadata in Immich. |
| merge_peopleA | Merge multiple person clusters into one. Use this when the same real person has been split into multiple face clusters. DESTRUCTIVE and IRREVERSIBLE: merged persons are permanently deleted and all their faces transfer to the target. |
| search_peopleA | Search for people by name (partial match). Use this when you know the person's name. For browsing all people, use list_people instead. Read-only. |
| get_person_thumbnailA | Get a base64-encoded face crop thumbnail for a person. Use this to visually identify a person before merging or renaming. Read-only. |
| get_asset_facesA | Get all detected faces in a photo with their person assignments. Use this to see who is in a specific photo or to find face IDs for reassign_face. Read-only. |
| reassign_faceA | Reassign a detected face to a different person. Use this to correct face recognition mistakes (e.g. a face wrongly attributed to Person A should be Person B). Get face_id from get_asset_faces first. Side effect: permanently changes face-to-person mapping. |
| delete_assetsA | Delete assets (soft-delete to trash or permanent). Use this to remove unwanted photos/videos. Default is soft-delete (recoverable via restore_assets). With force=true, deletion is PERMANENT and IRREVERSIBLE. Side effect: moves/deletes assets. |
| empty_trashA | Permanently delete ALL assets currently in trash. DESTRUCTIVE and IRREVERSIBLE. Use this only after confirming the user wants to purge all trashed items. For deleting specific assets, use delete_assets instead. Side effect: permanently destroys all trashed assets and frees storage. |
| restore_trashA | Restore ALL trashed assets back to the library. Use this to undo an accidental bulk deletion. For restoring specific assets only, use restore_assets instead. Side effect: moves all trashed assets back to the active library. |
| restore_assetsA | Restore specific assets from trash back to the active library. Use this to selectively recover accidentally deleted photos. For restoring everything at once, use restore_trash instead. Side effect: moves specified assets out of trash. |
| get_duplicatesA | Get all ML-detected duplicate asset groups. Use this to review potential duplicates before resolving them with resolve_duplicates. Requires Immich ML service. Read-only. |
| resolve_duplicatesA | Resolve duplicate groups by choosing which assets to keep and which to trash. Use this after reviewing results from get_duplicates. Trashed assets can still be recovered via restore_assets. Side effect: moves rejected duplicates to trash. |
| list_tagsA | List all tags in the library. Use this to discover existing tags before creating new ones or to find a tag ID for tagging operations. Read-only. |
| get_tagA | Get details for a specific tag. Use this to inspect a tag's properties. Read-only. |
| create_tagA | Create a new tag for categorizing assets. Use list_tags first to avoid duplicates. Side effect: creates a new tag in Immich. |
| update_tagA | Update a tag's name or color. Side effect: changes apply to all assets using this tag. |
| delete_tagA | Delete a tag and remove it from all assets. The assets themselves are unaffected. Side effect: permanently deletes the tag (cannot be undone). |
| tag_assetsA | Apply a tag to multiple assets at once. Use this to bulk-categorize photos (e.g. tag all vacation photos). Side effect: adds tag association to assets. |
| untag_assetsA | Remove a tag from multiple assets. The tag itself remains; only the association is removed. Side effect: removes tag-to-asset links. |
| upload_assetA | Upload a local photo or video file to Immich. Use this to ingest new media into the library. Constraints: max 25MB, allowed types: jpg, jpeg, png, heic, mp4, mov, gif, webp. Symlinks are rejected for security. The original file is NOT modified or deleted. Side effect: creates a new asset in Immich. |
| list_assetsA | List assets with simple filters (no search query needed). Use this to browse the library by status (favorites, archived, trashed) or type. For finding specific content, use search_metadata (structured) or search_smart (visual AI). Read-only. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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