npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@liujunb/calculator-service

v1.0.3

Published

MCP service for hospital numerical calculations (BMI, etc.)

Readme

calculator-service

英文文档

一个基于 Model Context Protocol (MCP) 的医院临床计算服务。提供 BMI、eGFR、体表面积等 15 个常用临床计算工具,可与 Claude Desktop、VS Code 等 MCP 客户端集成。

支持中英文双语输出,默认中文,传 locale: "en" 参数即可切换到英文。

工具列表

所有工具均支持可选的 locale 参数("zh" | "en",默认 "zh"),用于切换输出语言。

人体测量与体成分

| 工具 | 说明 | |------|------| | calculate_bmi | 身体质量指数,中国成人参考标准 |

参数:

  • weight_kg (number, 必填) — 体重 (kg)
  • height_cm (number, 必填) — 身高 (cm)

输出: BMI 值、中国成人分类(过轻/正常/超重/肥胖)


| 工具 | 说明 | |------|------| | calculate_bsa | 体表面积(Mosteller 公式) |

参数:

  • weight_kg (number, 必填) — 体重 (kg)
  • height_cm (number, 必填) — 身高 (cm)

输出: 体表面积 (m²)


| 工具 | 说明 | |------|------| | calculate_ibw | 理想体重(Devine 公式) |

参数:

  • height_cm (number, 必填) — 身高 (cm)
  • sex (enum: male | female, 必填) — 性别

输出: 理想体重 (kg)


| 工具 | 说明 | |------|------| | calculate_bmr | 基础代谢率(Mifflin-St Jeor)+ TDEE 分层估算 |

参数:

  • weight_kg (number, 必填) — 体重 (kg)
  • height_cm (number, 必填) — 身高 (cm)
  • age (number, 必填) — 年龄 (years)
  • sex (enum: male | female, 必填) — 性别

输出: BMR (kcal/day) + 5 级 TDEE(静坐/轻度/中度/重度/极重度活动)


| 工具 | 说明 | |------|------| | calculate_whr | 腰臀比,中心性肥胖评估 |

参数:

  • waist_cm (number, 必填) — 腰围 (cm)
  • hip_cm (number, 必填) — 臀围 (cm)
  • sex (enum: male | female, 必填) — 性别

输出: 腰臀比 + 中心性肥胖评估


肾内科与电解质

| 工具 | 说明 | |------|------| | calculate_egfr | 肾小球滤过率(CKD-EPI 2021,去种族因子),支持 μmol/L 和 mg/dL |

参数:

  • creatinine (number, 必填) — 血清肌酐值
  • creatinine_unit (enum: mgdl | umolL, 必填) — 肌酐单位
  • age (number, 必填) — 年龄 (years)
  • sex (enum: male | female, 必填) — 性别

输出: eGFR (mL/min/1.73m²) + CKD 分期(G1–G5)


| 工具 | 说明 | |------|------| | calculate_crcl | 肌酐清除率(Cockcroft-Gault),用于肾功能评估和药物剂量调整 |

参数:

  • age (number, 必填, 1–120) — 年龄 (years)
  • weight_kg (number, 必填) — 体重 (kg)
  • creatinine (number, 必填) — 血清肌酐值
  • creatinine_unit (enum: mgdl | umolL, 必填) — 肌酐单位
  • sex (enum: male | female, 必填) — 性别

输出: CrCl (mL/min)


| 工具 | 说明 | |------|------| | calculate_corrected_ca | 校正钙,低白蛋白血症时校正 |

参数:

  • calcium (number, 必填) — 血钙 (mmol/L)
  • albumin (number, 必填) — 白蛋白 (g/L)

输出: 校正后血钙 (mmol/L) + 分类(低钙/正常/高钙血症)


| 工具 | 说明 | |------|------| | calculate_corrected_na | 校正血钠,高血糖时校正 |

参数:

  • sodium (number, 必填) — 测量血钠 (mmol/L)
  • glucose (number, 必填) — 血糖值
  • glucose_unit (enum: mmolL | mgdl, 可选, 默认 mmolL) — 血糖单位

输出: 校正后血钠 (mmol/L)


| 工具 | 说明 | |------|------| | calculate_cap_product | 钙磷乘积,CKD 患者监测 |

参数:

  • calcium (number, 必填) — 血钙 (mmol/L)
  • phosphorus (number, 必填) — 血磷 (mmol/L)

输出: 钙磷乘积 (mg²/dL²) + CKD 目标范围评估


心血管

| 工具 | 说明 | |------|------| | calculate_map | 平均动脉压,器官灌注压评估 |

参数:

  • sbp (number, 必填) — 收缩压 SBP (mmHg)
  • dbp (number, 必填) — 舒张压 DBP (mmHg)

输出: MAP (mmHg) + 灌注状态评估


| 工具 | 说明 | |------|------| | calculate_qtc | 校正 QT 间期(Bazett + Fridericia 两种公式) |

参数:

  • qt_interval (number, 必填) — QT 间期 (ms)
  • heart_rate (number, 必填) — 心率 (bpm)
  • sex (enum: male | female, 必填) — 性别

输出: QTc-Bazett (ms)、QTc-Fridericia (ms) + 性别特异性风险分层


血气与酸碱平衡

| 工具 | 说明 | |------|------| | calculate_anion_gap | 阴离子间隙,代谢性酸中毒鉴别 |

参数:

  • sodium (number, 必填) — 血钠 Na⁺ (mmol/L)
  • chloride (number, 必填) — 血氯 Cl⁻ (mmol/L)
  • bicarbonate (number, 必填) — 碳酸氢根 HCO₃⁻ (mmol/L)

输出: 阴离子间隙 (mmol/L) + 分类(低/正常/高)


妇产科

| 工具 | 说明 | |------|------| | calculate_edd | 预产期和孕周推算(Nägele 公式),支持周期校正 |

参数:

  • lmp_date (string, 必填) — 末次月经日期 (YYYY-MM-DD)
  • cycle_days (number, 可选, 默认 28) — 月经周期天数 (21–45)

输出: 预产期、当前孕周、已孕天数、距离预产期天数


换算

| 工具 | 说明 | |------|------| | convert_temperature | 摄氏度 ↔ 华氏度换算 |

参数:

  • value (number, 必填) — 温度值
  • from_unit (enum: celsius | fahrenheit, 必填) — 输入单位

输出: 换算后的温度值

快速开始

npx 一键运行(免安装)

在 MCP 客户端配置中添加:

{
  "mcpServers": {
    "calculator-service": {
      "command": "npx",
      "args": ["-y", "@liujunb/calculator-service"]
    }
  }
}

全局安装

npm install -g @liujunb/calculator-service

# 直接运行
calculator-service

源码运行

git clone https://github.com/LiuJunb/calculator-service.git
cd calculator-service
npm install
npm run build
npm start

使用示例

连接到 MCP 客户端后,即可调用工具:

{
  "name": "calculate_bmi",
  "arguments": {
    "weight_kg": 70,
    "height_cm": 175
  }
}

输出英文结果:

{
  "name": "calculate_bmi",
  "arguments": {
    "weight_kg": 70,
    "height_cm": 175,
    "locale": "en"
  }
}

项目结构

src/
├── index.ts              # 入口 — 创建 MCP server,注册所有工具
└── tools/
    ├── i18n.ts            # 中英文辅助函数
    ├── index.ts           # 工具注册聚合器
    ├── bmi.ts             # 每个工具独立文件
    ├── bsa.ts
    └── ...                # 共 15 个工具

tests/
└── calculator.test.ts    # 47 个单元测试

开发

npm run build       # 编译 TypeScript
npm test            # 运行测试(vitest)
npm run test:watch  # 测试监听模式

环境要求

  • Node.js >= 18
  • MCP 兼容客户端(Claude Desktop 等)

发布流程

项目使用 semantic-release 自动发布。向 main 分支推送符合 Conventional Commits 规范的提交(如 feat:fix:)会自动触发版本更新、npm 发布和 GitHub Release。

GitHub Actions 工作流配置在 .github/workflows/release.yml

许可证

MIT