immich-photo-manager
PyPI
v2.0.11
Published by drolosoft — no publish provenance, so origin is unverified, but the source is public: the repository link below is self-declared yet readable, so you can inspect the code before adopting it.
MCP server for intelligent photo management with Immich
The grade answers one question — how safe is this server for you to adopt — so it is computed in two auditable stages. Nothing below is an opinion or an LLM's guess; every line is a real term the deterministic engine applied, and the same input always yields the same number.
1. Threat score — 100 − 0 = 100. What the published surface and source actually contain:
The deterministic scan raised no scored threat in the surface it inspected — the threat score stayed at 100. Capability observations and advisory notes are recorded but never lower it.
2. Client adoption risk — 100 − 7 = 93. Three small, subtract-only factors that reflect your risk in adopting it — a clean scan proves less on a powerful, unverified or barely-inspectable package, so the grade says so plainly:
| Points | Adoption-risk factor |
|---|---|
| −6 | capability blast radius (high) — client exposure if the model is manipulated |
| −1 | publisher verification (public source) — no provenance, but the source is public and inspectable |
Capability observations and info notes are shown under Findings but never scored.
Open any row's finding below for the file, line and evidence behind a deduction.
In the server's implementation (`src/immich_mcp_server/video_frames.py:249`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.
Evidence: robe"): probe = subprocess.run( ["ffprobe", "-v", "error", "-show_entries", "format=duration",
Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.
Location: server src/immich_mcp_server/video_frames.py
Each tool and what it can reach — statically extracted from the published source.
download_archiveingests untrusted inputget_download_infoingests untrusted inputget_stackingests untrusted inputadd_assets_to_albumno sensitive capabilityclear_asset_notesno sensitive capabilitycreate_activityno sensitive capabilitycreate_albumno sensitive capabilitycreate_memoryno sensitive capabilitycreate_partnerno sensitive capabilitycreate_shared_linkno sensitive capabilitycreate_stackno sensitive capabilitycreate_tagno sensitive capabilitydelete_activityno sensitive capabilitydelete_albumno sensitive capabilitydelete_assetsno sensitive capabilitydelete_memoryno sensitive capabilitydelete_shared_linkno sensitive capabilitydelete_stackno sensitive capabilitydelete_tagno sensitive capabilityempty_trashno sensitive capabilityexport_pdfno sensitive capabilityget_albumno sensitive capabilityget_album_imagesno sensitive capabilityget_album_thumbnailsno sensitive capabilityget_asset_facesno sensitive capabilityget_asset_imageno sensitive capabilityget_asset_infono sensitive capabilityget_asset_notesno sensitive capabilityget_asset_thumbnailno sensitive capabilityget_assets_notesno sensitive capabilityget_calendar_heatmapno sensitive capabilityget_capabilitiesno sensitive capabilityget_connection_infono sensitive capabilityget_duplicatesno sensitive capabilityget_export_previewno sensitive capabilityget_images_batchno sensitive capabilityget_map_markersno sensitive capabilityget_personno sensitive capabilityget_person_thumbnailno sensitive capabilityget_server_versionno sensitive capabilityget_shared_linkno sensitive capabilityget_statisticsno sensitive capabilityget_tagno sensitive capabilityget_thumbnails_batchno sensitive capabilityget_timeline_bucketno sensitive capabilityget_timeline_bucketsno sensitive capabilityget_video_framesno sensitive capabilityget_video_frames_jsonno sensitive capabilitylist_activitiesno sensitive capabilitylist_albumsno sensitive capabilitylist_assetsno sensitive capabilitylist_memoriesno sensitive capabilitylist_partnersno sensitive capabilitylist_peopleno sensitive capabilitylist_shared_linksno sensitive capabilitylist_stacksno sensitive capabilitylist_tagsno sensitive capabilitylist_usersno sensitive capabilitymerge_peopleno sensitive capabilitypingno sensitive capabilityreassign_faceno sensitive capabilityrecord_actionno sensitive capabilityremove_assets_from_albumno sensitive capabilityremove_partnerno sensitive capabilityresolve_duplicatesno sensitive capabilityrestore_assetsno sensitive capabilityrestore_trashno sensitive capabilityreverse_geocodeno sensitive capabilityrevert_asset_editsno sensitive capabilityreview_assetsno sensitive capabilityrotate_assetsno sensitive capabilitysearch_citiesno sensitive capabilitysearch_exploreno sensitive capabilitysearch_large_assetsno sensitive capabilitysearch_metadatano sensitive capabilitysearch_peopleno sensitive capabilitysearch_placesno sensitive capabilitysearch_randomno sensitive capabilitysearch_smartno sensitive capabilitysearch_statisticsno sensitive capabilitysearch_suggestionsno sensitive capabilitytag_assetsno sensitive capabilityuntag_assetsno sensitive capabilityupdate_albumno sensitive capabilityupdate_asset_metadatano sensitive capabilityupdate_assets_metadatano sensitive capabilityupdate_credentialsno sensitive capabilityupdate_memoryno sensitive capabilityupdate_partnerno sensitive capabilityupdate_personno sensitive capabilityupdate_shared_linkno sensitive capabilityupdate_stackno sensitive capabilityupdate_tagno sensitive capabilityupload_assetno sensitive capabilityScan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.
| Version | Score | Findings | Engine | Scanned |
|---|---|---|---|---|
v2.0.11 latest |
A 93/100 | 1 | 1.13.0 | 2026-09-04 |
v1.12.8 |
A 93/100 | 1 | 1.13.0 | 2026-09-01 |
v1.7.1 |
A 93/100 | 1 | 1.13.0 | 2026-08-29 |
v1.7.0 |
A 93/100 | 1 | 1.13.0 | 2026-08-28 |
v1.6.0 |
A 93/100 | 1 | 1.13.0 | 2026-08-27 |
v1.4.0 |
A 99/100 | 0 | 1.13.0 | 2026-08-25 |
v1.3.0 |
A 93/100 | 3 | 1.12.1 | 2026-07-27 |
Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.
The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.
npx mcptrustchecker scan immich-photo-manager --online --registry pypi
Agent IP: MCP server with patents search tools
MCP server for searching the Agent Almanac — the public catalog of 9,000+ Model Context Protocol servers. Find, install, and discover MCP servers from inside Claude Desktop, Cursor, Continue, Zed, or any MCP-aware agent.
Search agents & MCP servers by capability, with daily-observed pricing, liveness and market data.
Verified merchants accepting agentic payments on Lightning/L402/BOLT12/USDT — search, verify, pay.
Airframe MCP Client - Connect agents to Airframe's product intelligence
Amazon product search demand over time, with growth for any keyword. Free key at trendsmcp.ai