Summary
Let your AI read your Immich photo library: how many photos and videos you have, your albums and who they are shared with, the date, place, camera and people of a photo, the people Immich recognised and how many pictures were taken each month. Read-only: it never uploads, edits or deletes anything. Works with self-hosted Immich 3.0 or newer.
Guided setup
Connect Immich to Microsoft Copilot in 2 minutes
Start a free trial on AnythingMCP Cloud, connect Immich in the guided setup, then add your MCP URL to Microsoft Copilot. No code and no server to run.
No credit card · 7-day trial · Self-host alternative available
Try asking
Example prompts for Immich
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Immich, paste your credentials, mint an MCP API key — done. No Docker, no
git clone, no local server.
Immich + Microsoft Copilot
Let your AI read your Immich photo library: how many photos and videos you have, your albums and who they are shared with, the date, place, camera and people of a photo, the people Immich recognised and how many pictures were taken each month. Read-only: it never uploads, edits or deletes anything. Works with self-hosted Immich 3.0 or newer.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
IMMICH_URL, IMMICH_API_KEY
Step 1 — Get credentials
Setting up takes about 3 minutes. You need Immich 3.0 or newer and an API key from the user whose library the AI should read. No admin account is needed.
- Set
IMMICH_URLto the address you open Immich at, without/apiand without a trailing slash, for examplehttps://photos.example.comorhttp://192.168.1.10:2283(the default port is 2283). - Log in to Immich as that user, open Account Settings → API Keys → New API Key and grant only
user.read,asset.read,asset.statistics,album.readandperson.read. Copy the key intoIMMICH_API_KEY; Immich shows it only once. It is sent in thex-api-keyheader. - Install the connector and run
immich_get_my_user: it shows the user behind the key and its storage quota and usage.
Where Immich runs: on self-hosted AnythingMCP, Immich usually lives on a home server or NAS (http://192.168.x.x:2283). The outbound SSRF guard blocks private and local addresses by default, so an administrator must allow the host through SSRF_ALLOWED_HOSTS or the allowlist in the admin settings. AnythingMCP Cloud can only reach an Immich server exposed on the public internet over HTTPS, for example behind a reverse proxy. A private IP or a local hostname is refused, and the allowlist cannot be changed on Cloud.
What it reads: photo and video counts with immich_get_asset_statistics (without filters it counts every asset not in the trash, archived ones included; visibility=timeline matches the main timeline); albums and who they are shared with (immich_list_albums, immich_get_album); one photo or video with dates, camera, lens, exposure, GPS, city, country, people and tags (immich_get_asset); recognised people by name (immich_search_people); places by name with coordinates (immich_search_places); and counts per month by person, album, tag or favourites (immich_get_timeline_buckets). All ids are UUIDs.
Privacy: an Immich key sees only the library of the user who created it, plus albums shared with that user, and that means their photos, faces and locations. Assign this connector only to MCP servers whose users may see this library. Server file paths, checksums, thumbhashes, OAuth ids and license keys are removed from the answers.
Common errors: 401 means the key is wrong or was deleted; 401 "Elevated permission is required" means the locked folder, which an API key cannot read. 403 "Missing required permission" means the key lacks one of the five permissions. 400 "Not found or no ... access" means there is no asset or album with that id in this library (Immich answers 400, not 404). 400 "Validation failed" means an id is not a UUID, a value is not allowed, or name is missing on a people or place search. 404 on every call means IMMICH_URL is wrong or ends in /api.
The connector is read-only: it does not upload, edit, favourite, archive, trash or delete assets, change albums, tags or people, download originals, thumbnails or videos, run smart or metadata search, or open the locked folder, shared links, memories, admin endpoints or API key management.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Immichtools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
immich_get_my_user | Get the Immich user behind the API key: id, name, email, whether it is an admin, and the storage quota and usage in bytes |
immich_get_asset_statistics | Count the photos and videos in the library: {images, videos, total} |
immich_list_albums | List the albums this user owns or that are shared with them, shortened to id, name, description, asset count, shared flag, date range… |
immich_get_album | Get one album by id: name, description, asset count, first and last photo date, thumbnail asset id, sharing and every member with their role |
immich_get_asset | Get one photo or video by id: file name, type, capture and upload dates, favourite, archive and trash state, EXIF data (camera, lens… |
immich_search_people | Find people Immich recognised by face, by name: id, name, birth date, favourite and hidden flags |
immich_get_timeline_buckets | Count assets per month: one {timeBucket, count} per month that has assets, newest first, timeBucket being the first day of the month… |
immich_search_places | Find places by name in Immich's built-in geocoding data: name, region (admin1name, admin2name), latitude and longitude, e.g. to place a… |
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
Was this guide helpful?