Skip to main content
Glama

review_assets

Save a review verdict and reason for each photo, so later sessions skip redoing the same cleanup or duplicate analysis. The stored decision makes the outcome and its rationale available in future Immich sessions.

Instructions

Remember a review verdict on assets, with the reason, so a later session does not redo the analysis and the why survives. Use this after deciding what to do with a photo in a cleanup or duplicate pass — together with a tag when the user must see the state in Immich (tags are visible there, notes are not). Side effect: writes the plugin's metadata key on each asset; other apps' keys are untouched.

Args:
    asset_ids: The assets the verdict applies to.
    verdict: One of 'keep', 'delete_candidate', 'duplicate_of', 'needs_check'.
    reason: Free text explaining the verdict (e.g. 'near-identical to IMG_6367,
        keep that one'). Short and concrete beats long.

Returns: JSON with success, the number of assets reviewed, the verdict, and a
failed array of {asset_id, error} for any asset that could not be written.
Success is true only when nothing failed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
reasonNo
verdictYes
asset_idsYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Install Server

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and exceeds it: it discloses the write side effect ('writes the plugin's metadata key on each asset; other apps' keys are untouched') and the partial-failure semantics ('Success is true only when nothing failed'). This is precisely the behavioral context an agent needs beyond bare schema fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average but front-loads purpose and usage before side effects, args, and returns, and every section earns its place. The Args/Returns layout is scannable; a slight tightening of the example prose would make it a 5, but there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter, 2-required write tool with zero schema descriptions and no annotations, the description is fully self-sufficient: purpose, when-to-use, side effect, all parameter semantics, and return shape with failure handling are covered. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must supply all parameter meaning — and it does critically, by enumerating the valid verdict values ('keep', 'delete_candidate', 'duplicate_of', 'needs_check') that the schema omits as an enum. It also adds format guidance for reason with a concrete example and a 'short and concrete beats long' rule.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific purpose — persisting a review verdict with its reason so later sessions skip re-analysis — with a clear resource ('assets') and a precise outcome ('the why survives'). It also differentiates from siblings by noting tags are Immich-visible while these notes are not, which distinguishes it from tag_assets and record_action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use this after deciding what to do with a photo in a cleanup or duplicate pass' gives explicit when-to-use context, and the tag comment provides a real selection condition (user must see the state in Immich). It does not explicitly name sibling tools such as tag_assets or resolve_duplicates as alternatives, so exclusion guidance is implied rather than exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/drolosoft/immich-photo-manager'

If you have feedback or need assistance with the MCP directory API, please join our Discord server