This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
这是一个医疗 MCP (Model Context Protocol) 服务器的 monorepo,每个 src/ 下的目录都是独立的 TypeScript/Node.js 包,可以独立开发、构建、测试和发布到 npm registry。
- 独立包管理: 每个医疗工具都是独立的 npm 包
- 统一脚手架: 所有包遵循相同的结构和标准
- 批量操作: 支持批量构建、测试、发布
- 无依赖关系: 包之间完全独立,无交叉依赖
# 安装所有依赖并构建
npm run bootstrap
# 构建所有包
npm run build
# 运行所有包的测试
npm run test
# 代码质量检查
npm run lint
npm run format
# 清理所有构建文件
npm run clean
# 列出所有工作空间包
npm run list-packages# 创建新的医疗工具包
npm run create-package <包名> <显示名称> <功能描述>
# 示例:
npm run create-package egfr-calculator "EGFR计算器" "肾小球滤过率计算"
# 版本管理
npm run version:bump patch # 所有包升级补丁版本
npm run version:bump minor # 所有包升级次版本
npm run version:bump major # 所有包升级主版本
# 发布管理
npm run publish:all # 发布所有包到 npm
npm run publish:all --dry-run # 预览发布(不实际发布)
# DXT 扩展打包
npm run pack:dxt # 为所有包打包DXT扩展(输出到 release/ 目录)
npm run pack:dxt:all # 批量打包所有DXT扩展(统一输出到 release/ 目录)
# 更新 TypeScript 项目引用
npm run update-tsconfigcd src/<package-name>
npm run dev # 开发模式(自动重载)
npm run build # 构建当前包
npm run test # 测试当前包
npm run lint # 检查当前包代码质量
npm start # 运行构建后的包
npm run pack:dxt # 打包为DXT扩展(输出到根目录 release/ 目录)每个医疗工具包遵循以下标准结构:
src/<package-name>/
├── package.json # 包配置 (@medical-mcp/<name>)
├── manifest.json # DXT扩展清单文件 (必需)
├── tsconfig.json # TypeScript 配置
├── src/
│ ├── index.ts # MCP 服务器主文件
│ └── types.ts # TypeScript 类型定义
├── scripts/
│ └── pack-dxt.js # DXT打包脚本
├── README.md # 包说明文档
├── examples.md # 使用示例
└── dist/ # 构建输出目录
└── *.js # 编译后的JS文件
- npm 包名:
@medical-mcp/<name>(例如:@medical-mcp/egfr-calculator) - 目录名: kebab-case 格式 (例如:
egfr-calculator) - 显示名: 中文医疗术语 (例如: "EGFR计算器")
每个包都实现完整的 MCP 服务器,包含:
-
工具定义 (Tool Definition)
- JSON Schema 输入验证
- 清晰的中文描述
- 合理的参数范围限制
-
医疗计算逻辑
- 准确的医疗公式实现
- 输入参数验证(年龄、性别、生理指标)
- 异常值处理和边界检查
-
输出格式化
- 标准化的中文医疗术语
- 临床参考范围和意义解释
- 风险分层和警告提示
- 相关医学文献引用
-
错误处理
- 输入验证错误
- 计算过程错误
- 统一的错误响应格式
- TypeScript: 严格模式,完整类型定义
- MCP 协议: 完全符合 MCP 1.17.3 规范
- ESM 模块: 使用 ES Module 语法
- 错误处理: 完善的 try-catch 和验证机制
- DXT 兼容: 必须包含有效的 manifest.json 文件
- 工具命名: 遵循MCP最佳实践,使用描述性的工具名和说明
- 双语文档: 必须同时提供中文和英文版本的README文档
- README.md: 中文版主文档,包含完整的功能介绍、使用指南和技术说明
- README_EN.md: 英文版文档,与中文版保持内容同步和格式一致
- 双语要求: 所有新生成的医疗工具必须同时提供中英双语文档
- 内容一致性: 两个版本应包含相同的技术信息、使用示例和注意事项
- 国际化考虑: 英文版应使用国际医学术语和标准单位
-
生成包结构
npm run create-package bmi-calculator "BMI计算器" "体重指数计算"
-
进入包目录开发
cd src/bmi-calculator npm install -
实现医疗逻辑
- 编辑
src/index.ts实现具体的医疗计算 - 更新
src/types.ts添加专用类型定义 - 确保输入验证和临床警告完整
- 编辑
-
测试和构建
npm run build # 构建包 npm run test # 运行测试 npm run lint # 代码质量检查
-
创建DXT扩展
npm run pack:dxt # 生成DXT扩展文件(输出到根目录 release/ 目录) -
更新文档
- 完善
README.md中的医疗背景和使用说明(中文版) - 创建
README_EN.md英文版文档,保持内容和格式与中文版一致 - 在
examples.md中添加真实的临床使用示例 - 确保
manifest.json信息准确完整 - 验证双语文档的完整性和准确性
- 完善
-
发布包
# 回到根目录 cd ../.. npm run version:bump patch npm run publish:all npm run pack:dxt:all # 批量生成DXT扩展(统一输出到 release/ 目录)
# 开发多个包后,统一处理
npm run build # 构建所有包
npm run test # 测试所有包
npm run lint # 检查所有包
npm run pack:dxt:all # 批量生成DXT扩展(统一输出到 release/ 目录)
npm run version:bump minor # 统一升级版本
npm run publish:all # 批量发布- 自动生成标准包结构
- 包含完整的 MCP 服务器模板
- 预配置 TypeScript 和 npm 设置
- 生成标准化文档模板
- 支持批量版本升级
- 支持指定特定包升级
- 支持设置固定版本号
- 包含安全检查和预览功能
- 批量发布到 npm registry
- 自动检查包的可发布性
- 跳过已存在的版本
- 支持 dry-run 模式预览
- 并行构建所有包
- 智能跳过无源码的包
- 支持监听模式
- 详细的构建状态报告
- 批量生成DXT扩展文件
- 自动识别包含manifest.json的包
- 并行打包提高效率
- 详细的打包状态报告和错误处理
本项目完全支持 Desktop Extensions (DXT) 格式,这是一种类似于Chrome扩展(.crx)或VS Code扩展(.vsix)的zip归档格式,用于分发本地MCP服务器。
- 单击安装: 用户可以通过双击.dxt文件一键安装MCP服务器
- 自包含: 包含所有必需的依赖和运行时文件
- 安全隔离: 明确声明权限需求,提供安全边界
- 版本管理: 支持自动更新和版本控制
- 标准化: 遵循统一的manifest规范,确保跨应用兼容性
每个DXT扩展必须包含:
-
manifest.json - 扩展元数据和配置
{ "dxt_version": "1.0", "manifest_version": "1.0", "name": "@medical-mcp/package-name", "version": "1.0.0", "description": "医疗工具描述", "author": { "name": "Author Name", "email": "author@example.com" }, "license": "MIT", "server": { "entry_point": "dist/index.js", "runtime": "node", "node": { "min_version": "18.0.0" } }, "mcp_config": { "capabilities": ["tools"], "tools": [...] }, "permissions": { "network": false, "filesystem": false } } -
服务器代码 - 编译后的MCP服务器
-
依赖包 - 所有必需的node_modules
-
文档 - README.md和使用示例
cd src/egfr-calculator
npm run pack:dxt
# 生成: dist/egfr-calc-mcp-server.dxt# 在根目录
npm run pack:dxt:all
# 为所有包含manifest.json的包生成DXT文件- 生成DXT文件: 运行
npm run pack:dxt,所有DXT文件统一输出到根目录的release/目录 - 分发扩展: 将生成的.dxt文件提供给用户
- 一键安装: 用户双击.dxt文件,在支持的应用中自动安装
- 配置使用: 扩展自动配置MCP服务器连接
重要说明: 所有DXT文件都会输出到项目根目录的 release/ 目录中,便于统一管理和分发。
- Claude for macOS/Windows: 原生支持DXT格式
- 其他AI应用: 遵循开放标准,易于集成
- 开发者工具: 可通过MCP Inspector调试
{
"mcpServers": {
"{mcp-server-name}": {
"command": "npx",
"args": ["@medical-mcp/{toolnameA}"]
}
}
}- 年龄范围:0-120 岁
- 性别选项:male/female
- 生理指标:合理的医学范围
- 单位换算:支持常用医学单位
- 计算结果:数值 + 单位
- 临床意义:参考范围 + 风险分层
- 注意事项:异常值警告
- 参考文献:相关医学指南
- 所有用户界面文本使用中文
- 医疗术语使用标准中文表述
- 错误消息提供中文说明
- 临床解释符合中国医疗实践
- 医疗准确性: 所有计算公式必须经过医学验证
- 安全警告: 必须包含适当的医疗免责声明
- 类型安全: 使用严格的 TypeScript 类型检查
- 错误处理: 完善的输入验证和异常处理
- 文档完整: 详细的使用说明和临床背景
- 版本管理: 遵循语义化版本控制
- 构建失败: 检查 TypeScript 配置和类型定义
- 发布失败: 确认 npm 登录状态和包名唯一性
- 包依赖: 确保各包独立,无交叉依赖
- 版本冲突: 使用版本管理脚本统一处理
npm run list-packages # 检查包状态
npm run clean # 清理构建缓存
npm run update-tsconfig # 修复 TypeScript 引用
npm run build -- --verbose # 详细构建信息这个 monorepo 架构为医疗 MCP 服务器提供了完整的开发、构建和发布流程,确保每个医疗工具都能独立开发和维护,同时保持统一的质量标准。