Parallel Web Search and Extract
search_parallelRun 2–12 independent live web searches in one call, then optionally extract abstracts or full text from public pages, PDFs, and GitHub repos to gather ranked evidence for research tasks.
Instructions
PRIMARY MULTI-QUERY LIVE DISCOVERY AND CONTENT INGESTION TOOL. ALWAYS PERFORMS MULTIPLE LIVE WEB SEARCHES. With research enabled, one local broker lets multiple MCP sessions query the same knowledge base concurrently and orders writes safely. Use this tool only when 2-12 new external queries are required. Providing project_id adds stored evidence but never makes the searches local-only. When the task requires broad discovery plus reading public web pages, PDFs, papers, or GitHub repositories, set extract_mode=abstract or full in this call. Do not download public PDFs, clone repositories, or invoke local parsers first. Select extract_mode=full, not abstract, when the user asks to read originals, full text, document bodies, or code, or to compare source contents. Use extract separately only when the exact public URL is already known and no new discovery is required. Use general repository tools only for editing, building, testing, or full Git history. For stored project knowledge without live web discovery, use project_memory_search. Each query limit accepts integers from 1 to 20. Call-wide extract_limit accepts 1-20 with default 12 for abstract, and 1-10 with default 10 for full. Final results use one call-wide bounded response budget after ranking; at most 36 ranked rows are returned across query groups and full captured bodies remain local. Use extract on one selected URL when longer response text is explicitly required. The response includes applied, skipped, truncated, total_chars, and a bounded remaining_urls list. GitHub none mode reads the README; abstract and full can sparse-index eligible repositories with Tree-sitter. With research enabled and project_id set, each query fuses live, exact, BM25, vector, code, and graph lanes through RRF and one reranker. With research disabled, each query independently fuses provider order and query BM25 rank through a lightweight in-memory RRF reranker without opening local storage or loading the vector model. research_context returns prior project searches; capture retains data lineage and include_project_ids uses versioned ontology and verified cross-project schema/entity links. Extracted bodies become evidence while unread hits remain metadata. Native Chrome uses one authenticated local broker across MCP sessions and keeps one hidden process with up to four reusable tabs. Query starts are staggered and each tab continuously consumes the remaining queue. SearchApi fallback replaces failed queries individually.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum results per query. Integer 1-20, default 10. | |
| queries | Yes | 2-12 independent live queries. | |
| max_chars | No | Maximum returned characters per extracted result in response_content=full. Defaults to 1500 for abstract and 50000 for full. | |
| project_id | No | Project memory id. | |
| session_id | No | Stable host task id. Reuses the same project session after restart. | |
| extract_mode | No | Content depth in this search call. Use none only when titles and snippets are enough, abstract for relevance evidence, and full when the user asks to read originals, full text, document bodies, or code, or to compare source contents. Use abstract or full here instead of following search with separate extraction, PDF download, or repository clone. For GitHub results, none reads the README; abstract and full use the same repository eligibility gate but index different source amounts. | none |
| extract_limit | No | Call-wide maximum unique result URLs to extract. Integer 1-20, default 12 for abstract; full defaults to and allows at most 10. | |
| memory_handle | No | Reuse the handle returned by a prior project-aware call. | |
| session_intent | No | Current durable task intent. A changed value creates an immutable revision. | |
| response_content | No | Controls only returned bodies. summary is the default and returns 1500-character evidence excerpts; full returns up to max_chars. Research storage keeps the full captured text in deterministic chunks. | summary |
| include_project_ids | No | Additional read-only projects joined through ontology-aligned schema and identity links. New records stay in project_id. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meta | No | ||
| error | No | ||
| memory | No | ||
| results | No | ||
| elapsed_ms | No | ||
| memory_handle | No | ||
| research_context | No |