README
🚀 AST MCP 服务器
AST MCP 服务器借助抽象语法树(AST)和抽象语义图(ASG),为代码提供结构和语义分析功能。它能解析代码、生成语义图、分析复杂度,支持多语言,还与 Claude 桌面版等 MCP 客户端兼容,可高效处理大型文件。
✨ 主要特性
- 代码解析:将代码解析为抽象语法树(AST),并从代码生成抽象语义图(ASG)。
- 代码分析:分析代码结构和复杂度,支持语法验证。
- 多语言支持:支持多种编程语言,如 Python、JavaScript。
- 兼容性良好:与 Claude 桌面版和其他 MCP 客户端兼容。
- 高效处理:采用增量解析,能更快处理大型文件。
- 语义分析增强:具备增强的作用域处理和更完整的语义分析。
- 版本变化识别:通过 AST 差分识别代码版本之间的变化。
- 高级功能丰富:支持增量更新、作用域分析增强、跨语言调用图生成和依赖关系分析。
📦 安装指南
- 克隆此仓库:
git clone https://github.com/yourusername/ast-mcp-server.git
cd ast-mcp-server
- 使用
uv设置环境:
# 如果尚未安装 uv,请先安装
# pip install uv
# 创建并激活虚拟环境
uv venv
source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate
# 安装依赖项
uv pip install -r requirements.txt
- 构建解析器:
uv run build_parsers.py
💻 使用示例
与 Claude 桌面版配合使用
- 配置 Claude 桌面版以使用该服务器。最简单的方法是使用提供的
claude_desktop_config.json文件:
{
"mcpServers": {
"AstAnalyzer": {
"command": "uv",
"args": [
"--directory", "/absolute/path/to/ast-mcp-server",
"run", "server.py"
]
}
}
}
- 确保将
/absolute/path/to/ast-mcp-server替换为您系统的实际绝对路径。 - 将此配置添加到您的 Claude 桌面版配置中:
- 在 macOS 上:
~/Library/Application Support/claude-desktop/claude_desktop_config.json - 在 Linux 上:
~/.config/claude-desktop/claude_desktop_config.json - 在 Windows 上:%APPDATA%\claude-desktop\claude_desktop_config.json%
- 在 macOS 上:
- 重新启动 Claude 桌面版以加载新的 MCP 服务器。
- 在 Claude 桌面版中,现在可以使用基于 AST 的代码分析工具了。
AST MCP 服务器运行正常。以下是经过验证的功能摘要:
- 基本 AST 解析:✓
- 增量解析支持:✓
- 复杂度分析功能:✓
📚 详细文档
安装步骤说明
如需安装 AST MCP 服务器,请按照以下步骤操作:
- 克隆仓库到本地开发环境。
- 使用 Python 虚拟环境管理工具
uv创建并激活虚拟环境。 - 在虚拟环境中安装项目依赖项,包括 tree-sitter 语言支持库和其他必要包。
- 运行构建脚本以初始化所有支持的编程语言解析器。
与 Claude 桌面版集成
配置完成后,Claude 桌面版将能够通过 MCP 协议访问服务器提供的分析工具。用户可以在聊天窗口中分享代码片段,Claude 将利用这些工具进行深入分析并提供见解。
开发和测试
- 工具注册:服务器在启动时会自动注册所有可用的工具和资源到 MCP 协议。
- 本地执行:所有工具执行都在用户的本地设备上完成,结果返回给 Claude 进行解释和展示。
可用工具
基本功能
- 代码解析为 AST
- 生成对应的 ASG
- 复杂度分析
- 语法验证
高级功能
- 增量更新支持
- 作用域分析增强
- 跨语言调用图生成
- 依赖关系分析
添加更多语言支持
要添加新的编程语言支持,请执行以下步骤:
- 在仓库中添加新语言的 tree-sitter 语法定义文件。
- 运行构建脚本
build_parsers.py初始化解析器。 - 更新工具注册逻辑以包含新语言的支持。
工作原理
AST MCP 服务器通过 Model Context Protocol (MCP) 与 Claude 桌面版连接。启动时:
- 服务初始化:Claude 桌面版使用
uv run启动服务器,并指定工作目录。 - 加载解析器模块:服务器加载 tree-sitter 语言模块,以便支持多种编程语言的解析。
- 注册工具和资源:所有工具和资源被注册到 MCP 协议中。
- 分析执行:Claude 可以通过 MCP 协议调用这些工具对用户分享的代码进行分析。
📄 许可证
本项目采用 MIT 许可证。
Scan to contact