{"slug": "an-mcp-server-that-lets-claude-code-find-and-download-stock-photos", "title": "An MCP server that lets Claude Code find and download stock photos", "summary": "A developer released stock-images-mcp, an open-source MCP server that lets coding agents like Claude Code and Cursor search Pexels, Unsplash and Pixabay for real photos and download them into a project. The server exposes two tools, search_images and download_image, and restricts downloads to HTTPS URLs on the three provider domains with a 50 MiB size limit, 30-second timeout, path-escape and symlink rejection, and no file overwrites. It requires Node.js 22 or newer, at least one free provider API key, and is MIT licensed.", "body_md": "Coding agents can write a landing page, but the images are usually\n\nplaceholders. stock-images-mcp is a small MCP server that lets the agent find\n\nreal photos and save them into your project.\n\nThe server has two tools. `search_images` queries Pexels, Unsplash and Pixabay,\n\none provider or all of them, and returns each photo's description, size,\n\nphotographer, photographer URL and download URL. `download_image` saves the\n\nchosen photo into a folder in your project.\n\nIn the demo I asked for three photos of a rainy city street at night and for\n\nthe most atmospheric landscape one to be downloaded. The agent searched, picked\n\none from the results, saved it into `downloads/` and told me which credit to\n\nadd. It chose from the descriptions and sizes in the search results. It did not\n\nlook at the images.\n\nYou need at least one free API key from Pexels, Unsplash or Pixabay. Add the\n\nserver to your MCP config for Claude Code, Cursor or Claude Desktop:\n\n```\n{\n  \"mcpServers\": {\n    \"stock-images\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"stock-images-mcp\"],\n      \"env\": { \"PEXELS_API_KEY\": \"your-key-here\" }\n    }\n  }\n}\n```\n\nIt needs Node.js 22 or newer, and there is a Docker image too.\n\nA download tool that an agent controls should be strict about what it accepts.\n\nIt only takes `https` URLs on pexels.com, unsplash.com and pixabay.com, and\n\nredirects can only go to those hosts. It saves only `image/*` responses, with a\n\n50 MiB limit and a 30 second timeout. Paths that escape the download folder are\n\nrejected, symlinks included, and it never overwrites an existing file.\n\nIf one provider fails, you still get results from the others, with a\n\nper-provider error list. For Unsplash downloads the tool calls their download\n\nendpoint, which their API guidelines require.\n\nThe images stay under each provider's license. The search results include the\n\nphotographer's name and URL so you can credit them where the license asks for it.\n\nRepo: [https://github.com/jeanpfs/stock-images-mcp](https://github.com/jeanpfs/stock-images-mcp)\n\nnpm: [https://www.npmjs.com/package/stock-images-mcp](https://www.npmjs.com/package/stock-images-mcp)\n\nMIT licensed.", "url": "https://wpnews.pro/news/an-mcp-server-that-lets-claude-code-find-and-download-stock-photos", "canonical_source": "https://dev.to/jeanpfs/an-mcp-server-that-lets-claude-code-find-and-download-stock-photos-5fof", "published_at": "2026-10-19 19:33:36+00:00", "updated_at": "2026-10-19 19:44:29.211650+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "developer-tools", "ai-tools"], "entities": ["stock-images-mcp", "Claude Code", "Cursor", "Claude Desktop", "Pexels", "Unsplash", "Pixabay", "jeanpfs"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/an-mcp-server-that-lets-claude-code-find-and-download-stock-photos", "markdown": "https://wpnews.pro/news/an-mcp-server-that-lets-claude-code-find-and-download-stock-photos.md", "text": "https://wpnews.pro/news/an-mcp-server-that-lets-claude-code-find-and-download-stock-photos.txt", "jsonld": "https://wpnews.pro/news/an-mcp-server-that-lets-claude-code-find-and-download-stock-photos.jsonld"}}