MCP server for finding icons, logos, stock photos, vectors, and emoji — built for AI coding agents
Asset Finder MCP defines 8 tools with reasonable naming and descriptions. All tools follow verb_noun patterns (search_*, get_, list_) and have descriptions between 124-280 characters, which is within baseline. However, schemas are incomplete: parameters lack full type specifications (e.g., 'license' is string.optional() without enum constraints), and output schemas are entirely absent, no documented return types for any tool. Error handling is basic (provider-not-available checks return text blobs) and lacks recovery guidance. No input validation or security-relevant parameter sanitization visible. The tool set is well-composed (each does one thing) but lacks the production polish expected for B/A grades.
Get full details for a specific asset by its ID (e.g. 'iconify:mdi:home' or 'pexels:12345'). Returns the asset URL, download URL, license info, and metadata.
List all available asset providers and their status. Shows which providers are configured and ready to search. Use this to understand what sources are available before searching.
Search for open-source emoji from OpenMoji. Returns SVG emoji files. All emoji are CC BY-SA 4.0 licensed.
Search for icons from 200,000+ icons across 150+ icon sets (Iconify). Returns SVG icons with license info. Perfect for finding UI icons, app icons, and symbols.
Search for brand and company logos. Returns high-quality PNG logos for 50,000+ brands. Requires LOGO_DEV_TOKEN env var for full functionality.
Search for free stock photos from Pexels, Unsplash, and Pixabay. Photos are free for commercial use. Set PEXELS_API_KEY, UNSPLASH_ACCESS_KEY, or PIXABAY_API_KEY env vars to enable respective providers.
Missing output schemas: No tool documents its return type structure. LLMs cannot plan downstream calls or extract specific fields from results. Required by pattern:tool.
'license' parameter is free-form string.optional() across 5 tools, but descriptions hint at enums ('mit, cc0, cc-by, free-for-commercial'). Missing explicit enum constraints invite hallucinated license values.
Error handling is text-only with no recovery guidance. E.g., 'Iconify provider not available' gives no hint about what to do next or whether the agent should try another tool. Required by pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Search for SVG vectors and illustrations from SVG Repo (500,000+ open-licensed SVGs). Returns downloadable SVG files with license information.
Smart asset suggestion — describe what you need in natural language and get the best matching assets across all sources (icons, logos, stock photos, vectors, emoji). The tool automatically picks the right provider(s) based on your description. Use this when you're not sure which specific asset type to search for.
'limit' parameter is numeric without documented bounds. Unbounded numbers can lead to oversized API requests or context-window exhaustion. Should document valid range (e.g., 1-100).
No pagination support visible. Tools return all filtered results without page/offset/limit controls or total_count indicators. Will fail on large result sets (e.g., searching '500,000+ SVGs' could return thousands of items, blowing context window).