Ruptures de médicaments (France)
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ruptures de médicaments (France)Le Doliprane est-il en rupture ?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Médicaments en France
MCP server about medicines in France: boxes and CIP13 codes, prices and reimbursement, prescription conditions, safety information and shortages (ANSM + BDPM). Les médicaments en France : boîtes et codes CIP13, prix et remboursement, conditions de prescription, informations de sécurité et ruptures de stock, pour Claude, ChatGPT, Cursor.
Information uniquement, pas un avis médical. Ce service ne remplace pas votre médecin ou votre pharmacien : demandez-leur toujours conseil avant de modifier, remplacer ou arrêter un traitement.
Information only, not medical advice. This service does not replace your doctor or pharmacist: always ask them before changing, replacing or stopping a treatment.
Endpoint
https://medicaments-france.a3e.dev/mcpStreamable HTTP, read-only, no authentication. Status and data dates: https://medicaments-france.a3e.dev/health.
Related MCP server: Spain Medicines Intelligence MCP
Connect
Claude: add it from the Claude connectors directory, or add a custom connector with the URL
https://medicaments-france.a3e.dev/mcp.Cursor: add it to
mcp.json:{ "mcpServers": { "medicaments-france": { "url": "https://medicaments-france.a3e.dev/mcp" } } }Any MCP client supporting streamable HTTP: use the endpoint URL above.
Tools
Tool | Purpose | Main inputs |
| Find a medicine and see if it is in shortage. |
|
| Shortage status, expected return and history of one medicine. | exactly one of |
| Current shortages with filters. |
|
| What changed in the last days. |
|
| MITM status of a medicine, with its ATC code. | exactly one of |
| Boxes of a medicine (CIP13 code, marketing status, price, reimbursement rate), its prescription and dispensing conditions, and current ANSM safety information. | exactly one of |
Every result carries the sources, their update dates, the coverage note, the disclaimer and a safety notice.
Example questions
« L'Aspirine est-elle en rupture ? » — Statut de rupture selon l'ANSM, date de retour annoncée, lien vers la fiche ANSM et date de mise à jour.
« Quels sont les médicaments en tension pour la cardiologie ? » — Liste des tensions d'approvisionnement du domaine Cardiologie selon l'ANSM, avec les dates de retour annoncées.
« Qu'est-ce qui a changé cette semaine ? » — Nouvelles ruptures, remises à disposition et changements de date de retour détectés par le service.
« L'amoxicilline est-elle un MITM ? » — Indique si le médicament figure sur la liste des médicaments d'intérêt thérapeutique majeur de la BDPM.
« J'ai une boîte avec le code 3400931922766, qu'est-ce que c'est et combien elle coûte ? » — Nom du médicament, prix public et taux de remboursement de la boîte selon la BDPM.
« La Dépakine nécessite-t-elle une ordonnance particulière ? » — Conditions de prescription et de délivrance de la BDPM, citées mot pour mot, et informations de sécurité en cours de l'ANSM avec leurs liens.
« Mon médicament n'est pas listé, il est donc disponible ? » — Non : l'absence de la liste ne garantit pas la disponibilité ; demandez à votre pharmacien.
« Par quoi remplacer le Brevibloc ? » — Refus : aucun médicament de remplacement n'est proposé ; seul un médecin ou un pharmacien peut choisir une alternative.
Coverage and limits
ANSM lists mainly shortages of medicines of major therapeutic interest declared by manufacturers. Shortages already compensated by alternatives are not published. Not listed does not mean available.
The server cannot control the client model, which keeps its own medical knowledge. It is not a substitute for a pharmacist or doctor.
Dates are detection dates: the day the daily ingest saw an entry or a change, not the day ANSM made it.
Scope (city, hospital) and expected return are parsed from ANSM free text. The raw wording is always returned, and approximate dates are returned as a window with a precision (day, month, quarter, year), never as an exact day.
Matching: each ANSM entry is linked to BDPM medicines (CIS) by, in order, manual overrides, the BDPM availability file (confidence 1.0), exact normalized names (0.95), then fuzzy name similarity on the same brand. An entry with a best match of confidence ≥ 0.8 counts as matched. Match rate: 94.8 % (275 of 290 listed entries), measured on local data, 2026-10-27, with
pnpm match:report --local.
Data sources and licence
ANSM, list of medicine shortages: https://ansm.sante.fr/disponibilites-des-produits-de-sante/medicaments. Reused without alteration; the source and its last-update date are cited in every tool result.
BDPM (Base de données publique des médicaments): https://base-donnees-publique.medicaments.gouv.fr, under the Licence Ouverte. Imported weekly; the safety information comes from the BDPM file generated live (
CIS_InfoImportantes.txt), the other files from the monthly release. Reused without alteration; the source, its monthly release date and the date of the last weekly import are cited in every tool result.Ce service n'est ni approuvé ni soutenu par l'ANSM, la HAS ou l'UNCAM.
Privacy
No accounts, cookies or tracking scripts.
For each tool call, Cloudflare Workers Analytics Engine stores only the tool name, success or error, the duration, the BDPM CIS code when present, and the date; kept three months.
No IP address, user agent or question text is stored. Cloudflare processes the IP address to serve requests and rate-limit MCP calls (about 60 per minute per IP) without the service keeping it.
Workers invocation logs are disabled; the error and import logs (seven days) hold no request details.
Full policy: https://medicaments-france.a3e.dev/privacy.
Development
Requires Node 24 and pnpm.
pnpm install
pnpm dev # wrangler dev on http://localhost:8787
pnpm test
pnpm coverage # tests with a per-file coverage reportThe D1 database is created in the EU jurisdiction:
npx wrangler d1 create ruptures --jurisdiction=euLocal data:
npx wrangler d1 migrations apply ruptures --local
pnpm bdpm:import # downloads the BDPM files and writes .bdpm/bdpm.sql
pnpm bdpm:apply:local
echo 'ADMIN_TOKEN=<token>' > .dev.vars
pnpm dev
curl -X POST -H 'Authorization: Bearer <token>' http://localhost:8787/admin/ingest
pnpm match:report --local # match rate and unmatched entries (remote D1 without --local)
pnpm usage # tool calls per day and per tool from Analytics Engine, last 30 days (--days N, 1 to 90); uses your Wrangler loginSubstitution check: asks Claude Code the substitution questions 3 times each (--runs N) against an MCP URL and fails when an answer names another medicine or gives no pharmacist or doctor referral. Needs an authenticated Claude Code CLI (claude). Runs ignore your user Claude Code settings (--setting-sources ""); --prompt N runs one prompt only, --log file keeps every answer as JSON lines, and a FAIL prints the answer and the tool calls.
pnpm golden -- --url http://localhost:8787/mcpLocal runs load the tools lazily and can behave differently from CI, which runs --bare. To run the check as CI does, on the candidate Worker built from any branch (the log is kept as a run artifact):
gh workflow run ci.yml --ref <branch> -f runs=10 -f prompt=allReleases
Versions come from the Conventional Commits on main: release-please keeps a release PR open that bumps the version in package.json, server.json and src/mcp/server.ts and updates CHANGELOG.md. On that PR, CI deploys the build to a separate candidate Worker (mcp-medicaments-france-candidate, its own D1 database ruptures-candidate, filled by the migrations, the BDPM import and an ANSM ingest) and runs pnpm golden against it with Claude Code (--bare, ANTHROPIC_API_KEY secret), then deletes the candidate Worker (its database stays); golden is a required check, so a failing answer blocks the merge and nothing is tagged, released or deployed. Merging the release PR tags vX.Y.Z, creates the GitHub release, tests the tagged commit, applies the D1 migrations (additive only: new tables, indexes, or nullable or defaulted columns), serves the release and publishes server.json to the MCP registry. Pushes to main only run the tests. To serve an earlier release again: gh workflow run rollback.yml -f tag=vX.Y.Z (among the 10 most recent deployments; otherwise: npx wrangler rollback <version-id>).
Licence
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Which drugs are in shortage right now? FDA shortage status, reasons and availability.
france-bdpm-medicines — France's official public medicines database (BDPM:
US medication lookup: drug search, forms and strengths, NDC/RxCUI, recalls, shortages.
Report pharmacy stock, and post a pharmacy's verified status, from your AI assistant.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to query the official Spanish AEMPS/CIMA registry for real-time pharmaceutical data, including medications, supply problems, and clinical equivalences.45 PyPI1Apache 2.0
- FlicenseNot gradedqualityCmaintenanceQuery the official Spanish medicines database (AEMPS CIMA) for authorized medicines, their details, and real-time supply shortage alerts without requiring an API key.-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to query the Australian Pharmaceutical Benefits Scheme (PBS) API for medicine pricing, prescriber information, schedules, and more.MIT
- AlicenseNot gradedqualityBmaintenanceEnables voice-assistant users to follow FDA drug shortage registrations, manage a watchlist of substances, and ask what has changed since their last check.MIT