🤖 集成MCP的代码库扫描器
使用100多台MCP服务器进行智能代码重构、文档编制和自动PR创建
✨ 特性
核心能力
- ✅ 重构代码 在保留结构的同时进行版本更改
- ✅ 添加文档 函数缺少文档字符串
- ✅ 评估风险 (低/中/高)用于所有更改
- ✅ 自动创建GitHub PR 附有详细的总结和风险评估
- ✅ 100+MCP服务器 可用于增强分析
智能令牌管理
- ✅ 仅提示已启用的服务器 需要身份验证
- ✅ 自动检测现有令牌 在环境中
- ✅ 交互式设置 或使用.env文件
- ✅ 安全令牌存储
基于Docker的部署
- ✅ 完全集装箱化 -便携且安全
- ✅ 无本地依赖关系 Docker除外
- ✅ 隔离的MCP服务器 在容器中运行
- ✅ 一次指挥部署
______________________________________________________________________
🚀 快速开始
先决条件
- Docker&Docker编写
- 要扫描的Git存储库
- 无烟煤API键
1.克隆/复制项目
# Copy the codebase_scanner_mcp directory to your machine
cp -r codebase_scanner_mcp ~/projects/
cd ~/projects/codebase_scanner_mcp2.配置
# Copy environment template
cp .env.template .env
# Edit .env and add your tokens
nano .env最低要求:
ANTHROPIC_API_KEY=sk-ant-your-key-here
GITHUB_TOKEN=ghp_your-github-token3.配置MCP服务器
# Edit mcp_config.yaml
nano mcp_config.yaml启用要使用的服务器:
servers:
github:
enabled: true # Required for PR creation
context7:
enabled: true # Recommended - no auth needed
sequential-thinking:
enabled: true # Recommended - no auth needed
# ... toggle others as needed4.运行扫描仪
# Build Docker image
docker-compose build
# Run on your repository
REPO_PATH=/path/to/your/repo docker-compose run scanner例子:
REPO_PATH=~/projects/my-app docker-compose run scanner______________________________________________________________________
📋 它做什么
步骤1:扫描和分析
扫描仪:
- 查找存储库中的所有Python文件
- 分析每个文件:
- 过时的语法/模式 - 缺少文件 - 潜在的改进
- 使用Claude和MCP上下文进行智能重构
步骤2:重构和记录
对于每个文件,它:
- ✅ 更新已弃用的代码模式
- ✅ 语法现代化(Python 3.9+)
- ✅ 将文档字符串添加到未记录的函数中
- ✅ 保留原始结构 (无架构更改)
第三步:风险评估
对每一项变更进行评估:
- 低:仅限文档,语法略有更新
- 中等:语法更改,轻微的逻辑改进
- 高:重大逻辑变化,API修改
步骤4:创建GitHub PR
自动:
- ✅ 创建新分支
- ✅ 提交更改
- ✅ 推送到GitHub
- ✅ 使用以下命令打开拉取请求:
- 所有变更的详细摘要 - 每个文件的风险评估 - 统计数据(行已更改,功能已记录) - 根据风险水平审查指南
______________________________________________________________________
🎯 用法示例
基本扫描
# Scan repository at current directory
docker-compose run scanner /workspace扫描特定存储库
# Mount specific repo
REPO_PATH=/path/to/repo docker-compose run scanner非交互模式
# Export tokens first
export ANTHROPIC_API_KEY=sk-ant-...
export GITHUB_TOKEN=ghp_...
# Run scanner
docker-compose run scanner /workspace交互式令牌设置
# Run token manager first
docker-compose run scanner python src/token_manager.py______________________________________________________________________
📁 项目结构
codebase_scanner_mcp/
├── config/
│ └── mcp_catalog.py # 100+ MCP servers catalog
│
├── src/
│ ├── scanner.py # Main scanner with all features
│ └── token_manager.py # Smart token management
│
├── Dockerfile # Container definition
├── docker-compose.yml # Orchestration
├── mcp_config.yaml # MCP server toggles
├── .env.template # Token template
├── requirements.txt # Python dependencies
└── README.md # This file______________________________________________________________________
🔧 配置
mcp_gonfig.yaml
打开/关闭MCP服务器:
servers:
# === Core (Recommended) ===
github:
enabled: true # Required for PR creation
context7:
enabled: true # Code documentation - no auth
sequential-thinking:
enabled: true # Problem solving - no auth
# === Optional ===
firecrawl:
enabled: false # Web scraping - needs API key
postgres:
enabled: false # Database - needs connection string
# ... 100+ more servers available.env文件
仅为以下对象提供代币 启用 服务器:
# Required
ANTHROPIC_API_KEY=sk-ant-...
GITHUB_TOKEN=ghp_...
# Optional (only if enabled)
FIRECRAWL_API_KEY=fc_...
POSTGRES_URI=postgresql://...智能代币管理器 将仅提示已启用服务器的缺失令牌!
______________________________________________________________________
🏆 MCP服务器可用
100+台服务器按类别组织
开发和版本控制
- GitHub -GitHub存储库管理✅ 默认情况下启用
- GitLab -GitLab运营
- 版本控制系统 -本地Git操作
代码智能
- 上下文7 -图书馆文件✅ 默认情况下启用
- 顺序思维 -解决问题✅ 默认情况下启用
- 双子座文档 -谷歌Gemini文档
- 天文文献 -Astro框架文档
网络和剪贴
- 火爬 -高级网页抓取
- 操纵者 -浏览器自动化
- 激活 -网络抓取市场
- 勇敢 -网络搜索
数据库(40+台服务器)
- Postgres, MongoDB, MySQL, 瑞迪斯
- 弹性搜索, couchbase, 霓虹, 阿斯特拉
- SQLite -无需身份验证
云服务
- 亚马逊网络服务 -AWS运营
- 蔚蓝 -Azure AKS
- 谷歌云平台 -谷歌云
- 希罗库 -Heroku平台
DevOps与监控
- Docker 中心 -Docker Hub管理
- 石墨烯 -监控仪表板
- 维多利亚指标, 维多利亚日志, 维多利亚痕迹
生产力
- 概念, 松弛, 线性
支付
- 条纹 -付款处理
60多个。..
完整列表: 看 config/mcp_catalog.py
______________________________________________________________________
🎓 运作原理
建筑
Your Repository
↓
Docker Container (Scanner)
↓
┌─────────────┴──────────────┐
│ │
Token Manager Claude API
(Smart Prompting) (Refactoring)
│ │
└─────────────┬──────────────┘
↓
MCP Infrastructure
(100+ servers via Docker)
↓
┌─────────────┼──────────────┐
│ │ │
GitHub Context7 Other MCP
(PR) (Docs) Servers工作流程
- 初始化
- 加载mcp_gonfig.yaml - 检查已启用的服务器 - 丢失令牌的智能提示
- 扫描
- 查找所有Python文件 - 分析每个文件 - 使用Claude+MCP进行重构
- 重构
- 应用现代语法 - 添加缺失的文档 - 保护结构
- 评估风险
- 分析变更的影响 - 分配低/中/高 - 提供推理
- 创建PR
- 创建分支 - 提交更改 - 推送到GitHub - 带有摘要的公开公关
______________________________________________________________________
📊 输出示例
🔐 Initializing MCP tokens...
✓ Tokens already set for: github, context7
ℹ️ No auth needed for: sequential-thinking, filesystem
✨ All required tokens are set!
✓ Scanner initialized for /workspace
✓ 4 MCP servers enabled
🔍 Scanning codebase...
============================================================
Found 15 Python files
📄 Analyzing: src/main.py
🤖 Refactoring with Claude...
✓ Risk: MEDIUM
✓ Changes: 5
✓ Documented: 3 functions
📄 Analyzing: src/utils.py
🤖 Refactoring with Claude...
✓ Risk: LOW
✓ Changes: 2
✓ Documented: 1 functions
...
============================================================
📊 SCAN COMPLETE
============================================================
Overall Risk: MEDIUM
Files Modified: 8
Total Changes: 23
💾 Apply changes to files? (y/N): y
✓ src/main.py
✓ src/utils.py
...
✓ Applied changes to 8 files
📤 Create GitHub PR? (y/N): y
✓ PR created: https://github.com/user/repo/pull/123
✅ Done!______________________________________________________________________
🔒 安全
许可证管理
- ✅ 存储在.env中的令牌(未提交)
- ✅ 仅提示已启用的服务器
- ✅ 使用前验证令牌
- ✅ 安全环境变量
Docker隔离
- ✅ MCP服务器在容器中运行
- ✅ 无直接主机访问
- ✅ 受控Docker套接字访问
- ✅ 只读配置挂载
GitHub安全
- ✅ 创建PR(非直接提交)
- ✅ 可见风险评估
- ✅ 合并前可审查的更改
- ✅ 详细变更日志
______________________________________________________________________
🐛 故障排除
“未设置ANTHROPIC_API_KEY”
# Add to .env file
echo "ANTHROPIC_API_KEY=sk-ant-your-key" >> .env“未设置GITHUB_TOKEN”
# Enable GitHub in config
# Edit mcp_config.yaml: github.enabled = true
# Add token to .env
echo "GITHUB_TOKEN=ghp_your-token" >> .env“Docker套接字权限被拒绝”
# Add user to docker group
sudo usermod -aG docker $USER
newgrp docker“未找到gh CLI”
扫描程序将自动返回到GitHub API。或者安装gh:
# Inside container (if needed)
apt-get update && apt-get install gh令牌提示不断出现
# Save tokens to .env file
cp .env.template .env
# Edit and fill in tokens
# Tokens will be auto-loaded______________________________________________________________________
🎯 提示和最佳实践
1.从小处着手
首先只启用基本服务器:
servers:
github: {enabled: true}
context7: {enabled: true}
sequential-thinking: {enabled: true}2.分支测试
首先在测试存储库上运行scanner以查看结果。
3.仔细审查PR
合并前务必审查PR,尤其是高风险变更。
4.使用.env文件
将令牌存储在.env中,而不是环境变量中,以实现持久性。
5.启用更多服务器
根据需要,启用其他MCP服务器以增强分析:
- 火爬 -如果分析网页抓取代码
- Postgres -如果分析数据库代码
- 亚马逊网络服务 -如果分析云基础架构代码
______________________________________________________________________
📚 高级用法
自定义风险阈值
编辑 src/scanner.py 定制风险评估逻辑。
其他MCP服务器
添加更多服务器 config/mcp_catalog.py 遵循相同的模式。
批处理
# Scan multiple repos
for repo in repo1 repo2 repo3; do
REPO_PATH=/path/$repo docker-compose run scanner
done与CI/CD集成
# .github/workflows/scan.yml
- name: Run Codebase Scanner
run: |
docker-compose run \
-e ANTHROPIC_API_KEY=${{ secrets.ANTHROPIC_API_KEY }} \
-e GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} \
scanner______________________________________________________________________
🤝 贡献
想要添加更多MCP服务器或功能吗?
- 将服务器添加到
config/mcp_catalog.py - 使用扫描仪进行测试
- 提交PR
______________________________________________________________________
📄 许可证
MIT许可证-在您的项目中自由使用
______________________________________________________________________
🎉 总结
这是一个 完成,生产准备就绪 代码库扫描器:
- ✅ 用途 100+MCP服务器 来自Docker的官方目录
- ✅ 智能代币管理 -仅提示需要身份验证的已启用服务器
- ✅ 基于Docker -完全便携,可在任何地方运行
- ✅ 全套扫描仪 与:
- 代码重构(保留结构) - 文档生成 - 风险评估(低/中/高) - 自动创建GitHub PR
立即开始扫描:
cd codebase_scanner_mcp
cp .env.template .env
# Edit .env with your tokens
docker-compose build
REPO_PATH=/your/repo docker-compose run scanner______________________________________________________________________
内置❤️ 使用Docker的MCP基础架构和Anthropic的Claude
