mit einem Klick
pm-fulltext
// Find full-text download links for a PubMed paper by PMID - DOI, PMC open access, Sci-Hub, and publisher links. Use when user wants to read or download a paper's full text.
// Find full-text download links for a PubMed paper by PMID - DOI, PMC open access, Sci-Hub, and publisher links. Use when user wants to read or download a paper's full text.
| name | pm-fulltext |
| description | Find full-text download links for a PubMed paper by PMID - DOI, PMC open access, Sci-Hub, and publisher links. Use when user wants to read or download a paper's full text. |
| argument-hint | [PMID] |
Resolve and present all full-text access options for a given PMID.
$ARGUMENTS is a PMID (PubMed ID, an integer like 35641793).
Use mcp__chrome-devtools__navigate_page:
https://pubmed.ncbi.nlm.nih.gov/{PMID}/Replace PMID_HERE with the actual PMID from $ARGUMENTS:
async () => {
const pmid = "PMID_HERE";
// Wait for page to load
for (let i = 0; i < 20; i++) {
if (document.querySelector('h1.heading-title')) break;
await new Promise(r => setTimeout(r, 500));
}
// 1. Get DOI from esummary
const sumResp = await fetch(
`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=pubmed&id=${pmid}&retmode=json`
);
const sumData = await sumResp.json();
const record = sumData.result?.[pmid] || {};
const doi = (record.articleids || []).find(a => a.idtype === 'doi')?.value || '';
const title = record.title || '';
// 2. Check PMC via elink
const linkResp = await fetch(
`https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?dbfrom=pubmed&db=pmc&id=${pmid}&retmode=json`
);
const linkData = await linkResp.json();
const pmcLinks = linkData.linksets?.[0]?.linksetdbs?.find(l => l.linkname === 'pubmed_pmc')?.links || [];
const pmcid = pmcLinks.length > 0 ? `PMC${pmcLinks[0]}` : '';
// 3. Get publisher links from DOM
const ftLinkEls = document.querySelectorAll('.full-text-links-list a');
const publisherLinks = Array.from(ftLinkEls).map(a => ({
text: a.textContent?.trim() || '',
href: a.href || '',
icon: a.querySelector('img')?.getAttribute('alt') || ''
}));
// 4. Check free full text availability from DOM
const hasFreeFullText = !!document.querySelector('.free-full-text');
// 5. Build access links
const links = {};
if (doi) {
links.doi = `https://doi.org/${doi}`;
links.scihub = `https://sci-hub.ru/${doi}`;
}
if (pmcid) {
links.pmc = `https://www.ncbi.nlm.nih.gov/pmc/articles/${pmcid}/`;
links.pmcPdf = `https://www.ncbi.nlm.nih.gov/pmc/articles/${pmcid}/pdf/`;
}
return {
pmid,
title,
doi,
pmcid,
hasFreeFullText,
publisherLinks,
links
};
}
## Full Text Links — PMID: {pmid}
**{title}**
**DOI:**
{links.doi ? "- " + links.doi : "N/A"}
**Open Access (PMC):**
{links.pmc ? "- Full text: " + links.pmc : "No PMC full text available"}
{links.pmcPdf ? "- PDF: " + links.pmcPdf : ""}
**Sci-Hub:**
{links.scihub ? "- " + links.scihub : "Cannot build Sci-Hub link (no DOI)"}
**Publisher Links:**
{For each publisherLink: "- {text}: {href}"}
If the user wants to read the paper immediately, use mcp__chrome-devtools__new_page to open the preferred link:
navigate_page + evaluate_scriptPerform advanced PubMed search with field qualifiers - author, title, journal, MeSH, date range, article type. Constructs proper PubMed query syntax from natural language. Use for precise filtered searches.
Export PubMed paper(s) to Zotero or save as RIS file. Supports single paper by PMID or batch export from search results. Use when user wants to save papers to their reference manager.
Navigate PubMed search result pages or change sort order. Use when user wants to see more results or change ordering.
Get full paper details for a PubMed article by PMID - title, authors with affiliations, abstract, MeSH terms, keywords, publication types, DOI, and citation info. Use when user needs detailed information about a specific paper.
Search PubMed for biomedical literature by keywords. Returns structured results with PMID, title, authors, journal, date, DOI. Use when the user wants to find papers on a topic.