Deep research
deep_researchResearch a topic across multiple search terms and engines, re-ranking results locally, removing duplicates, and fetching the best pages as text.
Instructions
Research a topic across several search terms and engines. Each term is searched on each backend, results are re-ranked locally by relevance, duplicates are removed, and the best pages are fetched as text.
Backends: auto, brave, duckduckgo, google, grokipedia, mojeek, startpage, wikipedia, yahoo.
"auto" (default): ddgs metasearch over several engines, skipping blocked ones. Most reliable.
"brave": fast and usually available.
"wikipedia": exact article lookups, best with title-like terms.
"google", "startpage", "yahoo", "mojeek": often blocked. Empty engines are reported as warnings, and if every chosen engine is empty the terms are retried with "auto".
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"search_terms": "<search_terms>"
},
"name": "deep_research"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| news | No | Search news articles instead of the web. Results then carry their published "date". News backends: auto, bing, duckduckgo, yahoo. Pair with recency for current events. | |
| region | No | Region-language code like "us-en", "uk-en" or "de-de". Default: ddgs's own (us-en). | |
| recency | No | Applied to every term. Only results from the past "day", "week", "month" or "year". | |
| backends | No | Backends to use. Defaults to ["auto"]. Unknown names are skipped with a warning. | |
| passages | No | True returns only the passages that answer each term, about a tenth of the text of full pages: prefer it unless whole pages are needed. False returns full pages. Left out, the server's MCPSURFR_DEEP_RESEARCH_MODE decides (pages by default). | |
| include_urls | No | Whether to include each page's source URL. | |
| max_passages | No | Passages to return in passages mode, shared across terms. Default 12. | |
| search_terms | Yes | 2-5 specific, related search queries covering different angles. Example: ["postgres query planner", "postgres index types", "EXPLAIN ANALYZE tutorial"] | |
| top_k_per_term | No | Number of top-ranked results to keep per search term per backend. | |
| exclude_domains | No | Never results from these sites. Example: ["pinterest.com"] | |
| include_domains | No | Only results from these sites, subdomains included. Example: ["python.org", "stackoverflow.com"] | |
| num_results_per_term | No | Number of results to rank per search term per backend. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||