一个通过抽象语法树(AST)和抽象语义图(ASG)提供代码结构和语义分析能力的MCP(模型上下文协议)服务器。
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_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 Desktop配置中:
~/Library/Application Support/claude-desktop/claude_desktop_config.json~/.config/claude-desktop/claude_desktop_config.json重启Claude Desktop以加载新的MCP服务器。
在Claude Desktop中,现在可以使用基于AST的代码分析工具。
AST MCP服务器运行正常。以下是已验证的功能概述:
基本AST解析 ✓
成功将Python代码解析为详细的抽象语法树 结构显示了正确的节点层次结构,包括类型、位置和内容
ASG生成 ✓
生成了一个包含节点和边的抽象语义图 图形正确地显示了组件之间的关系
代码分析 ✓
成功分析了代码结构,识别了: 函数(带有名称、位置和参数) 类 复杂度指标
资源缓存 ✓
parse_and_cache函数工作正常
生成了一个URI,用于稍后检索解析的AST
多语言支持 ✓
成功解析了Python和JavaScript代码
supported_languages工具确认Python和JavaScript可用
服务器完全运行,并且所有关键功能均按预期工作。当使用更新的配置在claude_desktop_config.json中集成到Claude Desktop时,它将提供强大的代码分析功能。
要在开发模式下运行服务器并使用MCP检查器:
# 使用包含的脚本
./dev_server.sh
# 或手动
uv run -m mcp dev server.py
服务器提供了以下工具:
parse_to_ast:将代码解析为抽象语法树generate_asg:从代码生成抽象语义图analyze_code:分析代码结构和复杂度supported_languages:获取支持的编程语言列表parse_and_cache:将代码解析为AST并缓存以便资源访问generate_and_cache_asg:生成ASG并缓存以便资源访问analyze_and_cache:分析代码并缓存结果以便资源访问parse_to_ast_incremental:具有增量支持的代码解析,以加快处理速度generate_enhanced_asg:生成增强的ASG,具有更好的作用域处理diff_ast:查找两个代码版本之间的差异find_node_at_position:定位给定行和列的具体节点parse_and_cache_incremental:增量解析代码并缓存结果generate_and_cache_enhanced_asg:生成增强的ASG并缓存ast_diff_and_cache:生成AST差异并缓存要添加对其他语言的支持:
uv pip install tree-sitter-<language>
更新build_parsers.py和ast_mcp_server/tools.py中的LANGUAGE_MODULES字典。
运行uv run build_parsers.py以初始化新语言。
AST MCP服务器通过模型上下文协议(MCP)与Claude Desktop连接。启动时:
uv run和适当的工作目录启动服务器所有工具执行都在您的本地机器上进行,结果返回给Claude进行解释。
MIT