mcp server
paper-mcp
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Description as published by the maintainer. Source
- version 0.5.0
- active
- document understanding
- retrieval
active — Registry entry last updated 2026-06-17. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.
What this server can do
41 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
autocomplete_papers(query)- Semantic Scholar: autocomplete paper titles for a partial query (fast type-ahead). Required: query.
extract_pdf(table, formula, pdf_url, pdf_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 (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 null — call again shortly. Results expire server-side, so fetch reasonably soon. Required: task_id.
get_author(author_id)- Semantic Scholar: a single author's profile by id. Required: author_id.
get_author_papers(start, author_id, max_results)- Semantic Scholar: all papers by a given author id, newest first. Required: author_id.
get_authors_batch(ids)- Semantic Scholar: fetch many authors at once by id. Required: ids.
get_dataset_diffs(end_release, dataset_name, start_release)- Semantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases. Needs the key. Required: dataset_name, start_release.
get_dataset_download_links(release_id, dataset_name)- Semantic Scholar Datasets: get download links (presigned URLs) for one dataset in a release. Needs the API key. Required: dataset_name.
get_dataset_release(release_id)- Semantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…). release_id defaults to 'latest'.
get_openalex_citations(start, work_id, max_results)- OpenAlex: papers that CITE this work (forward citation graph), most-cited first. Required: work_id.
get_openalex_references(work_id, max_results)- OpenAlex: the works this one REFERENCES (its bibliography). Required: work_id.
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'. Returns aggregate counts only (cheap, no rows). Required: query.
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. Required: work_id.
get_paper(source, paper_id)- Fetch one paper by id, with full abstract and PDF link. Required: paper_id.
get_paper_authors(start, paper_id, max_results)- Semantic Scholar: the authors of a paper (with h-index, paper/citation counts). Required: paper_id.
get_paper_citations(start, paper_id, max_results)- Semantic Scholar: papers that CITE this one (forward citation graph). id accepts S2 id / DOI: / ARXIV: / CorpusId:. Required: paper_id.
get_paper_references(start, paper_id, max_results)- Semantic Scholar: papers this one REFERENCES (its bibliography). id accepts S2 id / DOI: / ARXIV: / CorpusId:. Required: paper_id.
get_papers_batch(ids)- Semantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call. Required: ids.
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}. Required: code.
list_categories(source)- 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).
list_ocr_models- 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. Required: query.
list_paper_sources- List available paper corpora.
list_recent(start, source, category, max_results)- List the latest papers in a subject category, newest first. Required: category.
match_paper_title(title)- Semantic Scholar: find the single paper whose title best matches the given text (exact-match lookup). Required: title.
read_paper(format, source, paper_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). arXiv only; id like 2401.01234. Required: paper_id.
recognize_formula(model, image_url, image_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 {latex, model, elapsed_ms}.
recognize_table(model, image_url, image_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, elapsed_ms}.
recommend_papers_for_paper(pool, paper_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 automatically retries the 'all-cs' pool. Required: paper_id.
recommend_papers_from_examples(max_results, negative_ids, positive_ids)- Semantic Scholar: recommend papers from positive (and optional negative) example paper ids. Required: positive_ids.
search_all(query, sources, per_source, max_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 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. Required: query.
search_authors(query, start, max_results)- Semantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts. Required: query.
search_by_author(start, author, source, max_results)- Find papers by a specific author, newest first. Required: author.
search_medical(query, year_from, max_results, study_types, fetch_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 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. Required: query.
search_openalex_authors(query, start, max_results)- OpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions. Required: query.
search_openalex_institutions(query, max_results)- OpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts. Required: query.
search_openalex_works(is_oa, query, sort_by, to_year, from_year, max_results, min_citations, institution_id)- 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, start, source, sort_by, max_results)- Search academic papers. Returns normalized hits with a short abstract preview; call get_paper for the full record. Required: query.
search_papers_bulk(sort, year, query, token, venue, max_results, fields_of_study, open_access_pdf, publication_types)- 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. Required: query.
search_snippets(query, max_results)- Semantic Scholar: search INSIDE paper full text and return matching text snippets (not just titles/abstracts). Required: query.
Last successful function declaration observed on . Source: https://latex-tools.online/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://latex-tools.online/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 0.5.0 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-06-17 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-06-17 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 41 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | latex-tools.online | |
| mcp endpoint status | ok | The server listed 41 functions when asked. | as of probe | latex-tools.online |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json