关于 mcp-server-analyzer
mcp-server-analyzer 向 MCP 客户端提供 Python、JavaScript 和 TypeScript 代码质量分析工具,涵盖 lint、格式化、类型检查、死代码检测及综合评估。代码仅临时分析,不会在调用之间留存。
主要功能
- 01使用 Ruff 检查和格式化 Python
- 02使用 ty 进行类型检查和诊断
- 03使用 Vulture 检测未使用代码
- 04使用 Biome 检查和格式化 JS/TS
- 05综合分析与质量评分
- 06临时内存代码分析
适用场景
- 01检查 Python 风格问题和类型错误
- 02查找未使用的导入和函数
- 03检查或格式化 JavaScript、TypeScript
- 04执行综合代码质量审查
MCP 相关
该 MCP 服务向连接的 MCP 客户端提供单项及综合分析工具,包括 ruff-check、ty-check、vulture-scan、biome-check 和 analyze-code。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Python MCP 服务分析器 🐍🔍
一款功能强大的 Model Context Protocol (MCP) 服务,使用 Ruff 进行代码检查、使用 ty 进行类型检查,并使用 Vulture 检测无用代码,提供全面的 Python 代码分析。非常适合 AI 助手、IDE 和自动化代码审查工作流。
🚀 快速开始
VS Code 集成(一键安装)
如需快速安装,请使用下方的一键安装按钮之一……
如需手动安装,请将以下 JSON 代码块添加到 VS Code 的用户设置(JSON)文件中。按下 Ctrl + Shift + P 并输入 Preferences: Open User Settings (JSON) 即可完成操作。
也可以将其添加到工作区中名为 .vscode/mcp.json 的文件里。这样便可以与他人共享配置。
请注意,使用
mcp.json文件时需要mcp键。
使用 uvx(推荐):
{
"mcp": {
"servers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
}
}
使用 Docker:
{
"mcp": {
"servers": {
"analyzer": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/anselmoo/mcp-server-analyzer"]
}
}
}
}
通用安装
# Install with uvx (recommended)
uvx install mcp-server-analyzer
# Install with pip
pip install mcp-server-analyzer
# Run with Docker
docker run ghcr.io/anselmoo/mcp-server-analyzer:latest
# Install from source
git clone https://github.com/anselmoo/mcp-server-analyzer.git
cd mcp-server-analyzer
uv sync --dev
uv run mcp-server-analyzer
📋 功能
- 🔍 RUFF 分析:全面的 Python lint 检查,并支持自动修复
- 🧠 ty 类型检查:快速分析 Python 类型,并提供基于规则的诊断
- 🧹 死代码检测:使用 VULTURE 查找未使用的导入、函数和变量
- ⚡ Biome JS/TS 分析:快速检查和格式化 JavaScript 与 TypeScript 代码
- 📊 质量评分:结合多项分析,提供质量指标
- 🚀 FastMCP 框架:高性能 MCP 服务实现
- 🐳 支持 Docker:多架构容器,并采用安全签名
- 🔒 安全:所有版本均使用 Sigstore 签名,保障供应链安全
📈 分析示例
RUFF lint 检查预览
查看全面的 lint 检查分析示例:📋 RUFF 分析预览
VULTURE 死代码检测预览
了解死代码检测功能:🧹 VULTURE 分析预览
🛠️ 可用工具
| 工具 | 描述 | 使用场景 |
|---|---|---|
ruff-check | 使用 RUFF 检查 Python 代码 | 风格违规、潜在错误 |
ruff-format | 使用 RUFF 格式化 Python 代码 | 代码格式化与一致性 |
ruff-check-ci | 针对 CI/CD 优化的 RUFF 输出 | GitHub Actions、GitLab CI |
ty-check | 使用 ty 对 Python 代码进行类型检查 | 类型安全、返回值错误 |
vulture-scan | 检测死代码 | 未使用的导入、函数、变量 |
biome-check | 使用 Biome 检查 JS/TS 代码 | 风格违规、潜在错误 |
biome-format | 使用 Biome 格式化 JS/TS 代码 | 代码格式化与一致性 |
analyze-code | 结合 Ruff、ty 和 Vulture 进行分析 | 全面的代码质量评估 |
🔧 配置
Claude Desktop
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
}
Zed
将以下内容添加到 Zed 的 settings.json:
"context_servers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
Claude Code(项目级)
将 .mcp.json 放在项目根目录:
{
"mcpServers": {
"analyzer": {
"command": "uvx",
"args": ["mcp-server-analyzer"]
}
}
}
🧪 开发
先决条件
设置
# Clone repository
git clone https://github.com/anselmoo/mcp-server-analyzer.git
cd mcp-server-analyzer
# Install Python dependencies
uv sync --dev
# Install Biome (JS/TS analyzer)
npm ci
# Run tests
uv run pytest
# Run type checks
uv run ty check src tests
# Run pre-commit hooks
uv tool run pre-commit run --all-files
# Build Docker image
docker build -t mcp-server-analyzer .
测试
# Run all tests
uv run pytest tests/ -v
# Run with coverage
uv run pytest --cov=src/mcp_server_analyzer --cov-report=html
# Test specific functionality
uv run pytest tests/test_server.py::TestAnalyzers::test_ruff_with_sample_code
📊 质量指标
该服务根据以下内容提供质量评分:
- Ruff 问题:风格违规、潜在错误、复杂度指标
- ty 诊断:静态类型错误和警告
- 死代码检测:未使用的导入、函数和变量
- 综合评分:加权质量评估(0-100)
🔒 安全
- 签名版本:所有版本均使用 Sigstore 签名
- 容器签名:Docker 镜像使用 Cosign 签名
- 可信发布:PyPI 版本使用 GitHub OIDC 可信发布
- 漏洞扫描:在 CI/CD 中自动进行安全扫描
- 供应链安全:符合 SLSA Build Level 3 标准
- 安全策略:漏洞报告请参阅 SECURITY.md
🔍 数据处理与透明度
- 仅在内存中处理:传递给工具的代码会写入临时文件,分析完成后立即删除——调用之间不会保留任何数据。
- 不进行网络调用:分析期间,服务不会建立任何出站网络连接。
- 无遥测数据:不会收集使用数据、分析数据或崩溃报告。
- 子进程隔离:ruff、ty 和 vulture 使用固定的参数列表调用——不会进行 shell 展开或执行任意命令。
📚 文档
- 完整文档 - GitHub Pages 文档
- 工具参考 - 详细的工具参数和返回类型
- MCP 规范 - 了解 Model Context Protocol
- FastMCP 框架 - 高性能 MCP 实现
- Ruff 文档 - Python 检查器和格式化工具
- ty 文档 - Python 类型检查器和语言服务器
- Vulture 文档 - 死代码查找工具
🤝 参与贡献
欢迎贡献!详情请参阅 CONTRIBUTING.md。
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 使用 Conventional Commits 提交更改
- 推送到分支(
git push origin feature/amazing-feature) - 提交 Pull Request
📝 许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
🙏 致谢
- 感谢 Astral 提供 RUFF 和 uv
- 感谢 Jendrik Seipp 提供 VULTURE
- 感谢 Model Context Protocol 团队
- 感谢 FastMCP 框架
为提升 Python 代码质量而用心打造 ❤️
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。