关于 mcp-clinical-reasoner
mcp-clinical-reasoner 是用于临床药理检查的 MCP 服务,面向研究和教育用途。它结合 RxNav 查询与内置剂量、过敏原参考表,且不处理 PHI。
主要功能
- 01解析药品名称和 RxNorm CUI
- 02检查 2–10 种药物间的相互作用
- 03核对 20 种常见药物的剂量
- 04检查 12 类过敏原的交叉反应
- 05通过 LangFuse 跟踪工具调用
适用场景
- 01审查潜在的药物相互作用
- 02根据参考范围核对拟定剂量
- 03筛查用药选择中的过敏冲突
MCP 相关
它通过 stdio 或 SSE 向 MCP 客户端提供四种临床药理工具。其中两种调用 NLM RxNav REST API,剂量和过敏检查则使用内置规则表。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-clinical-reasoner
属于 fhir-mcp-suite — v1.0.0
一个 MCP 服务,提供四种临床药理学工具,由免费的 NLM RxNav REST API 和内置的基于规则的 参考表提供支持。无需 API 密钥。不处理 PHI。
工具
| 工具 | 传输方式 | 描述 |
|---|---|---|
lookup_drug | RxNav API | 解析药物名称或 RxNorm CUI → 标准名称、RxCUI、药物类别归属、剂量参考 |
check_drug_interactions | RxNav API | 检测 2–10 个 RxNorm CUI 之间的药物相互作用(DDI),并按严重程度排序 |
check_dose | 基于规则 | 根据内置的约 20 种常见药物表,验证拟定的单次剂量(mg) |
check_allergy_conflicts | 基于规则 | 使用内置表检查与 12 种过敏原类别的交叉反应 |
架构
Claude Desktop / LangGraph agent
│ MCP (stdio or SSE)
▼
mcp-clinical-reasoner (:8002 in SSE mode)
├── lookup_drug ────────────────► rxnav.nlm.nih.gov/REST
├── check_drug_interactions ────► rxnav.nlm.nih.gov/REST
├── check_dose ─────────────────► built-in DOSE_TABLE (20 drugs)
└── check_allergy_conflicts ────► built-in ALLERGEN_CLASSES (12 classes)
所有工具调用均通过 LangFuse 进行追踪(按会话统计延迟和响应字节数)。
内置剂量表
涵盖 20 种常见药物:acetaminophen、ibuprofen、aspirin、naproxen、metformin、 lisinopril、atorvastatin、metoprolol、amlodipine、omeprazole、amoxicillin、 azithromycin、warfarin、furosemide、sertraline、gabapentin、clopidogrel、 hydrochlorothiazide、prednisone、albuterol。
自动解析品牌别名(例如 "Tylenol" → acetaminophen,
"Advil" → ibuprofen)。
内置过敏原类别
12 种类别:penicillin、cephalosporin、sulfonamide、nsaid、macrolide、 fluoroquinolone、statin、ace_inhibitor、angiotensin_receptor_blocker、 beta_blocker、thiazide_diuretic、tetracycline。
快速开始
# Install (uv workspace from repo root)
uv sync --all-packages
# Run (stdio, default)
uv run mcp-clinical-reasoner
# Run (SSE on port 8002)
MCP_TRANSPORT=sse uv run mcp-clinical-reasoner
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
RXNAV_BASE_URL | https://rxnav.nlm.nih.gov/REST | RxNav API 基础 URL |
RXNAV_TIMEOUT_S | 30.0 | HTTP 超时时间(秒) |
MCP_TRANSPORT | stdio | stdio 或 sse |
MCP_HOST | 0.0.0.0 | SSE 绑定主机 |
MCP_PORT | 8002 | SSE 端口 |
LANGFUSE_PUBLIC_KEY | (可选) | LangFuse 追踪 |
LANGFUSE_SECRET_KEY | (可选) | LangFuse 追踪 |
LANGFUSE_HOST | (可选) | LangFuse 主机 |
LOG_LEVEL | INFO | 日志级别 |
Claude Desktop 配置
{
"mcpServers": {
"clinical-reasoner": {
"command": "uv",
"args": [
"--directory", "/path/to/fhir-mcp-suite",
"run", "--package", "mcp-clinical-reasoner",
"mcp-clinical-reasoner"
]
}
}
}
测试
# Unit tests (36 tests, no network required)
uv run pytest packages/mcp-clinical-reasoner/tests/ -v -m "not integration and not eval"
# Offline eval (dose + allergy + error validation)
uv run python evals/mcp-clinical-reasoner/run_eval.py --tags dose allergy error
# Full eval suite (requires rxnav.nlm.nih.gov)
uv run python evals/mcp-clinical-reasoner/run_eval.py
评估结果(离线,无网络)
| 标签集 | 用例数 | 通过率 |
|---|---|---|
| error | 6 | 100% |
| dose + allergy | 12 | 100% |
免责声明
本服务仅供研究和教育用途。它不能 替代临床判断、药师审查或专业医疗建议。 所有剂量限值和交叉反应规则均依据一般成人参考资料, 必须针对每位患者进行个体化调整。
许可证
Apache-2.0 — 详见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。