项目简介
Source Tree Generator 是一个 MCP 服务器,它可以扫描指定目录,并根据 '.gitignore' 文件的规则生成该目录的文件树结构的 JSON 数据。这个服务器旨在帮助大型语言模型(LLM),如 Claude,快速了解项目的目录结构,从而更好地理解代码库,并辅助进行代码编辑和分析等任务。
主要功能点
- 生成文件树: 扫描指定目录,包括子目录和文件,并以 JSON 格式输出整个文件树结构。
- '.gitignore' 支持: 遵守项目根目录下的 '.gitignore' 文件规则,自动排除在 '.gitignore' 中指定的文件和目录,避免无关文件干扰。
- 目录过滤: 自动排除以 '.' 开头的隐藏目录。
- 易于集成: 可以通过简单的配置集成到支持 MCP 协议的客户端,如 Claude for Desktop。
安装步骤
-
安装 uv: uv 是一个快速的 Python 包安装和管理工具。如果你的系统中没有安装 uv,请先安装它。打开终端并执行以下命令:
curl -LsSf https://astral.sh/uv/install.sh | sh -
下载项目代码: 将 'mcp-src-tree' 项目的代码克隆到本地。你可以使用 'git clone' 命令或者直接下载 ZIP 文件。
git clone https://github.com/owayo/mcp-src-tree.git cd mcp-src-tree -
安装依赖库: 在项目根目录下,使用 'uv sync' 命令安装项目所需的 Python 依赖库。
uv sync
服务器配置
要将 Source Tree Generator MCP 服务器配置到 MCP 客户端(例如 Claude for Desktop),你需要提供服务器的启动命令和参数。以下是一个示例 'claude_desktop_config.json' 配置文件片段,展示了如何配置 'src-tree' 服务器:
{ "mcpServers": { "src-tree": { "command": "uv", "args": [ "--directory", "/path/to/mcp-src-tree", // 请替换为 mcp-src-tree 项目在您本地机器上的**绝对路径** "run", "tree.py" ] } } }
配置参数说明:
- '"src-tree"': 服务器的名称,可以自定义,用于在客户端中引用。
- '"command": "uv"': 启动服务器的命令,这里使用 'uv run' 来运行 Python 脚本。
- '"args"': 传递给 'uv run' 命令的参数列表。
- '"--directory", "/path/to/mcp-src-tree"': 指定 'uv' 命令的工作目录为 'mcp-src-tree' 项目的根目录。请务必将 '/path/to/mcp-src-tree' 替换为您本地 'mcp-src-tree' 项目的绝对路径。 例如,如果你的项目在 '/Users/yourname/Documents/mcp-src-tree',则应替换为 '/Users/yourname/Documents/mcp-src-tree'。
- '"run", "tree.py"': 告诉 'uv run' 执行项目根目录下的 'tree.py' 文件,即 MCP 服务器的入口脚本。
请注意: '/path/to/mcp-src-tree' 必须替换为 你本地机器上 'mcp-src-tree' 项目的实际绝对路径。
基本使用方法
配置完成后,在支持 MCP 协议的客户端中,你可以通过指示 LLM (如 Claude) 来使用 'src-tree' 服务器的功能。例如,你可以向 Claude 发出类似以下的指令:
'请分析 /Users/xxx/GitHub/xxx/ 的源代码目录结构'
或者更简洁的:
'/Users/xxx/GitHub/xxx/ 的源码树'
重要提示:
- 指令中指定的目录路径 '/Users/xxx/GitHub/xxx/' 应该是你想要查看文件树的 项目根目录。
- 要使 '.gitignore' 生效,'.gitignore' 文件必须位于你指定的 项目根目录 下。
服务器会将生成的文件树 JSON 数据返回给客户端,客户端可以将这些信息提供给 LLM,帮助 LLM 理解项目结构。 例如,Claude 可能会回复类似如下的信息,展示项目的文件结构:
はい、ソースツリーを確認させていただきます。 プロジェクトの構造を確認しました。以下のような構成になっています: src/ └── xxxx/ ├── __init__.py ├── converter.py ├── html_converter.py ├── image_processor.py ├── toc_analyzer.py └── utils.py
信息
分类
开发者工具