@pipeworx/france-bdpm-medicines

Connect: https://pipeworx.io/mcp — every tool in the catalog, including @pipeworx/france-bdpm-medicines’s. Install: one-click buttons

Connect to just the @pipeworx/france-bdpm-medicines pack

https://gateway.pipeworx.io/france-bdpm-medicines/mcp — only @pipeworx/france-bdpm-medicines’s own tools, nothing else in the catalog.

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 3

France’s official public medicines database (BDPM — “Base de Donnees Publique des Medicaments”), published by ANSM/CNAM at base-donnees-publique.medicaments.gouv.fr: every authorized specialty (CIS), its CIP13 pack presentations with reimbursement rate and price, active-substance composition, HAS SMR/ASMR opinions (service medical rendu / amelioration du service medical rendu) and generic-group membership. Fleet #2933.

The site publishes no API — only bulk tab-separated TXT tables — so this pack mirrors the seven official tables into a Cloudflare D1 database, refreshed weekly. This is the French national list with reimbursement data, distinct from the EU-level eu-ctis / ema-medicines packs, which cover EU-centralized authorizations and clinical-trial information rather than France’s own AMM (autorisation de mise sur le marche) and Assurance Maladie reimbursement rates.

Tools

  • fr_medicine(cis?, name?) — one medicine by its CIS code or exact official denomination: marketing-authorization status, every CIP13 presentation (pack size, reimbursement rate, price before/after dispensing fee), active-substance composition, SMR/ASMR opinions, any “usage professionnel” restriction, and generic-group membership if it belongs to one. For a partial/fuzzy name, use fr_medicine_search first to find the CIS.
  • fr_medicine_search(name?, substance?, limit?) — search by the start of a medicine’s name and/or an active substance (prefix match only — “DOLIPRANE” finds “DOLIPRANE 1000 mg…” but not “CODOLIPRANE”). Pass both to intersect. Returns CIS, denomination, holder and marketing status per match.
  • fr_generic_group(group_id) — one generic group’s full membership (the reference/princeps specialty plus every generic and substitutable generic), from the group_id a fr_medicine response returns.

Every response carries data_as_of (the week the mirror was last refreshed), source and licence.

Reading reimbursement rate

taux_remboursement is per CIP13 presentation, not per CIS — different pack sizes of the same medicine can carry different rates, and a presentation that is marketed-but-not-reimbursed returns null. fr_medicine’s top-level reimbursement_rates is the distinct set across all of a medicine’s presentations, for a quick answer when they all agree.

Generic groups

type on a group member: 0 = princeps (reference specialty), 1 = generic, 2 = generic (range complement), 4 = substitutable generic (type_label spells these out). A meaningful fraction of CIS codes in the generic-group table (~23% measured 2026-10-11) reference specialties that have since been withdrawn and no longer appear in the medicines table — fr_generic_group still lists them (by CIS and type) with denomination: null rather than silently dropping them, since the group composition itself is still accurate.

Auth

Keyless. The tools answer only through the Pipeworx gateway — the data is read from a D1 database this pack does not fetch live, so a standalone npm install has no data to read, and every tool throws a clear “not bound in this runtime” error there instead of returning an empty list.

Data sources

  • https://base-donnees-publique.medicaments.gouv.fr/telechargement — the download page; the seven tables actually live under /download/file/<Table>.txt (the page’s own telechargement.php?fichier= URLs from older documentation now 404 — the site was rebuilt on the French government’s DSFR design system at some point before 2026-10-11). CIS_bdpm.txt, CIS_COMPO_bdpm.txt, CIS_GENER_bdpm.txt, CIS_HAS_SMR_bdpm.txt, CIS_HAS_ASMR_bdpm.txt, CIS_CPD_bdpm.txt and CIS_CIP_bdpm.txt, tab-separated, joined on CIS code.

Licence (quoted from licence_bdpm.pdf on the download page, “Licence Ouverte / Open Licence v1.0”, Etalab, October 2011): free to reproduce, copy, publish, transmit, redistribute, adapt, modify and exploit commercially, including combined with other data or embedded in a product, on condition of mentioning the source and the date of its last update — exactly the source + data_as_of every response here carries. Reciting it does not confer official status or imply ANSM/CNAM endorsement of this reuse.

Things the next person would otherwise rediscover the hard way:

  • The tables are NOT uniformly encoded, despite being documented as Latin-1. Verified 2026-10-11: CIS_CIP_bdpm.txt (the presentations table) is genuine UTF-8, while the other six tables are Windows-1252 (which carries smart-quote bytes like 0x92 that strict Latin-1 decodes as invisible control characters rather than raising). scripts/bdpm/build-sqlite.py detects each file’s real encoding by trying UTF-8 first and falling back to cp1252 on a decode error — decoding everything as Latin-1 silently produces comprimé(s)-style mojibake in the presentations table alone.
  • CIS_CPD_bdpm.txt (the “usage professionnel” flag) has far more rows (28,532) than there are medicines (15,883) because the same CIS can carry several restriction texts (dentistry, hospital-only, etc); fr_medicine returns the distinct set.
  • Store: Cloudflare D1 database pipeworx-bdpm, bound to the gateway as BDPM_DB (d1Binding in pack-manifest.json). Schema: scripts/bdpm/schema.sql. Refresh: scripts/bdpm/refresh.sh, run weekly by .github/workflows/bdpm-refresh.yml (never from a deploy — a load replaces the tables and the pack reads bdpm_meta.data_as_of, written last, so a half-loaded mirror answers nothing rather than a partial truth).

Tools

  • fr_medicine — One French medicine (BDPM) by CIS code or exact name: presentations, composition, SMR/ASMR, reimbursement.
  • fr_medicine_search — Search BDPM medicines by name prefix and/or active substance.
  • fr_generic_group — BDPM generic group membership (princeps + generics) by group id.

Tools

  • fr_generic_group — BDPM generic group membership (princeps + generics) by group id.
  • fr_medicine — One French medicine (BDPM) by CIS code or exact name: presentations, composition, SMR/ASMR, reimbursement.
  • fr_medicine_search — Search BDPM medicines by name prefix and/or active substance.

Regenerated from source · build October 11, 2026