Install
$ agentstack add mcp-dasclown-drug-pipeline-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
💊 drug-pipeline-mcp
[](https://github.com/DasClown/drug-pipeline-mcp/actions/workflows/ci.yml) [](https://github.com/DasClown/drug-pipeline-mcp/actions/workflows/ci.yml) [](https://ghcr.io/dasclown/drug-pipeline-mcp) [](https://smithery.ai/servers/crop-mcp/drug-pipeline) [](https://www.python.org/downloads/) [](LICENSE) [](https://pypi.org/project/drug-pipeline-mcp/) [](https://github.com/DasClown/drug-pipeline-mcp/stargazers)
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 8081
Or deploy via Smithery — one click, no config.
Tools (28)
| Tool | What it does | Data Source | |------|-------------|-------------| | search_trials | Search clinical trials by condition, phase, status, sponsor | ClinicalTrials.gov | | get_trial_detail | Full protocol for a specific NCT (eligibility, outcomes, locations) | ClinicalTrials.gov | | get_trial_results | Trial outcomes — endpoints, adverse events, participant flow | ClinicalTrials.gov | | get_trial_sites | Trial site locations — facilities, countries, geo distribution | ClinicalTrials.gov | | lookup_drug | Drug info: active ingredients, strength, ATC classification, NDC | openFDA + RxNorm | | get_approvals | FDA approval history with submission dates and status | openFDA Drugs@FDA | | get_eu_approvals | EU/EMA authorization — brand names, ATC, status, orphan/biosimilar flags | EMA Daily XLSX | | get_safety_data | FAERS adverse event reports — top reactions, serious outcomes, total count | openFDA FAERS | | detect_safety_signals | Disproportionality screening (exploratory) — AE reporting ratios | openFDA FAERS | | get_drug_label | FDA prescribing info — indications, boxed warnings, contraindications, dosing | openFDA Drug Labeling | | get_dailymed_label | NIH drug label (OTC + Rx) — SPL set ID, version, DailyMed URL | DailyMed (NIH/NLM) | | get_recalls | FDA drug recalls — Class I/II/III, reasons, dates, firms | openFDA Enforcement | | get_patent_expiry | Patent & exclusivity — approval dates, market exclusivity estimates | openFDA | | get_drug_interactions | Drug-drug interactions — FDA label + FAERS co-reported drugs | openFDA Labeling + FAERS | | get_drug_pricing | US drug product ID — NDC codes, manufacturers, strength, form | openFDA NDC Directory | | get_opentargets_drug | Drug-target MOA — mechanisms, targets, clinical stage, drug type | Open Targets (EMBL-EBI) | | get_us_orphan_designations | US FDA Orphan Drug Designations — indication, status, exclusivity | MyChem.info | | approved_for_condition | Find drugs by indication — which are EU-approved for a condition | EMA Daily XLSX | | list_orphan_drugs | EU orphan drug designations — filter by therapeutic area | EMA Daily XLSX | | list_biosimilars | EU biosimilars — filter by condition / therapeutic area | EMA Daily XLSX | | list_loss_of_exclusivity | LOE timing — biosimilar competition by active substance | EMA + FDA | | company_pipeline | Company R&D — trials grouped by phase + EU approval enrichment | ClinicalTrials.gov + EMA | | search_publications | PubMed search for drug/trial publications | PubMed / NCBI | | find_investigators | KOL / PI search — investigators by condition or drug | ClinicalTrials.gov + PubMed | | detect_combination_therapies | Combination therapy detection — co-administered drugs in trials | ClinicalTrials.gov | | compare_drugs | Head-to-head — FDA, EU, MOA, safety, patent across 2 drugs | Composite | | drug_pipeline | Composite — drug info + FDA + EU + safety + label + signals + recalls + interactions + trials + pubs + patent | All sources | | pipeline_landscape | 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.md
Design 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 | https://clinicaltrials.gov/study/NCT03178617 | | FDA Application Number | https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=NDA125456 | | PMID | https://pubmed.ncbi.nlm.nih.gov/37272535/ | | FDA Product NDC | https://www.accessdata.fda.gov/scripts/cder/ndc/ | | DailyMed SPL Set ID | https://dailymed.nlm.nih.gov/dailymed/drugInfo.cfm?setid=xxx |
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](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 8081
Connect at http://your-server:8081/sse.
Smithery
One-click deploy. No config needed.
🤝 Getting Help & Contributing
| Channel | Purpose | |---------|---------| | 💬 GitHub Discussions | Questions before coding, feature ideas, community chat | | 🐛 GitHub Issues | Bug reports, confirmed feature requests | | [📖 CONTRIBUTING.md](CONTRIBUTING.md) | Development setup, code style, testing |
New contributors welcome. See [CONTRIBUTING.md](CONTRIBUTING.md) for setup instructions.
License
MIT
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: DasClown
- Source: DasClown/drug-pipeline-mcp
- License: MIT
- Homepage: https://crop-mcp.nousresearch.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.