代码健康MCP服务器
一种模型上下文协议(MCP)服务器,通过定量指标和趋势分析提供全面的代码质量分析。支持C#、Python和TypeScript代码库,具有历史跟踪和重构风险预测功能。
](https://www.npmjs.com/package/code-health-mcp)   ](https://nodejs.org)
特性
岩心分析
- 文件分析:分析单个文件的可读性、可维护性和复杂性指标
- 存储库分析:使用智能缓存批量分析整个存储库
- 多语言支持:全面支持TypeScript、JavaScript、Python和C#
高性能
- 历史趋势:使用git历史记录跟踪复杂性随时间的变化(在第一次请求时自动构建缓存)
- 风险预测:根据趋势分析预测可能需要重构的文件
- 相关性分析:分析依赖关系、耦合和循环依赖
- 性能优化:高效处理包含10万行以上代码的存储库
- 智能缓存:需要时自动填充历史数据缓存-无需手动设置
提供的指标
- 可读性得分(标识符熵、评论率、行长)
- 可维护性得分(圈复杂度、耦合性、内聚性)
- 嵌套深度和代码结构分析
- 指标的依赖性
- Git流失和更改频率
- 重构风险评分并给出解释
快速开始
安装
# No installation needed! Use npx to run directly:
npx code-health-mcp
# Or install globally if you prefer:
npm install -g code-health-mcp备注:使用时 npx 在MCP配置中,包会自动下载并缓存。无需手动安装!
MCP客户端配置
VS代码(GitHub副本)
先决条件:VS Code 1.96.0+、GitHub Copilot和GitHub Copilot-Chat扩展
设置:
- 按
Ctrl+Shift+P(或Cmd+Shift+P在macOS上) - 类型:“MCP:添加服务器”
- 选择“npm”
- 输入包:
code-health-mcp - 输入名称:
code-health - 重新启动VS代码
使用 @code-health 在Copilot聊天中。看 VS代码设置指南 了解更多详情。
适用于克劳德桌面
添加到您的Claude Desktop配置中:
macOS/Linux: ~/.config/claude/config.json\ 视窗: %APPDATA%\Claude\config.json
{
"mcpServers": {
"code-health": {
"command": "npx",
"args": ["code-health-mcp"]
}
}
}对于其他MCP客户端
服务器使用stdio传输,并与任何兼容MCP的客户端配合使用:
npx code-health-mcp基本用法
配置后,在MCP客户端上使用自然语言:
Analyze the file src/index.ts for code quality metricsShow me which files in this repository are at highest risk of needing refactoringWhat are the complexity trends for src/server.ts over the last 50 commits?可用工具
服务器公开了五个MCP工具:
| 工具 | 描述 | 用例 |
|---|---|---|
analyze_file | 分析单个源文件 | 获取一个文件的详细指标 |
analyze_repository | 批量分析整个存储库 | 获取代码库运行状况概述 |
get_complexity_trends | 检索历史复杂性数据 | 跟踪随时间变化的质量(首次使用时自动构建缓存) |
predict_refactor_risk | 获取重构风险预测 | 优先考虑技术债务 |
get_dependency_graph | 分析依赖关系 | 了解耦合和架构 |
文档
入门指南
参考
发展
先决条件
- Node.js>=18.0.0
- npm>=8.0.0
- Git(用于历史分析功能)
设置
# Clone the repository
git clone https://github.com/nagavitalp/code-health-mcp.git
cd code-health-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev可用脚本
npm run build # Build TypeScript to JavaScript
npm run build:prod # Production build (no source maps)
npm run dev # Run in development mode with tsx
npm run start # Run the built server
npm run watch # Watch mode for development
npm run clean # Clean build artifacts
npm run test # Run tests
npm run lint # Type check without emitting
npm run validate # Run lint and tests项目结构
codebase-health-mcp/
├── src/
│ ├── analysis/ # Code analysis engine
│ │ ├── parsers/ # Language-specific parsers
│ │ ├── metrics/ # Metric calculation
│ │ └── __tests__/ # Tests
│ ├── server.ts # Main MCP server
│ ├── server-config.ts # Configuration management
│ ├── logger.ts # Logging utilities
│ ├── error-handler.ts # Error handling
│ └── index.ts # Entry point
├── docs/ # Documentation
├── dist/ # Built output
└── package.json语言支持
Types/JavaScript
- 使用TypeScript编译器API进行完整AST分析
- ES模块和CommonJS支持
- 现代JavaScript功能
- 类型定义和接口
python
- 使用Python的AST模块进行基于AST的分析
- Python 3.x语法支持
- 类、函数和模块分析
- 导入和包依赖性跟踪
C
- 的语法树解析。NET代码
- 支持现代C#特性
- 类、方法和命名空间分析
- 使用语句和程序集引用
演出
- 分析速度:对于最多10万行的存储库,\=18.0.0
- Git(用于历史分析)
可选的
- .NET SDK(用于增强C#分析)
- Python 3.x(用于增强Python分析)
配置
环境变量
通过环境变量进行配置:
NODE_ENV=production # Environment mode
LOG_LEVEL=info # Logging verbosity
CACHE_DIR=.cache # Cache directory
GIT_HISTORY_DEPTH=100 # Commits to analyze
ENABLE_CACHE=true # Enable caching可选配置文件
创建 code-health.config.json 在项目根目录中自定义分析行为:
# Copy the example configuration
cp node_modules/code-health-mcp/code-health.config.example.json code-health.config.json
# Edit to customize thresholds and weights配置示例:
{
"complexityThresholds": {
"cyclomaticComplexity": {
"low": 5,
"medium": 10,
"high": 20
}
},
"riskFactorWeights": {
"complexityTrend": 0.4,
"churnFrequency": 0.25
}
}注: code-health.config.json 仅供您本地使用,应添加到 .gitignore.
看 配置指南 查看详细选项。
故障排除
常见问题
服务器未启动:验证Node.js版本>=18.0.0
node --version权限错误:使用npx或配置npm前缀
npx codebase-health-mcp找不到Git:安装Git进行历史分析
git --version看 安装指南 以进行更多故障排除。
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 详细信息文件
支持
- 问题:
- 文档: docs/
- 讨论:
致谢
内置:
______________________________________________________________________
由以下材料制成❤️ 为了获得更好的代码质量
