垃圾文件清理服务

一款桌面MCP服务,提供扫描、分析和清理垃圾文件的工具,主要针对macOS优化。

  • by dabing1022
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 dabing1022/trash-cleaner-mcp-server

使用说明

垃圾清理器mcp服务器

中文 README

一种桌面MCP服务,提供扫描、分析和清理垃圾文件的工具,主要针对macOS进行了优化。

注: 大多数清洁工具(cleanAppCaches, cleanTempFiles, cleanAppRemnants, smartCleanSystem)专为以下目的而设计和测试 macOS。在其他系统上运行它们可能不起作用或导致意外行为。

特性

  • 跨平台: (计划)支持Windows、macOS、Linux。
  • 智能扫描: 识别各种类型的垃圾文件(缓存、日志、临时文件等)。
  • 选择性清洁: 用于清理特定区域的工具,如应用程序缓存、临时文件和应用程序残留物。
  • VS代码扩展管理: 查找和清理旧/未使用的VS代码扩展的工具。
  • 文件系统实用程序: 目录分析、文件查找、大小计算、删除等工具。
  • 系统信息: 基本操作系统检测。
  • 审核日志记录: 通过以下方式跟踪操作 [Audit] 工具。
  • 计划任务: 使用灵活的调度程序自动执行清洁和其他任务。
    • 使用cron表达式或简单间隔定义任务。
    • 将任何已注册的工具作为执行目标。
    • 使用精确的工具名称创建/更新任务(toolName)或自然语言查询(toolQuery)通过模糊匹配。
    • 完整任务管理(列表、详细信息、更新、启用/禁用、删除)。
    • 手动触发和执行历史跟踪。

可用工具(功能)

此服务器注册了几个可通过MCP协议调用的工具:

macOS清洁工具(针对macOS进行了优化):

  • macOSWarning:如果在非macOS系统上运行,则显示警告。
  • cleanAppCaches:清理各种应用程序缓存(用户缓存、保存的应用程序状态)。
    • 选项: dryRun (bool,默认值:true), olderThan (int,可选-天)。
  • cleanTempFiles:清除系统临时文件。
    • 选项: dryRun (bool,默认值:true), olderThan (int,可选,默认值:7天)。
  • cleanAppRemnants:扫描并清除已卸载应用程序留下的配置/缓存文件。
    • 选项: appName (字符串,可选-部分名称匹配), dryRun (bool,默认值:true)。
  • smartCleanSystem:根据预定义的级别执行系统清理(针对常见的垃圾位置)。
    • 选项: cleanLevel (枚举:“安全”、“正常”、“深度”,默认值:“安全的”), dryRun (bool,默认值:true)。

跨平台工具(扫描、文件系统、操作系统):

  • cleanVSCodeExtensions:清除过时版本的VS Code(以及兼容的编辑器,如VSCodium、Cursor)扩展。
    • 选项: editorPath (字符串,可选-特定编辑器扩展名的路径,默认:扫描所有已知位置), dryRun (bool,默认值:true)。
  • reportVSCodeExtensions:生成一份报告,列出可以清理的过时VS代码扩展名。
    • 选项: editorPath (字符串,可选)。
  • findLargeFiles:查找目录中超过指定大小的文件。
    • 选项: path (字符串), minSize (int,默认值:100MB), maxDepth (int,默认值:3)。
  • scanFullSystem:扫描整个系统的文件结构(尊重排除项)以报告空间使用情况。
    • 选项: excludePaths (string[],可选), maxDepth (int,默认值:10)。
  • scanDirectory:分析特定目录中的内容和大小分布。
    • 选项: path (字符串), excludePaths (string[],可选), maxDepth (int,默认值:10), includeSubdirs (bool,默认值:true)。
  • getFolderSize:计算并返回文件夹的总大小。
    • 选项: path (字符串)。
  • listDirectory:列出指定路径中的文件和子目录。
    • 选项: path (字符串), showHidden (bool,默认值:false)。
  • findFiles:在目录中搜索与特定模式(支持通配符)匹配的文件。
    • 选项: path (字符串), pattern (字符串), maxDepth (int,默认值:5)。
  • analyzeDirectory:提供目录中文件类型和大小分布的统计信息。
    • 选项: path (字符串), includeSubdirs (bool,默认值:true)。
  • getFileHash:计算文件的MD5、SHA1或SHA256哈希值。
    • 选项: path (字符串), algorithm (枚举:“md5”、“sha1”、“sha256”,默认值:“md五”)。
  • getFileType:检索基本文件信息,包括MIME类型。
    • 选项: path (字符串)。
  • deletePath:删除指定的文件或文件夹(需要明确确认,并额外检查危险路径)。
    • 选项: path (字符串), confirm (bool,必须为真), dangerConfirm (bool,可选-对于有潜在风险的删除是必需的)。
  • checkPathExists:检查给定的路径是否存在,并确定它是文件还是目录。
    • 选项: path (字符串)。
  • getSystemType:返回操作系统标识符(例如“darwin”、“win32”、“linux”)。

审计工具:

  • viewAuditLog:查看应用程序主日志文件中的最新行(combined.log).
    • 选项: lines (int,默认值:100,最大值:1000)。
  • clearAuditLog: 删除 主应用程序日志文件(combined.log).需要确认。
    • 选项: confirm (bool,必须为true)。

计划任务(TrashCleaner_Scheduler 工具)

提供安排其他已注册工具执行的功能。

  • TrashCleaner_Scheduler_CreateTask:创建新的计划任务。
    • 需要 name, cronExpression.
    • 需要 要么 toolName (精确的工具名称,如 "TrashCleaner_CleanAppCaches") 或 toolQuery (模糊描述,如 "clean app caches").
    • 可选的 toolParams, enabled.
  • TrashCleaner_Scheduler_ListTasks:列出所有已配置的计划任务及其状态。
  • TrashCleaner_Scheduler_GetTaskDetails:按ID获取特定任务的详细信息。
  • TrashCleaner_Scheduler_UpdateTask:更新现有任务。可以修改名称、计划、目标工具(通过 toolName 或 toolQuery)、参数和启用状态。
  • TrashCleaner_Scheduler_EnableTask:启用已禁用的任务。
  • TrashCleaner_Scheduler_DisableTask:禁用已启用的任务。
  • TrashCleaner_Scheduler_DeleteTask:永久删除计划任务。
  • TrashCleaner_Scheduler_RunTaskNow:手动立即触发任务的执行。
  • TrashCleaner_Scheduler_GetTaskHistory:检索任务的最近执行历史记录(成功/失败)。

技术栈

  • Bun.js
  • TypeScript

用法

发布到npm后,您可以使用Bun或npm运行MCP服务器:

使用Bun:

bunx @childhoodandy/trash-cleaner-mcp-server
# or with auto-install
bunx -y @childhoodandy/trash-cleaner-mcp-server

使用npm:

npx @childhoodandy/trash-cleaner-mcp-server
# or with auto-install
npx -y @childhoodandy/trash-cleaner-mcp-server

安装

# Clone the repository
git clone <repository-url>
cd trash-cleaner-mcp-server

# Install dependencies (using Bun)
bun install

运行服务器

bun start

配置

  • 日志配置已在 src/utils/logger.ts.
  • 计划任务定义存储在 ~/.trash-cleaner/schedules.json.

发展

(开发指南仍在此处…)