这是一个Model Context Protocol (MCP) 服务器,专注于代码分析。它利用抽象语法树(AST)和抽象语义图(ASG)技术,为大型语言模型(LLMs)或其他AI系统提供深入的代码结构和语义信息,从而提升代码理解、生成和修改的能力。

主要功能点

  • 将多种编程语言的代码解析为结构化的抽象语法树(AST)。
  • 从AST生成抽象语义图(ASG),包含数据流和控制流信息(简化实现)。
  • 提供查询代码结构和语义的能力。
  • 基于代码结构提供上下文相关的代码洞察(简化分析)。

安装步骤

  1. 克隆本项目仓库到你的本地计算机。
  2. 创建并激活一个Python虚拟环境。
    python -m venv .venv
    source .venv/bin/activate # Windows: .venv\Scripts\activate
  3. 安装项目所需的依赖库。
    pip install -r requirements.txt
  4. 构建树语法的语言解析器。
    python build_parsers.py

服务器配置

MCP客户端(如支持MCP的LLM界面)需要配置服务器的启动信息。你需要根据实际的项目路径填写配置。

  • 'AstAnalyzer': 服务器的唯一名称,客户端用于识别。
  • 'command': 启动服务器所需的Python解释器的绝对路径。
  • 'args': 启动服务器脚本 ('server.py') 的绝对路径作为参数。

例如,在支持MCP的LLM客户端的配置文件 ('claude_desktop_config.json' 或类似文件) 中添加如下配置块:

{
  "mcpServers": {
    "AstAnalyzer": { // 服务器的名称,客户端将通过此名称引用
      "command": "/absolute/path/to/your/python/interpreter", // 你的Python解释器程序的完整路径
      "args": [
        "/absolute/path/to/ast-mcp-server/server.py" // 本项目的 server.py 脚本的完整路径
      ]
    }
    // 你可以根据需要在这里添加其他 MCP 服务器的配置
  },
  // ... 其他配置
}

基本使用方法

  1. 按照上述“服务器配置”步骤,在你的MCP客户端中配置 'AstAnalyzer' 服务器。
  2. 启动你的MCP客户端。客户端会自动尝试连接配置的MCP服务器。
  3. 启动AST/ASG Code Analysis MCP服务器。你可以直接运行 'python server.py',或者如果客户端配置正确,客户端启动时可能也会自动运行 'command' 中指定的脚本。
  4. 一旦客户端连接成功,你的LLM就可以通过MCP协议发现并调用该服务器提供的工具(如 'parse_to_ast', 'generate_asg', 'analyze_code')以及访问资源(如 'ast://...', 'asg://...'),从而获取关于代码的结构化和语义信息,用于辅助完成编程任务。

信息

分类

开发者工具