trash-cleaner-mcp-server
If you are the rightful owner of trash-cleaner-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A desktop MCP service providing tools to scan, analyze, and clean junk files, primarily optimized for macOS.
trash-cleaner-mcp-server
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.
Features
- Cross-Platform: (Planned) Windows, macOS, Linux support.
- Intelligent Scanning: Identifies various types of junk files (caches, logs, temp files, etc.).
- Selective Cleaning: Tools for cleaning specific areas like application caches, temp files, and application remnants.
- VS Code Extension Management: Tools to find and clean old/unused VS Code extensions.
- Filesystem Utilities: Tools for directory analysis, file finding, size calculation, deletion, etc.
- System Information: Basic OS detection.
- Audit Logging: Tracks operations via
[Audit]
tools. - Scheduled Tasks: Automate cleaning and other tasks using a flexible scheduler.
- Define tasks using cron expressions or simple intervals.
- Target any registered tool for execution.
- Create/update tasks using exact tool names (
toolName
) or natural language queries (toolQuery
) via fuzzy matching. - Full task management (list, details, update, enable/disable, delete).
- Manual triggering and execution history tracking.
Available Tools (Features)
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).
- Options:
cleanTempFiles
: Cleans system temporary files.- Options:
dryRun
(bool, default: true),olderThan
(int, optional, default: 7 days).
- Options:
cleanAppRemnants
: Scans for and cleans configuration/cache files left by uninstalled applications.- Options:
appName
(string, optional - partial name match),dryRun
(bool, default: true).
- Options:
smartCleanSystem
: Performs system cleaning based on predefined levels (targets common junk locations).- Options:
cleanLevel
(enum: "safe", "normal", "deep", default: "safe"),dryRun
(bool, default: true).
- Options:
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).
- Options:
reportVSCodeExtensions
: Generates a report listing outdated VS Code extensions that can be cleaned.- Options:
editorPath
(string, optional).
- Options:
findLargeFiles
: Finds files exceeding a specified size within a directory.- Options:
path
(string),minSize
(int, default: 100MB),maxDepth
(int, default: 3).
- Options:
scanFullSystem
: Scans the entire system's file structure (respecting exclusions) to report on space usage.- Options:
excludePaths
(string[], optional),maxDepth
(int, default: 10).
- Options:
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).
- Options:
getFolderSize
: Calculates and returns the total size of a folder.- Options:
path
(string).
- Options:
listDirectory
: Lists the files and subdirectories within a specified path.- Options:
path
(string),showHidden
(bool, default: false).
- Options:
findFiles
: Searches for files matching a specific pattern (wildcards supported) within a directory.- Options:
path
(string),pattern
(string),maxDepth
(int, default: 5).
- Options:
analyzeDirectory
: Provides statistics on file types and size distribution within a directory.- Options:
path
(string),includeSubdirs
(bool, default: true).
- Options:
getFileHash
: Computes the MD5, SHA1, or SHA256 hash of a file.- Options:
path
(string),algorithm
(enum: "md5", "sha1", "sha256", default: "md5").
- Options:
getFileType
: Retrieves basic file information, including MIME type.- Options:
path
(string).
- Options:
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).
- Options:
checkPathExists
: Checks if a given path exists and identifies if it's a file or directory.- Options:
path
(string).
- Options:
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).
- Options:
clearAuditLog
: Deletes the main application log file (combined.log
). Requires confirmation.- Options:
confirm
(bool, must be true).
- Options:
Scheduled Tasks (TrashCleaner_Scheduler
Tools)
Provides functionality to schedule the execution of other registered tools.
TrashCleaner_Scheduler_CreateTask
: Creates a new scheduled task.- Requires
name
,cronExpression
. - Requires either
toolName
(exact tool name like"TrashCleaner_CleanAppCaches"
) ortoolQuery
(fuzzy description like"clean app caches"
). - Optional
toolParams
,enabled
.
- Requires
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 (viatoolName
ortoolQuery
), 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.
Tech Stack
- Bun.js
- TypeScript
Usage
After publishing to npm, you can run MCP via bunx:
bunx @childhoodandy/trash-cleaner-mcp-server
Installation
# Clone the repository
git clone <repository-url>
cd trash-cleaner-mcp-server
# Install dependencies (using Bun)
bun install
Running the Server
bun start
Configuration
- Logging configuration is in
src/utils/logger.ts
. - Scheduled task definitions are stored in
~/.trash-cleaner/schedules.json
.
Development
(Development guidelines remain here...)