Connection check
verified live · 27h ago
paper-mcp
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Tools
41
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
41 toolsRead from the running server on 27h ago.
autocomplete_papers
query*
Semantic Scholar: autocomplete paper titles for a partial query (fast type-ahead). Semantic Scholar: autocomplete paper titles for a partial query (fast type-ahead).
extract_pdf
tableformulapdf_urlpdf_base64
Extract a PDF to clean Markdown/LaTeX text via MinerU (great for papers behind no open-access full text — give the user's PDF and get readable text back). Provide pdf_url (download… Extract a PDF to clean Markdown/LaTeX text via MinerU (great for papers behind no open-access full text — give the user's PDF and get readable text back). Provide pdf_url (downloaded server-side, SSRF-guarded) OR pdf_base64. formula/table toggle math/table reconstruction. Returns {task_id, status, cached, content, chars}: a recently-seen (cached) or small PDF comes back with `content` in one call; a fresh PDF (MinerU is GPU-heavy, minutes) returns status='running' + a task_id — then call extract_pdf_result(task_id) to fetch the text.
extract_pdf_result
task_id*
Fetch the result of an extract_pdf job by task_id. Returns {task_id, status, content, chars}: `content` is the extracted text once status='done'; while still 'running' content is n… Fetch the result of an extract_pdf job by task_id. Returns {task_id, status, content, chars}: `content` is the extracted text once status='done'; while still 'running' content is null — call again shortly. Results expire server-side, so fetch reasonably soon.
get_author
author_id*
Semantic Scholar: a single author's profile by id. Semantic Scholar: a single author's profile by id.
get_author_papers
startauthor_id*max_results
Semantic Scholar: all papers by a given author id, newest first. Semantic Scholar: all papers by a given author id, newest first.
get_authors_batch
ids*
Semantic Scholar: fetch many authors at once by id. Semantic Scholar: fetch many authors at once by id.
get_dataset_diffs
end_releasedataset_name*start_release*
Semantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases. Needs the key. Semantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases. Needs the key.
get_dataset_download_links
release_iddataset_name*
Semantic Scholar Datasets: get download links (presigned URLs) for one dataset in a release. Needs the API key. Semantic Scholar Datasets: get download links (presigned URLs) for one dataset in a release. Needs the API key.
get_dataset_release
release_id
Semantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…). release_id defaults to 'latest'. Semantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…). release_id defaults to 'latest'.
get_openalex_citations
startwork_id*max_results
OpenAlex: papers that CITE this work (forward citation graph), most-cited first. OpenAlex: papers that CITE this work (forward citation graph), most-cited first.
get_openalex_references
work_id*max_results
OpenAlex: the works this one REFERENCES (its bibliography). OpenAlex: the works this one REFERENCES (its bibliography).
get_openalex_trends
query*group_by
OpenAlex: publication-trend analytics for a query — counts grouped by year (default), or by 'institutions.id', 'authorships.author.id', 'open_access.is_oa', 'type', 'language'. Ret… OpenAlex: publication-trend analytics for a query — counts grouped by year (default), or by 'institutions.id', 'authorships.author.id', 'open_access.is_oa', 'type', 'language'. Returns aggregate counts only (cheap, no rows).
get_openalex_work
work_id*
OpenAlex: fetch one work's full record (316M-work, all-field corpus). id accepts OpenAlex Wxxxx, a DOI, or an arXiv id. OpenAlex: fetch one work's full record (316M-work, all-field corpus). id accepts OpenAlex Wxxxx, a DOI, or an arXiv id.
get_paper
sourcepaper_id*
Fetch one paper by id, with full abstract and PDF link. Fetch one paper by id, with full abstract and PDF link.
get_paper_authors
startpaper_id*max_results
Semantic Scholar: the authors of a paper (with h-index, paper/citation counts). Semantic Scholar: the authors of a paper (with h-index, paper/citation counts).
get_paper_citations
startpaper_id*max_results
Semantic Scholar: papers that CITE this one (forward citation graph). id accepts S2 id / DOI: / ARXIV: / CorpusId:. Semantic Scholar: papers that CITE this one (forward citation graph). id accepts S2 id / DOI: / ARXIV: / CorpusId:.
get_paper_references
startpaper_id*max_results
Semantic Scholar: papers this one REFERENCES (its bibliography). id accepts S2 id / DOI: / ARXIV: / CorpusId:. Semantic Scholar: papers this one REFERENCES (its bibliography). id accepts S2 id / DOI: / ARXIV: / CorpusId:.
get_papers_batch
ids*
Semantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call. Semantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call.
lint_latex
code*
Lint a LaTeX snippet: report errors and return an auto-fixed version. Input `code` (the LaTeX source). Returns {errors, fixed_code, summary_en, summary_zh, elapsed_ms}. Lint a LaTeX snippet: report errors and return an auto-fixed version. Input `code` (the LaTeX source). Returns {errors, fixed_code, summary_en, summary_zh, elapsed_ms}.
list_categories
source
List common subject category codes for filtering/recent. List common subject category codes for filtering/recent.
list_dataset_releases
Semantic Scholar Datasets: list all available release ids (dated snapshots of the full corpus). Semantic Scholar Datasets: list all available release ids (dated snapshots of the full corpus).
list_ocr_models
List the OCR models available for recognize_formula / recognize_table. List the OCR models available for recognize_formula / recognize_table.
list_openalex_topics
query*max_results
OpenAlex: search the topic taxonomy (~4500 topics) to find the right subject term for filtering or recent-work queries. OpenAlex: search the topic taxonomy (~4500 topics) to find the right subject term for filtering or recent-work queries.
list_paper_sources
List available paper corpora. List available paper corpora.
list_recent
startsourcecategory*max_results
List the latest papers in a subject category, newest first. List the latest papers in a subject category, newest first.
match_paper_title
title*
Semantic Scholar: find the single paper whose title best matches the given text (exact-match lookup). Semantic Scholar: find the single paper whose title best matches the given text (exact-match lookup).
read_paper
formatsourcepaper_id*
Read a paper's full text. format='markdown' (default, body with formulas as $LaTeX$), 'html' (raw LaTeXML HTML), or 'latex' (the original LaTeX manuscript from the e-print source).… Read a paper's full text. format='markdown' (default, body with formulas as $LaTeX$), 'html' (raw LaTeXML HTML), or 'latex' (the original LaTeX manuscript from the e-print source). arXiv only; id like 2401.01234.
recognize_formula
modelimage_urlimage_base64
Recognize a math formula from an image and return LaTeX. Provide image_url (downloaded server-side) OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns… Recognize a math formula from an image and return LaTeX. Provide image_url (downloaded server-side) OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, elapsed_ms}.
recognize_table
modelimage_urlimage_base64
Recognize a table from an image and return LaTeX tabular code. Provide image_url OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, ela… Recognize a table from an image and return LaTeX tabular code. Provide image_url OR image_base64. model: deepseek-ocr (default), paddleocr-vl, or texify. Returns {latex, model, elapsed_ms}.
recommend_papers_for_paper
poolpaper_id*max_results
Semantic Scholar: recommend papers similar to one paper. pool='recent' (last open corpus) or 'all-cs' (all of CS). If the 'recent' pool yields nothing (common for older papers), it… Semantic Scholar: recommend papers similar to one paper. pool='recent' (last open corpus) or 'all-cs' (all of CS). If the 'recent' pool yields nothing (common for older papers), it automatically retries the 'all-cs' pool.
recommend_papers_from_examples
max_resultsnegative_idspositive_ids*
Semantic Scholar: recommend papers from positive (and optional negative) example paper ids. Semantic Scholar: recommend papers from positive (and optional negative) example paper ids.
search_all
query*sourcesper_sourcemax_results
Aggregated search across arXiv, Semantic Scholar and OpenAlex at once. Fans out concurrently, de-duplicates the same work across corpora (by DOI or title) and re-ranks with Recipro… Aggregated search across arXiv, Semantic Scholar and OpenAlex at once. Fans out concurrently, de-duplicates the same work across corpora (by DOI or title) and re-ranks with Reciprocal Rank Fusion, so papers found by several sources rank highest. Each hit lists which `sources` found it and an `ids` map ({source: id}) you can pass to get_paper / read_paper / the citation tools. Prefer this over search_papers for a broad lookup.
search_authors
query*startmax_results
Semantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts. Semantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts.
search_by_author
startauthor*sourcemax_results
Find papers by a specific author, newest first. Find papers by a specific author, newest first.
search_medical
query*year_frommax_resultsstudy_typesfetch_fulltext
Evidence-graded MEDICAL literature search (PubMed + Europe PMC). Unlike search_all (generic, ranks high-cited reviews/guidelines above trials), this filters by research type via Pu… Evidence-graded MEDICAL literature search (PubMed + Europe PMC). Unlike search_all (generic, ranks high-cited reviews/guidelines above trials), this filters by research type via PubMed Publication-Type tags and re-ranks by the evidence pyramid (meta-analysis / systematic review > RCT > cohort > ...), so the actual clinical trials surface first. Open-access full text is pulled from Europe PMC by PMID. `query` should be English keyword/boolean text (PubMed maps it); do natural-language/multilingual understanding upstream. Returns hits with pmid/doi/study_type/evidence_level/citations/abstract and, when open-access, fulltext.
search_openalex_authors
query*startmax_results
OpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions. OpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions.
search_openalex_institutions
query*max_results
OpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts. OpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts.
search_openalex_works
is_oaquerysort_byto_yearfrom_yearmax_results
+2
OpenAlex: advanced filtered work search. Filters: from_year, to_year, is_oa (open access only), min_citations, institution_id. sort_by: relevance|newest|cited. OpenAlex: advanced filtered work search. Filters: from_year, to_year, is_oa (open access only), min_citations, institution_id. sort_by: relevance|newest|cited.
search_papers
query*startsourcesort_bymax_results
Search academic papers. Returns normalized hits with a short abstract preview; call get_paper for the full record. Search academic papers. Returns normalized hits with a short abstract preview; call get_paper for the full record.
search_papers_bulk
sortyearquery*tokenvenuemax_results
+3
Semantic Scholar: bulk paper search (up to 1000 hits, sortable e.g. 'citationCount:desc' or 'publicationDate:desc', with a continuation token). Filters: fields_of_study, year (e.g.… Semantic Scholar: bulk paper search (up to 1000 hits, sortable e.g. 'citationCount:desc' or 'publicationDate:desc', with a continuation token). Filters: fields_of_study, year (e.g. '2020-2024'), venue, publication_types, open_access_pdf.
search_snippets
query*max_results