Model Context Protocol
Give Claude the library
The same 50718 photographs, reachable by an agent mid-task. Ask for a hero image for a landing page and it can search, look at what came back, and hand you a URL — without you opening a stock site.
Install
Add this to your Claude Desktop config, then restart Claude.
{
"mcpServers": {
"quarry": {
"command": "npx",
"args": ["-y", "@siteko/quarry-mcp"],
"env": { "QUARRY_API_URL": "https://quarry.siteko.tech" }
}
}
}In Claude Code: claude mcp add quarry -- npx -y @siteko/quarry-mcp
The four tools
search_imagesSearch by keyword, category and shape.
Returns one line per image rather than JSON. A model handed 24 objects with five URLs each spends most of its context on links it will never open — it needs enough to choose, and the full URLs only for what it picks.
get_imageOne image: every width, the licence, and twelve similar images.
The second most common request after “find me an image” is “something like that but different”. Without the similar list, that turns into a fresh search that returns the same results.
list_categoriesEvery category with a live count.
Lets the model find out what the library actually contains before guessing at a search.
popular_tagsThe most-used tags.
The vocabulary is finite and hand-written. Reading it beats guessing at it.
What it looks like
> Find me a wide photo of fog in a forest for a hero banner.
search_images(query: "forest fog", orientation: "LANDSCAPE", limit: 4)
62 images matched, showing 4.
jw2adbb Fog in the forest — forest, fog, trees, mist
landscape 2300×1533 · © Orlova Maria
bk7tfbb Tall trees in fog — forest, fog, trees, tall
landscape 5000×3333 · © Ali Inay
93e2bbb Avenue in fog — trees, fog, avenue, road, mist
landscape 3011×2000 · © Dorothy Lin
get_image(id: "jw2adbb", width: 1600)
https://quarry.siteko.tech/i/jw2adbb/1600One design decision worth stating
The MCP server calls the public API, not the database. It would be faster to query directly, and it would also mean two code paths that can disagree — an agent seeing something the website cannot, or a search that breaks for models only and gets noticed months later. This way, if search breaks it breaks in both places on the same afternoon.