SkillTide Submit
Official description10 sourcesMCP servers8d ago
joelio/stocky

joelio/stocky

๐Ÿ โ˜๏ธ ๐Ÿ  - Search and download royalty-free stock photos from Pexels and Unsplash, with rich metadata andโ€ฆ
View on GitHub โ†—Direct link ยท no redirect page
Config template (adjust for your client)
claude mcp add stocky -- npx -y stocky
A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
28 โ˜… ยท joelio/stocky ยท read from the GitHub search API ยท (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list ยท type: MCP server
Harvest history
first seen 2026-10-09 ยท last seen 2026-10-16 ยท seen 32ร— ยท listed by 10 sources
Score
score 1,003 ยท 28 โ˜… ยท 10 sources ยท mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP ๆœๅŠก. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository joelio/stocky๏ผ›first catalogued 2026-10-09๏ผ›last seen 2026-10-16ใ€‚There is no official certification or quality rating here โ€” we record sources and dates only.
Third-party quality signals

Stocky *Find beautiful royalty-free stock images* ๐Ÿ“ธ

ไปฅไธ‹ๆ‘˜ๅฝ•่‡ช่ฏฅไป“ๅบ“็š„ README๏ผˆ็‰‡ๆฎต๏ผ‰ ยท ๅœจ GitHub ่ฏปๅฎŒๆ•ด README โ†’

Stocky is an MCP server that lets an AI
assistant search, inspect and download royalty-free stock photography from
**Pexels** and **Unsplash**.
> ### ๐Ÿ†• Version 2.0 โ€” already using Stocky? Read this
>
> **Your MCP client config keeps working.** If it points at stocky_mcp.py,
> that file is still there and still starts the server. Nothing breaks on
> upgrade.
>
> **But pip install -r requirements.txt will fail** โ€” that file is gone, and
> so is setup.py. From a source checkout, install with **uv sync** or
> **pip install -e .** instead. See Upgrading from 1.x
> for the two-minute version, or the CHANGELOG for everything.
>
> The headline changes: pycurl is gone (so no more C build errors),
> searches actually run concurrently, failed providers now report *why*
> instead of returning nothing, and Python 3.10+ is required.
โœจ Features
- ๐Ÿ” **Multi-provider search** โ€” queries Pexels and Unsplash concurrently
- ๐Ÿ“Š **Rich metadata** โ€” dimensions, photographer, tags and every image size
- โš–๏ธ **Licence-aware** โ€” generates the attribution each provider requires, and
reports Unsplash downloads as their API guidelines demand
- โฑ๏ธ **Search caching** โ€” a short TTL cache keeps repeat queries off your quota
- ๐Ÿ›ก๏ธ **Honest errors** โ€” a failing provider is reported, not silently returned
as "no results"
- ๐ŸŽฏ **Filters** โ€” orientation, colour and sort, validated per provider
**Beautiful stock photography at your fingertips**
Example image used for demonstration purposes
*Stunning landscapes available through multiple providers*
Photo by Simon Berger on Unsplash
๐Ÿš€ Quick start
1. Get API keys
Both are free:
| Provider | Where | Notes |
|---|---|---|
| **Pexels** ๐Ÿ“ท | pexels.com/api | 200 requests/hour by default |
| **Unsplash** ๐ŸŒ… | unsplash.com/developers | 50/hour in demo mode, 1000/hour once your app is approved |
You only need one โ€” Stocky runs with whichever providers are configured.
2. Add it to your MCP client
The recommended configuration needs no installation at all:
Other ways to run it
**Installed with pip or uv:**
**From a source checkout** โ€” still supported so existing configurations keep
working:
Stocky reads its configuration from the environment its client starts it in.
It does not load a .env file of its own, so keys must go in the env block
above.
โš™๏ธ Configuration
| Variable | Default | Purpose |
|---|---|---|
| PEXELS_API_KEY | โ€” | Enables the Pexels provider |
| UNSPLASH_ACCESS_KEY | โ€” | Enables the Unsplash provider |
| ENABLE_ATTRIBUTION_LINKS | false | Include attribution details in every result |
| STOCKY_CACHE_TTL | 300 | Search cache lifetime in seconds. 0 disables caching |
| STOCKY_HTTP_TIMEOUT | 15 | Per-request timeout in seconds |
| STOCKY_MAX_DOWNLOAD_BYTES | 26214400 | Refuse downloads larger than this (25 MiB) |
| STOCKY_DOWNLOAD_ROOT | โ€” | If set, confine all downloads to this directory |
| STOCKY_LOG_LEVEL | INFO | DEBUG, INFO, WARNING, ERROR |
| STOCKY_USER_AGENT | stocky-mcp | User-Agent sent to providers |
STOCKY_DOWNLOAD_ROOT is worth setting. Download paths come from
model-generated tool calls, and this confines writes to one directory. Stocky
always refuses a non-image file extension, and validates that image URLs from a
provider are public HTTP(S) addresses before fetching them, but a download root
is the strongest control available.
๐Ÿ“– Usage
Find the perfect image for your project
Stocky exposes three **MCP tools**. You don't call them directly โ€” your client
invokes them when you ask in natural language.
> Search stock photos for a misty pine forest at dawn.
> Find 30 landscape-orientation mountain photos from Pexels.
> Download pexels_123456 at medium size to ~/Pictures/mountain.jpg
๐Ÿ› ๏ธ Tools
search_stock_images
| Parameter | Type | Default | Notes |
|---|---|---|---|
| query | str | *required* | Search terms |
Source
awesome ยท https://github.com/joelio/stocky
Browse by field
MCP servers
Traction
28 โ˜…
added
yesterday

More in MCP servers

All 5,525 in MCP servers โ†’

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields โ†’

โ† Back to index