AST MCP 服务器
一个基于抽象语法树(AST)和抽象语义图(ASG)的 MCP(Model Context Protocol)服务器,提供代码结构和语义分析功能。
功能特性
- 将代码解析为抽象语法树(AST)
- 从代码生成抽象语义图(ASG)
- 分析代码结构和复杂度
- 支持多种编程语言(Python、JavaScript)
- 兼容 Claude Desktop 和其他 MCP 客户端
- 增量解析,加速大文件处理
- 增强作用域处理,提供更完整的语义分析
- AST 差异比较,识别代码版本间的变化
安装指南
- 克隆本仓库:
- 使用
uv
配置环境:
- 构建解析器:
与 Claude Desktop 集成使用
- 配置 Claude Desktop 使用本服务器。最简单的方法是使用提供的
claude_desktop_config.json
文件:
- 确保将
/absolute/path/to/ast-mcp-server
替换为系统的实际绝对路径。
- 将此配置添加到 Claude Desktop 的配置文件中:
- 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
- 重启 Claude Desktop 以加载新的 MCP 服务器。
- 在 Claude Desktop 中,您现在可以使用基于 AST 的代码分析工具。
AST MCP 服务器运行正常。以下是我已验证的功能摘要:
基础 AST 解析 ✓
成功将 Python 代码解析为详细的抽象语法树
结构显示正确的节点层次结构,包含类型、位置和内容
ASG 生成 ✓
生成了包含节点和边的抽象语义图
图正确显示了组件之间的关系
代码分析 ✓
成功分析代码结构,识别出:
函数(包含名称、位置和参数)
类
复杂度指标
资源缓存 ✓
parse_and_cache 函数正常工作
生成了用于后续检索已解析 AST 的 URI
多语言支持 ✓
成功解析 Python 和 JavaScript 代码
supported_languages 工具确认 Python 和 JavaScript 可用
服务器完全正常运行,所有关键功能均符合预期。当使用更新后的 claude_desktop_config.json 配置与 Claude Desktop 集成时,它将提供强大的代码分析能力。
开发与测试
要在开发模式下运行服务器并使用 MCP 检查器:
可用工具
服务器提供以下工具:
基础工具
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 差异并缓存
添加更多语言支持
要添加对更多语言的支持:
- 安装相应的 tree-sitter 语言包:
- 更新
build_parsers.py
和ast_mcp_server/tools.py
中的LANGUAGE_MODULES
字典。
- 运行
uv run build_parsers.py
以初始化新语言。
工作原理
AST MCP 服务器通过模型上下文协议(MCP)与 Claude Desktop 连接。启动时:
- Claude Desktop 使用
uv run
和相应的工作目录启动服务器
- 服务器加载 tree-sitter 语言模块以解析各种编程语言
- 它向 MCP 协议注册工具和资源
- Claude 随后可以访问这些工具来分析您在聊天中分享的代码
所有工具执行都在本地计算机上进行,结果返回给 Claude 进行解释。
许可证
MIT
- Author:waytomcp
- URL:https://www.waytomcp.com/article/angrysky56/ast-mcp-server
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!