arXiv Researcher
Research reading is the fastest way to fill a context window with text that was never going to matter. This skill spends tokens the way a careful reader spends an afternoon: cheap survey first, deep reading only where the survey earned it, and a number agreed up front for how much the whole thing may cost.
Setup
alphaXiv exposes a streamable-HTTP MCP server at https://api.alphaxiv.org/mcp/v1. OAuth sign-in opens in the browser on first use; an API key (alphaXiv Settings, then API Keys) works for non-interactive runs as Authorization: Bearer <key>.
# Claude Code
claude mcp add --transport http alphaxiv https://api.alphaxiv.org/mcp/v1
# Codex: ~/.codex/config.toml
[mcp_servers.alphaxiv]
url = "https://api.alphaxiv.org/mcp/v1"
// Cursor: ~/.cursor/mcp.json
{ "mcpServers": { "alphaxiv": { "url": "https://api.alphaxiv.org/mcp/v1" } } }
Tools that matter, from the alphaXiv docs: discover_papers (ranked search by keywords or a semantic query), get_paper_content (an AI-generated report or the full extracted text), answer_pdf_queries (page-level passages matching a question), read_files_from_github_repository (the paper's code), find_researchers / get_researcher / get_researcher_papers (people), and library folders for saving what was worth keeping.
No MCP? scripts/arxiv_search.py "<query>" --since YYYY-MM-DD hits the arXiv API and OpenAlex directly and prints the token cost of every abstract before you read one.
Step 0: frame the budget
Before the first search, say the goal in one sentence and put the cost on the table. scripts/token_budget.py plan --goal "<goal>" prints the tiers:
| tier | tokens | what you get |
|---|---|---|
| scan | 15k | titles and abstracts of up to 20 papers, ranked, one line each |
| read | 60k | scan, plus reports or first sections of the top 5 |
| deep | 150k | read, plus full text and page queries for the top 3, code when relevant |
| custom | you say |
Ask the user to pick, or state the default (scan) and proceed. Start the ledger: token_budget.py start --budget <n> --label <goal>. After every fetch, token_budget.py add --chars <len> --note "<what>". The script exits 3 when the budget is exceeded, and the agent stops reading and reports rather than pushing on.
Why this matters: a get_paper_content full text is 15k to 40k tokens. Three of them is a whole "read" budget. The ledger turns "let me just check one more paper" into a decision the user made.
Workflow
- Write the question as one line with the constraint that matters: recency ("since 2026-03"), domain, method, or a named baseline to beat.
- Discover.
discover_paperswith the semantic query and a date filter. Read titles and abstracts only. Rank by fit, then by recency, then by citations. Drop anything that fails the constraint. - Report before text. For the top few,
get_paper_contentin report mode first. The report is a few thousand tokens and answers "is this the one" most of the time. - Query, don't read. When a specific fact is needed (the exact number, the ablation, the dataset split),
answer_pdf_querieswith the question returns the pages that contain it. Full text is the last resort, and only inside the budget. - Code when it decides the answer.
read_files_from_github_repositoryfor the implementation detail the paper glosses over. - People.
find_researcherswhen the user asks who is working on this, or when one group keeps appearing and their other papers are the real survey. - Deliver: a ranked list with arXiv IDs, dates, one line of what each contributes, the direct answer to the question, and the ledger total. Cite the ID, never the memory.
Save keepers to an alphaXiv folder when the user has a library; it makes the next session's scan free.
Autoresearch: offer it when it fits
Some questions cannot be answered by reading. "Does routing method X beat our baseline on our data" is an experiment. When the question is empirical and the user has a codebase to run it against, pose OpenResearch as an option: orx up starts a local dashboard, and each research direction gets its own agent working in an isolated worktree, in parallel, with optional remote compute from a marketplace of providers.
Pose it, do not launch it. Say what the directions would be (baseline, the two or three candidate methods, the ablation), that each direction is an agent session with its own token and compute cost on top of this reading budget, and that remote compute is billed. The user decides. If they say yes, the reading you already did becomes the brief for each agent.
Lane check
alphaXiv is arXiv-centric: computer science, machine learning, physics, math, statistics, quantitative biology and finance. For biology, medicine, psychology, nutrition, epidemiology, or anything where the evidence lives in journals and trials rather than preprints, hand off to answer-scientific-questions, which works the Scholar and PubMed lane and evaluates trial methodology. If a question straddles (an ML method applied to clinical data), run both lanes and say which evidence came from which.
Rules
- Never fetch full text before the report, never the report before the abstract.
- The ledger is reported at the end, every time, even under budget.
- Recency claims name the date filter used. "Latest" without a date is not a finding.
- Papers are cited by arXiv ID or DOI. A paper the agent cannot cite is a paper the agent did not read.
- No alphaXiv account actions (follow, save, delete) without the user asking.