返回顶部
c

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.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
577
下载量
0
收藏
概述
安装方式
版本历史

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 - Repository: https://github.com/JoeRu/claw2immich - Follow setup instructions in the repo README - MCP server configured in `config/mcporter.json`: ```json { "mcpServers": { "immich": { "baseUrl": "http://your-claw2immich-host:port/sse" } } } ``` ## Key Tools | Tool | Description | |------|-------------| | `immich_searchassets` | Metadata search (date, people, location, etc.) | | `immich_searchsmart` | CLIP-based natural language search | | `immich_searchperson` | Find person by name | | `immich_getassetinfo` | Get full asset details including `web_url` | | `immich_viewasset` | Get thumbnail/preview as base64 (WebP) | | `downloadAsset` | Download asset via shared link (default) or inline base64 | | `immich_getallpeople` | List all people | | `immich_getallalbums` | List all albums | | `immich_createsharedlink` | Create shared link for album/assets | | `tool_access_report` | Check 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: ```json { "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` ```json {"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 - **Immich:** https://immich.app - **claw2immich:** https://github.com/JoeRu/claw2immich - **Immich API docs:** https://immich.app/docs/api/

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 claw2immich-1776419969 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 claw2immich-1776419969 技能

通过命令行安装

skillhub install claw2immich-1776419969

下载 Zip 包

⬇ 下载 claw2immich v1.0.0

文件大小: 9.26 KB | 发布时间: 2026-4-17 19:29

v1.0.0 最新 2026-4-17 19:29
Initial publish: Full Immich MCP skill with smart search, multi-person AND search, shared link downloads, web_url support, thumbnail display, access profiles.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部