reference-search-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OUT_DIR | No | Directory for collected output artifacts. | ./out |
| DATA_DIR | No | Directory for session data and temporary files. | system temp |
| NO_PROXY | No | Hosts that should bypass the proxy. | |
| GRID_ROWS | No | Number of rows in the contact sheet grid. | 8 |
| PROVIDERS | No | Comma-separated enabled image providers. | ddg,bing,wikimedia |
| HTTP_PROXY | No | Optional HTTP proxy for image source requests. | |
| FILTER_MODE | No | Filter mode: auto|server|client. Determines whether the server performs vision filtering. | auto |
| HTTPS_PROXY | No | Optional HTTPS proxy for image source requests (some sources are blocked). | |
| PI_THINKING | No | Thinking mode for the LLM: off|minimal|low|medium|high. It is recommended to keep it enabled. | auto |
| SAFE_SEARCH | No | Enable safe search (e.g., true/false). | |
| GRID_COLUMNS | No | Number of columns in the contact sheet grid. | 6 |
| LLM_MAX_TURNS | No | Maximum turns for the inner LLM tool-calling loop. | 3 |
| PI_TEXT_MODEL | No | Model identifier for text parsing (e.g., deepseek/deepseek-v4-flash). | auto-selected |
| GEMINI_API_KEY | No | API key for Google Gemini. | |
| GRID_CELL_SIZE | No | Cell size in pixels for the grid. | 256 |
| OPENAI_API_KEY | No | API key for OpenAI. | |
| SERPER_API_KEY | No | API key to enable the Serper (Google image search) provider. | |
| HTTP_TIMEOUT_MS | No | HTTP request timeout in milliseconds for fetching images. | 15000 |
| OPENVERSE_TOKEN | No | Token to enable the Openverse image provider (CC image library). | |
| PI_VISION_MODEL | No | Model identifier for vision filtering (e.g., anthropic/claude-sonnet-4-5). | auto-selected |
| DEEPSEEK_API_KEY | No | API key for DeepSeek (used for text parsing or as the key for a custom provider). | |
| ANTHROPIC_API_KEY | No | API key for Anthropic (used for vision filtering). | |
| OPENROUTER_API_KEY | No | API key for OpenRouter. | |
| SESSION_TTL_MINUTES | No | Session and temporary grid cleanup TTL in minutes. | 120 |
| PI_CUSTOM_PROVIDER_ID | No | Custom provider identifier (e.g., deepseek-vision). | |
| PI_CUSTOM_PROVIDER_API | No | API type for a custom OpenAI-compatible provider (e.g., openai-completions). | |
| PI_CUSTOM_PROVIDER_MODELS | No | Comma-separated model list for a custom provider (e.g., qwen-vl-max,qwen-turbo). | |
| PI_CUSTOM_PROVIDER_API_KEY | No | API key for a custom provider. | |
| PI_CUSTOM_PROVIDER_BASE_URL | No | Base URL for a custom OpenAI-compatible provider. | |
| PI_CUSTOM_PROVIDER_API_KEY_ENV | No | Name of the environment variable that holds the API key for a custom provider (e.g., DEEPSEEK_API_KEY). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| image_search_startA | Parse a natural-language query into keywords (unless keywords are given), search all configured image providers in parallel, dedupe, render a numbered composite grid (round 'a', cell ids a1..aN), and run a multimodal filter that returns the selected cell ids. Returns the grid file path, the selected ids, the metadata table, and the keywords actually used. |
| image_search_iterateA | Give feedback referencing round-qualified ids (e.g. 'keep a3, more like b7, no photos') plus optional explicit keywords. Produces the next round (b, c, ...) with dedup against all previously shown images. The LLM interprets the feedback into keyword additions/removals via refine_search. |
| image_search_collectA | Download the full-resolution images for a list of round-qualified ids (e.g. ['a3', 'b12']) to the output directory. Returns local file paths plus a manifest with source URLs and licenses. |
| image_search_statusB | Rounds so far, per-round selections/rejections, current keywords, and collected ids. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a unique and clearly defined role: start initializes a search, iterate refines it with feedback, collect downloads selected results, and status reports the current state. No two tools overlap in purpose.
All tools follow the exact same `image_search_<verb>` pattern, with verbs that accurately describe the action (start, iterate, collect, status). The naming is uniformly styled and predictable.
Four tools is perfectly scoped for an iterative image search workflow. Each tool covers a necessary step without redundancy, making the set concise and well-balanced.
The tools cover the full lifecycle: initiating a search, refining it through feedback, collecting final results, and monitoring progress. No obvious gaps exist for the intended use case, as the start tool integrates search and multimodal filtering.