首页/开发者工具/ast-mcp-server

ast-mcp-server

查看源码
2025-5-12
Words 1099Read Time 3 min
Score:85

提供代码结构分析和语义分析功能的MCP服务器,支持多语言代码解析和抽象语义图生成。

Python

AST MCP 服务器

一个基于抽象语法树(AST)和抽象语义图(ASG)的 MCP(Model Context Protocol)服务器,提供代码结构和语义分析功能。

功能特性

  • 将代码解析为抽象语法树(AST)
  • 从代码生成抽象语义图(ASG)
  • 分析代码结构和复杂度
  • 支持多种编程语言(Python、JavaScript)
  • 兼容 Claude Desktop 和其他 MCP 客户端
  • 增量解析,加速大文件处理
  • 增强作用域处理,提供更完整的语义分析
  • AST 差异比较,识别代码版本间的变化

安装指南

  1. 克隆本仓库:
  1. 使用 uv 配置环境:
  1. 构建解析器:

与 Claude Desktop 集成使用

  1. 配置 Claude Desktop 使用本服务器。最简单的方法是使用提供的 claude_desktop_config.json 文件:
  1. 确保将 /absolute/path/to/ast-mcp-server 替换为系统的实际绝对路径。
  1. 将此配置添加到 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
  1. 重启 Claude Desktop 以加载新的 MCP 服务器。
  1. 在 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 差异并缓存

添加更多语言支持

要添加对更多语言的支持:
  1. 安装相应的 tree-sitter 语言包:
  1. 更新 build_parsers.pyast_mcp_server/tools.py 中的 LANGUAGE_MODULES 字典。
  1. 运行 uv run build_parsers.py 以初始化新语言。

工作原理

AST MCP 服务器通过模型上下文协议(MCP)与 Claude Desktop 连接。启动时:
  1. Claude Desktop 使用 uv run 和相应的工作目录启动服务器
  1. 服务器加载 tree-sitter 语言模块以解析各种编程语言
  1. 它向 MCP 协议注册工具和资源
  1. Claude 随后可以访问这些工具来分析您在聊天中分享的代码
所有工具执行都在本地计算机上进行,结果返回给 Claude 进行解释。

许可证

MIT
上一篇
mcp-language-server
下一篇
mcp-trino