Skip to main content
Glama

photos

Read-only

Search the Apple media library with one text query across filenames, titles, descriptions, keywords, places, people, and labels; returns up to 25 newest pointers for follow-up info or export.

Instructions

Search Photos by one string, matched (case, accent and smart-quote blind) against original filename, filename, title, description, keywords, place name, person names and labels. Returns {results, truncated?}: pointers (id = the Photos uuid, summary = title · filename · date), newest first, at most 25; truncated means the 25 cap was reached and there may be more. Hidden and Recently Deleted photos never match. Pass the id to photo_info or export_photo. Reads the library at rest through osxphotos, so it needs Full Disk Access (not Automation). Read-only; never returns image bytes or thumbnails.

Input Schema

NameRequiredDescriptionDefault
queryYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.15.1

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/destructiveHint annotations: discloses the osxphotos library-at-rest mechanism, the Full Disk Access (not Automation) permission requirement, the 25-result cap with a truncated flag, that no image bytes or thumbnails are ever returned, and that hidden/Recently Deleted items are excluded. These are exactly the operational facts an agent needs and none of them are in structured fields.

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?

Dense but zero-waste; the verb+resource leads, then matching semantics, return shape, cap behavior, exclusions, and prerequisites in a logical order. No sentence restates a structured field verbatim.

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?

Covers purpose, query semantics, return shape, truncation, permission prerequisites and downstream chaining. Even though an output schema exists, the inline mention of `{results, truncated?}` and the id/summary field meaning helps the agent plan follow-up calls; nothing material 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 coverage is 0% for the single required `query` param, so the description must carry the load and does: it defines the match as case-, accent- and smart-quote-blind against original filename, filename, title, description, keywords, place name, person names and labels. That is far more than the bare `{type: string}` schema conveys.

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?

Opens with a specific verb+resource ('Search Photos by one string') and then enumerates exactly which fields are matched, which distinguishes it cleanly from photo_albums (browsing) and photo_info (detail lookup). An agent can select this tool without opening the schema.

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?

Explicitly routes the agent downstream: 'Pass the id to photo_info or export_photo', and states the negative scope that hidden and Recently Deleted photos never match. It doesn't spell out the alternative for browsing albums or say when a different search tool would be preferable, so it falls short of a full when/when-not/alternatives triad.

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