使用说明

项目简介

MCP Tree-sitter Server 是一个实现了 Model Context Protocol (MCP) 的服务器,它利用 Tree-sitter 库提供强大的代码分析能力。该服务器旨在为 Claude 等语言模型提供代码库的智能访问,并进行有效的上下文管理。通过结构化的代码探索、灵活的查询和高效的缓存机制,该服务器能够帮助语言模型更深入地理解和处理代码。

主要功能点

  • 多粒度代码探索: 支持从多个层次 Examination 代码结构,灵活探索代码库。
  • 智能上下文管理: 提供恰到好处的代码上下文信息,避免 LLM 上下文窗口被无关信息淹没。
  • 广泛的语言支持: 通过 tree-sitter-language-pack 支持包括 Python, JavaScript, TypeScript, Go, Rust, C, C++, Swift, Java, Kotlin, Julia, APL 等多种编程语言。
  • 结构化代码理解: 基于抽象语法树 (AST) 理解代码结构,实现高效的游标遍历。
  • 代码搜索: 支持文本搜索和 Tree-sitter 查询,快速定位代码模式。
  • 性能优化: 通过解析树缓存机制优化性能。
  • 代码符号提取: 提取和分析函数、类和其他代码符号。
  • 依赖分析: 识别和分析代码依赖关系。
  • 状态持久化: 在服务器重启之间保持项目注册和缓存数据。
  • 安全性: 内置安全边界和输入验证机制。

安装步骤

  1. 环境准备: 确保已安装 Python 3.10+ 及您偏好语言的 Tree-sitter 解析器。
  2. 安装:
    • 使用 pip 安装:
      pip install mcp-server-tree-sitter
    • 或者从 GitHub 仓库克隆并安装开发版本:
      git clone https://github.com/wrale/mcp-server-tree-sitter.git
      cd mcp-server-tree-sitter
      pip install -e ".[dev,languages]"

服务器配置

要将 MCP Tree-sitter Server 集成到 MCP 客户端(例如 Claude Desktop),您需要配置客户端以连接到该服务器。以下是 Claude Desktop 的配置示例,您需要将配置添加到 'claude_desktop_config.json' 文件的 'mcpServers' 部分。

{
  "mcpServers": {
    "tree_sitter": {
      "name": "tree_sitter",
      "command": "python",
      "args": [
        "-m",
        "mcp_server_tree_sitter.server"
      ]
    }
  }
}

配置参数说明:

  • server name: 服务器名称,例如 "tree_sitter",用于在客户端中标识和调用该服务器。
  • command: 启动服务器的命令,通常是 Python 解释器路径。
  • args: 启动命令的参数列表,指定运行 'mcp_server_tree_sitter.server' 模块以启动服务器。

注意:

  • 确保 Claude Desktop 配置文件路径正确 (macOS/Linux: '~/Library/Application Support/Claude/claude_desktop_config.json', Windows: '%APPDATA%\Claude\claude_desktop_config.json')。
  • 如果使用 uv 或其他包管理器,请根据实际情况调整 'command' 和 'args'。
  • 配置完成后,重启 Claude Desktop 以加载 MCP 服务器。

基本使用方法

  1. 注册项目: 使用 'register_project_tool' 工具注册您要分析的代码项目,指定项目路径和名称。例如:
    register_project_tool(path="/path/to/your/project", name="my-project")
  2. 探索代码: 使用 'list_files'、'get_file' 等工具浏览项目文件。例如,列出项目中的 Python 文件:
    list_files(project="my-project", pattern="**/*.py")
  3. 代码分析: 使用 'get_ast'、'get_symbols'、'run_query' 等工具分析代码结构、提取符号或运行 Tree-sitter 查询。例如,获取文件的抽象语法树:
    get_ast(project="my-project", path="src/main.py", max_depth=3)
  4. 代码搜索: 使用 'find_text' 或 'run_query' 工具搜索代码。例如,查找包含 "function" 文本的文件:
    find_text(project="my-project", pattern="function", file_pattern="**/*.py")

更多工具和详细用法请参考仓库中的 FEATURES.md 文档。

信息

分类

开发者工具