Skip to main content
Glama
wanjau2

Immich MCP Server

by wanjau2

Immich MCP Server

Stellt eine selbst gehostete Immich-Fotobibliothek für ChatGPT (und jeden anderen MCP-Client) über Streamable HTTP bereit, sodass Sie Fragen stellen können wie "finde die Fotos vom Kigali-Besuch im März" und echte Antworten von Ihrem eigenen NAS erhalten.

ChatGPT  ──HTTPS──▶  Cloudflare Tunnel  ──▶  immich_mcp:8080  ──▶  immich_server:2283
          bearer token                        MCP → REST            x-api-key

Warum es so gebaut ist

ChatGPT-Custom-Connectors akzeptieren nur einen entfernten HTTPS-Endpunkt. Es gibt keine stdio- oder localhost-Option, daher muss der Server vom Internet aus erreichbar sein — daher der Tunnel — und er muss sich selbst verteidigen, daher das Bearer-Token.

Werkzeuge

Werkzeug

Zweck

search

CLIP-semantische Suche über Bildinhalte

fetch

Vollständige EXIF-Daten für ein Asset per UUID

search_by_metadata

Filtern nach Datum, Ort, Kamera, Person, Favorit

list_albums

Alle Alben mit Anzahl

get_album

Details und Inhalt eines Albums

list_people

Erkannte Gesichter mit IDs zum Filtern

library_stats

Foto-/Videoanzahl und Speichernutzung

server_info

Immich-Version und aktivierte Funktionen

create_share_link

Öffentlicher Link zu bestimmten Assets — standardmäßig deaktiviert

search und fetch sind bewusst so benannt: ChatGPTs Deep Research-Modus ignoriert alle anderen Werkzeuge, daher tragen diese beiden die Last, wenn der Entwicklermodus nicht verfügbar ist.


Einrichtung

1. Immich-API-Schlüssel abrufen

Immich → Kontoeinstellungen → API-Schlüssel → Neuer API-Schlüssel. Beschränken Sie ihn auf schreibgeschützt, es sei denn, Sie planen, Freigabelinks zu aktivieren.

2. Konfigurieren

cp .env.example .env
openssl rand -hex 32          # paste into MCP_BEARER_TOKEN
$EDITOR .env

Finden Sie das Docker-Netzwerk, auf dem Immich bereits läuft, und setzen Sie seinen Namen in docker-compose.yml unter networks.immich-net.name ein:

docker network ls | grep -i immich

Normalerweise ist es immich_default. Wenn der MCP-Container nicht beitreten kann, setzen Sie IMMICH_URL stattdessen auf die LAN-Adresse des NAS (http://192.168.1.50:2283) und entfernen Sie den networks:-Block.

3. Erstellen und ausführen

docker compose up -d --build
docker compose logs -f immich-mcp

Lokal überprüfen, bevor Sie etwas freigeben:

curl http://127.0.0.1:8099/healthz
# {"status":"ok","immich":{"major":1,"minor":...}}

pip install httpx
python smoke_test.py http://127.0.0.1:8099 <your-bearer-token>

Der Smoke-Test führt den exakten Handshake durch, den ChatGPT macht — initialize, tools/list, dann einen Live-Tool-Aufruf — und bestätigt, dass nicht authentifizierte Anfragen einen 401 erhalten.

4. Über Cloudflare Tunnel freigeben

Fügen Sie Ihrem bestehenden Tunnel einen öffentlichen Hostnamen hinzu, der auf http://immich_mcp:8080 zeigt. Siehe cloudflared/config.example.yml. Wenn Sie den Tunnel über das Zero Trust-Dashboard verwalten, fügen Sie ihn stattdessen dort hinzu.

Stellen Sie Cloudflare Access nicht vor diesen Hostnamen. ChatGPT kann keinen interaktiven Access-Login abschließen.

Führen Sie den Smoke-Test erneut gegen die öffentliche URL aus:

python smoke_test.py https://immich-mcp.example.com <your-bearer-token>

5. ChatGPT verbinden

Einstellungen → Connectors → Erweiterte Einstellungen → Entwicklermodus aktivieren (erfordert einen kostenpflichtigen Plan), dann Erstellen:

  • Name: Immich Photos

  • Beschreibung: Das ist wichtig — das Modell liest sie, um zu entscheiden, ob der Connector aufgerufen werden soll. Etwa wie "Persönliche Foto- und Videobibliothek. Verwenden Sie sie zum Finden, Beschreiben oder Auflisten von Fotos, Alben und erkannten Personen."

  • URL: https://immich-mcp.example.com/mcp

  • Authentifizierung: API-Schlüssel / benutzerdefinierter Header → Authorization: Bearer <token>

Aktivieren Sie dann den Connector im Chat-Composer.


Hinweise aus der Praxis

Nennen Sie das Werkzeug in Ihrer Eingabeaufforderung. ChatGPT wird nicht zuverlässig erraten, wann es einen benutzerdefinierten Connector verwenden soll. „Verwende immich search, um Fotos von den Trockengestellen zu finden“ funktioniert, während „finde meine Trockengestell-Fotos“ oft nicht funktioniert.

ChatGPT kann Ihre Fotos nicht sehen. Tool-Ergebnisse sind Text — Beschreibungen und Metadaten, keine Pixel. create_share_link existiert, um diese Lücke zu schließen, aber ein Freigabelink ist für jeden, der die URL kennt, öffentlich, weshalb er standardmäßig deaktiviert ist. Aktivieren Sie ihn nur, wenn Sie damit einverstanden sind.

Fixieren Sie Ihre Immich-Version. Die API ändert sich zwischen den Versionen — /server/statistics war vor nicht allzu langer Zeit /server-info/statistics. Ihre eigene Instanz veröffentlicht die genaue Spezifikation unter https://photos.example.com/api/docs; überprüfen Sie dort, bevor Sie einen 404 debuggen.

Rotieren Sie das Bearer-Token, indem Sie .env bearbeiten und docker compose up -d --force-recreate ausführen und dann den Connector in ChatGPT aktualisieren.

Fehlerbehebung

Symptom

Ursache

/healthz gibt 503 zurück

MCP-Container kann Immich nicht erreichen — falsche IMMICH_URL oder nicht im selben Docker-Netzwerk

401 bei jeder Anfrage

Bearer-Token stimmt nicht zwischen .env und der Connector-Konfiguration überein

ChatGPT sagt "Suchaktion nicht gefunden"

Connector wurde im Deep Research-Modus hinzugefügt; aktivieren Sie den Entwicklermodus

Connector hinzugefügt, wird aber nie ausgelöst

Beschreibung zu vage, oder das Werkzeug ist im Chat nicht aktiviert

search gibt nie etwas zurück

Immich-Maschinenlernen ist deaktiviert — überprüfen Sie server_info

Immich lehnt den Schlüssel ab (401 in den Logs)

Schlüssel wurde widerrufen oder gehört zu einem anderen Immich-Benutzer

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • LLM chat, text summarization and AI image generation

  • Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only

  • Sync Lightroom, Figma, Dropbox & Canva assets to WordPress and Shopify via natural language.

View all MCP Connectors

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/wanjau2/Immich-MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server