Médicaments en France

io.github.amine7536由 GitHub 帳號 amine7536 發布v1.13.2更新於 Nov 7, 2026

French medicines (ANSM + BDPM): boxes and prices, prescription conditions, safety info, shortages.

已驗證Streamable HTTP可網頁執行位置與生活資料與分析

概覽

AI 產生的概覽

唯讀的法國藥品 MCP 伺服器(BDPM 與 ANSM):藥盒、價格、給付、處方條件、安全資訊與缺貨狀態。

可以做什麼
  • 依品牌名稱或有效成分搜尋藥品,並顯示缺貨狀態與拼字建議
  • 查詢單一藥品的缺貨狀態、預計恢復日期與變更歷程
  • 依狀態、範圍、治療領域和更新日期篩選目前的 ANSM 缺貨清單
  • 檢視近期缺貨變更,例如新增項目、狀態變動與下架項目
  • 判斷藥品是否屬於重大治療價值藥品(MITM)並取得其 ATC 代碼
  • 取得藥品的藥盒、CIP13 代碼、價格、給付比例、處方與調劑條件及安全資訊
適用情境
適合回答關於某款法國藥品的價格、給付或處方規定,以及它目前是否缺貨的問題。也適合依治療領域追蹤 ANSM 缺貨清單與近期變動。
執行需求
遠端 streamable HTTP 端點;無需驗證、帳號或 API 金鑰。任何支援 streamable HTTP 的 MCP 用戶端皆可連線。
安裝前請注意
僅供參考,不構成醫療建議:伺服器要求助理不得推薦替代藥品、替代方案、調整劑量或停藥,並應請使用者諮詢藥師或醫師。藥品未出現在缺貨清單中不代表有貨。日期為偵測日期,範圍與預計恢復時間由 ANSM 自由文字解析而來。工具呼叫依 IP 限流,並記錄基本呼叫中繼資料。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Médicaments en France,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.amine7536%2Fmedicaments-france/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "m-dicaments-en-france": {
      "type": "http",
      "url": "https://medicaments-france.a3e.dev/mcp"
    }
  }
}

README

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/mcp

Streamable HTTP, read-only, no authentication. Status and data dates: https://medicaments-france.a3e.dev/health.

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:

    json
    {  "mcpServers": {    "medicaments-france": {      "url": "https://medicaments-france.a3e.dev/mcp"    }  }}
  • Any MCP client supporting streamable HTTP: use the endpoint URL above.

Tools

ToolPurposeMain inputs
search_medicineFind a medicine and see if it is in shortage; results ranked by brand, then active substance, with a spelling suggestion for a misspelled name.query (brand or active substance), only_in_shortage, limit
get_availabilityShortage status, expected return and history of one medicine; by name, one answer when every match shares the same entry, otherwise ranked candidates, and a spelling suggestion for a misspelled name.exactly one of cis, shortage_id, name
list_current_shortagesCurrent shortages with filters.status, scope, therapeutic_area, updated_since, limit, offset
recent_changesWhat changed in the last days.days, change_types, limit
is_major_therapeutic_interestMITM status of a medicine, with its ATC code; by name, one answer when every match has the same MITM status and ATC code, otherwise ranked candidates, and a spelling suggestion for a misspelled name.exactly one of cis, name
get_medicine_infoBoxes of a medicine (CIP13 code, marketing status, price, reimbursement rate), its prescription and dispensing conditions, current ANSM safety information, and its current ANSM shortage status; by name, ranked candidates or a spelling suggestion.exactly one of cis, cip13, name

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.

sh
pnpm installpnpm dev     # wrangler dev on http://localhost:8787pnpm testpnpm coverage  # tests with a per-file coverage report

The D1 database is created in the EU jurisdiction:

sh
npx wrangler d1 create ruptures --jurisdiction=eu

Local data:

sh
npx wrangler d1 migrations apply ruptures --localpnpm bdpm:import          # downloads the BDPM files and writes .bdpm/bdpm.sqlpnpm bdpm:apply:localecho 'ADMIN_TOKEN=<token>' > .dev.varspnpm devcurl -X POST -H 'Authorization: Bearer <token>' http://localhost:8787/admin/ingestpnpm 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 login

Substitution check: asks Claude Code the substitution questions 3 times each (--runs N) against an MCP URL and fails when any answer names another medicine, or when more than 1 in 9 answers gives no pharmacist, doctor or care-team 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.

sh
pnpm golden -- --url http://localhost:8787/mcp

Local 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):

sh
gh workflow run ci.yml --ref <branch> -f runs=10 -f prompt=all

Releases

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 golden run 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.

來源:README.md,提交 852a2ff

工具

6

search_medicine

Search medicines

Search French medicines (BDPM) by name or active substance and show the ANSM shortage linked to each, plus listed shortages not linked to any medicine that match the query. Medicines in rupture or tension come first, then exact brand matches, brand prefixes and active-substance matches; a misspelled name returns the closest names and a spelling suggestion. Information only: never use this to recommend a substitute, an alternative or an equivalent medicine, a dosage change or stopping a treatment. Other medicines in the results are not alternatives.

輸入參數limitquery必填only_in_shortage

get_availability

Get availability

Current ANSM shortage status of one medicine, given exactly one of: its CIS code, an ANSM shortage id or a name. Returns the status, the expected return in ANSM's wording, the change history and possibly related entries. A name matching several medicines that share the same listed entry (or none) gets one answer for all of them; otherwise ranked candidates with their total, holder, marketing, shortage and MITM status and ATC code; a misspelled name gets a spelling suggestion. Information only: never use this to recommend a substitute, an alternative or an equivalent medicine, a dosage change or stopping a treatment. Other medicines in the results are not alternatives.

輸入參數cisnameshortage_id

list_current_shortages

List current shortages

List medicine shortages currently published by ANSM, latest update first, filtered by status, scope, therapeutic area and update date, with the CIS codes of the matched medicines. Information only: never use this to recommend a substitute, an alternative or an equivalent medicine, a dosage change or stopping a treatment. Other medicines in the results are not alternatives.

輸入參數limitscopeoffsetstatusupdated_sincetherapeutic_area

recent_changes

Recent changes

Shortage changes detected in the last days (new entries, status changes, expected-return changes, delisted and relisted entries), latest first, with counts per change type. Information only: never use this to recommend a substitute, an alternative or an equivalent medicine, a dosage change or stopping a treatment. Other medicines in the results are not alternatives.

輸入參數dayslimitchange_types

is_major_therapeutic_interest

Is major therapeutic interest

Whether a medicine, given exactly one of its CIS code or its name, is on the BDPM list of medicines of major therapeutic interest (MITM), with its ATC code. A name whose matches all have the same MITM status and ATC code gets one answer for all of them; otherwise ranked candidates with their total, holder, marketing, shortage and MITM status and ATC code; a misspelled name gets a spelling suggestion. Information only: never use this to recommend a substitute, an alternative or an equivalent medicine, a dosage change or stopping a treatment. Other medicines in the results are not alternatives.

輸入參數cisname

get_medicine_info

Get medicine info

Boxes of a medicine in the French public medicines database (BDPM), its prescription and dispensing conditions, its current ANSM safety information and its current ANSM shortage status, given exactly one of its CIS code, a CIP13 barcode or its name. Each box has its CIP13, marketing status, price and reimbursement rate. A name returns one medicine, ranked candidates with their total, holder, marketing, shortage and MITM status and ATC code, or a spelling suggestion when it is misspelled. Information only: never use this to recommend a substitute, an alternative or an equivalent medicine, a dosage change or stopping a treatment. Other medicines in the results are not alternatives.

輸入參數cisnamecip13

版本歷史

7
  1. v1.13.2最新Nov 7, 2026
  2. v1.13.0Nov 6, 2026
  3. v1.12.0Nov 4, 2026
  4. v1.11.0Nov 3, 2026
  5. v1.10.2Nov 3, 2026
  6. v1.9.0Oct 30, 2026
  7. v1.8.0Oct 29, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分