Skip to content

io.github.MCPServings/paper-mcp

by MCPServings · remote · no sign-in to list tools · v0.5.0 · published by GitHub user MCPServings

Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.

Changes · 16

41 tools: 16 change things and 25 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http paper https://latex-tools.online/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

41 tools

Changes things 16Claude Code: ask
  • autocomplete_papersSemantic Scholar: autocomplete paper titles for a partial query (fast type-ahead).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Semantic Scholar: autocomplete paper titles for a partial query (fast type-ahead).
  • extract_pdfExtract 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).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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.
  • get_openalex_citationsOpenAlex: papers that CITE this work (forward citation graph), most-cited first.No findings

    Why it is in this group

    • The name "get_openalex_citations" says "get": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: papers that CITE this work (forward citation graph), most-cited first.
  • get_openalex_referencesOpenAlex: the works this one REFERENCES (its bibliography).No findings

    Why it is in this group

    • The name "get_openalex_references" says "get": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: the works this one REFERENCES (its bibliography).
  • get_openalex_workOpenAlex: fetch one work's full record (316M-work, all-field corpus).No findings

    Why it is in this group

    • The name "get_openalex_work" says "get": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: fetch one work's full record (316M-work, all-field corpus). id accepts OpenAlex Wxxxx, a DOI, or an arXiv id.
  • lint_latexLint a LaTeX snippet: report errors and return an auto-fixed version.No findings

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    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_openalex_topicsOpenAlex: search the topic taxonomy (~4500 topics) to find the right subject term for filtering or recent-work queries.No findings

    Why it is in this group

    • The name "list_openalex_topics" says "list": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: search the topic taxonomy (~4500 topics) to find the right subject term for filtering or recent-work queries.
  • match_paper_titleSemantic Scholar: find the single paper whose title best matches the given text (exact-match lookup).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Semantic Scholar: find the single paper whose title best matches the given text (exact-match lookup).
  • recognize_formulaRecognize a math formula from an image and return LaTeX.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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_tableRecognize a table from an image and return LaTeX tabular code.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    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_paperSemantic Scholar: recommend papers similar to one paper.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote 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_examplesSemantic Scholar: recommend papers from positive (and optional negative) example paper ids.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Semantic Scholar: recommend papers from positive (and optional negative) example paper ids.
  • search_openalex_authorsOpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions.No findings

    Why it is in this group

    • The name "search_openalex_authors" says "search": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: search authors; returns profiles with h-index, i10-index, works/citation counts and institutions.
  • search_openalex_institutionsOpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts.No findings

    Why it is in this group

    • The name "search_openalex_institutions" says "search": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: search institutions (universities, labs) with ROR id, country, works/citation counts.
  • search_openalex_worksOpenAlex: advanced filtered work search.No findings

    Why it is in this group

    • The name "search_openalex_works" says "search": a word for reading.
    • The description's first verb is "open": a word for a change.
    Description, as the server wrote it
    OpenAlex: advanced filtered work search. Filters: from_year, to_year, is_oa (open access only), min_citations, institution_id. sort_by: relevance|newest|cited.
Only reads 25Claude Code: allow
  • extract_pdf_resultFetch the result of an extract_pdf job by task_id.No findings

    Why it is in this group

    • The description's first verb is "fetch": a word for reading.
    Description, as the server wrote it
    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_authorSemantic Scholar: a single author's profile by id.No findings

    Why it is in this group

    • The name "get_author" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: a single author's profile by id.
  • get_author_papersSemantic Scholar: all papers by a given author id, newest first.No findings

    Why it is in this group

    • The name "get_author_papers" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: all papers by a given author id, newest first.
  • get_authors_batchSemantic Scholar: fetch many authors at once by id.No findings

    Why it is in this group

    • The name "get_authors_batch" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: fetch many authors at once by id.
  • get_dataset_diffsSemantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases.No findings

    Why it is in this group

    • The name "get_dataset_diffs" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar Datasets: incremental diff (added/updated/deleted) for a dataset between two releases. Needs the key.
  • get_dataset_releaseSemantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…).No findings

    Why it is in this group

    • The name "get_dataset_release" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar Datasets: which datasets a release contains (papers, abstracts, citations, embeddings, s2orc, tldrs…). release_id defaults to 'latest'.
  • get_paperFetch one paper by id, with full abstract and PDF link.No findings

    Why it is in this group

    • The name "get_paper" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one paper by id, with full abstract and PDF link.
  • get_paper_authorsSemantic Scholar: the authors of a paper (with h-index, paper/citation counts).No findings

    Why it is in this group

    • The name "get_paper_authors" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: the authors of a paper (with h-index, paper/citation counts).
  • get_paper_citationsSemantic Scholar: papers that CITE this one (forward citation graph).No findings

    Why it is in this group

    • The name "get_paper_citations" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: papers that CITE this one (forward citation graph). id accepts S2 id / DOI: / ARXIV: / CorpusId:.
  • get_paper_referencesSemantic Scholar: papers this one REFERENCES (its bibliography).No findings

    Why it is in this group

    • The name "get_paper_references" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: papers this one REFERENCES (its bibliography). id accepts S2 id / DOI: / ARXIV: / CorpusId:.
  • get_papers_batchSemantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call.No findings

    Why it is in this group

    • The name "get_papers_batch" says "get": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: fetch many papers at once by id (S2/DOI:/ARXIV:/CorpusId:), up to ~500 per call.
  • list_categoriesList common subject category codes for filtering/recent.No findings

    Why it is in this group

    • The name "list_categories" says "list": a word for reading.
    Description, as the server wrote it
    List common subject category codes for filtering/recent.
  • list_dataset_releasesSemantic Scholar Datasets: list all available release ids (dated snapshots of the full corpus).No findings

    Why it is in this group

    • The name "list_dataset_releases" says "list": a word for reading.
    Description, as the server wrote it
    Semantic Scholar Datasets: list all available release ids (dated snapshots of the full corpus).
  • list_ocr_modelsList the OCR models available for recognize_formula / recognize_table.No findings

    Why it is in this group

    • The name "list_ocr_models" says "list": a word for reading.
    Description, as the server wrote it
    List the OCR models available for recognize_formula / recognize_table.
  • list_paper_sourcesList available paper corpora.No findings

    Why it is in this group

    • The name "list_paper_sources" says "list": a word for reading.
    Description, as the server wrote it
    List available paper corpora.
  • list_recentList the latest papers in a subject category, newest first.No findings

    Why it is in this group

    • The name "list_recent" says "list": a word for reading.
    Description, as the server wrote it
    List the latest papers in a subject category, newest first.
  • read_paperRead a paper's full text.No findings

    Why it is in this group

    • The name "read_paper" says "read": a word for reading.
    Description, as the server wrote it
    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.
  • search_allAggregated search across arXiv, Semantic Scholar and OpenAlex at once.No findings

    Why it is in this group

    • The name "search_all" says "search": a word for reading.
    Description, as the server wrote it
    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_authorsSemantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts.No findings

    Why it is in this group

    • The name "search_authors" says "search": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: search for authors by name; returns profiles with h-index and paper/citation counts.
  • search_by_authorFind papers by a specific author, newest first.No findings

    Why it is in this group

    • The name "search_by_author" says "search": a word for reading.
    Description, as the server wrote it
    Find papers by a specific author, newest first.
  • search_medicalEvidence-graded MEDICAL literature search (PubMed + Europe PMC).No findings

    Why it is in this group

    • The name "search_medical" says "search": a word for reading.
    Description, as the server wrote it
    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_papersSearch academic papers.No findings

    Why it is in this group

    • The name "search_papers" says "search": a word for reading.
    Description, as the server wrote it
    Search academic papers. Returns normalized hits with a short abstract preview; call get_paper for the full record.
  • search_papers_bulkSemantic Scholar: bulk paper search (up to 1000 hits, sortable e.g.No findings

    Why it is in this group

    • The name "search_papers_bulk" says "search": a word for reading.
    Description, as the server wrote it
    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_snippetsSemantic Scholar: search INSIDE paper full text and return matching text snippets (not just titles/abstracts).No findings

    Why it is in this group

    • The name "search_snippets" says "search": a word for reading.
    Description, as the server wrote it
    Semantic Scholar: search INSIDE paper full text and return matching text snippets (not just titles/abstracts).

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.5.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http paper https://latex-tools.online/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__paper__search_papers",
      "mcp__paper__search_all",
      "mcp__paper__search_medical",
      "mcp__paper__get_paper",
      "mcp__paper__search_by_author",
      "mcp__paper__list_recent",
      "mcp__paper__list_categories",
      "mcp__paper__read_paper",
      "mcp__paper__list_paper_sources",
      "mcp__paper__list_ocr_models",
      "mcp__paper__extract_pdf_result",
      "mcp__paper__get_paper_citations",
      "mcp__paper__get_paper_references",
      "mcp__paper__get_paper_authors",
      "mcp__paper__search_papers_bulk",
      "mcp__paper__get_papers_batch",
      "mcp__paper__search_authors",
      "mcp__paper__get_author",
      "mcp__paper__get_author_papers",
      "mcp__paper__get_authors_batch",
      "mcp__paper__search_snippets",
      "mcp__paper__list_dataset_releases",
      "mcp__paper__get_dataset_release",
      "mcp__paper__get_dataset_download_links",
      "mcp__paper__get_dataset_diffs"
    ],
    "ask": [
      "mcp__paper__recognize_formula",
      "mcp__paper__recognize_table",
      "mcp__paper__lint_latex",
      "mcp__paper__extract_pdf",
      "mcp__paper__match_paper_title",
      "mcp__paper__autocomplete_papers",
      "mcp__paper__recommend_papers_for_paper",
      "mcp__paper__recommend_papers_from_examples",
      "mcp__paper__get_openalex_work",
      "mcp__paper__get_openalex_citations",
      "mcp__paper__get_openalex_references",
      "mcp__paper__search_openalex_authors",
      "mcp__paper__search_openalex_institutions",
      "mcp__paper__search_openalex_works",
      "mcp__paper__get_openalex_trends",
      "mcp__paper__list_openalex_topics"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as paper. Review it before you use it.