Skip to main content

MCP server for PubMed literature search with MeSH, PICO, and intelligent query expansion

Project description

PubMed Search MCP

PyPI version Python 3.10+ License: Apache 2.0 MCP Test Coverage

Professional Literature Research Assistant for AI Agents - More than just an API wrapper

A Domain-Driven Design (DDD) based MCP server that serves as an intelligent research assistant for AI agents, providing task-oriented literature search and analysis capabilities.

โœจ What's Included:

  • ๐Ÿ”ง 21 MCP Tools - Streamlined PubMed, Europe PMC, CORE, and NCBI database access
  • ๐Ÿ“š 22 Claude Skills - Ready-to-use workflow guides for AI agents (Claude Code-specific)
  • ๐Ÿ“– Copilot Instructions - VS Code GitHub Copilot integration guide

๐ŸŒ Language: English | ็น้ซ”ไธญๆ–‡


๐Ÿš€ Quick Install

Via uv

uv add pubmed-search-mcp

Via uvx (Zero Install)

uvx pubmed-search-mcp

โš™๏ธ Configuration

This MCP server works with any MCP-compatible AI tool. Choose your preferred client:

VS Code / Cursor (.vscode/mcp.json)

{
  "servers": {
    "pubmed-search": {
      "type": "stdio",
      "command": "uvx",
      "args": ["pubmed-search-mcp"],
      "env": {
        "NCBI_EMAIL": "your@email.com"
      }
    }
  }
}

Cline (cline_mcp_settings.json)

{
  "mcpServers": {
    "pubmed-search": {
      "command": "uvx",
      "args": ["pubmed-search-mcp"],
      "env": {
        "NCBI_EMAIL": "your@email.com"
      },
      "alwaysAllow": [],
      "disabled": false
    }
  }
}

Tip: In Cline, click "MCP Servers" โ†’ "Configure" โ†’ "Configure MCP Servers" to edit this file.

Antigravity / Other MCP Clients

Any MCP-compatible client can use this server via stdio transport:

# Command
uvx pubmed-search-mcp

Note: NCBI_EMAIL is required by NCBI API policy. Optionally set NCBI_API_KEY for higher rate limits.


๐ŸŽฏ Design Philosophy

Core Positioning: The intelligent middleware between AI Agents and academic search engines.

Why This Server?

Other tools give you raw API access. We give you vocabulary translation + intelligent routing:

Challenge Our Solution
Agent uses ICD codes, PubMed needs MeSH โœ… Auto ICDโ†’MeSH conversion
Multiple databases, different APIs โœ… Unified Search single entry point
Clinical questions need structured search โœ… PICO parser with Boolean builder
Typos in medical terms โœ… ESpell auto-correction
Too many results from one source โœ… Parallel multi-source with dedup

Key Differentiators

  1. Vocabulary Translation Layer - Agent speaks naturally, we translate to each database's terminology (MeSH, ICD-10, text-mined entities)
  2. Unified Search Gateway - One unified_search() call, auto-dispatch to PubMed/Europe PMC/CORE/OpenAlex
  3. PICO-Aware - Parse clinical questions into structured (P)opulation/(I)ntervention/(C)omparison/(O)utcome
  4. Agent-First Design - Output optimized for machine decision-making, not human reading

๐Ÿ“ก External APIs & Data Sources

This MCP server integrates with multiple academic databases and APIs:

Core Data Sources

Source Coverage Vocabulary Auto-Convert Description
NCBI PubMed 36M+ articles MeSH โœ… Native Primary biomedical literature
NCBI Entrez Multi-DB MeSH โœ… Native Gene, PubChem, ClinVar
Europe PMC 33M+ Text-mined โœ… Extraction Full text XML access
CORE 200M+ None โžก๏ธ Free-text Open access aggregator
Semantic Scholar 200M+ S2 Fields โžก๏ธ Free-text AI-powered recommendations
OpenAlex 250M+ Concepts โžก๏ธ Free-text Open scholarly metadata
NIH iCite PubMed N/A N/A Citation metrics (RCR)

๐Ÿ”‘ Key: โœ… = Full vocabulary support | โžก๏ธ = Query pass-through (no controlled vocabulary)

ICD Codes: Auto-detected and converted to MeSH before PubMed search

Environment Variables

# Required
NCBI_EMAIL=your@email.com          # Required by NCBI policy

# Optional - For higher rate limits
NCBI_API_KEY=your_ncbi_api_key     # Get from: https://www.ncbi.nlm.nih.gov/account/settings/
CORE_API_KEY=your_core_api_key     # Get from: https://core.ac.uk/services/api
S2_API_KEY=your_s2_api_key         # Get from: https://www.semanticscholar.org/product/api

# Optional - Network settings
HTTP_PROXY=http://proxy:8080       # HTTP proxy for API requests
HTTPS_PROXY=https://proxy:8080     # HTTPS proxy for API requests

๐Ÿ”„ How It Works: The Middleware Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                              AI AGENT                                        โ”‚
โ”‚                                                                              โ”‚
โ”‚   "Find papers about I10 hypertension treatment in diabetic patients"       โ”‚
โ”‚                                                                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     ๐Ÿ”„ PUBMED SEARCH MCP (MIDDLEWARE)                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚
โ”‚  โ”‚  1๏ธโƒฃ VOCABULARY TRANSLATION                                              โ”‚โ”‚
โ”‚  โ”‚     โ€ข ICD-10 "I10" โ†’ MeSH "Hypertension"                                โ”‚โ”‚
โ”‚  โ”‚     โ€ข "diabetic" โ†’ MeSH "Diabetes Mellitus"                             โ”‚โ”‚
โ”‚  โ”‚     โ€ข ESpell: "hypertention" โ†’ "hypertension"                           โ”‚โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”โ”‚
โ”‚  โ”‚  2๏ธโƒฃ INTELLIGENT ROUTING                                                 โ”‚โ”‚
โ”‚  โ”‚     โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”             โ”‚โ”‚
โ”‚  โ”‚     โ”‚ PubMed   โ”‚  โ”‚Europe PMCโ”‚  โ”‚   CORE   โ”‚  โ”‚ OpenAlex โ”‚             โ”‚โ”‚
โ”‚  โ”‚     โ”‚  36M+    โ”‚  โ”‚   33M+   โ”‚  โ”‚  200M+   โ”‚  โ”‚  250M+   โ”‚             โ”‚โ”‚
โ”‚  โ”‚     โ”‚  (MeSH)  โ”‚  โ”‚(fulltext)โ”‚  โ”‚  (OA)    โ”‚  โ”‚(metadata)โ”‚             โ”‚โ”‚
โ”‚  โ”‚     โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜             โ”‚โ”‚
โ”‚  โ”‚          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                 โ”‚โ”‚
โ”‚  โ”‚                              โ–ผ                                          โ”‚โ”‚
โ”‚  โ”‚  3๏ธโƒฃ RESULT AGGREGATION: Dedupe + Rank + Enrich                         โ”‚โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         UNIFIED RESULTS                                      โ”‚
โ”‚   โ€ข 150 unique papers (deduplicated from 4 sources)                          โ”‚
โ”‚   โ€ข Ranked by relevance + citation impact (RCR)                              โ”‚
โ”‚   โ€ข Full text links enriched from Europe PMC                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ MCP Tools Overview

๐Ÿ” Search Tools

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                      SEARCH ENTRY POINTS                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                  โ”‚
โ”‚   unified_search()          โ† ๐ŸŒŸ RECOMMENDED: Auto-routing       โ”‚
โ”‚        โ”‚                                                         โ”‚
โ”‚        โ”œโ”€โ”€ Quick search     โ†’ Direct multi-source query          โ”‚
โ”‚        โ”œโ”€โ”€ PICO mode        โ†’ Clinical question decomposition    โ”‚
โ”‚        โ””โ”€โ”€ Systematic mode  โ†’ MeSH expansion + parallel search   โ”‚
โ”‚                                                                  โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚   SPECIALIZED SEARCH (when you need specific source)            โ”‚
โ”‚                                                                  โ”‚
โ”‚   search_literature()       โ†’ PubMed only (MeSH support)         โ”‚
โ”‚   search_europe_pmc()       โ†’ Europe PMC (fulltext/OA filters)   โ”‚
โ”‚   search_core()             โ†’ CORE 200M+ open access             โ”‚
โ”‚   search_gene()             โ†’ NCBI Gene database                 โ”‚
โ”‚   search_compound()         โ†’ PubChem compounds                  โ”‚
โ”‚   search_clinvar()          โ†’ ClinVar variants                   โ”‚
โ”‚                                                                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ”ฌ Discovery Tools (After Finding Key Papers)

                        Found important paper (PMID)
                                   โ”‚
           โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
           โ”‚                       โ”‚                       โ”‚
           โ–ผ                       โ–ผ                       โ–ผ
    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”        โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
    โ”‚  BACKWARD   โ”‚        โ”‚  SIMILAR    โ”‚        โ”‚  FORWARD    โ”‚
    โ”‚  โ—€โ”€โ”€โ”€โ”€โ”€โ”€    โ”‚        โ”‚  โ‰ˆโ‰ˆโ‰ˆโ‰ˆโ‰ˆโ‰ˆ     โ”‚        โ”‚  โ”€โ”€โ”€โ”€โ”€โ”€โ–ถ    โ”‚
    โ”‚             โ”‚        โ”‚             โ”‚        โ”‚             โ”‚
    โ”‚ get_article โ”‚        โ”‚find_related โ”‚        โ”‚find_citing  โ”‚
    โ”‚ _references โ”‚        โ”‚ _articles   โ”‚        โ”‚ _articles   โ”‚
    โ”‚             โ”‚        โ”‚             โ”‚        โ”‚             โ”‚
    โ”‚ Foundation  โ”‚        โ”‚  Similar    โ”‚        โ”‚ Follow-up   โ”‚
    โ”‚  papers     โ”‚        โ”‚   topic     โ”‚        โ”‚  research   โ”‚
    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜        โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

    build_citation_tree() โ†’ Full network visualization (6 formats)

๐Ÿ“š Full Text & Export

Category Tools
Full Text get_fulltext (Europe PMC), get_core_fulltext (CORE), get_fulltext_xml
Text Mining get_text_mined_terms โ†’ Extract genes, diseases, chemicals
Export prepare_export โ†’ RIS/BibTeX/CSV/MEDLINE/JSON
Metrics get_citation_metrics โ†’ iCite RCR, citation percentile

๐Ÿ“‹ Agent Usage Examples

1๏ธโƒฃ Quick Search (Simplest)

# Agent just asks naturally - middleware handles everything
unified_search(query="remimazolam ICU sedation", limit=20)

# Or with clinical codes - auto-converted to MeSH
unified_search(query="I10 treatment in E11.9 patients")
#                     โ†‘ ICD-10           โ†‘ ICD-10
#                     Hypertension       Type 2 Diabetes

2๏ธโƒฃ PICO Clinical Question

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  "Is remimazolam better than propofol for ICU sedation?"                โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                         parse_pico()                                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                     โ”‚
โ”‚  โ”‚    P    โ”‚  โ”‚    I    โ”‚  โ”‚    C    โ”‚  โ”‚    O    โ”‚                     โ”‚
โ”‚  โ”‚  ICU    โ”‚  โ”‚remimaz- โ”‚  โ”‚propofol โ”‚  โ”‚sedation โ”‚                     โ”‚
โ”‚  โ”‚patients โ”‚  โ”‚  olam   โ”‚  โ”‚         โ”‚  โ”‚outcomes โ”‚                     โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜                     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚            โ”‚            โ”‚            โ”‚
        โ–ผ            โ–ผ            โ–ผ            โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              generate_search_queries() ร— 4 (parallel)                    โ”‚
โ”‚                                                                          โ”‚
โ”‚  P โ†’ "Intensive Care Units"[MeSH]                                        โ”‚
โ”‚  I โ†’ "remimazolam" [Supplementary Concept], "CNS 7056"                   โ”‚
โ”‚  C โ†’ "Propofol"[MeSH], "Diprivan"                                        โ”‚
โ”‚  O โ†’ "Conscious Sedation"[MeSH], "Deep Sedation"[MeSH]                   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              Agent combines with Boolean logic                           โ”‚
โ”‚                                                                          โ”‚
โ”‚  (P) AND (I) AND (C) AND (O)  โ† High precision                           โ”‚
โ”‚  (P) AND (I OR C) AND (O)     โ† High recall                              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                  โ”‚
                                  โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              unified_search() ร— N (parallel multi-source)                โ”‚
โ”‚                                                                          โ”‚
โ”‚  PubMed โ”€โ”€โ”ฌโ”€โ”€ Europe PMC โ”€โ”€โ”ฌโ”€โ”€ CORE โ”€โ”€โ–บ merge_search_results()           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
# Step 1: Parse clinical question
parse_pico("Is remimazolam better than propofol for ICU sedation?")
# Returns: P=ICU patients, I=remimazolam, C=propofol, O=sedation outcomes

# Step 2: Get MeSH for each element (parallel!)
generate_search_queries(topic="ICU patients")   # P
generate_search_queries(topic="remimazolam")    # I
generate_search_queries(topic="propofol")       # C
generate_search_queries(topic="sedation")       # O

# Step 3: Agent combines with Boolean
query = '("Intensive Care Units"[MeSH]) AND (remimazolam OR "CNS 7056") AND propofol AND sedation'

# Step 4: Search and merge
unified_search(query=query, sources=["pubmed", "europe_pmc", "core"])

3๏ธโƒฃ Explore from Key Paper

# Found landmark paper PMID: 33475315
find_related_articles(pmid="33475315")   # Similar methodology
find_citing_articles(pmid="33475315")    # Who built on this?
get_article_references(pmid="33475315")  # What's the foundation?

# Build complete research map
build_citation_tree(pmid="33475315", depth=2, output_format="mermaid")

4๏ธโƒฃ Gene/Drug Research

# Research a gene
search_gene(query="BRCA1", organism="human")
get_gene_literature(gene_id="672", limit=20)

# Research a drug compound
search_compound(query="propofol")
get_compound_literature(cid="4943", limit=20)

5๏ธโƒฃ Export Results

# Export last search results
prepare_export(pmids="last", format="ris")      # โ†’ EndNote/Zotero
prepare_export(pmids="last", format="bibtex")   # โ†’ LaTeX

# Check open access availability
analyze_fulltext_access(pmids="last")

๐Ÿ” Search Mode Comparison

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        SEARCH MODE DECISION TREE                         โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                          โ”‚
โ”‚   "What kind of search do I need?"                                       โ”‚
โ”‚         โ”‚                                                                โ”‚
โ”‚         โ”œโ”€โ”€ Know exactly what to search?                                 โ”‚
โ”‚         โ”‚   โ””โ”€โ”€ unified_search(query="topic keywords")                   โ”‚
โ”‚         โ”‚       โ†’ Quick, auto-routing to best sources                    โ”‚
โ”‚         โ”‚                                                                โ”‚
โ”‚         โ”œโ”€โ”€ Have a clinical question (A vs B)?                           โ”‚
โ”‚         โ”‚   โ””โ”€โ”€ parse_pico() โ†’ unified_search(mode="pico")               โ”‚
โ”‚         โ”‚       โ†’ Structured P/I/C/O search with Boolean                 โ”‚
โ”‚         โ”‚                                                                โ”‚
โ”‚         โ”œโ”€โ”€ Need comprehensive systematic coverage?                      โ”‚
โ”‚         โ”‚   โ””โ”€โ”€ generate_search_queries() โ†’ parallel search              โ”‚
โ”‚         โ”‚       โ†’ MeSH expansion, multiple strategies, merge             โ”‚
โ”‚         โ”‚                                                                โ”‚
โ”‚         โ””โ”€โ”€ Exploring from a key paper?                                  โ”‚
โ”‚             โ””โ”€โ”€ find_related/citing/references โ†’ build_citation_tree     โ”‚
โ”‚                 โ†’ Citation network, research context                     โ”‚
โ”‚                                                                          โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
Mode Entry Point Best For Auto-Features
Quick unified_search() Fast topic search ICDโ†’MeSH, multi-source, dedup
PICO parse_pico() Clinical questions P/I/C/O decomposition, Boolean
Systematic generate_search_queries() Literature reviews MeSH expansion, synonyms
Exploration find_*_articles() From key paper Citation network, related

๐Ÿค– Claude Skills (AI Agent Workflows)

Pre-built workflow guides in .claude/skills/:

Skill Description
pubmed-quick-search Basic search with filters
pubmed-systematic-search MeSH expansion, comprehensive
pubmed-pico-search Clinical question decomposition
pubmed-paper-exploration Citation tree, related articles
pubmed-gene-drug-research Gene/PubChem/ClinVar
pubmed-fulltext-access Europe PMC, CORE full text
pubmed-export-citations RIS/BibTeX/CSV export

๐Ÿ“ Location: .claude/skills/*/SKILL.md (Claude Code-specific)


๐Ÿ—๏ธ Architecture (DDD)

This project uses Domain-Driven Design (DDD) architecture, with literature research domain knowledge as the core model.

src/pubmed_search/
โ”œโ”€โ”€ domain/                     # Core business logic
โ”‚   โ””โ”€โ”€ entities/article.py     # UnifiedArticle, Author, etc.
โ”œโ”€โ”€ application/                # Use cases
โ”‚   โ”œโ”€โ”€ search/                 # QueryAnalyzer, ResultAggregator
โ”‚   โ”œโ”€โ”€ export/                 # Citation export (RIS, BibTeX...)
โ”‚   โ””โ”€โ”€ session/                # SessionManager
โ”œโ”€โ”€ infrastructure/             # External systems
โ”‚   โ”œโ”€โ”€ ncbi/                   # Entrez, iCite, Citation Exporter
โ”‚   โ”œโ”€โ”€ sources/                # Europe PMC, CORE, CrossRef...
โ”‚   โ””โ”€โ”€ http/                   # HTTP clients
โ”œโ”€โ”€ presentation/               # User interfaces
โ”‚   โ”œโ”€โ”€ mcp_server/             # MCP tools, prompts, resources
โ”‚   โ”‚   โ””โ”€โ”€ tools/              # discovery, strategy, pico, export...
โ”‚   โ””โ”€โ”€ api/                    # REST API (Copilot Studio)
โ””โ”€โ”€ shared/                     # Cross-cutting concerns
    โ”œโ”€โ”€ exceptions.py           # Unified error handling
    โ””โ”€โ”€ async_utils.py          # Rate limiter, retry, circuit breaker

Internal Mechanisms (Transparent to Agent)

Mechanism Description
Session Auto-create, auto-switch
Cache Auto-cache search results, avoid duplicate API calls
Rate Limit Auto-comply with NCBI API limits (0.34s/0.1s)
MeSH Lookup generate_search_queries() auto-queries NCBI MeSH database
ESpell Auto spelling correction (remifentanyl โ†’ remifentanil)
Query Analysis Each suggested query shows how PubMed actually interprets it

Vocabulary Translation Layer (Key Feature)

Our Core Value: We are the intelligent middleware between Agent and Search Engines, automatically handling vocabulary standardization so Agent doesn't need to know each database's terminology.

Different data sources use different controlled vocabulary systems. This server provides automatic conversion:

API / Database Vocabulary System Auto-Conversion
PubMed / NCBI MeSH (Medical Subject Headings) โœ… Full support via expand_with_mesh()
ICD Codes ICD-10-CM / ICD-9-CM โœ… Auto-detect & convert to MeSH
Europe PMC Text-mined entities (Gene, Disease, Chemical) โœ… get_text_mined_terms() extraction
OpenAlex OpenAlex Concepts (deprecated) โŒ Free-text only
Semantic Scholar S2 Field of Study โŒ Free-text only
CORE None โŒ Free-text only
CrossRef None โŒ Free-text only

Automatic ICD โ†’ MeSH Conversion

When searching with ICD codes (e.g., I10 for Hypertension), unified_search() automatically:

  1. Detects ICD-10/ICD-9 patterns via detect_and_expand_icd_codes()
  2. Looks up corresponding MeSH terms from internal mapping (ICD10_TO_MESH, ICD9_TO_MESH)
  3. Expands query with MeSH synonyms for comprehensive search
# Agent calls unified_search with clinical terminology
unified_search(query="I10 treatment outcomes")

# Server auto-expands to PubMed-compatible query
"(I10 OR Hypertension[MeSH]) treatment outcomes"

๐Ÿ“– Full architecture documentation: ARCHITECTURE.md

MeSH Auto-Expansion + Query Analysis

When calling generate_search_queries("remimazolam sedation"), internally it:

  1. ESpell Correction - Fix spelling errors
  2. MeSH Query - Entrez.esearch(db="mesh") to get standard vocabulary
  3. Synonym Extraction - Get synonyms from MeSH Entry Terms
  4. Query Analysis - Analyze how PubMed interprets each query
{
  "mesh_terms": [
    {
      "input": "remimazolam",
      "preferred": "remimazolam [Supplementary Concept]",
      "synonyms": ["CNS 7056", "ONO 2745"]
    }
  ],
  "all_synonyms": ["CNS 7056", "ONO 2745", ...],
  "suggested_queries": [
    {
      "id": "q1_title",
      "query": "(remimazolam sedation)[Title]",
      "purpose": "Exact title match - highest precision",
      "estimated_count": 8,
      "pubmed_translation": "\"remimazolam sedation\"[Title]"
    },
    {
      "id": "q3_and",
      "query": "(remimazolam AND sedation)",
      "purpose": "All keywords required",
      "estimated_count": 561,
      "pubmed_translation": "(\"remimazolam\"[Supplementary Concept] OR \"remimazolam\"[All Fields]) AND (\"sedate\"[All Fields] OR ...)"
    }
  ]
}

Value of Query Analysis: Agent thinks remimazolam AND sedation only searches these two words, but PubMed actually expands to Supplementary Concept + synonyms, results go from 8 to 561. This helps Agent understand the difference between intent and actual search.


๐Ÿ”’ HTTPS Deployment

Enable HTTPS secure communication for production environments.

Quick Start

# Step 1: Generate SSL certificates
./scripts/generate-ssl-certs.sh

# Step 2: Start HTTPS service (Docker)
./scripts/start-https-docker.sh up

# Verify deployment
curl -k https://localhost/

HTTPS Endpoints

Service URL Description
MCP SSE https://localhost/sse SSE connection (MCP)
Messages https://localhost/messages MCP POST
Health https://localhost/health Health check

Claude Desktop Configuration

{
  "mcpServers": {
    "pubmed-search": {
      "url": "https://localhost/sse"
    }
  }
}

๐Ÿข Microsoft Copilot Studio Integration

Integrate PubMed Search MCP with Microsoft 365 Copilot (Word, Teams, Outlook)!

Quick Start

# Start with Streamable HTTP transport (required by Copilot Studio)
python run_server.py --transport streamable-http --port 8765

# Or use the dedicated script with ngrok
./scripts/start-copilot-studio.sh --with-ngrok

Copilot Studio Configuration

Field Value
Server name PubMed Search
Server URL https://your-server.com/mcp
Authentication None (or API Key)

๐Ÿ“– Full documentation: copilot-studio/README.md

โš ๏ธ Note: SSE transport deprecated since Aug 2025. Use streamable-http.


๐Ÿ“– More documentation:


๐Ÿ” Security

Security Features

Layer Feature Description
HTTPS TLS 1.2/1.3 encryption All traffic encrypted via Nginx
Rate Limiting 30 req/s Nginx level protection
Security Headers XSS/CSRF protection X-Frame-Options, X-Content-Type-Options
SSE Optimization 24h timeout Long-lived connections for real-time
No Database Stateless No SQL injection risk
No Secrets In-memory only No credentials stored

See [DEPLOYMENT.md](DEPLOYMENT.md) for detailed deployment instructions.

---

## ๐Ÿ“ค Export Formats

Export your search results in formats compatible with major reference managers:

| Format | Compatible With | Use Case |
|--------|-----------------|----------|
| **RIS** | EndNote, Zotero, Mendeley | Universal import |
| **BibTeX** | LaTeX, Overleaf, JabRef | Academic writing |
| **CSV** | Excel, Google Sheets | Data analysis |
| **MEDLINE** | PubMed native format | Archiving |
| **JSON** | Programmatic access | Custom processing |

### Exported Fields
- **Core**: PMID, Title, Authors, Journal, Year, Volume, Issue, Pages
- **Identifiers**: DOI, PMC ID, ISSN
- **Content**: Abstract (HTML tags cleaned)
- **Metadata**: Language, Publication Type, Keywords
- **Access**: DOI URL, PMC URL, Full-text availability

### Special Character Handling
- BibTeX exports use **pylatexenc** for proper LaTeX encoding
- Nordic characters (รธ, รฆ, รฅ), umlauts (รผ, รถ, รค), and accents are correctly converted
- Example: `Sรธren Hansen` โ†’ `S{\o}ren Hansen`



---

## ๐Ÿ“„ License

Apache License 2.0 - see [LICENSE](LICENSE)

---

## ๏ฟฝ๐Ÿ”— Links

- [GitHub Repository](https://github.com/u9401066/pubmed-search-mcp)
- [PyPI Package](https://pypi.org/project/pubmed-search/)
- [NCBI Entrez Programming Utilities](https://www.ncbi.nlm.nih.gov/books/NBK25497/)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pubmed_search_mcp-0.2.2.tar.gz (207.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pubmed_search_mcp-0.2.2-py3-none-any.whl (241.7 kB view details)

Uploaded Python 3

File details

Details for the file pubmed_search_mcp-0.2.2.tar.gz.

File metadata

  • Download URL: pubmed_search_mcp-0.2.2.tar.gz
  • Upload date:
  • Size: 207.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pubmed_search_mcp-0.2.2.tar.gz
Algorithm Hash digest
SHA256 30447ad7c5459f5b8d123a3d54237342f146362ad7202f8083ff6c3430c84960
MD5 4149f0d8300b78978e9fd60abad7eb1c
BLAKE2b-256 c7bb92a8724162ddb38a4d53763f420c50c7af2c70c533919280bdf78d8f8633

See more details on using hashes here.

Provenance

The following attestation bundles were made for pubmed_search_mcp-0.2.2.tar.gz:

Publisher: publish.yml on u9401066/pubmed-search-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pubmed_search_mcp-0.2.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pubmed_search_mcp-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d42c4d81724d9cee549945a8e8567b934ea82d788a077e1fe69b4f04d0a7295
MD5 62ff6ce1143058e91ef741115aea795a
BLAKE2b-256 4934496e2e3221a84815b5002351164ef084c5ea64642617e955d8bac918e93f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pubmed_search_mcp-0.2.2-py3-none-any.whl:

Publisher: publish.yml on u9401066/pubmed-search-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page