Skip to main content
Glama

Search cities

search_cities
Read-only

Lists cities appearing in an Immich photo library and returns one representative asset per city, helping you identify which places the library covers.

Instructions

Every city that appears in the library, one representative asset each. Unlike search_explore this has no minimum-asset threshold, so it is the reliable way to answer 'which places are in this library?'. Read-only.

Returns: JSON with a cities array of {city, country, asset_id, date}.

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.0.2

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint=false, so the trailing 'Read-only.' is largely redundant. The description does add real behavior the annotations cannot convey: deduplication to one representative asset per city and the absence of a threshold that gates the sibling tool.

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

Conciseness5/5

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

Four short sentences, scoping constraint first, alternative second, use case third, return shape last. Nothing is padded; the only near-waste is 'Read-only.', which merely restates the annotation.

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 zero-argument read tool with annotations and an output schema, the description covers identity, scope, sibling differentiation, and the return shape. Nothing an agent needs in order to call it correctly is missing.

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?

The tool takes zero parameters, so the baseline is 4; there is no parameter surface to explain, and the description correctly spends no words on inputs.

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?

States a specific resource (every city in the library) and a specific selection rule (one representative asset each), and contrasts it with the sibling search_explore, so an agent can distinguish the two without reading schemas.

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

Usage Guidelines5/5

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

Explicitly names the alternative (search_explore), the differing condition (no minimum-asset threshold), and the question this tool reliably answers ('which places are in this library?'). That is a when-to-use rule plus a named alternative in two sentences.

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