MCP server for Pexels photo and video search
Three tools with complete input schemas and descriptions. Naming follows verb_noun pattern (search_*, get_*). Descriptions are adequate (100-150 chars) but lack actionable context for LLM selection. Parameters are well-typed with enums for orientation/size, but descriptions could specify constraints more explicitly (e.g., 'max 100 characters' for query). Output schema is documented in server instructions but not formally declared per-tool. Error handling and recovery guidance are absent from tool definitions.
Get detailed information about a specific photo or video by ID.
Search for stock photos by query with optional filters for orientation, size, color, and locale. Returns 3-5 results with mandatory photographer attribution.
Search for stock videos by query with optional filters. Returns HD-quality .mp4 links with mandatory attribution.
Output schema not formally documented in tool definitions. Server instructions mention 'two content blocks per result' and 'JSON text block with structured data', but tool schemas lack explicit outputSchema declarations. LLMs cannot plan downstream operations without knowing return structure.
pexels_get_details description is vague ('Get detailed information about a specific photo or video by ID'). Does not explain when to use it vs search tools, what additional fields it returns, or why an agent would call it. Lacks actionable context for LLM selection.
No error handling guidance in tool definitions. If API key is missing, rate limit exceeded, or ID not found, tools provide no recovery hints. Error responses should guide LLM: 'Rate limit exceeded. Wait 1 hour or use force_refresh=false to check cache.'
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2025-06-18+ | v2 |
Parameter descriptions lack explicit constraints. 'query' says 'max 100 characters' in description but no minLength/maxLength in schema. 'per_page' has min/max in schema but description does not explain why (rate limit preservation). Constraints should be both in schema AND description for LLM clarity.
No pagination guidance in descriptions. Tools accept per_page (max 10) but do not explain how to iterate through results or what happens if user wants 50 photos. Missing offset/cursor parameter limits discoverability of multi-page workflows.