返回市场
垃圾清理-mcp服务器

垃圾清理-mcp服务器

作者:dabing10222 星标更新:2025-07-23

项目介绍

trash-cleaner-mcp-server

中文 README

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

注意: 大部分清理工具(如cleanAppCachescleanTempFilescleanAppRemnantssmartCleanSystem)是专门为macOS设计和测试的。在其他系统上运行可能会导致无法正常工作或出现意外行为。

功能

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

可用工具(功能)

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

macOS 清理工具(针对macOS优化):

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

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

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

审计工具:

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

定时任务(TrashCleaner_Scheduler工具)

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

  • TrashCleaner_Scheduler_CreateTask:创建新的定时任务。
    • 需要namecronExpression
    • 需要要么 toolName(确切的工具名称,如"TrashCleaner_CleanAppCaches"或者 toolQuery(模糊描述,如"clean app caches")。
    • 可选toolParamsenabled
  • TrashCleaner_Scheduler_ListTasks:列出所有配置的定时任务及其状态。
  • TrashCleaner_Scheduler_GetTaskDetails:通过ID获取特定任务的详细信息。
  • TrashCleaner_Scheduler_UpdateTask:更新现有任务。可以修改名称、计划、目标工具(通过toolNametoolQuery)、参数和启用状态。
  • 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
# 或自动安装
bunx -y @childhoodandy/trash-cleaner-mcp-server

使用npm:

npx @childhoodandy/trash-cleaner-mcp-server
# 或自动安装
npx -y @childhoodandy/trash-cleaner-mcp-server

安装

# 克隆仓库
git clone <repository-url>
cd trash-cleaner-mcp-server

# 安装依赖(使用Bun)
bun install

运行服务器

bun start

配置

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

开发

(开发指南保持不变...)