Search your images from Claude Code
An agent that can generate images but cannot find the ones you already have will keep remaking them. The Nano Studio Pro MCP server gives Claude Desktop, Claude Code, or any MCP host a search tool over your whole library — matching on what is inside each photo, not what the file happens to be called.
Why filenames are not enough
Most image libraries can only match text someone typed: a filename, a folder, or the prompt that made the picture. That fails in the normal case. You remember a navy sneaker on a concrete floor; the file is called final_v3_edit.png and it lives in a project you have forgotten the name of.
Every image that enters Nano Studio Pro — generated here, uploaded from disk, or pulled from a URL — is run through a detection scan first. The scan records the objects in the frame, their colors and textures, their positions, and a short narrative describing the scene. That is the index search queries, which is why a description of the photo finds the photo.
The search tool
Two arguments. query is required and is plain language — not a boolean expression or a tag list. limit defaults to 20.
{
"name": "search",
"arguments": { "query": "navy sneaker on concrete", "limit": 20 }
}jsonResults come back with an id, the kind of record, a relevance score, and a URL the model can open to look at the image:
{
"items": [
{
"id": "gen_8f2c...",
"kind": "generation",
"name": "Studio sneaker, overhead",
"score": 0.91,
"image_url": "https://..."
}
],
"total": 14
}jsonSearch spans assets and generations together, across every project, and is free to call — so an agent can look before it generates.
What to ask for
You do not call the tool yourself; you describe the picture and the model calls it. These all work because the scan indexed the contents, not the name:
- “Find the shot of the red dress against a brick wall and use it as a reference.”
- “Do we already have a product photo of the white sneakers on a light background?”
- “Pull up every image in this project with a person wearing a jacket.”
- “Find the hero image I made for the landing page last month, then upscale it.”
The last one is the pattern worth designing for: find first, then act on what you found. It is cheaper than regenerating and it keeps a project visually consistent.
Seeing what the engine sees
When a search is not matching, or when you need the exact item name to pass to restyle, ask for the detections on a single image. It is free.
{
"name": "get_detections",
"arguments": { "id": "gen_8f2c..." }
}jsonYou get back the detected items with their bounding boxes, the color and texture readings, and the scene narrative — the raw material the index is built from. If a term you expected is not in there, that is why the search missed.
Narrowing without searching
Three list tools cover the cases where a query is the wrong instrument: list_generations and list_assets walk a project in order, and list_favorites returns only the shots you hearted — a good shortcut when you want the best images from a project rather than a specific one.
Images that were never made here
Search is only as good as what is in the library, and the library is not limited to generated work. Existing product shots, client photos, and screenshots can all be brought in and are scanned on the way through — see importing your existing images.
Full tool list and install steps are on the MCP server page. The same search is available over HTTP in the API reference.