Arxiv Search Papers
arxiv_search_papersSearch arXiv papers by query with category and sort filters. Returns paper metadata including title, authors, abstract, categories, and links.
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": {
"query": "<query>"
},
"name": "arxiv_search_papers"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query. Field prefixes: ti: (title), au: (author — search the surname and narrow a common one with a category or topic: au:hinton AND cat:cs.LG; a quoted name such as au:"geoffrey hinton" matches when one author's name holds every quoted word, in any order, and an initial does not match a spelled-out first name), abs: (abstract), cat: (category — a leaf code matches exactly, an alias code such as cat:cs.NA matches its canonical code, math.NA, and a bare archive code such as cat:astro-ph matches its whole subtree), co: (comment), jr: (journal ref), all: (all fields). Boolean operators, uppercase only: AND, OR, ANDNOT. Space-separated terms are joined with OR, so "quantum computing" matches papers with either word; AND requires every term ("quantum AND computing"). The operators share one precedence and group to the right ("a AND b OR c" reads as "a AND (b OR c)"), so use parentheses for any other grouping. Quote a multi-word topic to match it as a phrase, and put alternatives in parentheses before a filter so the filter applies to all of them: '"graph neural networks" AND cat:cs.LG', '(ti:transformer OR ti:attention) AND cat:cs.CL'. arXiv ignores common words such as of, the, and, for, in, so leave them out or keep them inside a quoted phrase. Examples: "au:bengio AND ti:attention", "all:transformer AND cat:cs.CL". | |
| start | No | Pagination offset (0-10000). Use with max_results to page through results. E.g., start=10 with max_results=10 returns results 11-20. arXiv serves only the first 10000 results of a query, so a page reaching past result 10000 can come back cut short at it and a start of 10000 can be refused. To reach later matches, carve the search into submitted_from/submitted_to windows and page within each. | |
| sort_by | No | Sort criterion. Use "submitted" for newest papers, "relevance" for best query matches. | relevance |
| category | No | Restrict results to an arXiv category. A leaf code ("cs.CL", "math.AG") matches exactly. An alias code matches the papers of the canonical code arXiv lists in its place: "cs.NA" matches math.NA, "cs.SY" eess.SY, "math.IT" cs.IT, "math.MP" math-ph, "stat.TH" math.ST, "q-fin.EC" econ.GN. A bare archive code ("astro-ph", "cond-mat", "cs", "math") matches the whole archive — its subject classes plus the legacy flat papers filed before the archive was subdivided — and the canonical codes of the aliases in it, so "cs" also matches math.NA and eess.SY. Note "physics" is the general-physics archive (physics.*), not the wider physics group: astro-ph, cond-mat, hep-*, quant-ph and the rest are separate archive codes. Use arxiv_list_categories to discover subject classes. | |
| sort_order | No | Sort direction. "descending" returns newest/most relevant first. | descending |
| max_results | No | Maximum results to return. Default 10. At most 50 are returned per call: a larger value returns the first 50, and when more matches exist the response says how to reach them — the start of the next page, or date windows once paging cannot reach them all. arXiv serves only the first 10000 results of a query, so a page reaching past result 10000 can come back cut short at it, and the response says so. Each result includes title, authors, abstract, and metadata — keep low to limit response size. | |
| submitted_to | No | Latest submission date to include, inclusive, as a UTC YYYY-MM-DD date. Omit for no upper bound. Both bounds are inclusive, so consecutive windows ("2024-01-01".."2024-01-15" then "2024-01-16".."2024-01-31") cover the matches with no gap; a paper submitted at exactly the midnight seam between two windows appears in both, so de-duplicate collected results by paper id. That is the way to reach matches past the start ceiling: split the date range, then page within each window. | |
| submitted_from | No | Earliest submission date to include, inclusive, as a UTC YYYY-MM-DD date. Omit for no lower bound. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cap | No | The page size applied: max_results, or 50 when max_results asks for more — fewer when the page was cut short at result 10000, the last one arXiv serves. | |
| error | No | Present when the call failed. Absent on success. | |
| shown | No | Papers returned on this page. | |
| notice | No | Recovery guidance when results are empty or paging overshot. Absent on successful pages. | |
| papers | No | Matching papers with full metadata. | |
| pageStart | No | Pagination offset of this result page. | |
| truncated | No | True when more matching papers exist beyond this page (totalFound > start + shown). | |
| totalFound | No | Total matching papers before pagination. Exact, except for a search the local mirror answers with no free-text term that spans several category codes (a whole archive such as cat:cs, or two categories) or filters by submitted date alone: the mirror stops counting such a search at 50,000, and a total of 50,000 there carries totalFoundIsLowerBound and means 50,000 or more. | |
| effectiveQuery | No | The query as actually searched, carrying every filter applied — the category subtree and submitted-date window folded into arXiv syntax alongside the supplied terms. Replaying it as `query` with no other filters reproduces this exact result set. | |
| totalFoundIsLowerBound | No | Present when totalFound is a floor: at least that many papers match. Absent when totalFound is exact. |