Skip to main content
Glama

search_stock_images

Read-only

Search the configured stock photo provider (Settings → Stock images; Unsplash) for photos to use on a page. Returns up to 24 candidates, best match first, each with id, description and attribution; nothing is stored yet.

Instructions

Search the configured stock photo provider (Settings → Stock images; Unsplash) for photos to use on a page. Returns up to 24 candidates, best match first, each with id, description and attribution; nothing is stored yet. To USE one: upload_asset {stockImageId: } imports it into the media library, then set_field the returned asset documentId on an image field. Refused with a hint when no provider key is configured. To reuse a photo you already have, list_assets. Requires the content.read permission (Admin, Editor, Author, Viewer — an Author only within their own sections).

Input Schema

NameRequiredDescriptionDefault
siteNoSite slug or id to act in (multisite). Omit to use this server's default site. Call list_sites to see what exists — an empty tree or search usually means the wrong site, not missing content.
queryYesWhat the photo should show, e.g. 'mountain lake sunrise'

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered; the description adds substantial context beyond them — up to 24 results best-match-first, per-item fields (id, description, attribution), the fact that nothing persists, the graceful refusal with a hint when no key is configured, and required permission plus per-role scoping. This is rich behavioral disclosure.

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?

Front-loads what the tool does, then the follow-up workflow, then the fallback and permission caveats. Every sentence carries routing or constraint value (return shape, non-persistence, refusal, permission); none is 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?

With no output schema, the description supplies the return contract (up to 24 candidates, best match first, id/description/attribution). Combined with the import workflow, alternative tool, refusal behavior, and permission requirements, an agent has everything needed to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters (site, query) are documented in-schema, so the schema does the heavy lifting. The description adds no syntax or format detail for query or site beyond what is already there, so the baseline 3 is appropriate.

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 verb+resource ('Search the configured stock photo provider ... for photos') and immediately scopes it as candidate discovery, not storage ('nothing is stored yet'). It distinguishes itself from siblings like list_assets (reuse existing) and upload_asset (import), so an agent can route without opening another schema.

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 gives the end-to-end path: search here, then upload_asset {stockImageId} to import, then set_field with the returned documentId. It also names the alternative for a different intent ('To reuse a photo you already have, list_assets') and the refusal condition (no provider key). Nothing is left to inference.

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