Pubmed
FreeNot checkedMCP server for accessing NCBI PubMed/PMC databases, enabling search, retrieval of summaries and full records, citation export, and ID conversion through various
About
MCP server for accessing NCBI PubMed/PMC databases, enabling search, retrieval of summaries and full records, citation export, and ID conversion through various APIs.
README
MCP server exposing NCBI PubMed/PMC APIs: E-utilities (search, summaries, full records, links, database info, spelling, citation matching), BioC full text, the Literature Citation Exporter, and the PMC ID Converter.
Table of contents
Tools
| Tool | Parameters | Description |
|---|---|---|
search_pubmed |
term: str, db: str = "pubmed", retmax: int = 20, retstart: int = 0, sort: Optional[str] = None, mindate: Optional[str] = None, maxdate: Optional[str] = None, datetype: Optional[str] = None |
ESearch — matching UIDs and total count |
get_summaries |
db: str, ids: str, select: str = "*" |
ESummary — document metadata for a list of UIDs |
fetch_records |
db: str, ids: str, rettype: str, retmode: "xml"|"text" = "text", max_chars: int = 20000 |
EFetch — full records (abstracts, FASTA, GenBank, etc.) |
find_related_links |
ids: str, dbfrom: str = "pubmed", db: str = "pubmed", linkname: Optional[str] = None, cmd: str = "neighbor" |
ELink — related/cross-referenced records |
get_database_info |
db: Optional[str] = None |
EInfo — list of Entrez databases, or fields/links for one database |
global_query_counts |
term: str |
EGQuery — result counts across all Entrez databases |
spelling_suggestions |
db: str, term: str |
ESpell — spelling-corrected search term |
match_citations |
citations: str |
ECitMatch — batch citation-to-PMID matching |
get_full_text |
id: str, id_type: "pmid"|"pmcid" = "pmid", encoding: "unicode"|"ascii" = "unicode", max_chars: int = 20000 |
BioC — full text of a PMC Open Access article |
export_citation |
ids: str, db: "pubmed"|"pmc" = "pubmed", format: "citation"|"csl"|"ris"|"nbib" = "citation" |
Literature Citation Exporter — formatted citation |
convert_ids |
ids: str, idtype: Optional["pmcid"|"pmid"|"mid"|"doi"] = None, versions: bool = False |
PMC ID Converter — convert between PMID/PMCID/MID/DOI |
raw_request |
service: "eutils"|"bioc"|"citexport"|"idconv", path: str, params: Dict[str, Any] |
Raw GET request to any of the four underlying APIs |
Environment variables
| Variable | Required | Description |
|---|---|---|
PUBMED_MCP_EMAIL |
no | Email reported to NCBI (recommended by their usage policy) |
PUBMED_MCP_API_KEY |
no | NCBI E-utilities API key — raises the rate limit from 3 to 10 requests/second |
Wiring it up
Only requirement: uv (https://docs.astral.sh/uv/). Nothing else to install.
Claude Code
claude mcp add pubmed-mcp -- uvx --from git+https://github.com/dam2452/pubmed-mcp.git pubmed-mcp
With optional email/API key:
claude mcp add pubmed-mcp -e PUBMED_MCP_EMAIL=<value> -e PUBMED_MCP_API_KEY=<value> -- uvx --from git+https://github.com/dam2452/pubmed-mcp.git pubmed-mcp
Claude Desktop / other MCP client
{
"mcpServers": {
"pubmed-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/dam2452/pubmed-mcp.git", "pubmed-mcp"],
"env": { "PUBMED_MCP_EMAIL": "<value>", "PUBMED_MCP_API_KEY": "<value>" }
}
}
}
After pushing a new version: uv cache clean and restart the client.
Local run
uv run --directory . pubmed-mcp
Tests (manual):
uv run --directory . --with pytest pytest test/
Install Pubmed in Claude Desktop, Claude Code & Cursor
unyly install pubmed-mcpInstalls into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.
First time? Get the CLI: curl -fsSL https://unyly.org/install | sh
Or configure manually
Run in your terminal:
claude mcp add pubmed-mcp -- uvx --from git+https://github.com/dam2452/pubmed-mcp pubmed-mcpFAQ
Is Pubmed MCP free?
Yes, Pubmed MCP is free — one-click install via Unyly at no cost.
Does Pubmed need an API key?
No, Pubmed runs without API keys or environment variables.
Is Pubmed hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Pubmed in Claude Desktop, Claude Code or Cursor?
Open Pubmed on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Pubmed with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
