claw2immich

Work with Immich photo library via MCP (claw2immich) - search photos by people, dates, locations, albums. Download assets via shared links. Handles multi-person search, CLIP smart search, and metadata queries.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "claw2immich" with this command: npx skills add joeru/claw2immich

Immich Photo Library (via claw2immich)

Work with your Immich photo library via the claw2immich MCP server. Search by people, dates, locations, and albums. Download photos via shared links or inline base64. 249 tools available from the full Immich OpenAPI spec.

Prerequisites

  • Immich instance running (https://immich.app)

  • claw2immich MCP server installed and running

  • MCP server configured in config/mcporter.json:

    {
      "mcpServers": {
        "immich": {
          "baseUrl": "http://your-claw2immich-host:port/sse"
        }
      }
    }
    

Key Tools

ToolDescription
immich_searchassetsMetadata search (date, people, location, etc.)
immich_searchsmartCLIP-based natural language search
immich_searchpersonFind person by name
immich_getassetinfoGet full asset details including web_url
immich_viewassetGet thumbnail/preview as base64 (WebP)
downloadAssetDownload asset via shared link (default) or inline base64
immich_getallpeopleList all people
immich_getallalbumsList all albums
immich_createsharedlinkCreate shared link for album/assets
tool_access_reportCheck which tools are available

Quick Start

Find people by name

mcporter call immich immich_searchperson query_name="Maria"

Search photos with multiple people (AND logic)

mcporter call immich immich_searchassets \
  'body_personIds=["person-uuid-1","person-uuid-2"]' \
  body_order=desc body_size=10

CLIP smart search (natural language)

mcporter call immich immich_searchsmart \
  body_query="sunset at the beach" body_size=5

Get asset info (includes web_url)

mcporter call immich immich_getassetinfo path_id=<asset-uuid>

Download a photo (shared link)

mcporter call immich downloadAsset asset_id=<asset-uuid>

Returns a short-lived shared link (30 min, no auth needed).

Get thumbnail for display

mcporter call immich immich_viewasset path_id=<asset-uuid> query_size=thumbnail

Returns {encoding: "base64", content_type: "image/webp", size_bytes: ..., data: "..."}.

Web URLs

Tool responses for assets, albums, people, and places include a web_url field:

  • Assets: https://<domain>/photos/<asset-id>
  • Albums: https://<domain>/albums/<album-id>
  • People: https://<domain>/people/<person-id>

This requires IMMICH_EXTERNAL_DOMAIN to be configured on the server.

Common Workflows

"Show me recent photos of X and Y together"

  1. Find person IDs:

    mcporter call immich immich_searchperson query_name="Alice"
    mcporter call immich immich_searchperson query_name="Bob"
    
  2. Search photos (AND logic):

    mcporter call immich immich_searchassets \
      'body_personIds=["alice-id","bob-id"]' \
      body_order=desc body_size=10
    
  3. Display a photo:

    mcporter call immich immich_viewasset path_id=<asset-id> query_size=thumbnail
    

    Decode base64 data, save as .webp, send to user.

"Find vacation photos from summer 2024"

mcporter call immich immich_searchassets \
  body_createdAfter="2024-06-01T00:00:00Z" \
  body_createdBefore="2024-08-31T23:59:59Z" \
  body_city="Barcelona" body_order=desc

"Download a photo"

mcporter call immich downloadAsset asset_id=<asset-uuid>

Response:

{
  "delivery_mode": "shared_link",
  "download_url": "https://immich.example.com/share/<token>",
  "expires_in_minutes": 30,
  "requires_auth": false
}

The shared link can be sent directly to users — no auth required.

Displaying photos in chat

  1. Get thumbnail via immich_viewasset (query_size=thumbnail, typically < 30KB)
  2. Decode the base64 data field
  3. Save as .webp file
  4. Send via messaging tool

Note: preview size may exceed the 64KB MCP transport limit. Use thumbnail for reliable delivery.

Key Parameters

immich_searchassets (POST /api/search/assets)

Filtering:

  • body_personIds: ["uuid1", "uuid2"] — Photos with these people (AND)
  • body_city: "string" — Filter by city
  • body_country: "string" — Filter by country
  • body_createdAfter: "ISO8601" — Minimum date
  • body_createdBefore: "ISO8601" — Maximum date
  • body_isFavorite: boolean — Only favorites
  • body_albumIds: ["uuid"] — Filter by albums

Sorting & Pagination:

  • body_order: "desc" — Newest first
  • body_order: "asc" — Oldest first
  • body_size: number — Limit results
  • body_page: number — Page number

immich_searchsmart (POST /api/search/smart)

  • body_query: "string" — Natural language query (CLIP-based)
  • body_size: number — Limit results
  • Same filter parameters as searchassets

downloadAsset

  • asset_id: "uuid" — Asset to download

Delivery mode is controlled server-side via IMMICH_DOWNLOAD_ASSET_DELIVERY:

  • shared_link (default): Returns a tokenized shared link (30 min TTL, no auth)
  • inline_base64: Returns base64-encoded file data (limited by 64KB transport)
  • immich_link: Returns direct Immich URL (requires auth)

immich_viewasset (GET /api/assets/{id}/thumbnail)

  • path_id: "uuid" — Asset ID
  • query_size: "thumbnail"|"preview" — Image size

Returns structured base64 response. Use thumbnail to stay under transport limits.

Important Patterns

Multi-Person Search (AND)

Correct: Array in body_personIds

{"body_personIds": ["person-1", "person-2"]}

Wrong: Separate calls (that's OR, not AND)

Parameter Prefixes

All OpenAPI tool parameters use prefixes:

  • path_<name> — Path parameters
  • query_<name> — Query parameters
  • body_<name> — Body parameters (for POST endpoints)

Date Filtering

Always use ISO 8601: "2024-01-15T00:00:00Z"

64KB Transport Limit

MCP responses are truncated at 64KB. This affects:

  • downloadAsset with inline_base64 mode (use shared_link instead)
  • immich_viewasset with query_size=preview (use thumbnail instead)
  • Large search results (reduce body_size)

Access Profiles

Set IMMICH_PROFILE on the server to restrict tools:

  • read_only — Only GET endpoints (search, browse)
  • read_write — Read + write (upload, update, delete)
  • full_scope — Everything including admin

Use tool_access_report to check available tools.

Troubleshooting

No results with multiple people:

  • Verify person IDs (search each person first)
  • Add body_isArchived: false if photos might be archived

downloadAsset returns error:

  • Check tool_access_report for permissions
  • Shared link creation requires write access to shared-links API

Thumbnail too large:

  • Use query_size=thumbnail instead of preview
  • Thumbnails are typically 5-25 KB (WebP)

MCP call fails:

  • Verify server is running: mcporter call immich ping_server
  • Check config: mcporter list immich

Reference

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

Airplane AI / 断网 AI 助手

Give LM Studio or Ollama users a browser-based AI chat interface that works completely offline. Use when the user wants an offline-capable personal AI, needs...

Registry SourceRecently Updated
General

佛学导师 (The Buddhist Mentor )

提供系统化的佛学学习指导,分阶段引导理解核心概念、经典解读与实际应用,助力自我觉察与智慧拓展。

Registry SourceRecently Updated
General

Secretary Memory

OpenClaw 秘书式多分区记忆系统 v3.0。仿生现代秘书的笔记本分类法,支持:(1) 多分区并发搜索 + 每分区3条上下文召回,(2) 会话自动摘要,(3) 偏好自动提取 + 用户关系图谱,(4) 记忆冲突主动检测,(5) 定时 consolidation + 会话结束 hook,(6) 精细化恢复/回溯,...

Registry SourceRecently Updated
General

sendbl

Create sendbl file-exchange links — request files from someone, send a file, check link status, list files in a link, or delete a link. Use when the user wan...

Registry SourceRecently Updated