Manages a self-hosted Immich library: CLIP and OCR search, geographic albums, duplicates, people and faces, metadata repair and photobooks.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add immich-photo-manager --env IMMICH_BASE_URL='<IMMICH_BASE_URL>' --env IMMICH_API_KEY='<IMMICH_API_KEY>' --env PYTHONPATH='<PYTHONPATH>' --env MCP_TRANSPORT='<MCP_TRANSPORT>' -- uvx immich-photo-manager~/.codex/config.toml
[mcp_servers.immich-photo-manager]
command = "uvx"
args = ["immich-photo-manager"]
env = { IMMICH_BASE_URL = "<IMMICH_BASE_URL>", IMMICH_API_KEY = "<IMMICH_API_KEY>", PYTHONPATH = "<PYTHONPATH>", MCP_TRANSPORT = "<MCP_TRANSPORT>" }
# codex mcp add immich-photo-manager --env IMMICH_BASE_URL='<IMMICH_BASE_URL>' --env IMMICH_API_KEY='<IMMICH_API_KEY>' --env PYTHONPATH='<PYTHONPATH>' --env MCP_TRANSPORT='<MCP_TRANSPORT>' -- uvx immich-photo-manager~/.cursor/mcp.json
{
"mcpServers": {
"immich-photo-manager": {
"command": "uvx",
"args": [
"immich-photo-manager"
],
"env": {
"IMMICH_BASE_URL": "<IMMICH_BASE_URL>",
"IMMICH_API_KEY": "<IMMICH_API_KEY>",
"PYTHONPATH": "<PYTHONPATH>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"immich-photo-manager": {
"type": "stdio",
"command": "uvx",
"args": [
"immich-photo-manager"
],
"env": {
"IMMICH_BASE_URL": "<IMMICH_BASE_URL>",
"IMMICH_API_KEY": "<IMMICH_API_KEY>",
"PYTHONPATH": "<PYTHONPATH>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"immich-photo-manager": {
"command": "uvx",
"args": [
"immich-photo-manager"
],
"env": {
"IMMICH_BASE_URL": "<IMMICH_BASE_URL>",
"IMMICH_API_KEY": "<IMMICH_API_KEY>",
"PYTHONPATH": "<PYTHONPATH>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"immich-photo-manager": {
"command": "uvx",
"args": [
"immich-photo-manager"
],
"env": {
"IMMICH_BASE_URL": "<IMMICH_BASE_URL>",
"IMMICH_API_KEY": "<IMMICH_API_KEY>",
"PYTHONPATH": "<PYTHONPATH>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"immich-photo-manager": {
"command": "uvx",
"args": [
"immich-photo-manager"
],
"env": {
"IMMICH_BASE_URL": "<IMMICH_BASE_URL>",
"IMMICH_API_KEY": "<IMMICH_API_KEY>",
"PYTHONPATH": "<PYTHONPATH>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>"
}
}
}
}Environment variables
IMMICH_BASE_URLIMMICH_API_KEYPYTHONPATHMCP_TRANSPORT
Replace the placeholders with your own credentials and keep them out of version control.