Provides search capabilities for PubMed's database, enabling retrieval of academic article metadata including titles, authors, publication dates, DOIs, and journal information through the NCBI E-Utilities API.
PubMed MCP
PubMed MCP exposes the PubMed E-Utilities search workflow over HTTP so it can be consumed by clients that implement the Model Context Protocol (MCP) or any other REST-capable integration. It provides a single endpoint for querying PubMed and returns curated article metadata in a consistent JSON shape.
Features
๐ Search PubMed with a single HTTP request.
๐ Retrieves article summaries (title, journal, publication date, authors, DOI, and canonical URL).
๐ ๏ธ Configurable via environment variables, including an optional NCBI API key for higher rate limits.
๐งช Tested with mocked responses to ensure resilient parsing of PubMed responses.
Getting started
1. Install dependencies
Create and activate a Python 3.10+ environment, then install the dependencies:
2. (Optional) Configure an API key
Set PUBMED_API_KEY
or NCBI_API_KEY
with your NCBI E-Utilities API key to unlock higher throughput.
3. Launch the HTTP server
Run the FastAPI app with Uvicorn:
You can now query the service:
4. Run the test suite
API
GET /health
โ Returns{ "status": "ok" }
for readiness checks.GET /articles/search
โ Required query parameterq
; optionallimit
(default10
, max50
). Returns a JSON payload containing the original query, the applied limit, and a list of article summaries.
Development notes
The
PubMedClient
handles eSearch and eSummary requests and merges them into a list ofArticleSummary
dataclasses.The FastAPI app caches a single client instance and gracefully closes it during shutdown.
Tests use
respx
to simulate PubMed responses, keeping the suite fast and deterministic.
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables searching and retrieving academic article metadata from PubMed through a simple HTTP interface. Provides curated article summaries including titles, authors, publication dates, and DOIs for research and academic content discovery.