Initial skills documentation — 25 categories, all SKILL.md + references + scripts
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# Immich photo map MCP pattern
|
||||
|
||||
Use this when Germaine asks to extract photo metadata from Immich and show where photos were taken.
|
||||
|
||||
## Immich API endpoints
|
||||
|
||||
Relevant stable endpoints:
|
||||
|
||||
- `POST /search/metadata` with `withExif: true` to search assets and include EXIF/location data.
|
||||
- `GET /assets/{id}/metadata` to fetch full key-value metadata for a single asset.
|
||||
|
||||
`/search/metadata` can filter by album IDs, taken date, city/state/country, camera make/model, favorite state, asset type, etc.
|
||||
|
||||
## Recommended MCP tools
|
||||
|
||||
- `immich_search_geo_assets(taken_after?, taken_before?, album_id?, limit=500)` — return assets with latitude/longitude, taken time, filename, city/state/country, camera model, thumbnail URL.
|
||||
- `immich_get_asset_metadata(asset_id)` — return full Immich metadata for one asset.
|
||||
- `immich_geojson(...)` — return a GeoJSON FeatureCollection suitable for Leaflet/MapLibre.
|
||||
- `immich_map_summary(...)` — summarize counts by city/country/date range and count missing-location assets.
|
||||
|
||||
## Map UI
|
||||
|
||||
The MCP should return data; a small UI can live in ops portal or a private subdomain. Use Leaflet + OpenStreetMap tiles + marker clustering. Marker click should show thumbnail, filename, taken date, and location labels.
|
||||
|
||||
## Security
|
||||
|
||||
GPS photo data is sensitive. Keep the MCP localhost-only, store `IMMICH_BASE_URL` and `IMMICH_API_KEY` in a chmod 600 `.env`, and put any map UI behind auth/Cloudflare Access. Prefer thumbnails, not full-resolution assets.
|
||||
|
||||
## Implementation notes
|
||||
|
||||
- Count missing GPS as `missing_location`, not an error.
|
||||
- Return GeoJSON coordinates as `[longitude, latitude]`.
|
||||
- Build read-only first. Metadata update/fix workflows are a later explicit feature.
|
||||
Reference in New Issue
Block a user