Search papers (multi-query)
search_papers_manyUse for a LITERATURE SWEEP or survey: a research question broad enough to need several angles, e.g. "what's been done on X", a related-work section, or a state-of-the-field summary. One call returns one merged, ranked list of the papers the angles found, with the passages that matched. For a single focused question, use search_papers instead. Runs 1 to 25 query variants in ONE call and gets back a single deduped, RRF-merged ranked list with per-paper provenance (matched_queries: which of your queries, by index into the echoed queries, surfaced each paper, and at what rank): supply several genuinely different angles on the topic (rephrasings, sub-questions, alternate terminology) and the server fuses their ranked lists so the merged result covers more of the corpus than any single query would. Each variant runs the same hybrid retrieval as search_papers (Cohere Embed v4 + BM25 + Cohere Rerank v3.5) without its server-side rewrites, because your variants are the expansion: spell out abbreviations and synonyms in the variants themselves. Filters (conference, year, year_min, year_max, venues) are SHARED across all queries. The envelope reports queries_run and, for any variant whose pipeline failed, queries_failed (so one bad variant never sinks the batch). has_more is always false: the merged shortlist is bounded; widen the query set or filters for more coverage. Each hit carries metadata, abstract, ids, and the matched contexts spans to ground or quote from; detail: false returns concise hits with one snippet. paper_id is a handle for YOU to fetch full text via get_paper_fulltext; cite papers by title, authors, and venue, never by id. Billing: each query variant counts as one search against your quota (an 8-query call costs 8), since the server runs a full search pipeline per variant; prefer a focused set of genuinely distinct angles over padding the list.
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": {
"queries": "<queries>",
"limit": "<limit>",
"detail": "<detail>"
},
"name": "search_papers_many"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | Shared across every query: restrict to a single publication year. | |
| limit | Yes | Max papers in the merged, deduped result list (default 10, max 50). | |
| detail | Yes | true (default): include the full abstract, ids, and contexts[] non-abstract matched spans for grounding. false: concise hits (title, authors, year, venue, citations, score, and a single grounding snippet) for token-saving triage. `matched_queries` provenance is always present. For the complete paper text call get_paper_fulltext. | |
| venues | No | Shared across every query: restrict to these conference short names (e.g. ["NeurIPS", "ICML"]). | |
| queries | Yes | 1 to 25 query variants to run in ONE call. Phrase each the way you would ask a human research assistant (full natural-language questions beat keyword bags). Supply genuinely different angles on the topic (rephrasings, sub-questions, alternate terminology) so the merged list covers more of the literature than any single query would. The server runs each variant through the full hybrid pipeline and RRF-fuses the ranked lists into one deduped result set. | |
| year_max | No | Shared across every query: only papers published in this year or earlier. | |
| year_min | No | Shared across every query: only papers published in this year or later. | |
| conference | No | Shared across every query: filter to this conference short name, e.g. "CCS", "NeurIPS". |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| queries | Yes | Your query variants, once each and in the order you sent them; each hit's `matched_queries` points into this list. | |
| results | Yes | One deduped, RRF-merged ranked list across all query variants; each hit carries `matched_queries` provenance. | |
| has_more | Yes | Always false: the merged shortlist is bounded, so there is no cursor to page past it. Widen the query set or filters for more coverage. | |
| queries_run | Yes | How many of the submitted query variants completed successfully. | |
| queries_failed | Yes | Variants whose pipeline raised; recorded here instead of sinking the whole batch. Empty when every variant ran. |