Skip to content
Agentmart
Submit a tool

PyEuropePMC

Europe PMC search, search analytics, full text, enrichment, PICO, MeSH, data links, export

Connector by JonasHeinickeBio · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 8
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/jonasheinickebio-pyeuropepmc

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Europe PMC search, search analytics, full text, enrichment, PICO, MeSH, data links, export

Use cases: deep-research, document-processing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
33 read · 6 write · 1 delete · 7 not yet classified
Secrets
2 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 47

Read from the source code; the running server may list different tools.

Read 33 · Look things up without changing anything.

  • analyze_citations
  • analyze_search
  • bib_parse_string
  • bib_to_csl
  • bib_to_ris
  • bib_validate
  • cache_status
  • clinical_trial_search
  • compare_citations
  • count_papers
  • epmc_status
  • evaluate_query
Show 21 more tools
  • find_open_access
  • find_papers_by_entity
  • fulltext_index_query
  • get_paper_annotations
  • get_paper_citations
  • get_paper_data_links
  • get_paper_details
  • get_paper_fulltext
  • get_paper_lab_links
  • get_paper_references
  • get_papers_batch
  • get_papers_fulltext_batch
  • literature_review
  • paper_figures
  • research_question_analysis
  • search_authors
  • search_papers
  • summarize_citations
  • translate_query
  • unified_search
  • validate_query

Write 6 · Create, change, send or run things.

  • bib_merge
  • build_query
  • knowledge_graph
  • ref_resolve_doi
  • ref_resolve_pmid
  • tag_paper_sentences

Delete 1 · Delete, drop, revoke or wipe things.

  • clear_cache

Not yet classified 7 · We could not tell from the name and description.

  • citation_snowball
  • enrich_paper
  • export_papers
  • mesh_expand
  • paper_screening
  • pico_decompose
  • preprint_analysis

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • OPENAI_API_KEY
  • SEMANTIC_SCHOLAR_API_KEY

Other settings (environment variables or headers).

  • OPENAI_BASE_URL
  • OPENAI_MODEL
  • PYEUROPEPMC_MCP_LOG_LEVEL
  • UNPAYWALL_EMAIL

Files it touches

  • Any path the agent passes to its tools

Tools (47)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyze_citationsAnalyze citation context

    Analyze citation context for a paper using an LLM (requires an LLM provider).

  • analyze_search

    Aggregate statistics about a search without returning its records. Every metric says where it comes from in `basis`: `exact` is counted by Europe PMC over all `hit_count` records (`by_year`: one count per year; `open_access`; the `thresholds` of `citations`), `sample` is computed from the first `limit` records of the search and describes only those (`journals`, `authors`, `types`, `countries`, `funders` and the `citations` statistics). When `limit` covers the whole result, those are `exact` too. The sample metrics need `pip install pyeuropepmc[analytics]`.

  • bib_merge

    Merge multiple BibTeX libraries, deduplicating by DOI.

  • bib_parse_string

    Parse a BibTeX string into structured entries.

  • bib_to_csl

    Convert BibTeX entries to CSL-JSON format.

  • bib_to_ris

    Convert BibTeX entries to RIS format.

  • bib_validate

    Validate BibTeX entries for completeness and correctness.

  • build_query

    Build a Europe PMC query from structured input instead of writing syntax by hand, and check the result. Returns the query, a plain-language explanation of what it asks for, and any warnings. At least one of all_of, any_of or a filter is needed (none_of alone would match almost everything). The same filters are available on `search_papers`.

  • cache_status

    How full are the server's caches and how often do they help? For the search, article and annotation clients and for the full-text XML cache: entries, capacity, size, hits, misses and hit rate. Counts only: no cache keys (they can contain query text), no cached content and no file paths.

  • citation_snowball

    Walk the citation graph forward (cited-by), backward (references), or both, with configurable depth and a minimum-citation-count filter.

  • clear_cacheClear a server cache

    Empty one of the server's in-memory caches, so that the next call asks Europe PMC again. Only worth doing when you suspect a cached answer is stale (the caches hold results for a day); every cleared entry has to be fetched again, which is load on Europe PMC. It changes server state, so a client may ask for approval. It never touches files on disk.

  • clinical_trial_search

    Search ClinicalTrials.gov for studies by condition, intervention, or free-text query.

  • compare_citationsCompare two papers' citations

    Compare citations between two papers using an LLM (requires an LLM provider).

  • count_papers

    Number of Europe PMC records matching a query, without fetching them. Use it to size a search before choosing ``limit`` for `search_papers`.

  • enrich_paper

    One compact record for a paper from Europe PMC, Crossref, OpenAlex, Semantic Scholar, iCite and Unpaywall, merged: citation impact, funders and grants, authors with their institutions, open-access status and licence, and corrections and retractions. The sources are asked at the same time; `sources` in the answer says for each whether it answered (ok), had nothing (empty), failed (error, with the reason), or was still running when `time_budget` ended (timeout). A failed source gives a partial record, not an error. Institutions come with name, country and ROR ID; `ror_details` adds their place a…

Show 32 more tools
  • epmc_status

    Is Europe PMC up right now? Probes the endpoints this server depends on (search, full text, citations, annotations) and returns ok, degraded (some fail), down (none answers) or unknown (only 4xx answers: a blocked probe or a moved endpoint), with the HTTP status and the time in milliseconds of each. Use it before retrying a tool that failed with a network error, a timeout or a 5xx. The answer is kept for 30 seconds, so asking again does not probe again (`cached` says so), and it contains no URLs or response bodies.

  • evaluate_query

    Score a Europe PMC query against papers you already know, for systematic-review work: recall (how many of the included PMIDs it finds) and how many excluded ones it still finds, with the PMIDs it misses. This runs the query on Europe PMC itself, so it measures what the search really returns, not a local reading of the syntax. PMIDs that Europe PMC does not know are reported apart and left out of the scores. A query with errors is refused; see `validate_query`.

  • export_papers

    Export papers as a file's worth of text to hand to a reference manager or a spreadsheet: BibTeX, RIS or CSL-JSON (Zotero, Mendeley, EndNote, Pandoc) or CSV, JSON or Markdown. Give a search `query` or a list of `ids`. BibTeX keys look like `vasiliou2005analysis`, are unique within the export and do not change when it is cut to size; text that LaTeX reads as syntax (& % # _ $) is escaped. A paper with more than 100 authors lists the first 100 (BibTeX adds `and others`). The export is never cut in the middle of a record: `truncated` says that records were left out; `next_skip` (query) or `remaini…

  • find_open_access

    Where can this paper be read for free? Looks the DOI up in Unpaywall and returns the open-access status (gold, green, hybrid, bronze, closed), the best copy with its PDF link and licence, and a few alternatives. ``europepmc_fulltext`` says whether `get_paper_fulltext` will work for it. Needs UNPAYWALL_EMAIL in the server's environment.

  • find_papers_by_entity

    Articles in which Europe PMC found a given entity, with how often and where it is mentioned. One page per call: pass ``next_cursor`` back as ``cursor`` for the next. Europe PMC's entity search ignores type, section and provider, so the three filters here apply to the mentions it returns: an article without a matching mention is left out and counted in ``articles_filtered_out``.

  • fulltext_index_query

    Search the local SQLite FTS5 full-text index for papers whose full text matches a query. A fresh index handle is opened per call rather than cached: SQLite connections are only safe to use from the thread that created them, and each call may run on a different worker thread.

  • get_paper_annotations

    Genes, proteins, chemicals, diseases, organisms and other entities that Europe PMC text-mined from a paper, grouped by entity with mention counts, sections and example mentions. A review with hundreds of mentions comes back as a short entity list.

  • get_paper_citations

    Get papers that cite a given paper (Europe PMC).

  • get_paper_data_links

    Where is the data of this paper? Accession numbers Europe PMC text-mined from the full text (dbSNP, RefSeq, OMIM, ClinicalTrials.gov, cited DOIs) and records that providers link to the paper (BioStudies supplementary data, model-organism databases, Altmetric), as one flat list. `kind` separates supporting_data and related_data from altmetrics and recommended_reviews; `origin` says whether a link was text_mined or supplied by a provider. A paper without links gives an empty list, which is a valid answer.

  • get_paper_details

    Get detailed paper information by PMID, PMCID, or DOI (Europe PMC).

  • get_paper_fulltext

    Fetch the structured full text of an open-access paper from Europe PMC. Returns metadata, the list of available section titles, and the content in the requested format. When the content is longer than ``max_chars`` it is cut at a block boundary and ``truncated`` is true: ask again with ``sections`` for the part you need. Only open-access articles have full text; anything else fails with the reason.

  • get_paper_lab_links

    Links that third parties publish for a paper, grouped by provider with the provider's description: BioStudies supplementary material, model-organism databases, GO annotations, Faculty Opinions recommendations, Altmetric. Use get_paper_data_links for the data accessions mentioned in the text.

  • get_paper_references

    Get the reference list of a paper (backward citations, Europe PMC).

  • get_papers_batch

    Look up many papers at once: one combined Europe PMC query per 50 identifiers instead of one call per paper. Every input gets a result in the order given, with a status: ok, not_found, invalid (malformed identifier) or error (that request failed). One bad identifier never fails the batch; a repeated identifier repeats its result.

  • get_papers_fulltext_batch

    Markdown full text of several open-access papers in one call, within a size budget. The identifiers are resolved with one query, papers that are not open access are reported without being downloaded, and the rest are fetched four at a time. The total budget is handed out in the order given: once it is used up, the remaining papers are reported as skipped_budget and not downloaded. Each result has a status: ok, not_found, invalid, not_in_pmc, not_open_access, no_matching_section, duplicate, error or skipped_budget. Use `get_paper_fulltext` for one paper at a larger size.

  • knowledge_graphBuild a knowledge graph

    Build a knowledge graph from research literature using an LLM (requires an LLM provider).

  • literature_reviewGenerate a literature review

    Generate a comprehensive literature review using an LLM (requires an LLM provider).

  • mesh_expand

    MeSH headings for search terms: the descriptor (ID, heading, tree numbers), its entry terms and a ready Europe PMC fragment `(MESH:"Heading" OR "entry term" OR ...)` for each term, and the fragments joined into one query that is checked like `validate_query`. By default it works offline from a bundled snapshot of 244 common clinical headings taken from NLM's published MeSH (heading, entry terms and tree numbers as published): a term that is not in it comes back with `matched: false` and is searched as written, never guessed. `use_api` asks NLM instead, which covers all of MeSH and needs the ne…

  • paper_figures

    Extract figures, tables and supplementary files from a PMC Open Access article. Each item carries its label, caption and the Europe PMC URL its file can be downloaded from. A figure supplement also names the figure it belongs to.

  • paper_screeningPRISMA paper screening

    Automated paper screening with PRISMA-compliant criteria, using an LLM (requires an LLM provider).

  • pico_decompose

    Split a research question into PICO, PICOS, PICOT or SPIDER elements and build a Europe PMC query from them. Rule-based and offline: no model, no key, no request. Every element is a verbatim piece of the question, given with its position; an element the question does not state is listed in `missing`, never filled in. The rules cover the usual clinical phrasings ("In P, does I reduce O compared with C?", "What is the effect of I on O in P?", "Is I more effective than C for O?", "Is I associated with O?", "Effectiveness of I for O in P", "P treated with I"). A question phrased differently is onl…

  • preprint_analysisPreprint quality assessment

    Preprint-specific quality assessment using an LLM (requires an LLM provider).

  • ref_resolve_doi

    Resolve a DOI to bibliographic metadata.

  • ref_resolve_pmid

    Resolve a PubMed ID to bibliographic metadata.

  • research_question_analysisAnalyze a research question

    Expand and analyze a research question using an LLM (requires an LLM provider).

  • search_authors

    Search for authors in Europe PMC.

  • search_papers[Legacy] Search Europe PMCread-only

    Search Europe PMC for papers (single source — prefer `unified_search` for multi-source coverage). At most ``limit`` records are fetched; optional filters narrow the query by date, open access, full text availability and source.

  • summarize_citationsSummarize citation activity

    Summarize citation activity for a paper using an LLM (requires an LLM provider).

  • tag_paper_sentences

    The sentences of an open-access paper's body, grouped by what they do: background, motivation, method, result, claim (the authors' interpretation), limitation, conclusion. Front matter, the reference list and administrative sections (acknowledgments, funding, conflicts) are left out. Rule-based and offline apart from the download: the section a sentence is in sets its default role and cues in the sentence correct it. Where no rule is sure the sentence is `unknown` instead of a guess; in a paper without recognisable headings only background, method and conclusion sentences are recognised. Measu…

  • translate_query

    Rewrite a Europe PMC query for another database. For PubMed the field codes map where they have an equivalent (TITLE[ti], AUTH[au], JOURNAL[ta], dates[dp], ...); a construct that does not map (CITES, HAS_*, CITED, ...) is left out and named in `warnings` and `dropped`, and `exact` is false whenever the translation is narrower, broader or only approximate. The other targets search free text, so field codes and operators are stripped and `exact` is always false. A query with errors is refused; see `validate_query`.

  • unified_search

    Search across multiple literature sources (PubMed, arXiv, Semantic Scholar, OpenAlex, ClinicalTrials.gov) in parallel, with automatic cross-source deduplication.

  • validate_query

    Check a Europe PMC query before running it. Europe PMC does not reject a malformed query, it answers a different one: an unclosed parenthesis or a dangling operator is dropped silently, an unknown field, a flag that is not y/n and a date range with a missing or reversed bound match nothing, and AND mixed with OR without parentheses is not read as either grouping. Each problem comes with its position. `valid` is false when there are errors; warnings are things worth a second look. `normalized` is the cleaned-up query (capital operators, explicit AND) and is only given for a query without errors…

Signals

Stars
8
Forks
1
Open issues
29
Weekly downloads
1,357
Last commit
Oct 22, 2026 (6 days ago)
Last release
Oct 22, 2026 (6 days ago)
Last package publish
Oct 22, 2026 (6 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.JonasHeinickeBio/pyeuropepmc
Version
4.2.0
Auth
API key
Packages
pypi pyeuropepmc
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

PyEuropePMC MCP server. Agent Mart. https://agentmart.dev/connectors/jonasheinickebio-pyeuropepmc (last updated 2026-10-24)