Hosted MCP server · #25 most used on Smithery
pubmed-mcp-server
cyanheads/pubmed-mcp-server
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
- Uses
- 14k
- Tools
- 10
- Runs
- Hosted
- Prompts
- 1
- Listed
- 7mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install cyanheads/pubmed-mcp-server --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http pubmed https://server.smithery.ai/cyanheads/pubmed-mcp-server/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.pubmed]
url = "https://server.smithery.ai/cyanheads/pubmed-mcp-server/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"pubmed": {
"url": "https://server.smithery.ai/cyanheads/pubmed-mcp-server/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"pubmed": {
"type": "http",
"url": "https://server.smithery.ai/cyanheads/pubmed-mcp-server/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http pubmed https://server.smithery.ai/cyanheads/pubmed-mcp-server/mcpSaved to .gemini/settings.json.
What it can do
10 tools
pubmed_search_articles12 paramsSearch PubMed with full query syntax, filters, and date ranges. Returns PMIDs and optional brief summaries. Supports field-specific filte…
Search PubMed with full query syntax, filters, and date ranges. Returns PMIDs and optional brief summaries. Supports field-specific filters (author, journal, MeSH terms), common filters (language, species, free full text), and pagination via offset for paging through large result sets.
| Parameter | Type | Description |
|---|---|---|
sort | string | Sort order: relevance (default), pub_date (newest first), author, or journal |
query | string | PubMed search query (supports full NCBI syntax) |
author | string | Filter by author name (e.g. "Smith J") |
offset | integer | Result offset for pagination (0-based) |
journal | string | Filter by journal name |
species | string | Filter by species |
language | string | Filter by language (e.g. "english") |
dateRange | object | Filter by date range. The filter is applied only when both `minDate` and `maxDate` are non-empty; either one empty disables the entire date range. |
meshTerms | array | Filter by MeSH terms. Multiple terms are AND'd — all must match. |
maxResults | integer | Maximum results to return |
hasAbstract | boolean | Only include articles with abstracts |
freeFullText | boolean | Only include free full text articles |
pubmed_fetch_articles3 paramsFetch full article metadata by PubMed IDs. Returns detailed article information including abstract, authors, journal, MeSH terms.
| Parameter | Type | Description |
|---|---|---|
pmids | array | PubMed IDs to fetch |
includeMesh | boolean | Include MeSH terms |
includeGrants | boolean | Include grant information |
pubmed_fetch_fulltext6 paramsFetch full-text articles from PubMed Central with structured sections and references. When PMC misses, transparently falls back to Europe…
Fetch full-text articles from PubMed Central with structured sections and references. When PMC misses, transparently falls back to Europe PMC `fullTextXML` (structured JATS for records with a PMC counterpart), then to Unpaywall — publisher-hosted or institutional open-access copies as HTML-as-Markdown or PDF-as-text. Provide exactly one of `pmcids` (PMC IDs directly), `pmids` (PubMed IDs, auto-resolved), or `dois` (DOIs, auto-resolved to PMC via the ID Converter; preprints and EPMC-only OA fall
| Parameter | Type | Description |
|---|---|---|
dois | array | DOIs to resolve (e.g. ["10.21203/rs.3.rs-9010375/v1"]). Provide exactly one of `pmcids`, `pmids`, or `dois`. Resolved to a PMCID via the PMC ID Converter and returned as structured JATS when the artic |
pmids | array | PubMed IDs. Provide exactly one of `pmcids`, `pmids`, or `dois`. Articles in PMC are returned as structured JATS; articles not in PMC fall through to Europe PMC (when EPMC has a `fullTextXML`), then t |
pmcids | array | PMC IDs to fetch (e.g. ["PMC9575052"]). Provide exactly one of `pmcids`, `pmids`, or `dois`. PMC IDs with no retrievable full text fall through to Europe PMC, then to Unpaywall on the DOI the chain re |
sections | array | Filter to specific sections by title, case-insensitive (e.g. ["Introduction", "Methods", "Results", "Discussion"]). Applies to `source=pmc` results only. |
maxSections | integer | Maximum top-level body sections. Applies to `source=pmc` results only. |
includeReferences | boolean | Include reference list. Applies to `source=pmc` results only. |
pubmed_format_citations2 paramsGet formatted citations for PubMed articles in one or more formats (apa, mla, bibtex, ris, vancouver). Pass a single format as a string o…
Get formatted citations for PubMed articles in one or more formats (apa, mla, bibtex, ris, vancouver). Pass a single format as a string or multiple as an array.
| Parameter | Type | Description |
|---|---|---|
pmids | array | PubMed IDs to cite |
format | Citation format(s) to generate — single style as a string or multiple as an array. Allowed values: apa, mla, bibtex, ris, vancouver. |
pubmed_find_related4 paramsFind articles related to a source article — similar content (similar), articles citing this one (cited_by), or articles this one cites (r…
Find articles related to a source article — similar content (similar), articles citing this one (cited_by), or articles this one cites (references). Uses NCBI ELink as the primary source; falls back to Europe PMC then OpenAlex when NCBI is unavailable.
| Parameter | Type | Description |
|---|---|---|
pmid | string | Source PubMed ID |
offset | integer | Result offset for pagination (0-based); page through results by incrementing by maxResults |
maxResults | integer | Maximum related articles |
relationship | string | Relationship type: similar (content-based), cited_by (articles citing this one), references (articles this one cites) |
pubmed_spell_check1 paramSpell-check a query and get NCBI's suggested correction. Useful for refining search queries.
| Parameter | Type | Description |
|---|---|---|
query | string | PubMed search query to spell-check |
pubmed_lookup_mesh4 paramsSearch and explore the MeSH (Medical Subject Headings) controlled vocabulary. Returns descriptor records with tree numbers, scope notes, …
Search and explore the MeSH (Medical Subject Headings) controlled vocabulary. Returns descriptor records with tree numbers, scope notes, and entry terms, plus pagination via offset for paging past the maxResults cap.
| Parameter | Type | Description |
|---|---|---|
query | string | MeSH descriptor name or free-text term to look up |
offset | integer | Result offset for pagination (0-based). Pass the `nextOffset` from the previous response to get the following page; the exact-descriptor match is pinned to the first page only. |
maxResults | integer | Maximum results |
includeDetails | boolean | Fetch full MeSH records (scope notes, tree numbers, entry terms) |
pubmed_lookup_citation1 paramLook up PubMed IDs from partial bibliographic citations. Useful when you have a reference (journal, year, volume, page, author) and need …
Look up PubMed IDs from partial bibliographic citations. Useful when you have a reference (journal, year, volume, page, author) and need the PMID — deterministic citation matching, more reliable than free-text search for structured references. Each citation must include at least journal or year (ECitMatch primary-keys on journal+volume+page; author-only or volume-only inputs guarantee no match); more fields = better match accuracy.
| Parameter | Type | Description |
|---|---|---|
citations | array | Citations to look up. More fields = better match accuracy. |
pubmed_convert_ids2 paramsConvert between article identifiers (DOI, PMID, PMCID). Accepts up to 50 IDs of a single type per request. Only resolves articles indexed…
Convert between article identifiers (DOI, PMID, PMCID). Accepts up to 50 IDs of a single type per request. Only resolves articles indexed in PubMed Central — for articles not in PMC, use pubmed_search_articles instead.
| Parameter | Type | Description |
|---|---|---|
ids | array | Article identifiers to convert. All IDs must be the same type. DOIs: "10.1093/nar/gks1195", PMIDs: "23193287", PMCIDs: "PMC3531190" (the "PMC" prefix is optional — bare digits like "3531190" are also |
idType | string | The type of IDs being submitted. Required so the API can unambiguously resolve them. |
pubmed_europepmc_search6 paramsSearch Europe PMC, a broad open-access biomedical corpus. Surfaces preprints (`source: PPR`), patents (`source: PAT`), Agricola (`source:…
Search Europe PMC, a broad open-access biomedical corpus. Surfaces preprints (`source: PPR`), patents (`source: PAT`), Agricola (`source: AGR`), plus everything in PubMed (`MED`) and PMC. Use when additional coverage is needed — preprints and EPMC-only OA records are the typical recovery. Paginate via `cursorMark`. Defaults to `MED`, `PMC`, and `PPR`; pass `sources` to include `PAT` / `AGR`.
| Parameter | Type | Description |
|---|---|---|
sort | string | Optional EPMC sort: `<field> asc|desc`. Documented sortable fields: `P_PDATE_D` (publication date), `CITED` (citation count), `AUTH_FIRST` (first author surname), `PUB_YEAR` (publication year). Exampl |
query | string | Europe PMC search query. Supports field tokens like `AUTH:"<name>"`, `JOURNAL:"<title>"`, `TITLE:"<words>"`, `PUB_YEAR:[2020 TO 2024]`, `DOI:"..."`, `EXT_ID:<pmid> AND SRC:MED`, `PMCID:PMC<digits>`. I |
sources | array | Filter to specific EPMC sources. Defaults to MED, PMC, PPR when omitted. Pass an explicit array including PAT or AGR to broaden coverage. Allowed values: MED, PMC, PPR, PAT, AGR. |
pageSize | integer | Results per page. Max 100 per EPMC API. |
cursorMark | string | Pagination cursor. Use `*` (default) for the first page; pass the previous response's `nextCursorMark` for subsequent pages. |
resultType | string | `core` returns abstract, IDs, dates, license; `lite` is a smaller payload with IDs and titles only. |
Ready-made
Prompts
research_planGenerate a structured research plan outline for a biomedical research project.
Readable data
Resources
database-infoPubMed database metadata including field list, last update date, and record count.