关于 Rxnorm
Rxnorm 将美国国家医学图书馆 RxNav API 的标准化药物概念提供给医疗数据使用者和 Agent。它支持药名解析及属性查询,并提供稳定的 RxCUI 以关联药物数据;不提供药物相互作用查询。
主要功能
- 01搜索药物并解析 RxCUI
- 02查询成分、规格和剂型
- 03关联品牌名与通用名
- 04通过 RxCUI 查询 NDC
适用场景
- 01将药物名称映射为标准概念
- 02跨药物数据源关联药品记录
- 03查询药物属性及 NDC 编号
MCP 相关
向 MCP 客户端提供 RxNorm 搜索和药物概念查询工具,可经 Pipeworx 网关连接或本地 stdio 运行;不提供药物相互作用工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/rxnorm/mcpclaude mcp add --transport http pipeworx-io-rxnorm https://gateway.pipeworx.io/rxnorm/mcp{"mcpServers":{"pipeworx-io-rxnorm":{"type":"http","url":"https://gateway.pipeworx.io/rxnorm/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-rxnorm":{"type":"http","url":"https://gateway.pipeworx.io/rxnorm/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-rxnorm":{"type":"http","url":"https://gateway.pipeworx.io/rxnorm/mcp"}}}{"mcpServers":{"pipeworx-io-rxnorm":{"serverUrl":"https://gateway.pipeworx.io/rxnorm/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
RxNorm — 标准化药物概念
美国国家医学图书馆制定的标准化药物命名体系。美国医疗系统中的每种处方药、非处方药和成分都有一个 RxCUI(稳定的概念 ID)。RxNorm 统一混乱的药物命名:Tylenol、acetaminophen 和 APAP 都会解析为同一个成分概念。免费,无需身份验证。
属于 Pipeworx — 一个将 AI Agent 连接到 1683+ 个实时数据源的 MCP 网关。
这对 AI Agent 为什么重要
药物数据出了名地杂乱。品牌名、通用名、盐型、剂量规格、剂型——同一种分子可能对应几十种字符串。RxNorm 提供规范 ID,可用于与 FDA 数据、药物相互作用数据库、EHR 系统和临床试验交叉引用。
三种核心流程:
1. 解析名称。“Ozempic 是什么?”→ rxnorm_search({name: "ozempic"}) → 按术语类型(SBD、BN、IN 等)分组的概念及其 RxCUI。
2. 获取药物属性。“这个 RxCUI 是什么?”→ rxnorm_get_properties({rxcui}) → 成分名称、规格、剂型、品牌状态。
**3. 药物相互作用——不可用。**NLM 于 2024 年 1 月停用了 RxNav 相互作用 API,且没有替代服务,因此此工具包没有 rxnorm_interactions 工具,Pipeworx 也没有药物间相互作用数据源。pharma_safety_report 会返回 FDA 标签中的“药物相互作用”部分,该部分记录的是单种药物,而非检查两种药物之间的相互作用;某种药物未出现在该文本中,并不表示它已通过安全性审查。
如需结合 RxNorm + FDA + ClinicalTrials 进行全面的药物安全性综合分析,请使用 [compare_entities({type: "drug", values})] 或 pharma_drug_profile 复合工具。
术语类型(TTY)——理解这一点很重要
RxNorm 为每种药物提供多个概念,每个概念的抽象层级不同:
| TTY | 含义 | 示例 |
|---|---|---|
| IN | 成分(规范通用名) | “semaglutide” |
| PIN | 精确成分 | “semaglutide sodium” |
| BN | 品牌名 | “Ozempic” |
| SBD | 语义品牌药物(上市产品) | “Ozempic 0.5 mg/0.75 mL pen injector” |
| SCD | 语义临床药物(SBD 的通用药等效项) | “semaglutide 0.5 mg/0.75 mL pen injector” |
进行跨数据源关联时,只要存在 IN(成分)RxCUI,就应始终优先使用它。不同国家的品牌药物有不同的 SBD;IN 则是全球通用的。resolve_entity({type: "drug"}) 会按 IN > PIN > BN > SBD > 第一个可用项的优先顺序选取规范 RxCUI。
可引用 URI
pipeworx://rxnorm/concept/{rxcui}
pipeworx://rxnorm/concept/{rxcui}/interactions
RxCUI 稳定且可共享。
更新频率
RxNorm 每月发布更新。新药会在 FDA 批准后的一个月内收录;已弃用的产品会被标记,但仍保留在数据库中供历史查询。Pipeworx 使用 24 小时 TTL 进行缓存。
常见问题
- **按品牌名搜索时只返回 SBD。**搜索“Ozempic”会返回语义品牌药物概念,而不是成分。要查到“semaglutide”,可以直接搜索通用名,或对品牌 RxCUI 调用
rxnorm_related({rxcui, tty: "IN"})。后者目前在某些配置中有缺陷——请参阅错误恢复。 - 拼写的重要性超乎预期。“metformin hydrochloride”和“metformin HCl”返回的概念集合略有不同。搜索可以兼容常见缩写,但对不常见的缩写则要求精确匹配。
- **NDC 不同于 RxCUI。**国家药品代码(NDC)是 FDA 签发的包装级标识符,不是 RxCUI。如果处方配药数据需要 NDC,请使用
rxnorm_ndc({rxcui})进行转换。 - **复方药品。**像“Kombiglyze”这样的药物含有 metformin + saxagliptin。搜索“metformin”可能会把复方药品排在最前面,而成分级分析通常并不需要它。请筛选 SCD 或 IN,不要只取第一个结果。
- **已停用药物。**药物停用后,其概念仍会保留。完整记录中的
obsolete标记会告知该药物目前是否仍在使用。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"rxnorm": {
"url": "https://gateway.pipeworx.io/rxnorm/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/rxnorm/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 都连接到同一个网关和相同的 1683+ 个数据源。唯一的区别是直接列出哪个工具包的工具;无论连接哪一个,ask_pipeworx 都能访问所有工具包。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/rxnorm_search \
-H 'Content-Type: application/json' \
-d '{"name":"Ozempic"}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/rxnorm_search。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关往返:
{
"mcpServers": {
"rxnorm": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-rxnorm"]
}
}
}
也可以直接运行,确认它能够启动:
npx -y @pipeworx/mcp-rxnorm
它通过 stdin/stdout 使用 MCP,并针对仅此工具包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接额外提供的任何共享元工具。源代码和工具相同,但不支持 ask_pipeworx 路由。
使用 ask_pipeworx
你可以用通俗英语提问,而不是直接调用工具——这既适用于上面的工具包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Rxnorm data" })
网关会选择合适的工具并自动填写参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。