MCP编码代理
一个强大的工具,用于分析GitHub存储库并生成抽象语法树(AST)表示,包括依赖跟踪和LLM驱动的代码摘要。
特性
- 🔍 GitHub存储库分析:直接从GitHub获取和分析Python代码库
- 🌳 AST生成:构建全面的AST结构(文件→ 类→ 函数→ Code)
- 🔗 依赖项跟踪:提取内部依赖关系(导入、函数调用)和外部依赖关系(调用者)
- 🤖 LLM总结:使用OpenAI生成代码摘要和依赖关系描述(可选)
- 📊 JSON导出:导出包含元数据的完整AST图
- 📖 Markdown报告:生成可在IDE中查看的漂亮降价报告
- 💬 互动问答:使用AI询问有关分析代码库的问题
安装
- 克隆存储库:
git clone https://github.com/AI-Castle-Labs/mcp-coding-agent.git
cd mcp-coding-agent- 安装依赖项:
pip install -r requirements.txt- 设置环境变量:
cp .env.template .env
# Edit .env and add your GitHub token and OpenAI API key配置
创建一个 .env 文件在 mcp-coding-agent 目录:
# Required: GitHub Personal Access Token
GITHUB_TOKEN=your_github_token_here
# Optional: OpenAI API Key (for LLM summarization)
OPENAI_API_KEY=your_openai_api_key_here获取GitHub代币
- 转到GitHub设置→ 开发人员设置→ 个人访问令牌
- 点击“生成新令牌(经典)”
- 选择范围:
- repo (用于私有存储库) - public_repo (仅适用于公共存储库)
- 复制令牌并将其添加到您的
.env文件
用法
交互模式
使用漂亮的终端界面运行分析仪:
python3 run_analysis.py这将打开一个交互式菜单,您可以在其中:
- 使用AI摘要分析GitHub存储库
- 无AI摘要的快速扫描(更快)
- 询问有关分析代码的问题
- 查看以前的分析报告
命令行模式
# Full analysis with LLM summaries
python3 run_analysis.py --full --owner --repo
# Quick scan (no LLM - faster)
python3 run_analysis.py --quick --owner --repo
# Ask a question about the codebase
python3 run_analysis.py --ask "What does this codebase do?"
# Analyze a specific branch
python3 run_analysis.py --full --owner openai --repo whisper --branch main例子
# Analyze VentureBot (default)
python3 run_analysis.py --full
# Analyze Flask
python3 run_analysis.py --full --owner pallets --repo flask
# Quick scan a large repo
python3 run_analysis.py --quick --owner microsoft --repo vscode输出
分析仪产生两种类型的输出:
- JSON文件 (
_analysis.json):完整的AST数据和所有摘要 - Markdown报告 (
__REPORT.md):美观的格式报告,可在IDE中查看
JSON输出示例
{
"repository": "owner/repo-name",
"branch": "main",
"analyzed_at": "2025-01-01T12:00:00",
"total_files": 10,
"files": [
{
"path": "path/to/file.py",
"classes": [...],
"functions": [...],
"imports": [...],
"code_summary": "This file implements...",
"dependency_summary": "Relies on requests, json..."
}
]
}项目结构
mcp-coding-agent/
├── src/
│ ├── main.py # Core analysis logic
│ ├── second_builder.py # AST builder with LLM integration
│ ├── dependency_visitor.py # Dependency extraction visitor
│ └── devanalyzer.py # GitHub API integration
├── test/
│ ├── test_second_builder.py
│ └── test_dependency_visitor.py
├── asset/
│ └── ast_builder.py # Alternative AST builder
├── run_analysis.py # Main entry point with beautiful UI
├── .env # Environment variables (not in git)
├── .env.template # Template for .env file
├── .gitignore # Git ignore rules
├── requirements.txt # Python dependencies
└── README.md # This file工作流程
分析遵循以下步骤:
- 连接到GitHub:验证并获取存储库信息
- 获取Python文件:递归查找所有
.py存储库中的文件 - 构建AST结构:解析每个文件并提取类、函数和代码
- 提取依赖关系:识别导入、函数调用和类引用
- 构建调用图:映射函数调用关系
- 生成摘要 (可选):使用LLM总结代码和依赖关系
- 输出结果:导出为JSON和Markdown
依赖项
requests:对GitHub API的HTTP请求python-dotenv:从加载环境变量.env文件openai:用于LLM摘要的OpenAI API客户端(可选)
安全
⚠️ 重要:永远不要承诺你的 .env 在代码中归档或公开令牌。这 .gitignore 文件已配置为排除 .env 文件夹。
贡献
欢迎投稿!请确保:
- 没有硬编码的令牌或秘密
- 代码遵循Python最佳实践
- 提交PR前通过测试
许可证
MIT许可证
支持
对于问题或疑问,请在GitHub上打开问题。
