Local astrophysics paper library MCP server: NASA ADS discovery + arXiv LaTeX + PDF->markdown, never reads raw PDFs.
Report cumulative NASA ADS API calls made by this server, and the most recent live quota snapshot (limit, remaining, reset epoch).
Human-friendly literature search. Accepts natural academic notation such as 'Esteves 2023 tree rings', bare author names, or raw paper titles — no rigid syntax. Uses NASA ADS when ADS_API_TOKEN is set (best coverage + metadata). With no token it falls back to the free public arXiv API and appends a `tip` nudging you to add a key. Caches every hit locally. Lightweight — metadata only, author lists compressed, no full text. Feed >~10 hits into generate_dynamic_survey before reading any body.
Pre-Flight Survey: cluster a set of paper metadata into 4 focus + 4 exclude topics. Present these to the user and WAIT for their choice before reading any full text.
Convert every PDF in inbox/ to markdown and file it under library/<stem>/. Returns the list of newly ingested papers.
Report the section headings (+ abstract for LaTeX) of an already-acquired paper. Cheap — no new downloads, just parses cached local files. Measures token cost of the abstract only.
Stream the full body text of an acquired paper (excluding preamble, float bodies, and LaTeX structural noise). Feeds both .tex (preferred, equation-preserving) and .md (from PDF via docling). Token cost is measured and returned.
Stream a single section of text from an acquired paper, cleaned of LaTeX noise. Feeds both .tex (preferred, equation-preserving) and .md (from PDF via docling). Specify a heading OR a regex pattern; the tool resolves whichever matches first in the document's section tree. Cheaper than read_paper if the user is interested in one subtopic ('Results', 'Methodology', 'Sample Selection', etc.). Token cost is measured and returned.
Citation-graph traversal via NASA ADS. PREFER THIS over reading the paper's `.tex` bibliography when the user asks about cited work — the result includes title + abstract + keywords for each match, so you can judge topical relevance directly. Use this tool whenever the question is "which references / citations of paper X are about Y?" — pass `topic="Y"` and ADS narrows the graph for you. mode='references' -> the paper's own bibliography (backward; foundations / methodology roots). mode='citations' -> papers that cite this one (forward; impact / what came after). mode='similar' -> topically adjacent papers (not directly linked in the graph). Returns metadata only — feed the result into generate_dynamic_survey for >~10 hits.
Search the LOCAL library first (free, no network). Regex or substring over titles and abstracts of papers already acquired. Returns hits with their acquisition `state`.
Pin a project directory for the rest of this server's lifetime. After this, smart_fetch_paper_content automatically symlinks each requested paper into <path>/papers/ as <bibcode>/ AND also downloads its PDF to <path>/papers/<FirstAuthorLastNameYear>.pdf for human reading. Pass the absolute path of your Claude Code session's working folder. Pass None or an empty string to clear. Project ./papers/ is just a shortcut view — sources stay in the global library so search_library remains powerful.
Acquire a paper end-to-end in ONE call and report what's inside — WITHOUT dumping body text. Returns acquisition `state`, the section headings, the abstract, and a compressed author summary, which is everything you need to run the pre-flight survey. Read actual body text afterwards with read_topic / read_paper. Accepts a bibcode, an ADS key, OR a bare arXiv id (e.g. 2303.08774). Resolves the best text form internally: cached copy -> ADS (if a token is set) -> free arXiv API. Drops a <project_dir>/papers/<key>/ symlink and a human-readable PDF when a project_dir is active. NEVER reads a PDF raw.
Report cumulative tokens served to the model from this library, tokens saved by sectioned reading, and response count. Updated by every read_topic / read_paper / list_sections call.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 11 | 2026-07-28+ | v2 |