使用说明
项目简介
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 查询,快速定位代码模式。
- 性能优化: 通过解析树缓存机制优化性能。
- 代码符号提取: 提取和分析函数、类和其他代码符号。
- 依赖分析: 识别和分析代码依赖关系。
- 状态持久化: 在服务器重启之间保持项目注册和缓存数据。
- 安全性: 内置安全边界和输入验证机制。
安装步骤
- 环境准备: 确保已安装 Python 3.10+ 及您偏好语言的 Tree-sitter 解析器。
- 安装:
- 使用 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]"
- 使用 pip 安装:
服务器配置
要将 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 服务器。
基本使用方法
- 注册项目: 使用 'register_project_tool' 工具注册您要分析的代码项目,指定项目路径和名称。例如:
register_project_tool(path="/path/to/your/project", name="my-project") - 探索代码: 使用 'list_files'、'get_file' 等工具浏览项目文件。例如,列出项目中的 Python 文件:
list_files(project="my-project", pattern="**/*.py") - 代码分析: 使用 'get_ast'、'get_symbols'、'run_query' 等工具分析代码结构、提取符号或运行 Tree-sitter 查询。例如,获取文件的抽象语法树:
get_ast(project="my-project", path="src/main.py", max_depth=3) - 代码搜索: 使用 'find_text' 或 'run_query' 工具搜索代码。例如,查找包含 "function" 文本的文件:
find_text(project="my-project", pattern="function", file_pattern="**/*.py")
更多工具和详细用法请参考仓库中的 FEATURES.md 文档。
信息
分类
开发者工具