代码扫描与重构工具

一款集成100+ MCP服务器的智能代码扫描与重构工具,支持代码重构、文档生成、风险评估及自动创建GitHub PR。

  • by gcolenstra
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 gcolenstra/codesense_mcp_poc

使用说明

🤖 集成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_mcp

2.配置

# 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-token

3.配置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 needed

4.运行扫描仪

# 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:扫描和分析

扫描仪:

  1. 查找存储库中的所有Python文件
  2. 分析每个文件:
    • 过时的语法/模式
    • 缺少文件
    • 潜在的改进
  3. 使用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

工作流程

  1. 初始化

    • 加载mcp_gonfig.yaml
    • 检查已启用的服务器
    • 丢失令牌的智能提示
  2. 扫描

    • 查找所有Python文件
    • 分析每个文件
    • 使用Claude+MCP进行重构
  3. 重构

    • 应用现代语法
    • 添加缺失的文档
    • 保护结构
  4. 评估风险

    • 分析变更的影响
    • 分配低/中/高
    • 提供推理
  5. 创建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服务器或功能吗?

  1. 将服务器添加到 config/mcp_catalog.py
  2. 使用扫描仪进行测试
  3. 提交PR

📄 许可证

MIT许可证-在您的项目中自由使用


🎉 总结

这是一个 完成,生产准备就绪 代码库扫描器:

  1. ✅ 用途 100+MCP服务器 来自Docker的官方目录
  2. ✅ 智能代币管理 -仅提示需要身份验证的已启用服务器
  3. ✅ 基于Docker -完全便携,可在任何地方运行
  4. ✅ 全套扫描仪 与:
    • 代码重构(保留结构)
    • 文档生成
    • 风险评估(低/中/高)
    • 自动创建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