🗑️ Recycle Bin MCP
English | 中文
一个跨平台的回收站清理 MCP (Model Context Protocol) 服务,支持 Windows、macOS 和 Linux 系统。 🚀
功能特性
- 🗑️ 跨平台支持:支持 Windows 回收站、macOS 废纸篓和 Linux 回收站
- 🔍 信息查询:获取回收站文件数量和占用空间信息
- 📋 内容列表:列出回收站中的所有文件和文件夹
- 🧹 安全清空:提供确认机制的回收站清空功能
- 🛡️ 错误处理:完善的错误处理和日志记录
📦 安装
⚡ 前置要求
- Node.js 16+
- pnpm (推荐) 或 npm
📥 安装依赖
pnpm install🔨 构建项目
pnpm run build🚀 使用方法
🛠️ 开发模式
pnpm run dev🏭 生产模式
pnpm run start🍒 在 Cherry Studio 中使用
Cherry Studio 是一个支持 MCP 协议的 AI 客户端。要在 Cherry Studio 中使用本回收站清理服务:
1️⃣ 配置 MCP 服务
在 Cherry Studio 的设置中添加 MCP 服务配置:
{
"mcpServers": {
"recycle-bin-cleaner": {
"command": "node",
"args": ["/path/to/recycle-bin-mcp/dist/index.js"],
"env": {}
}
}
}注意:请将 /path/to/recycle-bin-mcp 替换为你的项目实际路径。
2️⃣ 重启 Cherry Studio
配置完成后,重启 Cherry Studio 以加载 MCP 服务。
3️⃣ 使用回收站工具
在 Cherry Studio 的对话中,你可以直接使用以下命令:
- 查看回收站信息:
请帮我查看回收站的信息- 列出回收站内容:
请列出回收站中的所有文件- 清空回收站:
请帮我清空回收站Cherry Studio 会自动调用相应的 MCP 工具来执行这些操作。
4️⃣ 安全提示
在 Cherry Studio 中使用清空回收站功能时,系统会要求确认操作。请仔细阅读提示信息,确保你真的想要永久删除回收站中的所有文件。
🛠️ MCP 工具
本服务提供以下 MCP 工具:
1. empty_recycle_bin
清空本地回收站/废纸篓中的所有文件。
参数:
confirm(boolean, 必需): 确认是否清空回收站,必须为true
示例:
{
"confirm": true
}2. get_recycle_bin_info
获取本地回收站/废纸篓的文件占用信息。
参数: 无
返回信息:
- 文件数量
- 文件夹数量
- 总项目数
- 占用空间大小
3. list_recycle_bin_contents
列出回收站/废纸篓中的所有文件和文件夹。
参数:
show_details(boolean, 可选): 是否显示详细信息(文件大小、修改时间等),默认为false
💻 平台支持
🪟 Windows
- 支持系统回收站
- 使用 PowerShell 命令进行操作
- 支持多驱动器回收站
🍎 macOS
- 支持用户废纸篓 (
~/.Trash) - 原生文件系统操作
- 支持文件和文件夹的递归删除
🐧 Linux
- 支持 XDG 规范的回收站 (
~/.local/share/Trash) - 兼容主流 Linux 发行版
- 支持 Trash 规范的元数据
📁 项目结构
recycle-bin-mcp/
├── src/
│ ├── index.ts # 主服务器文件
│ └── tools/
│ ├── base.ts # 基础工具类
│ ├── factory.ts # 工具工厂类
│ ├── types.ts # 类型定义
│ ├── windows.ts # Windows 实现
│ ├── macos.ts # macOS 实现
│ └── linux.ts # Linux 实现
├── dist/ # 编译输出目录
├── package.json
├── tsconfig.json
└── README.md👨💻 开发
📜 脚本命令
pnpm run build- 编译 TypeScript 代码pnpm run start- 运行编译后的代码pnpm run dev- 开发模式运行pnpm run test- 运行测试(待实现)
➕ 添加新平台支持
- 在
src/tools/目录下创建新的平台实现文件 - 实现
RecycleBinTool接口 - 在
factory.ts中添加平台检测和实例化逻辑
🔒 安全注意事项
⚠️ 重要提醒:
- 清空回收站操作是不可逆的,文件将被永久删除
- 本工具需要确认参数 (
confirm: true) 才能执行清空操作 - 建议在使用前先使用
get_recycle_bin_info查看回收站内容 - 请确保有足够的权限访问系统回收站
📄 许可证
ISC License
🤝 贡献
欢迎提交 Issue 和 Pull Request!
📝 更新日志
v1.0.0
- 初始版本发布
- 支持 Windows、macOS、Linux 三大平台
- 提供回收站信息查询、内容列表和清空功能
- 完整的 MCP 协议支持
