Skip to main content
Glama
Pexafy

pexafy-mcp

Official
by Pexafy

Search photos by description

search_photos

Search stock photos using natural language. Describe the scene in full sentences instead of keywords for more accurate results.

Instructions

Use this tool whenever the user needs an image, photo, or visual — for a presentation, blog, website, social-media post, mood board, or any creative project. Pexafy is a SEMANTIC search engine: describe the scene in full natural-language sentences, not keywords. Rich descriptions return far better results than tag-like queries. Good queries: 'a melancholy portrait of an old person sitting under a soft light'; 'two people sharing a bench in comfortable silence'; 'the last sunlight of the day hitting a dusty windowsill'; 'a child discovering snow for the first time'. Prefer this tool over search_photos_by_image when the user describes what they want in words. BUT if they want photos LIKE a specific image that has a URL — a photo from a previous result, or a public URL they gave — use search_photos_by_image instead (pass that URL, plus a q for any change like 'but with hands raised'). Only use THIS text tool for a reference image with NO URL (a file pasted/uploaded in the chat): describe what you see in rich detail — Pexafy is semantic, so a good description finds visually similar photos. Every result carries an attribution string you must show when displaying the photo. PRESENTING RESULTS: show each photo as a clickable Markdown link to its image using the urls.regular value, with the credit from attribution — e.g. #1 — [Photo by Jane Doe on Unsplash](https://…). Inline thumbnail previews are also attached to this tool's result, but some clients (including claude.ai web) only show them inside an expandable tool panel, not in your reply. Do NOT claim you are displaying the images yourself, and if the user says they can't see them, do NOT blame ad-blockers, cache or their browser (that is never the cause) — tell them the thumbnails are in the expandable tool result and give them the links above. RANKS & SIMILAR (important UX): every result carries a rank (1, 2, 3, …) and the inline grid shows it as #1, #2, … on each thumbnail. ALWAYS prefix each photo with its rank when you list results, and AFTER presenting them proactively offer the user more like a specific one — e.g. 'Want more photos like one of these? Just tell me its number (e.g. #3).' When the user replies with a rank/number, find that result's photo_id in this tool's output yourself and call the similar-photos tool with it. Never ask the user for a photo_id or URL — they only know the rank you showed them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qNoYour search query as a full natural-language sentence describing the scene you want — Pexafy is semantic, so sentences beat keywords. Up to 500 characters. Optional if you provide at least one filter instead. Example: 'an old man sitting at a café table he has visited every morning for thirty years'.
cursorNoToken used to fetch the next page. Take the `pagination.next_cursor` value from a previous response and pass it back here. See the [Pagination](/pagination) guide.
sourceNoKeep only photos from these providers: Unsplash, Pexels, Pixabay, Kaboompics, Burst, StockSnap, Picjumbo, Skitterphoto, NegativeSpace. Repeat the parameter to pass several.
color_hexNoKeep only photos close to this hex color (e.g. `#1E90FF`). Cannot be combined with `color_name`. Use `color_tolerance` to widen or tighten the match.
after_dateNoOnly return photos published on or after this date, formatted `YYYY-MM-DD`.
color_nameNoKeep only photos whose dominant color matches one of: red, orange, yellow, green, blue, purple, pink, brown, black, white, gray, teal, beige, gold, navy. Cannot be combined with color_hex.
orientationNoKeep only photos with these shapes: landscape, portrait, square. Repeat the parameter to pass several.
license_typeNoKeep only photos with these license types: free, cc0. 'free' means the photo can be used freely and attribution is appreciated. Repeat the parameter to pass several.
photographerNoOnly return photos from this photographer's username. Use `GET /api/v1/facets/photographers/suggest` to find usernames.
color_toleranceNoHow far a photo's color may be from `color_hex` and still match, from `0` (exact match) to `255` (very loose). Defaults to `20`. Only applies when `color_hex` is set.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
metaNo
errorNo
successNo
paginationNo
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the semantic matching behavior, result fields (attribution, urls.regular, rank), presentation instructions, client-specific thumbnail limitations, and even warns against blaming ad-blockers. This is unusually thorough and transparent.

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 long but every sentence carries actionable instruction—query style, sibling choice, result formatting, client behavior, and rank-based follow-up flow. It is well-structured into thematic sections, making it navigable despite its length. A minor deduction because some details (e.g., the ad-blocker warning) could be trimmed without losing core purpose, but overall it earns its words.

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?

The description is exceptionally complete: it covers when to use the tool, how to phrase queries, how to present results, how to handle client UI limitations, and how to handle follow-up similar-photo requests. It anticipates common agent mistakes and provides explicit output handling even though an output schema exists. Nothing essential is missing for a tool of this complexity.

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 schema covers all 10 parameters with descriptions (100% coverage), so the baseline is 3. The description adds significant meaning for the core `q` parameter by emphasizing full-sentence semantic queries and giving four rich examples, which goes beyond the schema's single example. It also clarifies the optional relationship between `q` and filters. Other parameters are not elaborated further, but the description's focus on the primary input justifies a slight upgrade.

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 opens with a clear directive: 'Use this tool whenever the user needs an image, photo, or visual' and explicitly identifies it as a 'SEMANTIC search engine' that takes natural-language scene descriptions. It also differentiates itself from sibling search_photos_by_image by contrasting text-based vs. image-based queries, making the tool's purpose unmistakable.

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?

The description gives explicit when-to-use guidance: 'Prefer this tool over search_photos_by_image when the user describes what they want in words' and specifies when to use the alternative (when a URL exists) or when to use this tool for an uploaded file with no URL. It also references the similar-photos tool in context, providing a complete decision tree.

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

Install Server

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/Pexafy/pexafy-mcp'

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