代码质量分析服务

一个提供全面代码质量分析的MCP服务器,支持C#、Python和TypeScript代码库,具有历史跟踪和重构风险预测功能。

  • by nagavitalp
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 nagavitalp/code-health-mcp

使用说明

代码健康MCP服务器

一种模型上下文协议(MCP)服务器,通过定量指标和趋势分析提供全面的代码质量分析。支持C#、Python和TypeScript代码库,具有历史跟踪和重构风险预测功能。

特性

岩心分析

  • 文件分析:分析单个文件的可读性、可维护性和复杂性指标
  • 存储库分析:使用智能缓存批量分析整个存储库
  • 多语言支持:全面支持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扩展

设置:

  1. 按 Ctrl+Shift+P (或 Cmd+Shift+P 在macOS上)
  2. 类型:“MCP:添加服务器”
  3. 选择“npm”
  4. 输入包: code-health-mcp
  5. 输入名称: code-health
  6. 重新启动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 metrics
Show me which files in this repository are at highest risk of needing refactoring
What 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万行的存储库,<5秒
  • 内存使用:<500MB用于大型存储库分析
  • 缓存:智能缓存避免重新计算未更改的文件
  • 可扩展性:高效处理大型Monoreps

需求

必需

  • Node.js>=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

看 安装指南 以进行更多故障排除。

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

许可证

MIT许可证-请参阅 许可证 详细信息文件

支持

致谢

内置:


由以下材料制成❤️ 为了获得更好的代码质量