design_search_images
Search for UI design inspiration across Dribbble, Behance, Awwwards, Mobbin, and Pinterest. Find images with URLs, dimensions, and source links using specific design queries like 'dashboard dark mode' or 'mobile onboarding flow'.
Instructions
Image search across Dribbble, Behance, Awwwards, Mobbin, and Pinterest. Returns image URLs, dimensions, and source links. Use specific UI terms ("fintech dashboard dark mode") over vague ones ("nice design").
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | UI design search query. Examples: "dashboard dark mode", "mobile onboarding flow", "saas pricing page" | |
| sites | No | Filter to specific design sites. Empty array searches all sites. Options: dribbble, behance, awwwards, mobbin, pinterest | |
| num | No | Number of image results to return (1-40, default: 10) |
Implementation Reference
- src/index.ts:162-199 (handler)The handler implementation for the `design_search_images` tool, including the search logic using `serperRequest` and result formatting.
server.registerTool("design_search_images", { title: "Search design images", description: `Image search across Dribbble, Behance, Awwwards, Mobbin, and Pinterest. Returns image URLs, dimensions, and source links. Use specific UI terms ("fintech dashboard dark mode") over vague ones ("nice design").`, inputSchema: SearchImagesInputSchema, annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, }, async (params: SearchImagesInput) => { try { const siteQuery = buildSiteQuery(params.query + " UI design", params.sites); const data = await serperRequest<SerperImagesResponse>("/images", { q: siteQuery, num: params.num, }); const images = data.images || []; const text = formatImageResults(images, params.query); return { content: [{ type: "text" as const, text }], structuredContent: { query: params.query, count: images.length, images: images.map((img) => ({ title: img.title, imageUrl: img.imageUrl, thumbnailUrl: img.thumbnailUrl, source: img.source, link: img.link, width: img.imageWidth, height: img.imageHeight, })), }, }; } catch (error) { - src/index.ts:143-158 (schema)Input validation schema for the `design_search_images` tool using Zod.
), sites: z .array(z.enum(["dribbble", "behance", "awwwards", "mobbin", "pinterest"])) .default([]) .describe( "Filter to specific design sites. Empty array searches all sites. Options: dribbble, behance, awwwards, mobbin, pinterest" ), num: z .number() .int() .min(1) .max(40) .default(10) .describe("Number of image results to return (1-40, default: 10)"), }) .strict(); - src/index.ts:162-162 (registration)Registration of the `design_search_images` tool.
server.registerTool("design_search_images", {