关于 Ema Medicines
Ema Medicines 是用于查询欧洲药品管理局(EMA)公开登记信息的 MCP 服务,涵盖欧盟集中授权药品、草药评估及相关报告,适用于药品研究与安全监测。
主要功能
- 01按名称或成分搜索药品
- 02获取药品完整记录
- 03跟踪批准与委员会意见
- 04搜索草药评估和专论
- 05查询短缺与安全通知
- 06浏览相关监管报告
适用场景
- 01查看近期欧盟上市许可
- 02按产品或成分查找 EMA 记录
- 03查找草药专论或评估报告
- 04了解药品短缺和安全通告
MCP 相关
向 MCP 客户端提供 EMA 药品登记、草药清单及相关报告查询工具。药品数据仅覆盖集中授权程序,不包括各国单独授权的产品。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/ema-medicines/mcpclaude mcp add --transport http pipeworx-io-ema-medicines https://gateway.pipeworx.io/ema-medicines/mcp{"mcpServers":{"pipeworx-io-ema-medicines":{"type":"http","url":"https://gateway.pipeworx.io/ema-medicines/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-ema-medicines":{"type":"http","url":"https://gateway.pipeworx.io/ema-medicines/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-ema-medicines":{"type":"http","url":"https://gateway.pipeworx.io/ema-medicines/mcp"}}}{"mcpServers":{"pipeworx-io-ema-medicines":{"serverUrl":"https://gateway.pipeworx.io/ema-medicines/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/ema-medicines
欧洲药品管理局(EMA)药品注册库——通过集中程序获准在欧盟市场销售的所有药品,以及仍在等待欧盟委员会决定的委员会意见;EMA 的草药药品名录(草药/植物物质,欧洲草药药品委员会(HMPC)已对其进行评估,并提供每种草药的欧盟草药专论和评估报告 PDF 链接);以及同一下载药品数据页面提供的 7 份相关 XLSX 报告:短缺、直接医疗专业人员沟通(DHPC)、转诊、定期安全性更新报告单一评估(PSUSA)、孤儿药认定、儿科研究计划和上市后程序。
这是 Pipeworx 的一部分——一个将 AI Agent 连接到 1878+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方没有关联,也未经其认可或发布。
工具
ema_recent_approvals(from?, to?, month?, category?, limit?)— 指定日期范围内新获欧盟上市许可的药品。可回答“EMA 在 2026 年 7 月批准了哪些药物”。ema_chmp_opinions(opinion_status?, since?, category?, include_decided?, limit?)— 人用药品委员会(CHMP)或兽用药品委员会(CVMP)建议批准或不批准、但欧盟委员会尚未作出决定的药品。可回答“CHMP 本月提出了什么建议”。ema_medicine_search(query, status?, category?, orphan_only?, limit?)— 按品牌名、INN/活性成分、治疗领域、适应症文本、ATC 编码或上市许可持有人搜索。ema_medicine(name)— 按品牌名或 EMA 产品编号查询一种药品的完整公开记录。ema_recent_updates(since?, status?, category?, limit?)— 最近发生变更的注册条目,包括撤销和暂停。herb_search(name?, latin?, botanical?, therapeutic_area?, status?, limit?)— 按通用名、拉丁名/植物学名称、治疗领域或 HMPC 评估状态搜索 EMA 草药药品名录(草药/植物物质)。可回答“EMA 评估过哪些用于睡眠障碍的草药”“洋甘菊是否有欧盟草药专论”。herb(latin_name?, common_name?)— 查询一种草药的完整名录记录,以及从该草药的 EMA 页面抓取的monograph_url和assessment_report_url(仅提取链接)。可回答“缬草根的 EMA 专论链接是什么”。herb_monograph_status(latin)— 按拉丁名查询一种草药的 HMPC 评估状态、代码/标签和欧洲评估结果;并说明为什么“确证疗效用药”与“传统用药”不是注册库所包含的字段(见下文)。ema_shortages(query?, status?, since?, limit?)— 欧盟药品短缺信息:状态(持续/已解决/已停止)、受影响的剂型/规格、替代药品的可用情况、短缺开始日期。相当于 FDA 短缺工具的欧盟版本。ema_dhpc(query?, dhpc_type?, since?, category?, limit?)— 直接医疗专业人员沟通:面向欧盟范围内处方人员的紧急安全警报(不良事件、质量缺陷、短缺、安全信号)。ema_referrals(query?, status?, safety_only?, category?, since?, limit?)— 欧盟转诊程序(第 31/20/107i 条及相关程序)——针对药品或物质类别开展的安全性和科学审查。ema_psusa(query?, outcome?, since?, limit?)— 定期安全性更新报告单一评估:针对每种活性成分开展的欧盟范围联合药物警戒审查。ema_orphan_designations(query?, status?, since?, limit?)— 用于治疗罕见病的欧盟孤儿药认定(阳性/已撤销/已过期/阴性)。ema_pip(query?, decision_type?, since?, limit?)— 儿科研究计划:商定或豁免的儿童药品研究计划。ema_post_authorisation(query?, status?, category?, since?, limit?)— 获集中程序授权的药品上市后变更和标签更新活动。
身份验证
无需密钥。
数据来源
- https://www.ema.europa.eu/en/documents/report/medicines-output-medicines-report_en.xlsx — 完整登记数据,汇总为一个 XLSX 文件,每天约在 18:00 CET 重新生成。该文件列于 https://www.ema.europa.eu/en/medicines/download-medicine-data,与另外十份同系列报告并列(孤儿药认定、短缺、转介、上市后、DHPC、草药、PSUSA、儿科计划、MRL)。
- https://www.ema.europa.eu/en/documents/report/medicines-output-herbal_medicines-report_en.xlsx — 草药库存清单,属于同一文件系列,每天重新生成。251 行数据去重后为 204 种草药(表格中少数行完全重复 2-4 次;
herb_search/herb根据每种草药的页面 URL 去重)。每行都包含一个草药页面 URL(https://www.ema.europa.eu/en/medicines/herbal/<latin-name-slug>),其“Documents”部分链接到herb抓取的专论和评估报告 PDF。 - 七份同系列报告,每天重新生成,列于同一下载页面:
medicines-output-shortages-report_en.xlsx(ema_shortages)medicines-output-dhpc-report_en.xlsx(ema_dhpc)medicines-output-referrals-report_en.xlsx(ema_referrals)medicines-output-periodic_safety_update_report_single_assessments-report_en.xlsx(ema_psusa) — 注意,文件名不是medicines-output-psusa-report_en.xlsx;猜用这个文件名会返回 404。medicines-output-orphan_designations-report_en.xlsx(ema_orphan_designations)medicines-output-paediatric_investigation_plans-report_en.xlsx(ema_pip)medicines-output-post_authorisation-report_en.xlsx(ema_post_authorisation)- 刻意未构建:
medicines-output-maximum_residue_limits-report_en.xlsx(兽药残留限量,不在此数据包的范围内)和medicines-output-opinions_outside_eu-report_en.xlsx(针对非欧盟产品的小众第 58 条科学意见)。
使用前值得了解的事项
- 表格布局并非从第 1 行开始。工作表
Medicine:第 1 行是来源横幅,第 2–8 行为空,第 9 行是表头(39 列),第 10 行起是记录。表头行使用内联字符串,而非共享字符串——只解析共享字符串的解析器会将表头读为空。 - 自闭合单元格是个陷阱。
<c r="E10" s="1"/>是空单元格。单元格正则表达式中的贪婪属性匹配会吞掉/,并继续匹配到下一个单元格的</c>,导致该行的每个值都无声地错移一列。src/xlsx.ts正是因此使用惰性匹配。 - **查询“新批准”时应使用
Marketing authorisation date,而不是European Commission decision date。**委员会决策日期也会因上市后变更而更新——每月有 80–141 条记录;真正的初始授权每月只有 4–12 条。用错日期筛选会回答另一个问题,却看不出有误。 - 各委员会每月召开一次会议,因此“CHMP 本月推荐了什么”大多数时候会落在空白时间窗口内。当
since筛选排除所有结果时,ema_chmp_opinions会返回尚未完成的意见,并在window_note中说明所询问的时间窗口内没有意见获采纳——这问的是待处理事项,而非日历安排。 - **仅凭
Opinion status并不表示“待处理”。**已授权和已撤回的产品会保留其历史意见字段。待处理意味着Medicine status以Opinion开头;ema_chmp_opinions默认会按此筛选,并提供include_decided以扩大范围。 - EMA 会对突发请求进行限流,并在收到 429 时返回约 40 KB 的 HTML,而非 JSON——连续发送五次请求即可复现。因此,每次调用都下载数据并不可行;该工具包会保留一份已解析的数据副本,缓存六小时,Cloudflare 边缘缓存也会进一步吸收重复请求。如果刷新失败且已有较早的副本,则会提供较早的副本,而不是返回错误。
- 上游日期格式为
DD/MM/YYYY,输出时会转换为 ISO 格式。 - **
data.europa.eu并非获取这些数据的途径。**EMA 数据集仍列在该网站上,但自modified: 2019-01-09起便未再更新;所有分发 URL 指向重新设计前的/sites/default/files/Medicines_output_*.xlsx路径,均会返回 404。 - 该登记册仅涵盖欧盟集中审批程序——不包含各国自行授权的产品。
7 份姊妹报告——值得了解的事项
- PSUSA 文件名与其工具/报告名称不匹配。 文件名是
medicines-output-periodic_safety_update_report_single_assessments-report_en.xlsx,而不是medicines-output-psusa-report_en.xlsx——后一种猜测会返回 404。我们通过获取en/medicines/download-medicine-data并检索实际的<a href>列表来核实,而不是根据其他报告的名称猜测命名模式。 post_authorisation的 URL 列是AA,与其余表头行的字母顺序不同(A, AA, B, C, ...Z)。通用加载器会读取工作表 XML 中每个表头单元格实际使用的列字母,因此不会造成问题——但如果你要手动编辑字段映射,切勿假设列顺序为 A..Z 并据此“修正”。orphan_designations完全没有Category列(该登记表仅涉及人用药品)——而dhpc、referrals和post_authorisation涉及人用药品和兽药,因此支持category筛选。- 这是 EMA 源数据中少见的异常,不是解析器缺陷: PSUSA 的导出数据偶尔会将一个包含逗号的活性成分字符串拆分到两个相邻的共享字符串单元格中,并夹杂一个多余的
"(约占行数的 0.2%;例如dienogest/ethinylestradiol (prolonged-release tablet)"被拆到两个独立单元格中)。这些行仍能解析,只是category/substances_in_scope的值会略显混乱。为少数几行添加特殊处理并不值得。 - 每份报告都有自己的
ReportSpec(URL、列标题 → 字段映射、日期字段),并传入一组通用的loadReport()/reportDataset()函数——与主登记表和草药库存一样,采用第 9 行为表头的解析方式,并使用每 6 小时下载一次的缓存;只是通过参数化实现,而非将代码复制粘贴 7 次。 - 7 份报告均于 2026-09-13 进行了在线探测,且返回了真实的当前数据行(例如:短缺报告显示 Eskazole/Zentel 自 2026 年起持续短缺;DHPC 报告包含一份日期为 2026-08-20 的 Jentadueto 质量缺陷通知;孤儿药资格认定报告包含一项日期为 2026-06-22 的 satralizumab 肯定认定)。
草本植物工具 — 值得了解的事项
- 工作表布局相同,列各不相同。 第 1 行是横幅,第 9 行是表头,第 10 行及之后是记录。列包括:拉丁名称、组合、英文通用名、植物学名称、治疗领域、状态、欧洲评估结果、其他信息、三个日期列,以及
Herbal medicine URL(每种草本植物对应的页面)。 - 工作表中有些草本植物的行完全重复。 Fragariae folium 出现 4 次,所有列的值都逐字节相同;
loadHerbal()按每种草本植物对应的页面 URL 去重(251 条数据行中有 204 种不同的草本植物,经 2026-09-07 验证)。 - 每种草本植物对应的页面 URL slug 使用的是拉丁名称,而非通用名(
valerianae-radix,而不是valerian-root)——有几种草本植物的 slug 会带-0后缀(taraxaci-officinalis-radix-0),EMA 未说明原因。 herb抓取的是链接,而不是正文。 草本植物的 EMA 页面会将每个修订版的文档列为普通的相对href,路径格式为/en/documents/<category>/<filename>_en.pdf。路径中的类别表示文档类型(herbal-monograph= 专论,herbal-report= 评估报告——herb只读取这两个类别);文件名前缀表示文档是否为当前版本(final-优先于draft-,而draft-优先于任何以superseded开头的文件名)。herb会为每个类别选取排名最高的链接。它不会读取页面的正文部分——页面中有 FAQ 风格的“既定使用”/“传统使用”说明文字,但抓取这些内容不在此工具包的范围内。- 该登记表完全没有“既定使用”与“传统使用”的字段。 检查了完整的 2026-09-07 工作表中
Outcome of European assessment的每个不同值:European Union herbal monograph、European Union herbal monograph;European Union list entry、European Union list entry、Public statement——这四种值都没有说明适用哪种使用类别。该分类是在专论文件内部按适应症划分的(第 10a 条为“既定使用”,第 16a 条为“传统使用”),同一种草本植物的不同适应症可能分别适用两种类别——例如,缬草根专论将轻度神经紧张和睡眠问题列为既定使用,将轻度精神压力列为传统使用。herb_monograph_status会返回use_classification: null,并附上说明,而不是根据正文猜测。 - 尚未完成最终评估的草本植物仍可能已有最终版专论。 评估
status(F/P/C/D/R)跟踪的是定期审查周期,而非首次发布——Taraxaci officinalis radix的状态为R: Rapporteur assigned(正在进行的审查),但其页面上早在数年前就已有final-专论和评估报告。应始终依据文件名前缀判断排名,切勿依据登记表的status字段。 - 处于早期阶段的草本植物可能尚无评估报告。
Cannabis flos(D: Draft under discussion)在herbal-monograph下只有一份draft-public-statement-*.pdf,而herbal-report下完全没有文件——herb会返回assessment_report_url: null,而不会报错。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"ema-medicines": {
"url": "https://gateway.pipeworx.io/ema-medicines/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/ema-medicines/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享元工具——ask_pipeworx、
discover_tools、search_within、remember/recall 和网关级工具集中的其他工具。因此,你看到的工具数量会多于表格所列:目前,单个工具包端点除了自身工具外,还会列出大约 30 个共享工具。连接的 initialize 响应会说明确切范围,是了解某一天实际范围的权威依据。
这是有意为之,并非意外多路复用。元工具让此连接能够回答本工具包未涵盖的问题——通过 ask_pipeworx 跨整个目录进行路由——无需再添加第二个 MCP 服务。目前无法在不包含这些工具的情况下挂载工具包端点;如果额外的架构定义占用的上下文超过了路由功能带来的价值,请连接一次完整网关,而不是连接多个工具包端点。
或者,连接完整的 Pipeworx 网关,直接列出所有工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1878+ 个数据源。唯一的区别在于,哪个工具包的工具会被直接列出;通过任一 URL,ask_pipeworx 都能访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/ema_recent_approvals \
-H 'Content-Type: application/json' \
-d '{"month":"2026-07"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/ema_recent_approvals。查找工具包:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可以作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关往返:
{
"mcpServers": {
"ema-medicines": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-ema-medicines"]
}
}
}
或者直接运行,确认它能启动:
npx -y @pipeworx/mcp-ema-medicines
它通过 stdin/stdout 使用 MCP,并响应 initialize/tools/list/tools/call,仅提供此工具包的工具——不包含上述网关连接额外提供的共享元工具。代码来源相同,工具相同,但没有 ask_pipeworx 路由功能。
使用 ask_pipeworx
你可以用通俗的英文提问,而不必直接调用工具——此方式既适用于上文的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Ema Medicines data" })
网关会选择合适的工具,并自动填充参数。
更多内容
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。