trash cleaner mcp server
A desktop MCP service that scans for and removes junk files to keep your system clean and optimized.
A desktop MCP service that scans for and removes junk files to keep your system clean and optimized.
A desktop MCP service providing tools to scan, analyze, and clean junk files, primarily optimized for macOS.
Note: Most cleaning tools (cleanAppCaches
, cleanTempFiles
, cleanAppRemnants
, smartCleanSystem
) are designed and tested specifically for macOS. Running them on other systems might not work or lead to unexpected behavior.
[Audit]
tools.toolName
) or natural language queries (toolQuery
) via fuzzy matching.This server registers several tools callable via the MCP protocol:
macOS Cleaning Tools (Optimized for macOS):
* macOSWarning
: Displays a warning if run on a non-macOS system.
* cleanAppCaches
: Cleans various application caches (user cache, saved app state).
* Options: dryRun
(bool, default: true), olderThan
(int, optional - days).
* cleanTempFiles
: Cleans system temporary files.
* Options: dryRun
(bool, default: true), olderThan
(int, optional, default: 7 days).
* cleanAppRemnants
: Scans for and cleans configuration/cache files left by uninstalled applications.
* Options: appName
(string, optional - partial name match), dryRun
(bool, default: true).
* smartCleanSystem
: Performs system cleaning based on predefined levels (targets common junk locations).
* Options: cleanLevel
(enum: "safe", "normal", "deep", default: "safe"), dryRun
(bool, default: true).
Cross-Platform Tools (Scanning, File System, OS):
* cleanVSCodeExtensions
: Cleans outdated versions of VS Code (and compatible editors like VSCodium, Cursor) extensions.
* Options: editorPath
(string, optional - path to specific editor's extensions, default: scans all known locations), dryRun
(bool, default: true).
* reportVSCodeExtensions
: Generates a report listing outdated VS Code extensions that can be cleaned.
* Options: editorPath
(string, optional).
* findLargeFiles
: Finds files exceeding a specified size within a directory.
* Options: path
(string), minSize
(int, default: 100MB), maxDepth
(int, default: 3).
* scanFullSystem
: Scans the entire system's file structure (respecting exclusions) to report on space usage.
* Options: excludePaths
(string[], optional), maxDepth
(int, default: 10).
* scanDirectory
: Analyzes the contents and size distribution within a specific directory.
* Options: path
(string), excludePaths
(string[], optional), maxDepth
(int, default: 10), includeSubdirs
(bool, default: true).
* getFolderSize
: Calculates and returns the total size of a folder.
* Options: path
(string).
* listDirectory
: Lists the files and subdirectories within a specified path.
* Options: path
(string), showHidden
(bool, default: false).
* findFiles
: Searches for files matching a specific pattern (wildcards supported) within a directory.
* Options: path
(string), pattern
(string), maxDepth
(int, default: 5).
* analyzeDirectory
: Provides statistics on file types and size distribution within a directory.
* Options: path
(string), includeSubdirs
(bool, default: true).
* getFileHash
: Computes the MD5, SHA1, or SHA256 hash of a file.
* Options: path
(string), algorithm
(enum: "md5", "sha1", "sha256", default: "md5").
* getFileType
: Retrieves basic file information, including MIME type.
* Options: path
(string).
* deletePath
: Deletes a specified file or folder (requires explicit confirmation, with extra checks for dangerous paths).
* Options: path
(string), confirm
(bool, must be true), dangerConfirm
(bool, optional - required for potentially risky deletions).
* checkPathExists
: Checks if a given path exists and identifies if it's a file or directory.
* Options: path
(string).
* getSystemType
: Returns the operating system identifier (e.g., 'darwin', 'win32', 'linux').
Audit Tools:
* viewAuditLog
: Views the most recent lines from the application's main log file (combined.log
).
* Options: lines
(int, default: 100, max: 1000).
* clearAuditLog
: Deletes the main application log file (combined.log
). Requires confirmation.
* Options: confirm
(bool, must be true).
TrashCleaner_Scheduler
Tools)Provides functionality to schedule the execution of other registered tools.
TrashCleaner_Scheduler_CreateTask
: Creates a new scheduled task.name
, cronExpression
.toolName
(exact tool name like "TrashCleaner_CleanAppCaches"
) or toolQuery
(fuzzy description like "clean app caches"
).toolParams
, enabled
.TrashCleaner_Scheduler_ListTasks
: Lists all configured scheduled tasks and their status.TrashCleaner_Scheduler_GetTaskDetails
: Gets detailed information about a specific task by ID.TrashCleaner_Scheduler_UpdateTask
: Updates an existing task. Can modify name, schedule, target tool (via toolName
or toolQuery
), parameters, and enabled status.TrashCleaner_Scheduler_EnableTask
: Enables a disabled task.TrashCleaner_Scheduler_DisableTask
: Disables an enabled task.TrashCleaner_Scheduler_DeleteTask
: Permanently deletes a scheduled task.TrashCleaner_Scheduler_RunTaskNow
: Manually triggers the execution of a task immediately.TrashCleaner_Scheduler_GetTaskHistory
: Retrieves the recent execution history (success/failure) for a task.After publishing to npm, you can run MCP via bunx:
bunx @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
.(Development guidelines remain here...)