PubCrawl
Provides tools for searching PubMed, retrieving abstracts and full text, finding related articles, generating formatted citations, and discovering trending papers, with filters for date, article type, and journal impact.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PubCrawlSearch PubMed for recent clinical trials on semaglutide"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
An MCP server that gives AI assistants access to PubMed, Europe PMC, FDA & UK drug labelling, and ClinicalTrials.gov.
A peer-reviewed pub crawl through the literature — the label — and the trial.
Quick start · Tools · Examples · Architecture · Roadmap · Contributing
✨ What is PubCrawl?
PubCrawl connects your AI assistant (Claude Desktop, Cursor, or any MCP-compatible client) directly to the primary sources clinicians and researchers actually use — so you can ask a question in plain English and get an answer grounded in PubMed, Europe PMC, FDA/UK drug labelling, and ClinicalTrials.gov, with real PMIDs, NCT IDs, and DOIs you can verify.
Every tool is a thin, deterministic wrapper over an official API. Nothing is invented; every result cites its source.
🔬 14 tools across literature, drug labelling, and clinical trials
🧾 Verifiable by design — results link back to DailyMed, the eMC, PubMed, and ClinicalTrials.gov
🌍 US and UK labelling — a side-by-side
compare_labelsno other MCP server offers📰 Preprints via Europe PMC — surface work ahead of formal publication
🆓 No API keys required (an optional free NCBI key raises PubMed rate limits)
🧪 Fully typed, tested, and CI-checked
Built by PharmaTools.AI.
Related MCP server: NCBI Literature Search MCP Server
🚀 Quick start (60 seconds)
1. Add PubCrawl to your client config — no install step needed, npx fetches it on first run.
For Claude Desktop, edit claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pubcrawl": {
"command": "npx",
"args": ["-y", "@pharmatools/pubcrawl"]
}
}
}2. Restart your client. PubCrawl appears under + → Connectors.
3. Ask away:
"Compare the US and UK labelling for atorvastatin, and find recent Phase 3 trials for it."
That's it. → More examples · API key & other options
🧰 Tools
📚 Literature
Tool | What it does |
| Search PubMed with filters for date range, article type, and sort order. Returns PMIDs, titles, authors, journals, and DOIs. |
| Search Europe PMC — a broader corpus than PubMed that also indexes preprints (bioRxiv, medRxiv) and patents. Each result includes an abstract snippet, citation count, open-access status, and a preprint flag. Filter to preprints or open-access only. |
| Get the full structured abstract for an article — broken into labeled sections (background, methods, results, conclusions) with keywords and MeSH terms. |
| Retrieve the full text of open-access articles from PubMed Central, with parsed sections, figure/table captions, and reference counts. |
| Find similar articles using PubMed's neighbor algorithm, ranked by relevance score. |
| Generate a formatted citation in APA, Vancouver, Harvard, or BibTeX style. |
| Find recent papers on a topic, with optional filtering to high-impact journals (Nature, Science, Cell, NEJM, Lancet, JAMA, etc.). |
💊 Drug labelling
Tool | What it does |
| Convert a brand drug name to its generic (or a generic to its US brand names), with drug class and common indications. Deterministic, via RxNorm/openFDA — no AI. |
| Pull US Prescribing Information sections via openFDA (cited to DailyMed) — indications, dosing, warnings, contraindications, and more. |
| Retrieve UK Summary of Product Characteristics from the eMC — the UK equivalent of US prescribing information, with numbered SmPC sections. |
| Side-by-side comparison of US (USPI) and UK (SmPC) labelling for the same drug. Spot regulatory differences in indications, warnings, and dosing. |
| Find drugs approved for a medical condition. Searches FDA labelling via openFDA, then cross-references UK availability on the eMC. |
🧫 Clinical trials
Tool | What it does |
| Search ClinicalTrials.gov for clinical trials. Filter by condition, intervention, recruitment status, and phase. Returns NCT IDs, sponsors, enrollment, and links. |
| Get full details for a clinical trial by NCT ID — eligibility criteria, study design, arms, primary/secondary outcomes, locations, and associated PubMed IDs. |
💬 Examples
Once connected, just ask naturally:
Literature
"Search PubMed for recent clinical trials on semaglutide."
"Search Europe PMC for preprints on GLP-1 receptor agonists, most cited first."
"Get the abstract for PMID 38127654, then find related papers and cite them all in Vancouver style."
"What are the trending papers on CRISPR gene therapy this month, high-impact journals only?"
"Pull the full text of that PMC article and summarise the methods section."
Drug labelling
"Get the FDA prescribing information for metformin — just the indications and warnings."
"Pull the UK SmPC for atorvastatin."
"Compare US and UK labelling for lisinopril and highlight the differences."
"What's the generic name and drug class for Ozempic?"
"What drugs are approved for type 2 diabetes in both the US and UK?"
Clinical trials
"Find recruiting Phase 3 trials for pembrolizumab in breast cancer."
"Get the eligibility criteria and primary outcomes for NCT03086486."
Cross-source (where PubCrawl shines)
"For semaglutide: summarise the US label's cardiovascular indication, then find the pivotal trial and its NEJM publication."
🏗 Architecture
Three layers — tools register the MCP interface, lib clients talk to each external API, and shared cache + parsers keep it fast and consistent.
flowchart LR
Client["🖥 MCP client<br/>Claude Desktop · Cursor · …"]
subgraph Server["PubCrawl MCP server"]
direction TB
Transport["stdio · Streamable HTTP"]
Tools["14 tools — src/tools/*"]
Shared["LRU cache · XML/JATS/SPL parser"]
Transport --> Tools --> Shared
end
Client -->|MCP| Transport
Tools --> NCBI["NCBI E-utilities"]
Tools --> EPMC["Europe PMC REST"]
Tools --> FDA["openFDA + DailyMed"]
Tools --> EMC["UK eMC"]
Tools --> CT["ClinicalTrials.gov v2"]
NCBI --> S1[("PubMed / PMC")]
EPMC --> S2[("Preprints · patents")]
FDA --> S3[("US labels")]
EMC --> S4[("UK labels")]
CT --> S5[("Trials")]Each tool file exports a register*Tool(server) function with a zod schema and an async handler. All network calls are rate-limited, cached, and time-bounded. See CLAUDE.md for a full architecture walkthrough and CONTRIBUTING.md to add a tool.
🔧 Configuration
Install options
# Zero-install (recommended): npx fetches it on demand — see Quick start above.
# Or install globally:
npm install -g @pharmatools/pubcrawl
# Config for a global install:
# { "mcpServers": { "pubcrawl": { "command": "pubcrawl" } } }NCBI API key (optional)
Without a key, PubMed requests are limited to 3/second. A free key raises this to 10/second.
Create a free NCBI account at https://www.ncbi.nlm.nih.gov/account/
Account Settings → API Key Management → create a key
Add it to your config:
{
"mcpServers": {
"pubcrawl": {
"command": "npx",
"args": ["-y", "@pharmatools/pubcrawl"],
"env": { "NCBI_API_KEY": "your_key_here" }
}
}
}HTTP transport
PubCrawl also ships a stateless Streamable HTTP transport for browser-based and hosted clients:
npm run start:http # serves POST /mcp and GET /health on PORT (default 3000)🗺 Roadmap
Highlights of what's planned — see ROADMAP.md for the full list.
get_europepmc_fulltext— read preprints & OA articles surfaced bysearch_europepmcget_adverse_events— openFDA FAERS adverse-event lookupsEMA / EPAR labelling to complement the US + UK
compare_labelsMeSH query helper for sharper PubMed searches
MCP resources & prompts for common review workflows
Ideas welcome — open an issue.
🛠 Development
git clone https://github.com/nickjlamb/pubcrawl.git
cd pubcrawl
npm install
npm run dev # TypeScript watch mode
npm run build # compile to dist/
npm start # run the stdio server
npm test # Vitest unit suite
npm run lint # ESLintUnit tests live in tests/ and cover the parsing, caching, citation, and formatting logic with fixture payloads (no network calls). CI runs lint → test → build on every push and pull request. New to the codebase? Start with CONTRIBUTING.md.
📦 Releases & changelog
Versions follow Semantic Versioning. See the CHANGELOG for a full history and Releases for notes and assets.
🤝 Contributing
Contributions are welcome and appreciated — bug reports, new data sources, new tools. Read the contributing guide to get started, then open an issue or a pull request.
📄 License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables comprehensive biomedical literature research through PubMed database access with advanced search, full-text retrieval, citation analysis, and batch processing capabilities. Supports both local deployment and cloud hosting for seamless integration with AI assistants.1MIT
- Flicense-qualityDmaintenanceProvides seamless access to over 35 million PubMed scientific articles through natural language queries for research discovery and analysis. It enables tools for advanced searches, retrieving article details, and exploring related research within the life sciences and biomedical fields.12
- AlicenseCqualityCmaintenanceA PubMed MCP server that enables LLMs to search, retrieve details, and download full-text articles from PubMed, with support for batch queries, cross-referencing, and EndNote export.13405Apache 2.0
- AlicenseAqualityCmaintenanceProvides structured PubMed literature data for LLM agents, supporting search, caching, and open-access full-text downloads via the MCP protocol.54011Apache 2.0
Related MCP Connectors
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
Drug-drug interaction checker for clinical LLMs using RxNorm and DailyMed.
Search arXiv/Semantic Scholar/OpenAlex + medical evidence (PubMed/Europe PMC) + LaTeX/PDF tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nickjlamb/pubcrawl'
If you have feedback or need assistance with the MCP directory API, please join our Discord server