NCBI Literature Search MCP Server

NCBI Literature Search MCP Server

Seamless PubMed literature search via Model Context Protocol server.

6
Stars
1
Forks
6
Watchers
0
Issues
NCBI Literature Search MCP Server provides a Model Context Protocol (MCP) interface to search the vast PubMed database using natural language queries. It enables AI assistants to conduct comprehensive and advanced literature searches across biological and biomedical disciplines, returning metadata such as abstracts, author lists, MeSH terms, and DOIs. Designed for integration with AI tools, it supports advanced query capabilities and streamlines literature review and research discovery processes.

Key Features

Natural language search for PubMed articles
Access to over 35 million scientific publications
Advanced search with boolean operators and field tags
Full retrieval of article metadata including MeSH terms, DOIs, and author lists
Support for life sciences and biomedical fields
Integration with Claude Desktop and AI systems
Related articles discovery via NCBI algorithms
MeSH-driven precise terminology searches
Customizable through easy setup with Poetry, Conda, or pip
Search filtering by publication date and other criteria

Use Cases

Automating biomedical literature reviews
Discovering new research methods and algorithms in computational biology
Finding recent advances in genetics, ecology, and medicine
Identifying related work for hypothesis generation
Mining scientific articles for trends and meta-analysis
Fetching comprehensive publication details for reference management
Exploring scientific literature on specific organisms or topics
Integrating with AI assistants for research assistance
Enabling advanced, precision search in scientific databases
Speeding up knowledge synthesis and staying current with scientific progress

README

NCBI Literature Search MCP Server

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.

Features

🔬 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

Quick Start

Prerequisites

Setup (5 minutes)

  1. Create and initialize project

    bash
    mkdir ncbi-mcp-server && cd ncbi-mcp-server
    poetry init
    

    During init, add dependencies: mcp, httpx, typing-extensions

  2. Create project structure

    bash
    mkdir -p src/ncbi_mcp_server
    # Save server.py code as src/ncbi_mcp_server/server.py
    
  3. Install dependencies

    bash
    poetry install
    
  4. Test the server

    bash
    poetry run python src/ncbi_mcp_server/server.py
    
  5. Configure Claude Desktop

    Edit your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%/Claude/claude_desktop_config.json
    • Linux: ~/.config/claude/claude_desktop_config.json

    Add this configuration:

    json
    {
      "mcpServers": {
        "ncbi-literature": {
          "command": "poetry",
          "args": ["run", "python", "src/ncbi_mcp_server/server.py"],
          "cwd": "/FULL/PATH/TO/YOUR/ncbi-mcp-server"
        }
      }
    }
    
  6. Restart Claude Desktop and start searching!

Alternative Setup Methods

Conda Environment

bash
conda env create -f environment.yml
conda activate ncbi-mcp
python server.py

Standard pip + venv

bash
python -m venv venv
source venv/bin/activate  # Linux/macOS
pip install -r requirements.txt
python server.py

Usage Examples

For Evolutionary Biology Research

Search for phylogenetic studies:

"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"

Search by specific organism:

"Find recent papers on Drosophila comparative genomics"
→ Uses: search_pubmed with query "Drosophila[ti] AND comparative genomics[ti]"

For Computational Biology Research

Algorithm and method papers:

"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"

Software and database papers:

"Find papers about new bioinformatics tools for sequence analysis"
→ Uses: search_pubmed with query "bioinformatics[ti] AND software[ti] AND sequence analysis"

Advanced Search Examples

Multi-criteria search:

"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"]

Author-specific searches:

"Find recent papers by researchers working on ancient DNA and phylogenomics"
→ Uses: search_pubmed with query "ancient DNA[ti] AND phylogenomics[ti]"

Tool Reference

search_pubmed

Primary search tool for PubMed database

  • 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)

Examples:

  • "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

get_article_details

Fetch complete information for specific articles

  • pmids: List of PubMed IDs (up to 50)

Returns full abstracts, author lists, MeSH terms, DOI, publication details

search_mesh_terms

Find standardized Medical Subject Headings

  • term: Term to search in MeSH database

Helps discover related concepts and improve search precision

get_related_articles

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

advanced_search

Complex searches with multiple criteria

  • 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)

Analytics & Performance Monitoring

The NCBI MCP Server includes comprehensive analytics to help you understand your research patterns and optimize performance.

Analytics Tools

get_analytics_summary

Get comprehensive analytics overview

"Show me my research analytics summary"

Returns:

  • Total requests and uptime
  • Operation breakdown (searches, fetches, etc.)
  • Cache performance metrics
  • Recent activity and error rates
  • System health indicators

get_detailed_metrics

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

reset_analytics

Reset analytics data (use with caution)

"Reset all analytics data"

Note: This permanently clears all collected metrics.

What's Tracked

Usage Patterns:

  • Search queries and frequency
  • Most used operations
  • Unique vs. repeated queries
  • Peak usage periods

Performance Metrics:

  • Response times for each operation
  • Cache hit/miss rates
  • Error rates and types
  • Rate limiting efficiency

Research Insights:

  • Popular search terms and patterns
  • Research workflow analysis
  • Literature access patterns
  • Most accessed journals and topics

Deployment

Quick Start

  1. Configure credentials:

    bash
    cp .env.example .env
    # Edit .env with your NCBI email and API key
    
  2. Choose deployment method:

    bash
    # Local development
    ./deploy.sh local
    
    # Docker deployment
    ./deploy.sh docker
    
    # Production deployment
    ./deploy.sh production
    

Deployment Options

1. Local Development

Perfect for development and testing:

bash
poetry install
poetry run python -m src.ncbi_mcp_server.server

2. Docker Deployment

Recommended for most users with two options:

Full setup with Redis (recommended):

bash
# Copy and configure environment
cp .env.example .env
# Edit .env with your NCBI email and API key

# Start all services
docker-compose up -d

Simple setup without Redis:

bash
# 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

Full setup includes:

Simple setup includes:

  • NCBI MCP Server container only
  • In-memory caching (no persistence)

3. Production Deployment

For production environments:

bash
# Configure production settings
cp .env.production .env
# Edit with production values

# Deploy
./deploy.sh production

Monitoring

Docker logs:

bash
docker-compose logs -f ncbi-mcp-server

Cache monitoring:

Health checks:

bash
# 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()))"

Configuration

NCBI API Key (Optional but Recommended)

For higher rate limits and better performance:

  1. Register at NCBI: https://www.ncbi.nlm.nih.gov/account/
  2. Get API key: https://www.ncbi.nlm.nih.gov/account/settings/
  3. Add to server code in src/ncbi_mcp_server/server.py:
python
# Replace the line: ncbi_client = NCBIClient()
# With:
ncbi_client = NCBIClient(
    email="your.email@university.edu",
    api_key="your_api_key_here"
)

Rate Limits

  • Without API key: 3 requests/second
  • With API key: 10 requests/second
  • With API key + email: Higher limits for bulk requests

Development Workflow

Poetry Commands

bash
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)

bash
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

Sharing with Colleagues

bash
# They just need:
git clone your-repo
cd ncbi-mcp-server  
poetry install
# Everything works identically!

Field Tags for Advanced Searches

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)

Example Advanced Queries:

"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])

Research Workflow Examples

Literature Review Workflow

  1. Start broad: search_pubmed("computational phylogenetics")
  2. Refine with MeSH: search_mesh_terms("phylogenetics")
  3. Find key papers: Use publication dates and journal filters
  4. Explore connections: get_related_articles(pmid="key_paper_id")
  5. Deep dive: get_article_details(pmids=["12345", "67890"])

Staying Current

  1. Recent methods: search_pubmed("new methods", date_range="90")
  2. Follow key authors: search_pubmed("author_name[au]", sort="pub_date")
  3. Track specific topics: advanced_search with your research keywords

Method Discovery

  1. Algorithm papers: search_pubmed("algorithm[ti] AND your_field")
  2. Software tools: search_pubmed("software[ti] OR tool[ti] AND bioinformatics")
  3. Benchmarking: search_pubmed("comparison[ti] OR benchmark[ti]")

Troubleshooting

Common Issues

Server won't start:

  • Check Python version (3.8+ required)
  • Install dependencies: pip install -r requirements.txt
  • Verify file permissions

No search results:

  • Check query syntax (use proper field tags)
  • Try broader search terms
  • Verify internet connection

Rate limit errors:

  • Add delays between requests
  • Get NCBI API key for higher limits
  • Consider searching fewer results per query

XML parsing errors:

Getting Help

Contributing

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

License

This project is open source. Feel free to modify and distribute according to your institution's policies.


Perfect for researchers in:

  • 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!

Star History

Star History Chart

Repository Owner

Repository Details

Language Python
Default Branch main
Size 243 KB
Contributors 1
MCP Verified Nov 12, 2025

Programming Languages

Python
95.49%
Shell
3.08%
Dockerfile
1.43%

Tags

Join Our Newsletter

Stay updated with the latest AI tools, news, and offers by subscribing to our weekly newsletter.

We respect your privacy. Unsubscribe at any time.

Related MCPs

Discover similar Model Context Protocol servers

  • Maigret MCP Server

    Maigret MCP Server

    OSINT username and URL search server for the Model Context Protocol.

    Maigret MCP Server provides Model Context Protocol (MCP) integration for the Maigret OSINT tool, enabling AI and context-aware applications to search for usernames across hundreds of social networks and analyze URLs. Designed for seamless operation with MCP-compatible clients like Claude Desktop, it supports multiple output formats and advanced filtering options. The server can be installed via Docker or npm, offers Docker-based deployment for consistent performance, and facilitates responsible OSINT research.

    • 205
    • MCP
    • BurtTheCoder/mcp-maigret
  • MLB API MCP Server

    MLB API MCP Server

    A Model Context Protocol server for seamless MLB data access through AI applications.

    MLB API MCP Server provides comprehensive access to MLB statistics and baseball data via a FastMCP-based interface. It exposes a range of MLB functionalities—including live game data, player statistics, team information, and advanced metrics—as MCP tools accessible by AI workflows. Compatible with MCP-enabled AI clients, it enables structured, schema-validated querying and integrations for baseball data.

    • 33
    • MCP
    • guillochon/mlb-api-mcp
  • Pearch.ai MCP

    Pearch.ai MCP

    Natural Language People Search and Candidate Sourcing API for Seamless ATS Integration

    Pearch.ai MCP provides a high-precision people search API that interprets natural language queries to deliver top-quality candidate results. Designed for easy integration with Applicant Tracking Systems and hiring platforms, it leverages scientific methods and is trusted by recruiters. The tool is implemented as a Model Context Protocol (MCP), facilitating standardized model context handling and deployment via packages like FastMCP or through Smithery. The solution prioritizes ease of use, reliability, and high candidate match accuracy.

    • 5
    • MCP
    • Pearch-ai/mcp_pearch
  • Campertunity MCP Server

    Campertunity MCP Server

    Model Context Protocol server for AI-driven camping and outdoor recreation data

    Implements the Model Context Protocol (MCP) to provide AI models with structured access to camping and outdoor recreation data. Offers tools for searching, filtering, and booking campgrounds and sites based on a wide range of criteria. Enhances data accuracy with AI and aggregates information from multiple sources, enabling dynamic, real-time queries and bookings. Ideal for integrating intelligent camping experiences into AI-driven applications.

    • 11
    • MCP
    • campertunity/mcp-server
  • Bear MCP Server

    Bear MCP Server

    MCP server for accessing and searching Bear Notes on macOS.

    Bear MCP Server is an implementation of the Model Context Protocol that provides programmatic access to notes and tags stored in Bear Notes on macOS. It enables users to read, search, and list notes and tags via standardized MCP tools. The server connects to Bear's SQLite database and exposes essential commands for integration with AI models and workflows.

    • 40
    • MCP
    • akseyh/bear-mcp-server
  • Code Declaration Lookup MCP Server

    Code Declaration Lookup MCP Server

    Fast, language-agnostic code declaration search and lookup server via MCP.

    Provides a Model Context Protocol (MCP) server that indexes code declarations using universal ctags and SQLite with FTS5 full-text search. Offers search and listing functionality for functions, classes, structures, enums, and other code elements across any language supported by ctags. Enables seamless integration with coding agents for dynamic indexing, respects .gitignore, and supports ctags file ingestion and management.

    • 2
    • MCP
    • osinmv/function-lookup-mcp
  • Didn't find tool you were looking for?

    Be as detailed as possible for better results