Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

PyEuropePMC

PYPI · PYEUROPEPMC · SCANNED SEP 20

Search and analyse scientific literature across Europe PMC, PubMed, arXiv, and ClinicalTrials.gov

Available components

45 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security29
  • Malware scan not yet available for this package.Unverified
  • CVE check failed: a known high-severity CVE affects click 8.1.8, a direct dependency. A fixed version is available. View diagnostics → Fail
  • Runs poetry.core.masonry.api at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
  • Dependency health was assessed across the 58 of 84 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency32
Schema Quality & AI Usability75
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1610 tokens (~67/item across 24 items; 24 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "bib_merge" implies "merge" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the PyEuropePMC MCP server?

PyEuropePMC runs locally as a PyPI package, launched with uvx pyeuropepmc. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · pyeuropepmc

# add to Claude Code
claude mcp add jonasheinickebio-pyeuropepmc -- uvx pyeuropepmc
// .cursor/mcp.json
{
  "mcpServers": {
    "jonasheinickebio-pyeuropepmc": {
      "command": "uvx",
      "args": [
        "pyeuropepmc"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "jonasheinickebio-pyeuropepmc": {
      "command": "uvx",
      "args": [
        "pyeuropepmc"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add jonasheinickebio-pyeuropepmc -- uvx pyeuropepmc
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jonasheinickebio-pyeuropepmc": {
      "type": "local",
      "command": [
        "uvx",
        "pyeuropepmc"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jonasheinickebio-pyeuropepmc --command uvx --arg pyeuropepmc
# ~/.hermes/config.yaml
mcp_servers:
  jonasheinickebio-pyeuropepmc:
    command: "uvx"
    args: ["pyeuropepmc"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "jonasheinickebio-pyeuropepmc": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "pyeuropepmc"
      ]
    }
  }
}
# add to Vellum
assistant mcp add jonasheinickebio-pyeuropepmc -t stdio -c uvx -a pyeuropepmc
// mcp.json
{
  "mcpServers": {
    "jonasheinickebio-pyeuropepmc": {
      "command": "uvx",
      "args": [
        "pyeuropepmc"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Sept 26 +30
    • Injection markers: unverified → pass security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 0 functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: good functional
    • First check of Tool coverage: 100 functional
    • First check of Tool coverage: 100 functional
    • Package version: 2.2.1 → 3.0.0 functional
  • 15 Sept 26 15

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed pypi/pyeuropepmc@3.0.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted poetry.core.masonry.api

Background: Why install scripts are a supply-chain risk →

Vulnerabilities 3 findings
ID CVE Severity Vector Fix available
PYSEC-2026-2132 CVE-2026-7246 high CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H yes
GHSA-w8v5-vhqr-4h9v CVE-2025-69872 medium no
PYSEC-2026-2447 CVE-2025-69872 none no

Background: What a vulnerability scan can and cannot prove →

Dependencies 58 packages
Packages resolved 58
Stale 6
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

Background: SBOMs and build attestations, explained →

MCP tools · 24 exposed · ~1,455 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
analyze_citations ~57

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

NameTypeReqDescription
contextstringCitation context description
pmidstringyesPubMed ID
taskstringAnalysis task description

Structured output declared, but exposes no named fields.

No examples provided.

bib_merge ~36

Merge multiple BibTeX libraries, deduplicating by DOI.

NameTypeReqDescription
librariesarrayyesBibTeX-formatted strings to merge

Structured output declared, but exposes no named fields.

No examples provided.

bib_parse_string ~32

Parse a BibTeX string into structured entries.

NameTypeReqDescription
contentstringyesBibTeX-formatted string

Structured output declared, but exposes no named fields.

No examples provided.

bib_to_csl ~34

Convert BibTeX entries to CSL-JSON format.

NameTypeReqDescription
contentstringyesBibTeX-formatted string
NameTypeReqDescription
resultarrayyes

No examples provided.

bib_to_ris ~32

Convert BibTeX entries to RIS format.

NameTypeReqDescription
contentstringyesBibTeX-formatted string
NameTypeReqDescription
resultstringyes

No examples provided.

bib_validate ~31

Validate BibTeX entries for completeness and correctness.

NameTypeReqDescription
contentstringyesBibTeX string to validate

Structured output declared, but exposes no named fields.

No examples provided.

citation_snowball ~111

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

NameTypeReqDescription
identifierstringyesPaper ID (PMID, DOI, or Semantic Scholar ID)
max_depthintegerRecursion depth (0 = no limit)
max_papersintegerMax papers per level
min_citationsintegerMinimum citation count filter
strategystringSnowball direction

Structured output declared, but exposes no named fields.

No examples provided.

clinical_trial_search ~83

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

NameTypeReqDescription
conditionMedical condition filter
interventionIntervention/treatment filter
limitintegerMax results
querystringFree-text search query
statusRecruitment status filter, e.g. ACTIVE, COMPLETED, RECRUITING

Structured output declared, but exposes no named fields.

No examples provided.

compare_citations ~65

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

NameTypeReqDescription
pmid1stringyesPubMed ID of first paper
pmid2stringyesPubMed ID of second paper
taskstringComparison task description

Structured output declared, but exposes no named fields.

No examples provided.

fulltext_index_query ~103

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.

NameTypeReqDescription
index_pathPath to the SQLite index file (optional)
limitintegerMax results
querystringyesFull-text search query

Structured output declared, but exposes no named fields.

No examples provided.

get_paper_citations ~45

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

NameTypeReqDescription
limitintegerMax citing papers to return
pmidstringyesPubMed ID
NameTypeReqDescription
resultarrayyes

No examples provided.

get_paper_details ~55

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

NameTypeReqDescription
doistringDOI
pmcidstringPMCID
pmidstringPubMed ID

Structured output declared, but exposes no named fields.

No examples provided.

knowledge_graph ~51

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

NameTypeReqDescription
entitiesKey entities
relationshipsKnown relationships
research_domainstringyesResearch domain

Structured output declared, but exposes no named fields.

No examples provided.

literature_review ~70

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

NameTypeReqDescription
excluded_topicsTopics to exclude from the review
key_conceptsarrayyesKey concepts to cover
research_topicstringyesResearch topic
time_framestringTime frame

Structured output declared, but exposes no named fields.

No examples provided.

paper_figures ~132

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.

NameTypeReqDescription
doistringDOI (alternative to pmcid)
include_supplementsbooleanInclude supplementary material
include_tablesbooleanInclude <table-wrap> elements
pmcidstringPMC ID of the article, e.g. PMC1234567
pmidstringPubMed ID (alternative to pmcid)

Structured output declared, but exposes no named fields.

No examples provided.

paper_screening ~74

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

NameTypeReqDescription
exclusion_criteriaarrayyesExclusion criteria
inclusion_criteriaarrayyesInclusion criteria
limitintegerPapers to screen
querystringyesSearch query

Structured output declared, but exposes no named fields.

No examples provided.

preprint_analysis ~59

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

NameTypeReqDescription
pmidstringyesPubMed ID
preprint_serverstringPreprint server, e.g. bioRxiv, medRxiv

Structured output declared, but exposes no named fields.

No examples provided.

ref_resolve_doi ~29

Resolve a DOI to bibliographic metadata.

NameTypeReqDescription
doistringyesDOI to resolve

Structured output declared, but exposes no named fields.

No examples provided.

ref_resolve_pmid ~32

Resolve a PubMed ID to bibliographic metadata.

NameTypeReqDescription
pmidstringyesPubMed ID

Structured output declared, but exposes no named fields.

No examples provided.

research_question_analysis ~49

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

NameTypeReqDescription
research_questionstringyesResearch question
time_framestringTime frame for literature search

Structured output declared, but exposes no named fields.

No examples provided.

search_authors ~37

Search for authors in Europe PMC.

NameTypeReqDescription
limitintegerNumber of results
querystringyesAuthor name or affiliation
NameTypeReqDescription
resultarrayyes

No examples provided.

search_papers ~81

Search Europe PMC for papers (single source — prefer `unified_search` for multi-source coverage).

NameTypeReqDescription
limitintegerNumber of results
querystringyesSearch query
result_typestringEurope PMC result type
sortstringSort order, e.g. 'cited' or 'date'
NameTypeReqDescription
resultarrayyes

No examples provided.

summarize_citations ~50

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

NameTypeReqDescription
citation_countintegerNumber of citations
pmidstringyesPubMed ID

Structured output declared, but exposes no named fields.

No examples provided.

unified_search ~107

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

NameTypeReqDescription
limitintegerMax results per source
querystringyesSearch query
sourcesSources to query, e.g. ['europepmc', 'arxiv', 'semantic_scholar', 'openalex', 'clinicaltrials']. Defaults to the server's configured source set.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the PyEuropePMC MCP server?

PyEuropePMC is an MCP server listed in the public MCP registry as io.github.JonasHeinickeBio/pyeuropepmc. Search and analyse scientific literature across Europe PMC, PubMed, arXiv, and ClinicalTrials.gov. This page covers its PyPI package (pyeuropepmc).

Is the PyEuropePMC MCP server safe to use?

PyEuropePMC scores 45 out of 100 on VerifyMCP. We recorded 3 known advisories against it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the PyEuropePMC MCP server expose?

PyEuropePMC exposes 24 tools: unified_search, search_papers, get_paper_details, search_authors, get_paper_citations, and 19 more. Their descriptions and schemas cost roughly 1,455 tokens of context every time the server is loaded.

Is the PyEuropePMC MCP server still maintained?

PyEuropePMC is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.