使用说明
用于代码库分析的快速MCP服务器
一个全面的模型上下文协议(MCP)服务器,提供强大的代码分析工具,包括AST提取、向量数据库集成、相似性搜索和依赖图生成。
概述
快速MCP代码库分析器是一种专用服务器,旨在通过MCP协议提供智能代码分析功能。它提供了四个核心工具,使开发人员能够分析代码库,提取有意义的见解,并理解代码结构和关系。
主要特点:
- AST提取:使用抽象语法树解析和分析代码结构
- 矢量数据库集成:使用ChromaDB存储和索引代码表示
- 相似性搜索:查找类似的代码模式和代码片段
- 依赖图生成:可视化功能和模块依赖关系
- 多语言支持:适用于Python代码库
- 集成就绪:设计用于与MCP兼容的客户端配合使用
先决条件
- Python 3.8或更高版本
- pip包管理器
- Git(用于克隆依赖项)
安装
1.克隆存储库
git clone <repository-url>
cd mcp-tool
2.创建虚拟环境
# Create virtual environment
python -m venv .venv
# Activate virtual environment
# On Linux/macOS:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
3.安装依赖项
pip install -r requirements.txt
4.验证安装
python mcp_codebase_analyzer.py --help
配置
环境变量
创建一个 .env 如果需要,请在项目根目录中创建文件:
# Optional: Custom ChromaDB path
CHROMADB_PATH=./chroma_db
# Optional: Google API key for embeddings (if using cloud embeddings)
GOOGLE_API_KEY=your_api_key_here
# Optional: Custom model for embeddings
EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2
目录结构
确保以下目录结构存在:
mcp-tool/
├── .venv/
├── .gitignore
├── .env (optional)
├── requirements.txt
├── mcp_codebase_analyzer.py
├── README.md
└── ../codebase_analyzer_workflow/
├── ast_extractor.py
├── chroma_ast_importer.py
├── similarity_search.py
├── function_dependency_graph.py
└── ...
工具说明
1.提取_统计
从Python代码文件中提取抽象语法树(AST)信息。此工具解析源代码,并提供代码语法和语义的结构化表示。
目的:
- 代码结构分析
- 语法验证
- 自动重构准备
- 代码质量评估
参数:
file_path(必填):Python源文件的路径
2.进口到chromadb
将AST数据导入ChromaDB矢量数据库进行存储和索引。这允许对代码模式进行语义搜索和相似性分析。
目的:
- 代码分析结果的持久存储
- 语义代码搜索准备
- 代码模式索引
- 知识库创建
参数:
file_path(必填):要导入的Python源文件的路径
3.搜索_类似代码
使用向量相似度搜索与提供的查询类似的代码。这利用ChromaDB中存储的嵌入来查找概念上相似的代码。
目的:
- 代码重用发现
- 模式识别
- 重复代码检测
- 代码现代化协助
参数:
query(必填):要搜索的自然语言描述或代码片段
4.生成依赖图
生成一个依赖关系图,显示代码库中的函数调用和模块关系。这有助于理解代码架构并识别潜在的耦合问题。
目的:
- 架构可视化
- 影响分析
- 重构规划
- 技术债务评估
参数:
file_path(必填):用于分析的Python源文件的路径
示例用法
与MCP客户端一起使用
使用任何兼容MCP的客户端连接到服务器:
# Example: Connecting to the MCP server
import asyncio
from mcp import ClientSession
async def main():
async with ClientSession("mcp_codebase_analyzer.py") as session:
# Initialize connection
await session.initialize()
# List available tools
tools = await session.list_tools()
print("Available tools:", tools)
示例1:从Python文件中提取AST
# Extract AST from main.py
result = await session.call_tool(
"extract_ast",
arguments={
"file_path": "./src/main.py"
}
)
print(result.content[0].text)
示例2:将代码导入矢量数据库
# Import a module to ChromaDB for search
result = await session.call_tool(
"import_to_chromadb",
arguments={
"file_path": "./src/utils.py"
}
)
print(result.content[0].text)
示例3:搜索类似代码
# Search for similar authentication code
result = await session.call_tool(
"search_similar_code",
arguments={
"query": "user authentication with JWT tokens"
}
)
print(result.content[0].text)
示例4:生成依赖关系图
# Generate dependency graph for a module
result = await session.call_tool(
"generate_dependency_graph",
arguments={
"file_path": "./src/controllers.py"
}
)
print(result.content[0].text)
故障排除
常见问题
1.导入错误
问题:模块导入失败 解决方案:
# Ensure virtual environment is activated
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
# Reinstall dependencies
pip install -r requirements.txt
2.ChromaDB连接问题
问题:无法连接到矢量数据库 解决方案:
# Check if ChromaDB path exists
ls -la ./chroma_db/
# Recreate database if corrupted
rm -rf ./chroma_db/
# Re-import your code files
3.Python文件解析错误
问题:AST提取某些文件失败 解决方案:
- 确保文件路径正确且可访问
- 检查Python文件是否具有有效语法
- 验证文件权限
- 如果相对路径导致问题,请使用绝对路径
4.大型代码库的内存问题
问题:服务器在分析过程中内存不足 解决方案:
# Process files individually rather than whole directories
# Increase system memory or process files in smaller batches
# Use file filtering to exclude test files or generated code
5.缺少依赖关系
问题:工具因缺少包而失败 解决方案:
# Update requirements
pip install --upgrade -r requirements.txt
# Install specific missing packages
pip install fastmcp chromadb google-genai sentence-transformers
性能提示
- 批处理:按顺序而不是并行处理多个文件
- 文件筛选:排除非代码文件(测试、文档、生成的代码)
- 内存管理:定期清除大型代码库的矢量数据库
- 缓存:启用ChromaDB持久性以避免重新索引
调试模式
通过设置环境变量启用调试日志记录:
export MCP_DEBUG=1
export LOG_LEVEL=DEBUG
python mcp_codebase_analyzer.py
获取帮助
如需额外支持:
- 检查日志以了解详细的错误消息
- 验证所有依赖项是否已正确安装
- 首先使用简单的Python文件进行测试
- 确保codebase_analyzer_workflow目录存在并包含所需的脚本
建筑
MCP服务器充当 codebase_analyzer_workflow 工具,为以下内容提供标准化接口:
MCP Client
↓
mcp_codebase_analyzer.py (MCP Server)
↓
codebase_analyzer_workflow/
├── ast_extractor.py
├── chroma_ast_importer.py
├── similarity_search.py
└── function_dependency_graph.py
版本信息
- 服务器版本: 1.0.0
- 协议:模型上下文协议(MCP)
- Python兼容性: 3.8+
- 许可证:[您的许可证在这里]
贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
许可证
[在此处指定您的许可证]