drug-pipeline-mcp
Searches PubMed for scientific publications related to drugs and clinical trials, returning results with PMID links.
๐ drug-pipeline-mcp
Pharmaceutical R&D Pipeline Intelligence for AI Agents โ a lightweight MCP server that aggregates clinical trial data, FDA/EMA approvals, safety surveillance (FAERS), drug labels, patents, drug interactions, recalls, and publications through a unified API. Every output includes a verifiable source identifier (NCT ID, FDA Application Number, or PMID).
Not a replacement for IQVIA/EvaluatePharma. A real-time, publicly accessible intelligence layer that complements subscription databases.
Quick Start
pip install git+https://github.com/DasClown/drug-pipeline-mcp.git
# Start MCP server (stdio)
drug-pipeline
# Or HTTP mode for remote access
pip install drug-pipeline-mcp[http]
drug-pipeline --http --port 8081Or deploy via Smithery โ one click, no config.
Related MCP server: BioLab MCP Server
Tools (28)
Tool | What it does | Data Source |
| Search clinical trials by condition, phase, status, sponsor | ClinicalTrials.gov |
| Full protocol for a specific NCT (eligibility, outcomes, locations) | ClinicalTrials.gov |
| Trial outcomes โ endpoints, adverse events, participant flow | ClinicalTrials.gov |
| Trial site locations โ facilities, countries, geo distribution | ClinicalTrials.gov |
| Drug info: active ingredients, strength, ATC classification, NDC | openFDA + RxNorm |
| FDA approval history with submission dates and status | openFDA Drugs@FDA |
| EU/EMA authorization โ brand names, ATC, status, orphan/biosimilar flags | EMA Daily XLSX |
| FAERS adverse event reports โ top reactions, serious outcomes, total count | openFDA FAERS |
| Disproportionality screening (exploratory) โ AE reporting ratios | openFDA FAERS |
| FDA prescribing info โ indications, boxed warnings, contraindications, dosing | openFDA Drug Labeling |
| NIH drug label (OTC + Rx) โ SPL set ID, version, DailyMed URL | DailyMed (NIH/NLM) |
| FDA drug recalls โ Class I/II/III, reasons, dates, firms | openFDA Enforcement |
| Patent & exclusivity โ approval dates, market exclusivity estimates | openFDA |
| Drug-drug interactions โ FDA label + FAERS co-reported drugs | openFDA Labeling + FAERS |
| US drug product ID โ NDC codes, manufacturers, strength, form | openFDA NDC Directory |
| Drug-target MOA โ mechanisms, targets, clinical stage, drug type | Open Targets (EMBL-EBI) |
| US FDA Orphan Drug Designations โ indication, status, exclusivity | MyChem.info |
| Find drugs by indication โ which are EU-approved for a condition | EMA Daily XLSX |
| EU orphan drug designations โ filter by therapeutic area | EMA Daily XLSX |
| EU biosimilars โ filter by condition / therapeutic area | EMA Daily XLSX |
| LOE timing โ biosimilar competition by active substance | EMA + FDA |
| Company R&D โ trials grouped by phase + EU approval enrichment | ClinicalTrials.gov + EMA |
| PubMed search for drug/trial publications | PubMed / NCBI |
| KOL / PI search โ investigators by condition or drug | ClinicalTrials.gov + PubMed |
| Combination therapy detection โ co-administered drugs in trials | ClinicalTrials.gov |
| Head-to-head โ FDA, EU, MOA, safety, patent across 2 drugs | Composite |
| Composite โ drug info + FDA + EU + safety + label + signals + recalls + interactions + trials + pubs + patent | All sources |
| Full pipeline for a condition โ approved + Phase 3/2/1 + mechanisms + sponsors + pubs | Composite |
โ ๏ธ
detect_safety_signals: Exploratory disproportionality screening โ uses an approximate denominator, not a validated PRR. Not for regulatory or clinical use. See methodology note in code.
Architecture
drug-pipeline-mcp/
โโโ drug_pipeline/
โ โโโ __init__.py # Version
โ โโโ server.py # MCP server (28 tools)
โ โโโ sources.py # Data source fetchers (API aggregation layer)
โโโ drug_pipeline_cli.py # CLI entry point
โโโ tests/ # 61 unit tests (pytest)
โโโ pyproject.toml
โโโ README.mdDesign philosophy: Lightweight API aggregation. No caching layer. No ML models. No predictions. Each tool makes real-time requests to a public API and returns structured data with source identifiers. The server is intentionally simple โ it extracts, structures, and annotates, nothing more.
Limitations by design:
Rate limits apply per source (openFDA: 10 req/sec, ClinicalTrials.gov: generous)
EMA data sourced from a daily-updated XLSX register โ format changes monitored manually
FAERS data is spontaneous reporting, not incidence rates
The server does not interpret, predict, or synthesize beyond what the sources provide
Data Sources
Source | Data | Access |
ClinicalTrials.gov | 500K+ studies, phases, status, eligibility, results, site locations | โ Always free |
openFDA NDC Directory | Drug product ID, NDC codes, manufacturers | โ Always free |
openFDA FAERS | Adverse event reports, reactions, serious outcomes | โ Always free |
openFDA Drug Labeling | Prescribing info, interactions, contraindications | โ Always free |
openFDA Drugs@FDA | Approval history, submissions, orphan designations | โ Always free |
openFDA Enforcement | Recalls, market withdrawals, safety alerts | โ Always free |
RxNorm / RxNav | Drug identifiers, RxCUI, ATC classification | โ Always free |
PubMed / NCBI | Scientific publications, abstracts, PMIDs | โ Always free |
EMA Medicines Register | EU authorization status, ATC, orphan/biosimilar flags | โ Always free |
Open Targets (EMBL-EBI) | Drug-target mechanisms of action, clinical development stage | โ Always free |
DailyMed (NIH/NLM) | Drug labels (OTC + Rx), structured product labeling | โ Always free |
MyChem.info | US FDA Orphan Drug Designations | โ Always free |
All sources are publicly funded and freely accessible. No API keys, subscriptions, or licensing required.
Verifiable Outputs
Every data point includes a direct link to its primary source:
Output Field | Example Source URL |
NCT ID |
|
FDA Application Number |
|
PMID |
|
FDA Product NDC |
|
DailyMed SPL Set ID |
|
No calculated fields. No predictions. No estimates. The tool is an aggregator, not an oracle โ it brings primary-source data into an AI agent's context so the LLM can apply reasoning, not so the server can produce answers.
Testing & Quality
Check | Status |
Unit tests | โ 61 passing (pytest) |
CI/CD | โ Multi-Python matrix (3.10โ3.13), Docker build, PyPI publish |
Linting | โ Ruff (zero warnings) |
Formatting | โ Black-compatible |
Code coverage | Tracked in CI |
Regulatory Intelligence
Beyond drug-level approvals, this project provides multi-jurisdiction regulatory framework intelligence for pipeline analysis. See docs/local-regulation-2026.md for a comprehensive reference covering 7 jurisdictions:
๐บ๐ธ US IRA โ Medicare Part D price negotiation (Sep 2026), Small Molecule Penalty (7 yr vs 13 yr)
๐ฉ๐ช Germany AMNOG โ Benefit assessment, 2026 reform with fixed effect-size thresholds
๐ซ๐ท France HAS/CEPS โ SMR/ASMR ratings, 400โ600 day access timelines
๐ฎ๐น Italy AIFA โ 21 regional formularies, payback mechanisms
๐ฌ๐ง UK MHRA/NICE โ Post-Brexit ILAP pathway, ยฃ/QALY thresholds
๐ฏ๐ต Japan PMDA/NHI โ Sakigake designation, biennial price revision
๐จ๐ณ China NMPA/NRDL โ Annual โ61% price negotiation
Example Agent Queries
"What's in the pipeline for GLP-1 agonists?" โ
drug_pipeline(drug_name="semaglutide")โ ATC class, FDA status, clinical trials, publications
"Which companies have Phase 3 trials for non-small cell lung cancer?" โ
search_trials(condition="non-small cell lung cancer", phase="PHASE3", status="RECRUITING")
"Is pembrolizumab approved in the EU vs US?" โ
get_approvals(drug_name="Keytruda")+get_eu_approvals(drug_name="Keytruda")
"What are the safety signals for semaglutide?" โ
get_safety_data(drug_name="semaglutide")+detect_safety_signals(drug_name="semaglutide")
"What does the label say for Keytruda?" โ
get_drug_label(drug_name="Keytruda")โ indications, boxed warnings, contraindications, dosing
"When does the patent for Keytruda expire?" โ
get_patent_expiry(drug_name="Keytruda")โ exclusivity information
"What drugs are approved for non-small cell lung cancer in the EU?" โ
approved_for_condition(condition="non-small cell lung cancer")
Client Integration
Claude Desktop
{
"mcpServers": {
"drug-pipeline": {
"command": "python3",
"args": ["-m", "drug_pipeline.server"]
}
}
}Cursor / VS Code
{
"mcpServers": {
"drug-pipeline": {
"command": "uvx",
"args": ["drug-pipeline-mcp"]
}
}
}HTTP / SSE (Remote)
pip install drug-pipeline-mcp[http]
drug-pipeline --http --port 8081Connect at http://your-server:8081/sse.
Smithery
One-click deploy. No config needed.
๐ค Getting Help & Contributing
Channel | Purpose |
Questions before coding, feature ideas, community chat | |
Bug reports, confirmed feature requests | |
Development setup, code style, testing |
New contributors welcome. See CONTRIBUTING.md for setup instructions.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Pharma Intel MCP โ Compound tools that chain ClinicalTrials.gov,
Biotech intelligence for AI agents: drugs, targets, diagnostics, PoS estimates, and writeups.
Biotech News MCP โ aggregated biotech & pharma industry news: FDA approvals, clinical readoutsโฆ
Regulatory Catalysts MCP โ high-value biotech regulatory calendar events (keyless).
Related MCP Servers
- AlicenseAqualityNot gradedmaintenanceSupplement safety MCP server for AI agents. FDA FAERS signals, CYP450 pathways, 584 compound aliases. Works with Claude Desktop, LangChain, CrewAI.51-
- AlicenseNot gradedqualityCmaintenanceUnified MCP server providing AI-agent-ready access to AlphaFold, PubMed, ChEMBL, Ensembl, and 37+ scientific databases.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for clinical and pharmaceutical data, enabling search of ClinicalTrials.gov, PubMed, FDA, and ICH guidelines without API keys.19 npmMIT
- AlicenseAqualityCmaintenanceAn MCP server that enables AI assistants to query U.S. FDA public datasets, including drug adverse events, labeling, recalls, approvals, shortages, NDC directory, and medical device regulatory information.10MIT