NCBI Literature Search
About
Search NCBI databases, including PubMed, for scientific literature. Tailored for researchers in life sciences, evolutionary biology, and computational biology.
Details
- Author
- vitorpavinato
- Categories
- Search, Other, Knowledge Base
Jump to
Setup
Install NCBI Literature Search in your MCP client (Claude Desktop, Cursor, Windsurf, and others).
Repository: https://github.com/vitorpavinato/ncbi-mcp-server
Follow the installation instructions in the repository README, then restart your MCP client.
A Model Context Protocol (MCP) server for searching NCBI databases, designed for researchers across all life sciences and biomedical fields. This server provides seamless access to PubMed's vast collection of 35+ million scientific articles through natural language queries, enabling AI assistants to help with literature reviews, research discovery, and scientific analysis.
π¬Comprehensive Search: Search PubMed's 35+ million articles across all biological disciplines πAdvanced Queries: Support for complex searches with boolean operators, field tags, and filters
π§¬Life Sciences Research: Covers all biological and biomedical fields including genetics, ecology, medicine, and biotechnology π»Computational Biology: Perfect for finding bioinformatics methods, algorithms, and computational tools π¬Research Applications: Literature reviews, hypothesis generation, method discovery, and staying current with scientific advances πFull Article Details: Get abstracts, author lists, MeSH terms, DOIs, and publication information πRelated Articles: Discover relevant research through NCBI's relationship algorithms πMeSH Integration: Search and utilize Medical Subject Headings for precise terminology
- Python 3.8 or higher
- Poetry (recommended) -Install Poetry
mkdir ncbi-mcp-server && cd ncbi-mcp-server poetry init
During init, add dependencies:mcp,httpx,typing-extensions
mkdir -p src/ncbi_mcp_server # Save server.py code as src/ncbi_mcp_server/server.py
poetry run python src/ncbi_mcp_server/server.py
- macOS:~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:%APPDATA%/Claude/claude_desktop_config.json
- Linux:~/.config/claude/claude_desktop_config.json
{ "mcpServers": { "ncbi-literature": { "command": "poetry", "args": ["run", "python", "src/ncbi_mcp_server/server.py"], "cwd": "/FULL/PATH/TO/YOUR/ncbi-mcp-server" } } }
Restart Claude Desktopand start searching!
conda env create -f environment.yml conda activate ncbi-mcp python server.py
python -m venv venv source venv/bin/activate # Linux/macOS pip install -r requirements.txt python server.py
"Search for recent phylogenetic analysis papers on mammalian evolution" β Uses: search_pubmed with query "phylogenetic analysis[ti] AND mammalian[ti] AND evolution"
Find computational phylogenetics methods:
"Find papers about maximum likelihood methods for phylogenetic reconstruction" β Uses: search_pubmed with query "maximum likelihood[ti] AND phylogenetic reconstruction"
"Find recent papers on Drosophila comparative genomics" β Uses: search_pubmed with query "Drosophila[ti] AND comparative genomics[ti]"
"Search for machine learning applications in genomics from the last 2 years" β Uses: search_pubmed with date_range="730" and query "machine learning AND genomics"
"Find papers about new bioinformatics tools for sequence analysis" β Uses: search_pubmed with query "bioinformatics[ti] AND software[ti] AND sequence analysis"
"Find review articles about CRISPR applications in evolutionary studies published in Nature or Science" β Uses: advanced_search with terms=["CRISPR", "evolution"], publication_types=["Review"], journals=["Nature", "Science"]
"Find recent papers by researchers working on ancient DNA and phylogenomics" β Uses: search_pubmed with query "ancient DNA[ti] AND phylogenomics[ti]"
- query: Search terms (supports field tags like[ti]for title,[au]for author,[mh]for MeSH terms)
- max_results: Number of results (1-100, default: 20)
- sort: Sort by "relevance", "pub_date", "author", or "journal"
- date_range: Limit to recent articles ("30", "90", "365", "1095" days)
- "CRISPR[ti] AND evolution"- CRISPR in title AND evolution anywhere
- "phylogenetic analysis[mh]"- Using MeSH term for phylogenetic analysis
- "computational biology AND machine learning"- Boolean search
Fetch complete information for specific articles
Returns full abstracts, author lists, MeSH terms, DOI, publication details
Find standardized Medical Subject Headings
Helps discover related concepts and improve search precision
Discover articles related to a specific paper
- pmid: PubMed ID of reference article
- max_results: Number of related articles (1-50, default: 10)
Perfect for literature reviews and finding relevant research
- terms: List of search terms to combine
- operator: "AND", "OR", or "NOT" to combine terms
- authors: List of author names
- journals: List of journal names
- publication_types: "Research Article", "Review", "Meta-Analysis", etc.
- date_from/date_to: Date range in YYYY/MM/DD format
- max_results: Number of results (1-100, default: 20)
The NCBI MCP Server includes comprehensive analytics to help you understand your research patterns and optimize performance.
"Show me my research analytics summary"
- Total requests and uptime
- Operation breakdown (searches, fetches, etc.)
- Cache performance metrics
- Recent activity and error rates
- System health indicators
Detailed performance metrics for specific time periods
"Get detailed metrics for the last 24 hours"
- hours: Time period to analyze (default: 24)
- Operation-specific performance data
- Timeline analysis with hourly breakdowns
- Error rates and response times per operation
Note: This permanently clears all collected metrics.
- Search queries and frequency
- Most used operations
- Unique vs. repeated queries
- Peak usage periods
- Response times for each operation
- Cache hit/miss rates
- Error rates and types
- Rate limiting efficiency
- Popular search terms and patterns
- Research workflow analysis
- Literature access patterns
- Most accessed journals and topics
cp .env.example .env # Edit .env with your NCBI email and API key
# Local development ./deploy.sh local # Docker deployment ./deploy.sh docker # Production deployment ./deploy.sh production
poetry install poetry run python -m src.ncbi_mcp_server.server
Recommended for most users with two options:
# Copy and configure environment cp .env.example .env # Edit .env with your NCBI email and API key # Start all services docker-compose up -d
# For basic usage without Redis dependencies cp .env.example .env # Edit .env with your NCBI email docker-compose -f docker-compose.simple.yml up -d
- NCBI MCP Server container
- Redis cache for performance
- Redis Commander UI (http://localhost:8081)
- NCBI MCP Server container only
- In-memory caching (no persistence)
# Configure production settings cp .env.production .env # Edit with production values # Deploy ./deploy.sh production
- Redis Commander:http://localhost:8081
- Cache stats via MCP tool:cache_stats()
# Test server health curl http://localhost:8000/health # Test via MCP python -c "from src.ncbi_mcp_server.server import cache_stats; import asyncio; print(asyncio.run(cache_stats()))"
For higher rate limits and better performance:
- Register at NCBI:https://www.ncbi.nlm.nih.gov/account/
- Get API key:https://www.ncbi.nlm.nih.gov/account/settings/
- Add to server codeinsrc/ncbi_mcp_server/server.py:
# Replace the line: ncbi_client = NCBIClient() # With: ncbi_client = NCBIClient( email="your.email@university.edu", api_key="your_api_key_here" )
- Without API key: 3 requests/second
- With API key: 10 requests/second
- With API key + email: Higher limits for bulk requests
poetry shell # Activate virtual environment poetry add package # Add new dependency poetry remove package # Remove dependency poetry update # Update all dependencies poetry run python ... # Run commands in environment poetry build # Create distribution packages
Code Quality (if you added dev dependencies)
poetry add --group dev black mypy pytest isort flake8 poetry run black . # Format code poetry run mypy . # Type checking poetry run pytest # Run tests poetry run isort . # Sort imports
# They just need: git clone your-repo cd ncbi-mcp-server poetry install # Everything works identically!
PubMed supports many field tags for precise searching:
- [ti]- Title
- [tiab]- Title and Abstract
- [au]- Author
- [mh]- MeSH Terms
- [journal]- Journal Name
- [pdat]- Publication Date
- [pt]- Publication Type
- [lang]- Language
- [sb]- Subset (e.g., medline, pubmed)
"machine learning"[ti] AND "phylogen*"[tiab] AND "2020"[pdat]:"2024"[pdat] evolutionary[mh] AND computational[ti] AND (genomics[tiab] OR proteomics[tiab]) "ancient DNA"[ti] AND (paleogenomics[mh] OR phylogenomics[tiab])
- Start broad:search_pubmed("computational phylogenetics")
- Refine with MeSH:search_mesh_terms("phylogenetics")
- Find key papers: Use publication dates and journal filters
- Explore connections:get_related_articles(pmid="key_paper_id")
- Deep dive:get_article_details(pmids=["12345", "67890"])
- Recent methods:search_pubmed("new methods", date_range="90")
- Follow key authors:search_pubmed("author_name[au]", sort="pub_date")
- Track specific topics:advanced_searchwith your research keywords
- Algorithm papers:search_pubmed("algorithm[ti] AND your_field")
- Software tools:search_pubmed("software[ti] OR tool[ti] AND bioinformatics")
- Benchmarking:search_pubmed("comparison[ti] OR benchmark[ti]")
- Check Python version (3.8+ required)
- Install dependencies:pip install -r requirements.txt
- Verify file permissions
- Check query syntax (use proper field tags)
- Try broader search terms
- Verify internet connection
- Add delays between requests
- Get NCBI API key for higher limits
- Consider searching fewer results per query
- Usually temporary NCBI server issues
- Retry after a few seconds
- Check NCBI status:https://www.ncbi.nlm.nih.gov/
- NCBI E-utilities documentation:https://www.ncbi.nlm.nih.gov/books/NBK25499/
- PubMed search tips:https://pubmed.ncbi.nlm.nih.gov/help/
- MeSH database:https://www.ncbi.nlm.nih.gov/mesh/
This MCP server is designed to grow with the research community. Ideas for enhancement:
- Additional databases: PMC, BioRxiv, databases beyond NCBI
- Citation analysis: Track paper impact and citation networks
- Export formats: BibTeX, EndNote, RIS for reference managers
- Saved searches: Persistent search profiles and alerts
- Full-text integration: When available through PMC
This project is open source. Feel free to modify and distribute according to your institution's policies.
- Evolutionary Biology & Phylogenetics
- Computational Biology & Bioinformatics
- Molecular Evolution & Population Genetics
- Comparative Genomics & Proteomics
- Systems Biology & Network Analysis
- Biostatistics & Mathematical Biology
- Ancient DNA & Paleogenomics
- Conservation Genetics & Ecology
Start exploring the vast world of biological literature with powerful, precise searches!
Search global news using natural language. Webz.io News Search API returns the most relevant articles and content, with filters for source, country, language, date, sentiment, and category.
Verified, tier-0 regulatory data for your AI: connect Claude, ChatGPT or Cursor to 850+ official sources across 50+ jurisdictions.
Search and analyze academic papers on arXiv.
A flexible service for searching and analyzing academic papers on arXiv.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




