mcp-retrieval
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_MODE | No | Logging mode: local or prod. | local |
| MCP_NAME | No | Server name advertised to clients. | mcp-retrieval |
| MCP_PATH | No | HTTP route (http transport only). | /mcp |
| MAX_IMAGES | No | Maximum number of images per query. | 10 |
| PROXY_HOST | No | Proxy host. If set, all proxy credentials are required. | |
| PROXY_PORT | No | Proxy port. Required when PROXY_HOST is set. | |
| MAX_QUERIES | No | Maximum number of queries/URLs per call. | 10 |
| MAX_RESULTS | No | Maximum number of search results per query. | 20 |
| MCP_VERSION | No | Server version advertised to clients. | 0.1.0 |
| PROXY_LOGIN | No | Proxy login. Required when PROXY_HOST is set. | |
| SERVER_PORT | No | HTTP server port (http transport only). | 8080 |
| PROXY_SCHEME | No | Proxy scheme. Required when PROXY_HOST is set. | |
| MCP_TRANSPORT | No | Transport: stdio or http. | stdio |
| DEFAULT_IMAGES | No | Default number of images per query. | 5 |
| MAX_TIMEOUT_MS | No | Maximum timeout in milliseconds. | 10000 |
| MIN_TIMEOUT_MS | No | Minimum timeout in milliseconds. | 1000 |
| PROXY_PASSWORD | No | Proxy password. Required when PROXY_HOST is set. | |
| DEFAULT_RESULTS | No | Default number of search results per query. | 5 |
| DEFAULT_TIMEOUT_MS | No | Default timeout in milliseconds. | 5000 |
| MAX_DOCUMENT_CHARS | No | Maximum characters for scraped pages. | 20000 |
| SERVER_READ_TIMEOUT | No | HTTP server read timeout. | 60s |
| SERVER_WRITE_TIMEOUT | No | HTTP server write timeout. | 60s |
| DEFAULT_DOCUMENT_CHARS | No | Default maximum characters for scraped pages. | 20000 |
| MAX_IDLE_CONNS_PER_HOST | No | HTTP connection pooling. | 100 |
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
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| web_scrapeA | Downloads pages by their links and returns the main text as markdown. Use this to read a page in full after 'web_search' found it; snippets alone are often not enough. Links are fetched in parallel, up to 10 per call, so batch all links into one call. Size: 'max_chars' is a per-page character limit (not tokens). A page cut short ends with '[truncated]' and has 'truncated' set; the rest cannot be fetched afterwards. Results are reported per URL with a 'status' field (success, failed or timeout). A failed URL does not fail the others; the call errors only if every URL fails. Target sites may block or rate-limit the request, which shows up as a failed URL. |
| web_searchA | Searches the web for one or more queries and returns snippets with links. Queries run in parallel. IMPORTANT: Always write search queries in English for best results and relevance. Use this to find sources; then call 'web_scrape' to read a full page, or 'web_search_images' when you need pictures (both can be called in the same turn). Freshness: set the 'date' field to restrict results by recency - 'd' (past day), 'w' (past week), 'm' (past month), 'y' (past year). Use it to prefer the most recent pages when the user asks about news or anything time-sensitive; leave it empty for all time. Query operators (put them inside the query string itself): 'site:example.com term' limits the search to one site; 'filetype:pdf term' restricts to a file type; double quotes "exact phrase" force an exact match; a leading '-' excludes a word (term -foo); 'intitle:term' requires the word in the page title. Operators can be combined, e.g. 'site:arxiv.org filetype:pdf transformers'. Results are reported per query with a 'status' field (success, failed or timeout). A failed query does not fail the others; the call errors only if every query fails. The upstream search engines may rate-limit or block requests, which shows up as a failed or timed-out query - retry later or rephrase. |
| web_search_imagesA | Searches for images by one or more queries, executed in parallel. IMPORTANT: Queries must be in English ONLY. Use this only when you need pictures; use 'web_search' for text answers and links, and 'web_scrape' to read a page. Freshness: set the 'date' field to restrict results by recency - 'd' (past day), 'w' (past week), 'm' (past month), 'y' (past year); leave it empty for all time. Query operators can be embedded in the query string: 'site:example.com term' limits to one site, double quotes "exact phrase" force an exact match, and a leading '-' excludes a word. Results are reported per query with a 'status' field (success, no relevant, failed or timeout). A failed query does not fail the others; the call errors only if every query fails. The upstream image search may rate-limit or block requests, which shows up as a failed or timed-out query. |
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 3 tools
Each tool targets a distinct modality+action: text search, image search, and full-page fetching. The descriptions explicitly cross-reference each other ('use web_search for text, web_scrape to read a page'), leaving no realistic chance of misselection.
All three names follow the same snake_case verb_noun pattern sharing the 'web_' prefix (web_search, web_search_images, web_scrape). The shared prefix makes the family immediately recognizable while the distinguishing suffix stays descriptive.
Three tightly scoped tools for a retrieval-only server; none is redundant and no filler exists. Search-text, search-images, and scrape cover the full surface without bloat.
The retrieve-then-read workflow is fully supported, with batching, truncation signaling, and per-URL status handling. Minor gaps remain (no structured/raw fetch beyond markdown extraction, no crawl or sitemap traversal), but agents can work around these via repeated scrape calls.