pubmed-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_pubmedA | Search an NCBI Entrez database (ESearch) and return matching UIDs plus the total result count.
Examples: search_pubmed(term="CRISPR AND cancer", retmax=50) search_pubmed(term="covid-19", db="pmc", sort="pub_date", mindate="2024/01/01", maxdate="2024/12/31", datetype="pdat") |
| get_summariesA | Fetch document summaries (ESummary) for a list of UIDs from an Entrez database.
Examples: get_summaries(db="pubmed", ids="34523456,34523457") get_summaries(db="pubmed", ids="34523456", select="title,pubdate,authors") |
| fetch_recordsA | Fetch full records (EFetch) for a list of UIDs. USE SPARINGLY: records can be large.
Examples: fetch_records(db="pubmed", ids="34523456", rettype="abstract") fetch_records(db="protein", ids="NP_000509.1", rettype="fasta") |
| find_related_linksA | Find related or cross-referenced records (ELink) for a list of UIDs.
Examples: find_related_links(ids="34523456", linkname="pubmed_pubmed_citedin") find_related_links(ids="34523456", dbfrom="pubmed", db="pmc") |
| get_database_infoA | List available Entrez databases (EInfo), or describe searchable fields and link names for one database. Call without Examples: get_database_info() get_database_info(db="pubmed") |
| global_query_countsA | Get the number of results a query would return in every Entrez database at once (EGQuery). Useful for scoping a search before committing to a specific database with search_pubmed. Examples: global_query_counts(term="alzheimer's disease") |
| spelling_suggestionsA | Get a spelling-corrected version of a search term for a given Entrez database (ESpell). ESpell only supports XML output; the raw XML is returned under "raw_text". Examples: spelling_suggestions(db="pubmed", term="asthmaa treatment") |
| match_citationsA | Batch match free-text citations against PubMed to retrieve their PMIDs (ECitMatch).
Examples: match_citations(citations="proc natl acad sci u s a|1991|88|3248|mann bj|key1|") |
| get_full_textA | Fetch the full text of a PMC Open Access article in BioC JSON format. USE SPARINGLY: full articles can be large. Only articles in the PMC Open Access Subset or Author Manuscript Collection are available.
Examples: get_full_text(id="17299597") get_full_text(id="PMC1790863", id_type="pmcid") |
| export_citationA | Export formatted citation(s) for one or more articles via the Literature Citation Exporter.
Examples: export_citation(ids="28012456") export_citation(ids="28012456,29886577", format="ris") |
| convert_idsA | Convert between PubMed IDs, PMCIDs, Author Manuscript IDs, and DOIs via the PMC ID Converter API.
Examples: convert_ids(ids="23193287") convert_ids(ids="3531190", idtype="pmcid") convert_ids(ids="10.1093/nar/gks1195", idtype="doi") |
| raw_requestA | Make a raw GET request to one of the four supported NCBI PubMed/PMC APIs. Safety valve for endpoints not covered by other tools.
Examples: raw_request(service="eutils", path="einfo.fcgi", params={"retmode": "json"}) raw_request(service="bioc", path="BioC_xml/PMC1790863/unicode", params={}) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dam2452/pubmed-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server