@pipeworx/ema-medicines

Connect: https://gateway.pipeworx.io/ema-medicines/mcp · Install: one-click buttons

Tools: 5

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.

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.

Auth

Keyless.

Data sources

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.ts uses a lazy match for exactly this reason.
  • Use Marketing authorisation date for “new approvals”, not European 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.
  • Opinion status alone does not mean “pending”. Authorised and withdrawn products keep their historical opinion fields. Pending means Medicine status starts with Opinion; ema_chmp_opinions applies that by default and exposes include_decided to 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/YYYY upstream and are converted to ISO on the way out.
  • data.europa.eu is not a route to this data. The EMA datasets are still listed there but frozen at modified: 2019-01-09, and every distribution URL 404s against the pre-redesign /sites/default/files/Medicines_output_*.xlsx path.
  • The register covers the EU centralised procedure only — nationally authorised products are not in it.

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

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

Regenerated from source · build August 23, 2026