- Home
- MCP servers
- PubMed Enhanced Search
PubMed Enhanced Search
- python
4
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"leescot-pubmed-mcp-smithery": {
"command": "python",
"args": [
"pubmed_enhanced_mcp_server.py"
]
}
}
}You can tap into PubMed data with a dedicated MCP server that adds powerful search, filtering, and MeSH/pico capabilities. It equips you to explore scholarly articles more efficiently, compare term prevalence, and perform structured queries directly through MCP clients.
How to use
Use an MCP client to interact with the PubMed Enhanced Search MCP Server. You can search for papers by keywords and optionally filter by journal, retrieve MeSH terms for concepts, count publications across terms, fetch detailed paper data, and perform structured PICO-based searches. Use the five core functions to build workflows that fit your research questions.
Key workflows you can run include:
- Quick PubMed search by keywords with optional journal filter
- Retrieve related MeSH terms for a concept
- Compare publication counts across multiple terms
- Get full details for specific papers by PMID
- Build PICO-based searches with synonyms and combined queries
# Example client usage (conceptual)
results = await search_pubmed(
keywords=["diabetes", "insulin resistance"],
journal="Nature Medicine",
num_results=5,
sort_by="date_desc"
)
mesh = await get_mesh_terms("diabetes")
counts = await get_pubmed_count(["diabetes", "obesity", "hypertension"])
papers = await format_paper_details(["12345678", "87654321"])
pico = await pico_search(
p_terms=["diabetes", "type 2 diabetes", "T2DM"],
i_terms=["metformin"],
c_terms=["sulfonylurea"],
o_terms=["HbA1c reduction"]
)
How to use with a client
To start querying, run the MCP server locally and connect your MCP client to it. Use the server’s exposed functions to send requests and receive structured responses. If you are building an integration, wrap the function calls in your client and handle results and errors as you would with any other MCP endpoint.
Note on rate limiting
The server includes automatic retry with backoff to gracefully handle rate limits from external PubMed services. If you hit rate limits, the client may experience delayed responses while the server retries.
Available tools
search_pubmed
Search PubMed for articles matching keywords with optional journal filtering, returning a list of matching papers and basic metadata.
get_mesh_terms
Retrieve MeSH terms related to a medical concept to aid in further filtering or exploration.
get_pubmed_count
Return publication counts for multiple search terms to compare prevalence across terms.
format_paper_details
Fetch detailed information for specific papers by PMID, including abstract, DOI, authors, and keywords.
pico_search
Perform structured PICO-based searches with synonym support and combined queries across P, I, C, and O elements.