files-cleanup
概述
files-cleanup
是一个基于 Model Context Protocol (MCP) 的服务器工具,旨在识别指定目录中潜在的无用文件和重复文件。它会递归扫描目录,直至指定的深度,检查空文件和内容相同的文件(基于 MD5 哈希值)。该工具对于清理文件系统和回收磁盘空间非常有用。它是一个只读工具,不会对系统中的文件进行任何修改。
功能
- 查找空文件: 识别大小为 0 的文件。
- 检测重复文件: 使用 MD5 哈希值查找内容相同的文件。
- 可配置的搜索深度: 允许限制递归深度,避免扫描过多目录。
- 可配置的文件数量限制: 设置最大处理文件数,防止执行时间过长。
- 优雅的错误处理: 报告无法访问的目录或读取错误等问题。
- 提供清晰的输出: 列出潜在的无用文件和重复文件组及其路径。
- 尊重常见的排除模式: 默认跳过
node_modules
和.git
目录。
- 限制每个目录的处理数量: 每个目录最多处理 100 个项目,以提高在非常大的目录中的响应速度。
- 时间和文件数量限制: 当达到最大执行时间或文件数量时停止扫描。
使用方法
此 MCP 服务器提供了一个工具:
find-useless-files
。要使用它,您需要一个可以通过标准输入/输出(stdio)传输连接到该服务器的 MCP 客户端。find-useless-files
工具接受以下参数:该工具返回一个包含
content
数组的结果,其中包含文本块。输出将列出:- 找到的潜在无用文件数量。
- 潜在无用文件列表及其原因(例如,“(空文件)”)。
- 找到的重复文件数量。
- 重复文件列表,指示每个重复文件的原始文件(例如,“path/to/duplicate.txt (重复于 path/to/original.txt)”)。
- 扫描过程中发生的任何错误消息。
入门指南
开发模式
- 安装依赖项: 确保已安装必要的包:
- 使用检查器运行服务器: 使用 Node.js 执行服务器脚本:
服务器将启动并监听 MCP 客户端连接,您可以通过以下 URL 访问 UI:http://localhost:6274/
连接到 Claude
- 安装依赖项: 确保已安装必要的包:
- 运行服务器: 使用 Node.js 执行服务器脚本:
服务器将启动并监听其标准输入和输出流上的 MCP 客户端连接。
- 使用 MCP 客户端连接: 使用 MCP 客户端向
find-useless-files
工具发送请求,提供directory
参数,并可选地提供maxDepth
和maxFiles
。
示例交互(概念性)
假设您有一个 MCP 客户端,您可能会发送如下请求(具体格式取决于您的客户端):
服务器将处理请求并返回类似以下的响应:
重要注意事项
- “无用”定义: 目前,该工具仅将空文件和空目录视为“无用”。开发过程刚刚开始。
- 文件删除: 该工具仅识别潜在的无用文件和重复文件。它不会删除任何文件。 您需要手动查看报告的文件并决定删除哪些文件。删除文件时请务必谨慎。
- 性能: 扫描具有高
maxDepth
和maxFiles
的大型目录可能会花费大量时间。根据扫描目录的大小调整这些参数。
- 错误处理: 虽然该工具包含基本的错误处理,但在生产使用中,您可能需要添加更健壮的错误报告和日志记录。
- 重复检测和大文件: 当前的重复检测会读取每个文件的全部内容以计算 MD5 哈希值。对于非常大的文件,这可能会占用大量内存。为了提高大文件的效率,请考虑使用流式哈希计算,并可能首先比较文件大小。
潜在改进
- 更复杂的“无用”文件检测: 实现对常见临时文件扩展名(例如
.tmp
、.log
)、备份文件或基于修改日期的文件的检查。
- 忽略特定文件或模式的选项: 允许用户提供要排除在扫描之外的文件名或模式列表。
- 交互模式(带客户端): 开发一个 MCP 客户端,允许用户浏览找到的文件并选择性地删除它们(带确认步骤!)。
- 进度报告: 向客户端提供扫描进度的反馈,特别是对于长时间运行的操作。
- 配置文件: 允许用户通过配置文件配置
maxDepth
、maxFiles
和其他选项的默认值。
- Author:waytomcp
- URL:https://www.waytomcp.com/article/gabrielmoris/mcp-files-cleanup
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!