Skip to main content
Glama
ayeyouok

a207-clinical-calc-mcp

by ayeyouok
README.md
# a207-clinical-calc-mcp(M6 · 临床计算)

儿童 CKD **临床计算 MCP**,**医生独占(MX-1)**。目前提供 eGFR-Schwartz 估算与 KDIGO 2024 儿童 CKD 分期。纯计算、只读、无跨包依赖。

## 工具清单

| 工具 | 读写 | 调用方限制 | 说明 |
|------|------|-----------|------|
| `calc_egfr_schwartz` | 读 | 医生独占 | eGFR 估算(床旁2009 / 含BUN修订2009 / 经典k值 三版) |
| `classify_ckd` | 读 | 医生独占 | KDIGO 2024 儿童 CKD 合并分期(GxAx) |

> 写权边界:M6 严格医生独占(MX-1)。营养师/家长命中分期词族时由 M13 路由转交医生,不触发本包。

## 公式口径(ADR-006)

- **床旁 Schwartz 2009**(默认):`eGFR = 0.413 × 身高(cm) / Scr(mg/dL)`,结果 ml/min/1.73m²。
- **含 BUN 修订 2009**:`eGFR = 0.413 × 身高 / (Scr + 0.003×BUN − 0.024)`,对 eGFR<60 儿童更准(需 bun_mg_dl)。
- **经典 k 值**:`eGFR = k × 身高 / Scr`,k 默认按年龄带(<1y=0.45, 1–12y=0.55, ≥13y=0.70),可 `k_value` 覆盖。
- **CKD 分期**(KDIGO 2024 儿童):eGFR → G1–G5;白蛋白尿(UACR mg/g 或 UPCR mg/g)→ A1–A3;合并写作 `GxAx`。

## 运行与部署

本项目 5 个 MCP 统一发 PyPI(维护者 NFYY),发上去后裸 `uvx` 即可拉取:

```bash
# 1. 构建 sdist + wheel(产物落 dist/)
python -m build
# 2. 校验
python -m twine check dist/*
# 3. 发布(用你发另外 4 个包时同一个 NFYY 凭据)
python -m twine upload dist/*
```

发布后在 Codespace / 魔搭裸包名部署:
```bash
uvx --refresh a207-clinical-calc-mcp
```

## 测试

```bash
python tests/test_tools.py   # 全断言通过
```

## 已知缺口(非阻断)

- 高钾血症等危急值目前仅为信息性提示(note 字段),未做阈值告警推送;如需主动告警,待 M10 通知接入。
- `<2 岁`婴儿 eGFR 阈值与年长儿不同,已在 `pediatric_caveat` 字段警示,但未内置婴儿专用 G 分期表(待临床确认是否纳入)。

TDQS

A4.5/5.0

Scored across 2 tools

Disambiguation5/5

The two tools are clearly distinct: one calculates eGFR, the other classifies CKD stage based on eGFR and albuminuria. There is no overlap in functionality or purpose.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern with lowercase snake_case ('calc_egfr_schwartz' and 'classify_ckd'). The naming convention is uniform and predictable.

Tool Count3/5

With only two tools, the server is on the minimal side, but the tools form a cohesive workflow for pediatric kidney assessment. The count is borderline for the stated clinical calculator purpose.

Completeness5/5

The tools cover the entire workflow from eGFR calculation (with multiple Schwartz methods) to CKD staging, including necessary inputs like albuminuria. No obvious gaps exist within the narrow domain.

Maintenance

ActivityMaintained
ResponsivenessSyncing