stock-images-mcp
Allows for searching and downloading stock images from the Pexels platform, with support for filtering by orientation and count.
Enables searching and downloading stock images from Pixabay's collection of stock media.
Provides tools for searching and downloading high-quality stock images from the Unsplash library.
Stock Images MCP
An MCP (Model Context Protocol) server for searching and downloading stock images from Pexels, Unsplash, and Pixabay.
Features
search_images: Search across multiple stock image providers
download_image: Download images to local folder
Related MCP server: Pexels MCP Server
Setup
Get API Keys (at least one required)
Pexels: https://www.pexels.com/api/
Unsplash: https://unsplash.com/developers
Pixabay: https://pixabay.com/api/docs/
Usage with Claude Code / Cursor
Add to your MCP config (~/.claude/mcp.json or ~/.cursor/mcp.json):
{
"mcpServers": {
"stock-images": {
"command": "npx",
"args": ["-y", "stock-images-mcp"],
"env": {
"PEXELS_API_KEY": "your-key-here",
"UNSPLASH_API_KEY": "your-key-here",
"PIXABAY_API_KEY": "your-key-here"
}
}
}
}Usage with Docker
docker build -t stock-images-mcp .
docker run -e PEXELS_API_KEY=xxx stock-images-mcpTools
search_images
Search for stock images across configured providers.
Parameters:
query(required): Search termprovider: "pexels", "unsplash", "pixabay", or "all" (default: "all")count: Number of results per provider (default: 5, max: 20)orientation: "landscape", "portrait", or "square"
download_image
Download an image to local folder.
Parameters:
url(required): Image URLfilename: Output filename (auto-generated if omitted)folder: Destination folder (default: "./downloads")
License
MIT
Available Tools
2 toolsdownload_imageC
Download a stock image to local folder
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the image to download | |
| filename | No | Output filename (auto-generated if omitted) | |
| folder | No | Destination folder (default: ./downloads) | ./downloads |
TDQS
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 mentions downloading to a local folder but lacks details on permissions needed, file system impacts, error handling, or rate limits. For a tool that writes to disk, this is a significant gap in safety and operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and destination without any wasted words. It's appropriately sized for the tool's complexity and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that performs file system writes. It lacks details on behavioral traits, error responses, or output format, which are critical for safe and effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all parameters thoroughly. The description adds no additional meaning beyond implying 'stock image' for the URL, but this is minimal value. Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('download') and resource ('stock image') with destination ('to local folder'), making the purpose immediately understandable. However, it doesn't differentiate from the sibling 'search_images' tool, which would require explicit comparison to achieve a score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the sibling 'search_images' or any alternatives. The description implies usage for downloading stock images but doesn't specify prerequisites, constraints, or when not to use it, leaving the agent without contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_imagesC
Search stock images across providers. Available providers: pexels
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term for images | |
| provider | No | Which provider to search (default: all configured) | all |
| count | No | Number of images per provider (default: 5, max: 20) | |
| orientation | No | Image orientation filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action. It doesn't disclose behavioral traits like rate limits, authentication needs, pagination behavior, response format, or what happens when providers fail. For a search tool with no annotation coverage, this leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. It's appropriately sized for a search tool, though it could be slightly more informative without losing conciseness. No wasted words or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (image metadata, URLs, thumbnails?), how results are structured, or any limitations beyond the basic purpose. The agent would need to guess about the output format and behavioral characteristics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 4 parameters. The description adds minimal value beyond the schema - it mentions 'available providers: pexels' which partially explains the provider parameter, but doesn't clarify the relationship between 'pexels' and the enum values or what 'all' means. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and resource 'stock images across providers', with specific mention of 'pexels' as an available provider. It distinguishes from the sibling 'download_image' by focusing on search rather than download, though it doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'download_image'. It mentions 'available providers: pexels' but doesn't explain when to choose specific providers or what 'all' means in practice. No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v1.0.0- First observed
download_image - First observed
search_images
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one for searching images and one for downloading them. There is no overlap or ambiguity between these functions, making it easy for an agent to select the correct tool based on the task.
Both tool names follow a consistent verb_noun pattern (search_images, download_image) with clear, descriptive verbs. The naming is uniform and predictable throughout the set.
With only two tools, the server feels under-scoped for a stock image domain. A typical stock image service would benefit from additional operations like filtering results, viewing image details, or managing downloads, making this set too minimal for effective agent workflows.
The tool surface is severely incomplete for stock image operations. It lacks basic CRUD-like functions such as viewing image metadata, filtering searches, or handling multiple providers beyond Pexels. This will likely cause agent failures when trying to perform common tasks in this domain.
Maintenance
Related MCP Connectors
MCP server for Pixapi: check live credit pricing and balance, then generate images and video.
MCP server for Qwen Image 3 AI image generation
MCP server for Flux AI image generation
MCP server for Google Veo AI video generation
Related MCP Servers
- AlicenseBqualityFmaintenanceMCP server for searching images with Google221 npm13MIT
- AlicenseAqualityDmaintenanceAn MCP server to search for photos and videos on Pexels.322 npmMIT
- AlicenseAqualityCmaintenanceMCP server that allows AI coding agents to search, download, and convert stock photos from Pexels, Unsplash, and Pixabay into WebP format for direct use in web development projects.325 npm2MIT
- AlicenseAqualityCmaintenanceMCP server that enables searching and downloading Unsplash photos and collections.4MIT