@pipeworx/ema-medicines
Connect: https://gateway.pipeworx.io/ema-medicines/mcp · Install: one-click buttons
Tools: 8
European Medicines Agency medicines register — every medicine authorised for the EU market through the centralised procedure, plus the committee opinions still awaiting a European Commission decision — and the EMA’s herbal-medicine inventory: plant/botanical substances the Committee on Herbal Medicinal Products (HMPC) has assessed, with links to each herb’s EU herbal monograph and assessment-report PDFs.
Tools
ema_recent_approvals(from?, to?, month?, category?, limit?)— new EU marketing authorisations in a date window. Answers “which drugs did the EMA approve in July 2026”.ema_chmp_opinions(opinion_status?, since?, category?, include_decided?, limit?)— medicines the CHMP (human) or CVMP (veterinary) has recommended for or against approval and the Commission has not yet decided. Answers “what did the CHMP recommend this month”.ema_medicine_search(query, status?, category?, orphan_only?, limit?)— search by brand name, INN / active substance, therapeutic area, indication text, ATC code or authorisation holder.ema_medicine(name)— the full published record for one medicine, by brand name or EMA product number.ema_recent_updates(since?, status?, category?, limit?)— register entries that changed most recently, including withdrawals and suspensions.herb_search(name?, latin?, botanical?, therapeutic_area?, status?, limit?)— search the EMA herbal-medicines inventory (plant/herb substances) by common name, Latin/botanical name, therapeutic area, or HMPC assessment status. Answers “which herbs has the EMA assessed for sleep disorders”, “is there an EU herbal monograph for chamomile”.herb(latin_name?, common_name?)— the full inventory record for one herb, plusmonograph_urlandassessment_report_urlscraped (link extraction only) from the herb’s EMA page. Answers “what is the EMA monograph link for valerian root”.herb_monograph_status(latin)— HMPC assessment status, code/label, and the outcome of the European assessment for one herb by Latin name; explains why well-established-use vs traditional-use is NOT a field the register carries (see below).
Auth
Keyless.
Data sources
- https://www.ema.europa.eu/en/documents/report/medicines-output-medicines-report_en.xlsx — the whole register as one XLSX, regenerated daily around 18:00 CET. Listed at https://www.ema.europa.eu/en/medicines/download-medicine-data alongside ten sibling reports (orphan designations, shortages, referrals, post-authorisation, DHPC, herbal, PSUSA, paediatric plans, MRLs).
- https://www.ema.europa.eu/en/documents/report/medicines-output-herbal_medicines-report_en.xlsx — the herbal-medicines inventory, same file family, regenerated daily. 251 data rows collapse to 204 distinct herbs (a handful of rows repeat identically 2-4x in the sheet;
herb_search/herbdedup on the per-herb page URL). Each row carries a per-herb page URL (https://www.ema.europa.eu/en/medicines/herbal/<latin-name-slug>) whose “Documents” section links the monograph and assessment-report PDFs thatherbscrapes.
Things worth knowing before you touch this
- Sheet layout is not row 1. Sheet
Medicine: row 1 is a provenance banner, rows 2–8 are blank, row 9 is the header (39 columns), rows 10+ are records. The header row uses inline strings, not shared strings — a parser that only resolves shared strings reads the header as blank. - Self-closing cells are a trap.
<c r="E10" s="1"/>is an empty cell. A greedy attribute match in the cell regex swallows the/and runs on to the next cell’s</c>, silently shifting every value in the row by one column.src/xlsx.tsuses a lazy match for exactly this reason. - Use
Marketing authorisation datefor “new approvals”, notEuropean Commission decision date. The Commission decision date also moves on post-authorisation variations — 80–141 rows a month — while genuine initial authorisations run 4–12 a month. Filtering on the wrong one answers a different question without looking wrong. - The committees meet monthly, so “what did the CHMP recommend this month” lands on an empty window most of the time. When
sincefilters everything out,ema_chmp_opinionsreturns the outstanding opinions and states inwindow_notethat none were adopted in the window asked for — the question is about the pipeline, not the calendar. Opinion statusalone does not mean “pending”. Authorised and withdrawn products keep their historical opinion fields. Pending meansMedicine statusstarts withOpinion;ema_chmp_opinionsapplies that by default and exposesinclude_decidedto widen it.- EMA rate-limits bursts and answers a 429 with ~40 KB of HTML rather than JSON — reproduced at five sequential requests. A per-call download is not viable, so the pack holds one parsed copy for six hours and the Cloudflare edge cache absorbs repeats on top of that. If a refresh fails while an earlier copy is in hand, the earlier copy is served rather than an error.
- Dates are
DD/MM/YYYYupstream and are converted to ISO on the way out. data.europa.euis not a route to this data. The EMA datasets are still listed there but frozen atmodified: 2019-01-09, and every distribution URL 404s against the pre-redesign/sites/default/files/Medicines_output_*.xlsxpath.- The register covers the EU centralised procedure only — nationally authorised products are not in it.
Herbal tools — things worth knowing
- Same sheet layout, different columns. Row 1 banner, row 9 is the header, rows 10+ records. Columns: Latin name, Combination, English common name, Botanical name, Therapeutic area, Status, Outcome of European assessment, Additional information, three date columns, and
Herbal medicine URL(the per-herb page). - The sheet repeats some herbs’ rows identically. Fragariae folium appears 4 times with byte-identical values across every column;
loadHerbal()dedups on the per-herb page URL (204 distinct herbs from 251 data rows, verified 2026-09-07). - The per-herb page URL slug is the LATIN name, not the common name (
valerianae-radix, notvalerian-root) — a couple of herbs get a-0suffix (taraxaci-officinalis-radix-0) for reasons EMA doesn’t document. herbscrapes links, not prose. A herb’s EMA page lists every revision’s documents as plain relativehrefs under/en/documents/<category>/<filename>_en.pdf. The path category tells you the document type (herbal-monograph= the monograph,herbal-report= the assessment report — the only two categoriesherbreads); the filename prefix tells you its currency (final-beatsdraft-beats anything startingsuperseded).herbpicks the best-ranked link per category. It does not read the page’s prose sections — the FAQ-style “well-established use” / “traditional use” explainer text lives there but scraping it is out of scope for this pack.- The register does not carry a well-established-use vs traditional-use field, at all. Checked every distinct value of
Outcome of European assessmentacross the full 2026-09-07 sheet:European Union herbal monograph,European Union herbal monograph;European Union list entry,European Union list entry,Public statement— none of the four say which use category applies. That classification is set per-indication inside the monograph document itself (Article 10a “well-established use” vs Article 16a “traditional use”), and a single herb can carry both for different indications — valerian root’s monograph, for instance, is well-established use for mild nervous tension and sleep, and traditional use for mild mental stress.herb_monograph_statusreturnsuse_classification: nullwith a note explaining this, rather than guessing from prose. - A herb without a finalised assessment can still have a final monograph. Assessment
status(F/P/C/D/R) tracks the periodic-review cycle, not first publication —Taraxaci officinalis radixcarriesR: Rapporteur assigned(an ongoing review) but its page already has afinal-monograph and assessment report from years earlier. Rank on the filename prefix, never on the register’sstatusfield. - An early-stage herb may have no assessment report yet.
Cannabis flos(D: Draft under discussion) has only adraft-public-statement-*.pdfunderherbal-monographand nothing at all underherbal-report—herbreturnsassessment_report_url: nullrather than erroring.
Tools
- ema_recent_approvals — New medicines authorised for the European Union market by the European Medicines Agency, in a date window. Returns brand name, active substance / INN, therapeutic area and indication, marketing-author
- ema_chmp_opinions — Medicines the EMA committees (CHMP for human medicines, CVMP for veterinary) have recommended for or against EU approval, still awaiting the European Commission decision. Returns brand name, active su
- ema_medicine_search — Search the European Medicines Agency register of centrally authorised medicines by brand name, active substance or INN, therapeutic area, indication text, ATC code, or marketing-authorisation holder.
- ema_medicine — Full European Medicines Agency record for one medicine, looked up by brand name or EMA product number (EMEA/H/C/…). Returns every published field: status, authorised indication, active substance, AT
- ema_recent_updates — Medicines whose European Medicines Agency register entry changed most recently — new authorisations, status changes to withdrawn or suspended, refreshed product information. Returns the medicine, what
- herb_search — Search the European Medicines Agency (EMA) herbal medicines inventory — the plant/botanical substances the EMA Committee on Herbal Medicinal Products (HMPC) has assessed or is assessing for use in her
- herb — Full European Medicines Agency (EMA) herbal-inventory record for one plant/herb, looked up by Latin name or English common name, plus the direct links to its EU herbal monograph PDF and assessment-rep
- herb_monograph_status — The European Medicines Agency (EMA) herbal-monograph assessment status for one herb by Latin name — the HMPC assessment status code and label (e.g. finalised, ongoing call for scientific data), the ou
Tools
-
ema_chmp_opinions— Medicines the EMA committees (CHMP for human medicines, CVMP for veterinary) have recommended for or against EU approval, still awaiting the European Commission decision. Returns brand name, active su -
ema_medicine— Full European Medicines Agency record for one medicine, looked up by brand name or EMA product number (EMEA/H/C/...). Returns every published field: status, authorised indication, active substance, AT -
ema_medicine_search— Search the European Medicines Agency register of centrally authorised medicines by brand name, active substance or INN, therapeutic area, indication text, ATC code, or marketing-authorisation holder. -
ema_recent_approvals— New medicines authorised for the European Union market by the European Medicines Agency, in a date window. Returns brand name, active substance / INN, therapeutic area and indication, marketing-author -
ema_recent_updates— Medicines whose European Medicines Agency register entry changed most recently — new authorisations, status changes to withdrawn or suspended, refreshed product information. Returns the medicine, what -
herb— Full European Medicines Agency (EMA) herbal-inventory record for one plant/herb, looked up by Latin name or English common name, plus the direct links to its EU herbal monograph PDF and assessment-rep -
herb_monograph_status— The European Medicines Agency (EMA) herbal-monograph assessment status for one herb by Latin name — the HMPC assessment status code and label (e.g. finalised, ongoing call for scientific data), the ou -
herb_search— Search the European Medicines Agency (EMA) herbal medicines inventory — the plant/botanical substances the EMA Committee on Herbal Medicinal Products (HMPC) has assessed or is assessing for use in her