# Ema Medicines (npm · @pipeworx/mcp-ema-medicines)

EMA Medicines MCP — the European Medicines Agency's public medicines register.

- Trust score: 83/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `gateway.pipeworx.io`: 70/100, [markdown](https://verifymcp.io/servers/pipeworx-io-ema-medicines/ema-medicines-mcp.md), [page](https://verifymcp.io/servers/pipeworx-io-ema-medicines/ema-medicines-mcp)
- npm · `@pipeworx/mcp-ema-medicines`: 83/100 (this document), [markdown](https://verifymcp.io/servers/pipeworx-io-ema-medicines/pipeworx-mcp-ema-medicines.md), [page](https://verifymcp.io/servers/pipeworx-io-ema-medicines/pipeworx-mcp-ema-medicines)

## Channel facts

- Registry: `npm`
- Package: `@pipeworx/mcp-ema-medicines`
- Version: `0.3.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - No production dependencies, so there is no dependency health to assess.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to pipeworx-io/mcp-ema-medicines).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 4 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3044 tokens (~202/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Ema Medicines MCP server?

Ema Medicines runs locally as an npm package, launched with npx -y @pipeworx/mcp-ema-medicines. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add pipeworx-io-ema-medicines -- npx -y @pipeworx/mcp-ema-medicines
```

### Cursor

```json
{
  "mcpServers": {
    "pipeworx-io-ema-medicines": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-ema-medicines"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "pipeworx-io-ema-medicines": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-ema-medicines"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add pipeworx-io-ema-medicines -- npx -y @pipeworx/mcp-ema-medicines
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "pipeworx-io-ema-medicines": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@pipeworx/mcp-ema-medicines"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add pipeworx-io-ema-medicines --command npx --arg -y --arg @pipeworx/mcp-ema-medicines
```

### Hermes

```yaml
mcp_servers:
  pipeworx-io-ema-medicines:
    command: "npx"
    args: ["-y", "@pipeworx/mcp-ema-medicines"]
```

### Netclaw

```json
{
  "McpServers": {
    "pipeworx-io-ema-medicines": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@pipeworx/mcp-ema-medicines"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add pipeworx-io-ema-medicines -t stdio -c npx -a -y @pipeworx/mcp-ema-medicines
```

### Other

```json
{
  "mcpServers": {
    "pipeworx-io-ema-medicines": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/mcp-ema-medicines"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-01 (score 81, +1)

- [security regression] Tool safety: pass → unverified
- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Capabilities: pass → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Stability: unverified → 0.10
- [functional] First check of Schema quality: unverified
- [functional] Package version: 0.3.0 → 0.3.1

### 2026-10-30 (score 80, 0)

- [functional regression] Security disclosure: unverified → fail

### 2026-10-29 (score 80)

First indexed and scored.

## MCP tools (15)

### `ema_recent_approvals` (~208 tokens)

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-authorisation holder, authorisation date and EPAR link. Answers "which drugs did the EMA approve in July 2026", "recent EU drug approvals", "new EU marketing authorisations this year". Filtered on the marketing-authorisation date, which is the date an initial authorisation was granted.

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `from` (string): Earliest authorisation date. YYYY-MM-DD, YYYY-MM or YYYY.
- `limit` (number): Max records, default 50, max 200.
- `month` (string): Convenience for a single month, YYYY-MM (e.g. 2026-07). Overrides from/to.
- `to` (string): Latest authorisation date. YYYY-MM-DD, YYYY-MM or YYYY.

### `ema_chmp_opinions` (~197 tokens)

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 substance, applicant, opinion status and the date the opinion was adopted. Answers "which new medicines did the CHMP recommend for approval", "what is in the EMA pipeline awaiting a Commission decision", "recent negative CHMP opinions".

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `include_decided` (boolean): Also return opinions on medicines the European Commission has already decided. Default false, which returns only opinions still awaiting a decision.
- `limit` (number): Max records, default 50, max 200.
- `opinion_status` (string): positive | negative | any. Default positive.
- `since` (string): Earliest opinion-adopted date. YYYY-MM-DD, YYYY-MM or YYYY.

### `ema_medicine_search` (~196 tokens)

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. Returns matching medicines with status, indication, holder, authorisation dates and EPAR link. Answers "is drug X authorised in the EU", "which EU medicines contain semaglutide", "what has AstraZeneca had authorised by the EMA", "EU authorised orphan medicines for cystic fibrosis".

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `limit` (number): Max records, default 25, max 200.
- `orphan_only` (boolean): Only medicines designated orphan.
- `query` (string, required): Free text: brand name, substance, company, indication or ATC code.
- `status` (string): Filter on medicine status, e.g. Authorised, Withdrawn, Refused, Opinion.

### `ema_medicine` (~125 tokens)

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, ATC code, holder, orphan / conditional / accelerated / PRIME flags, and the full date history from evaluation start through authorisation, suspension or withdrawal. Answers "what is the EU authorised indication for X", "when was X approved in Europe", "who holds the EU marketing authorisation for X".

Input parameters:

- `name` (string, required): Brand name, INN, or EMA product number.

### `ema_recent_updates` (~150 tokens)

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 its status is now, and when the entry was last updated. Answers "what changed at the EMA this week", "which EU medicines were recently withdrawn or suspended".

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `limit` (number): Max records, default 25, max 200.
- `since` (string): Earliest last-updated date. YYYY-MM-DD, YYYY-MM or YYYY.
- `status` (string): Filter on medicine status, e.g. Withdrawn, Suspended, Authorised.

### `herb_search` (~295 tokens)

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 herbal medicinal products across the EU. Search by common herb name, Latin/botanical name, therapeutic area, or assessment status. Returns each herb's status (e.g. assessment finalised, ongoing) and whether an EU herbal monograph or list entry exists. Answers "which herbs has the EMA assessed for anxiety", "is there an EU herbal monograph for chamomile", "EMA herbal inventory status for ginkgo".

Input parameters:

- `botanical` (string): Botanical (scientific) species name filter (e.g. "Valeriana officinalis").
- `latin` (string): Latin name filter (e.g. "Valerianae radix").
- `limit` (number): Max records, default 25, max 100.
- `name` (string): Free text: common name, Latin name, or botanical name (e.g. "valerian", "chamomile", "Valeriana officinalis").
- `status` (string): Assessment-status filter: a code (F, P, C, D, R) or text fragment, e.g. "finalised".
- `therapeutic_area` (string): Therapeutic area filter, e.g. "anxiety", "sleep disorders", "gastrointestinal".

### `herb` (~155 tokens)

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-report PDF scraped from the herb's EMA page. Returns botanical name(s), therapeutic areas, assessment status, outcome, and dates. Answers "what is the EMA monograph link for valerian root", "get the EU assessment report for ginkgo leaf", "EMA record for Hamamelis virginiana".

Input parameters:

- `common_name` (string): English common name, e.g. "Valerian Root". Use if latin_name is not known.
- `latin_name` (string): Latin name, e.g. "Valerianae radix".

### `herb_monograph_status` (~128 tokens)

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 outcome of the European assessment (EU herbal monograph and/or EU list entry), and a note on well-established-use vs traditional-use classification. Answers "is the EMA valerian monograph well-established use or traditional use", "what is the assessment status of the EU chamomile monograph".

Input parameters:

- `latin` (string, required): Latin name, e.g. "Valerianae radix".

### `ema_shortages` (~198 tokens)

European Medicines Agency register of reported and ongoing medicine shortages in the EU. Returns the medicine, INN/active substance, shortage status (ongoing/resolved/discontinued), pharmaceutical forms and strengths affected, whether alternatives are available, start-of-shortage date and expected resolution. The EU counterpart of the FDA drug shortages database. Answers "which EU medicines are currently in shortage", "is there a shortage of X in Europe", "when will the semaglutide shortage resolve in the EU".

Input parameters:

- `limit` (number): Max records, default 50, max 200.
- `query` (string): Free text: medicine name, INN/active substance, or therapeutic area.
- `since` (string): Earliest start-of-shortage date. YYYY-MM-DD, YYYY-MM or YYYY.
- `status` (string): Filter on shortage status, e.g. "ongoing", "resolved", "discontinued". Substring match.

### `ema_dhpc` (~225 tokens)

Direct Healthcare Professional Communications (DHPCs) — urgent EU-wide safety communications the European Medicines Agency and national authorities send to doctors and pharmacists about a medicine, e.g. a new contraindication, adverse-event signal, quality defect or shortage. Returns the medicine, active substance(s), DHPC type, regulatory outcome, dissemination date and the DHPC document URL. Answers "what safety communications has the EMA issued about X", "recent EU direct healthcare professional communications", "has there been a DHPC for semaglutide".

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `dhpc_type` (string): Filter on DHPC type, e.g. "adverse event", "quality defect", "medicine shortage", "safety signal". Substring match.
- `limit` (number): Max records, default 50, max 200.
- `query` (string): Free text: medicine name, active substance, or referral name.
- `since` (string): Earliest dissemination date. YYYY-MM-DD, YYYY-MM or YYYY.

### `ema_referrals` (~270 tokens)

European Medicines Agency referral procedures — EU-wide reviews of a medicine or class of medicines triggered by a safety concern, quality issue or scientific disagreement between member states (Article 31, Article 20, Article 107i and related procedures). Returns the referral name, INN, current status, whether it is a safety referral, procedure type, key milestone dates (procedure start, PRAC recommendation, CHMP/CVMP opinion, European Commission decision) and the referral URL. Answers "what EU safety referrals are open for X", "why was drug X reviewed by the EMA", "recent Article 31 referrals", "EU referral outcome for valproate".

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `limit` (number): Max records, default 50, max 200.
- `query` (string): Free text: referral name, INN/active substance, or associated medicine name.
- `safety_only` (boolean): Only referrals flagged as safety referrals. Default false (all referral types).
- `since` (string): Earliest procedure-start date. YYYY-MM-DD, YYYY-MM or YYYY.
- `status` (string): Filter on current status, e.g. "under evaluation", "procedure started", "European Commission final decision". Substring match.

### `ema_psusa` (~215 tokens)

European Medicines Agency Periodic Safety Update Report Single Assessments (PSUSA) — the EU-wide pharmacovigilance procedure where all products containing a given active substance are jointly reassessed for safety on a fixed schedule. Returns the active substance, related medicine names, procedure number, regulatory outcome (e.g. "Maintenance", "Variation", "Suspension") and dates. The closest structured EU signal to a pharmacovigilance safety review. Answers "when was the last PSUSA outcome for X", "has ibuprofen had a periodic safety update review", "recent EU pharmacovigilance outcomes".

Input parameters:

- `limit` (number): Max records, default 50, max 200.
- `outcome` (string): Filter on regulatory outcome, e.g. "Maintenance", "Variation", "Suspension", "Withdrawal". Substring match.
- `query` (string): Free text: active substance or related medicine name.
- `since` (string): Earliest first-published date. YYYY-MM-DD, YYYY-MM or YYYY.

### `ema_orphan_designations` (~215 tokens)

European Medicines Agency orphan medicinal product designations — active substances designated by the EU as treatments for rare diseases, which carry incentives like protocol assistance and market exclusivity. Returns the active substance, medicine name (once assigned), intended therapeutic use, EU designation number, designation status (Positive, Withdrawn, Expired, Negative) and dates. Catalyst-relevant for biotech: a positive designation often precedes a clinical or regulatory catalyst by months to years. Answers "what orphan designations has the EMA granted for rare disease X", "is drug X an EU-designated orphan medicine", "recent EU orphan designations".

Input parameters:

- `limit` (number): Max records, default 50, max 200.
- `query` (string): Free text: active substance, medicine name, or intended-use text.
- `since` (string): Earliest date of designation/refusal. YYYY-MM-DD, YYYY-MM or YYYY.
- `status` (string): Filter on designation status: Positive, Withdrawn, Expired, or Negative.

### `ema_pip` (~207 tokens)

European Medicines Agency Paediatric Investigation Plans (PIPs) — the agreed or waived plan for studying a medicine in children, required for most new EU marketing-authorisation applications. Returns the active substance, invented name (if assigned), therapeutic area, condition/indication under study, decision type (agreement, modification, waiver, compliance check) and decision date. Answers "what paediatric studies has the EMA required for X", "is there an EU paediatric investigation plan for drug X", "recent EMA paediatric decision for asthma".

Input parameters:

- `decision_type` (string): Filter on decision type text, e.g. "waiver", "agreeing on", "compliance". Substring match.
- `limit` (number): Max records, default 50, max 200.
- `query` (string): Free text: active substance, invented name, or condition/indication text.
- `since` (string): Earliest decision date. YYYY-MM-DD, YYYY-MM or YYYY.

### `ema_post_authorisation` (~203 tokens)

European Medicines Agency post-authorisation procedures — variations, label changes and other post-marketing procedure activity for centrally authorised medicines, distinct from the initial approval. Returns the medicine, active substance, procedure status, opinion status and date, and (for withdrawn applications) the withdrawal date. Answers "what post-authorisation variations has drug X had", "has the EMA changed the label for X recently", "which EU medicines had a post-authorisation opinion this month".

Input parameters:

- `category` (string): human | veterinary. Omit for both.
- `limit` (number): Max records, default 50, max 200.
- `query` (string): Free text: medicine name, active substance, or INN.
- `since` (string): Earliest post-authorisation opinion date. YYYY-MM-DD, YYYY-MM or YYYY.
- `status` (string): Filter on post-authorisation procedure status, e.g. "Opinion", "Application withdrawn". Substring match.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/pipeworx-io-ema-medicines/pipeworx-mcp-ema-medicines#diagnostics

## Score history

- 2026-11-05: 83
- 2026-11-04: 82
- 2026-11-03: 82
- 2026-11-02: 81
- 2026-11-01: 81
- 2026-10-31: 80
- 2026-10-30: 80
- 2026-10-29: 80

## Common questions

### What is the Ema Medicines MCP server?

Ema Medicines is an MCP server listed in the public MCP registry as io.github.pipeworx-io/ema-medicines. EMA Medicines MCP, the European Medicines Agency's public medicines register. This page covers its npm package (@pipeworx/mcp-ema-medicines).

### Is the Ema Medicines MCP server safe to use?

Ema Medicines scores 83 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Ema Medicines MCP server expose?

Ema Medicines exposes 15 tools: ema_recent_approvals, ema_chmp_opinions, ema_medicine_search, ema_medicine, ema_recent_updates, and 10 more. Their descriptions and schemas cost roughly 2,987 tokens of context every time the server is loaded.

### Is the Ema Medicines MCP server still maintained?

Ema Medicines is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Ema Medicines MCP server under?

Ema Medicines declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/@pipeworx/mcp-ema-medicines
- Socket report: https://socket.dev/npm/package/@pipeworx/mcp-ema-medicines
- Repository: https://github.com/pipeworx-io/mcp-ema-medicines
- Website: https://pipeworx.io/packs/ema-medicines
- Changelog RSS feed: https://verifymcp.io/servers/pipeworx-io-ema-medicines/pipeworx-mcp-ema-medicines.xml
- Changelog JSON feed: https://verifymcp.io/servers/pipeworx-io-ema-medicines/pipeworx-mcp-ema-medicines.json
- HTML version of this page: https://verifymcp.io/servers/pipeworx-io-ema-medicines/pipeworx-mcp-ema-medicines
