Skip to main content
Glama

Update memory

update_memory
Destructive

Save a memory for later, move its date, or mark it seen to manage memories in an Immich photo library.

Instructions

Update a memory: save it for later, move its date, or mark it seen. Side effect: modifies the memory on the server.

Args:
    memory_id: The memory to update.
    is_saved: True to save the memory, false to unsave it.
    memory_at: New ISO date to show the memory on.
    seen_at: ISO timestamp marking when the user viewed it.

Returns: JSON with the updated memory.

Input Schema

NameRequiredDescriptionDefault
seen_atNo
is_savedNo
memory_atNo
memory_idYes

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.2

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, so the 'modifies the memory on the server' line largely restates structured data. The description does not clarify the semantics that matter for this mutation: whether it is a partial update that leaves unspecified fields untouched, what 'destructive' means for a mild operation like marking seen, or whether unsaving/date changes lose prior values.

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?

Front-loaded with the three actions, followed by an args list and a one-line return note; no filler sentences. The standalone 'Side effect' line is somewhat redundant with the annotations and could be folded into the opening.

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

Completeness3/5

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

For a 4-parameter mutation tool with an output schema present, the essential calling information is there and return format is covered. Gaps remain around partial-update semantics and failure behavior, which matter for a tool flagged destructiveHint=true.

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

Parameters4/5

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

With 0% schema description coverage, the description carries the full burden and mostly succeeds: it explains that is_saved is a boolean save/unsave toggle, that memory_at takes a new ISO date, and that seen_at is an ISO timestamp of when the user viewed it. It falls short of explaining omission semantics (both string params default to empty string, and is_saved defaults to null) and whether only supplied fields are applied.

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

Purpose4/5

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

The description opens with a specific verb and resource ('Update a memory') and enumerates the three concrete operations it supports: saving/unsaving, moving the display date, and marking seen. It is clearly distinguishable from delete_memory and create_memory siblings, though it never explicitly names those alternatives.

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

Usage Guidelines3/5

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

The three modes imply when to use it, but there is no explicit routing guidance such as 'use create_memory to add a new memory' or 'use delete_memory to remove one'. It also doesn't state prerequisites, like whether the memory must exist or whether the user must own it.

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

Deploy Server

Other Tools