返回市场
星图-MCP服务器

星图-MCP服务器

作者:angrysky5625 星标更新:2025-07-19

项目介绍

AST MCP 服务器

一个通过抽象语法树(AST)和抽象语义图(ASG)提供代码结构和语义分析能力的MCP(模型上下文协议)服务器。

特性

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

安装

  1. 克隆此仓库:
git clone https://github.com/yourusername/ast-mcp-server.git
cd ast-mcp-server
  1. 使用uv设置环境:
# 如果尚未安装uv,请先安装
# pip install uv

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate  # 在Windows上:.venv\Scripts\activate

# 安装依赖项
uv pip install -r requirements.txt
  1. 构建解析器:
uv run build_parsers.py

与Claude Desktop一起使用

  1. 配置Claude Desktop以使用该服务器。最简单的方法是使用提供的claude_desktop_config.json文件:
{
  "mcpServers": {
    "AstAnalyzer": {
      "command": "uv",
      "args": [
        "--directory", "/absolute/path/to/ast-mcp-server",
        "run", "server.py"
      ]
    }
  }
}
  1. 确保将/absolute/path/to/ast-mcp-server替换为您系统上的实际绝对路径。

  2. 将此配置添加到您的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服务器。

  2. 在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差异并缓存

添加更多语言支持

要添加对其他语言的支持:

  1. 安装相应的tree-sitter语言包:
uv pip install tree-sitter-<language>
  1. 更新build_parsers.pyast_mcp_server/tools.py中的LANGUAGE_MODULES字典。

  2. 运行uv run build_parsers.py以初始化新语言。

工作原理

AST MCP服务器通过模型上下文协议(MCP)与Claude Desktop连接。启动时:

  1. Claude Desktop使用uv run和适当的工作目录启动服务器
  2. 服务器加载tree-sitter语言模块以解析各种编程语言
  3. 注册工具和资源到MCP协议
  4. Claude可以访问这些工具来分析您在聊天中分享的代码

所有工具执行都在您的本地机器上进行,结果返回给Claude进行解释。

许可证

MIT