# Undoom Uninstaller MCP
一个基于MCP (Model Context Protocol) 的Windows程序卸载器服务,提供程序管理、卸载、强制删除和残留清理功能。
## 功能特性
- **程序列表管理**: 从Windows注册表获取已安装程序列表
- **程序搜索**: 支持按名称和发布商搜索程序
- **程序详情**: 查看程序的详细信息(版本、大小、安装位置等)
- **标准卸载**: 使用程序自带的卸载程序进行卸载
- **强制删除**: 强制删除程序文件和注册表项
- **残留清理**: 清理程序卸载后的残留文件和文件夹
- **列表刷新**: 重新扫描系统中的已安装程序
## 安装
### 方式一:通过PyPI安装(推荐)
```bash
# 使用uv安装
uvx --index-url https://pypi.tuna.tsinghua.edu.cn/simple undoom-uninstaller-mcp
# 或使用pip安装
pip install undoom-uninstaller-mcp
```
### 方式二:从源码安装
1. 克隆或下载此项目
2. 安装依赖:
```bash
uv sync
```
## 使用方法
### 作为MCP服务器运行
```bash
python main.py
```
### 可用工具
#### 1. list_programs
列出所有已安装的程序(包含安装时间和盘符信息)
**参数:**
- `search` (可选): 搜索关键词
**返回信息:**
- 程序名称、发布商、版本、大小、安装位置
- **新增**: 安装时间、所在盘符
**示例:**
```json
{
"search": "chrome"
}
```
#### 2. get_program_details
获取指定程序的详细信息(包含安装时间和盘符信息)
**参数:**
- `program_name` (必需): 程序名称
**返回信息:**
- 程序名称、发布商、版本、大小、安装位置、卸载字符串、注册表键
- **新增**: 安装时间、所在盘符
**示例:**
```json
{
"program_name": "Google Chrome"
}
```
#### 3. uninstall_program
卸载指定程序(使用程序自带的卸载程序)
**参数:**
- `program_name` (必需): 要卸载的程序名称
**示例:**
```json
{
"program_name": "Google Chrome"
}
```
#### 4. force_remove_program
强制删除程序(删除文件和注册表项)
**警告**: 此操作不可逆,请谨慎使用
**参数:**
- `program_name` (必需): 要强制删除的程序名称
**示例:**
```json
{
"program_name": "Broken Software"
}
```
#### 5. clean_residues
清理程序残留文件
**参数:**
- `program_name` (必需): 要清理残留的程序名称
**示例:**
```json
{
"program_name": "Old Program"
}
```
#### 6. refresh_programs
刷新程序列表
**参数:** 无
#### 7. show_all_programs_detailed
显示所有程序的详细信息,包括名称、安装时间和盘符
**参数:**
- `limit` (可选): 限制返回的程序数量,默认为100
- `sort_by` (可选): 排序字段,可选值:
- `name`: 按程序名称排序(默认)
- `install_date`: 按安装时间排序
- `drive_letter`: 按盘符排序
**返回信息:**
- 程序名称、安装时间、所在盘符
- 发布商、版本、大小、安装位置
**示例:**
```json
{
"limit": 50,
"sort_by": "install_date"
}
```
#### 8. generate_markdown_report
生成系统程序信息的Markdown报告文件
**参数:**
- `filename` (可选): 输出文件名(不包含扩展名),默认为'system_programs_report'
- `limit` (可选): 限制返回的程序数量,默认为200
- `sort_by` (可选): 排序字段,可选值:
- `name`: 按程序名称排序(默认)
- `install_date`: 按安装时间排序
- `drive_letter`: 按盘符排序
- `include_stats` (可选): 是否包含详细统计信息,默认为true
**返回信息:**
- 生成包含所有程序信息的Markdown报告文件
- 包含统计概览、程序详细列表等
**示例:**
```json
{
"filename": "my_programs_report",
"limit": 100,
"sort_by": "name",
"include_stats": true
}
```
## 技术实现
### 数据来源
程序信息从以下Windows注册表位置获取:
- `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall`
- `HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall`
- `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall`
### 程序信息字段
- **name**: 程序名称
- **publisher**: 发布商
- **version**: 版本号
- **size**: 安装大小
- **install_location**: 安装位置
- **install_date**: 安装时间(YYYY-MM-DD格式)
- **drive_letter**: 所在盘符(如C:、D:等,网络路径显示为"网络路径")
- **uninstall_string**: 卸载命令
- **reg_key**: 注册表键路径
### 残留清理位置
系统会检查以下常见残留位置:
- 程序安装目录
- `%APPDATA%\[程序名]`
- `%LOCALAPPDATA%\[程序名]`
- `%PROGRAMDATA%\[程序名]`
- `%USERPROFILE%\AppData\Local\[程序名]`
- `%USERPROFILE%\AppData\Roaming\[程序名]`
## 注意事项
1. **管理员权限**: 某些操作可能需要管理员权限
2. **数据安全**: 强制删除和残留清理操作不可逆,请谨慎使用
3. **系统兼容性**: 仅支持Windows系统
4. **程序限制**: 某些系统程序可能无法卸载或删除
## 许可证
MIT License
## 贡献
欢迎提交Issue和Pull Request来改进此项目。
Raw data
{
"_id": null,
"home_page": null,
"name": "undoom-uninstaller-mcp",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "cleanup, mcp, program-management, uninstaller, windows",
"author": null,
"author_email": "Undoom <kaikaihuhu666@163.com>",
"download_url": "https://files.pythonhosted.org/packages/3d/76/537bf457cb4c4ea4f6ceb6cfcd5b7811540cf085525ffc13299d4da7a12d/undoom_uninstaller_mcp-0.1.7.tar.gz",
"platform": null,
"description": "# Undoom Uninstaller MCP\n\n\u4e00\u4e2a\u57fa\u4e8eMCP (Model Context Protocol) \u7684Windows\u7a0b\u5e8f\u5378\u8f7d\u5668\u670d\u52a1\uff0c\u63d0\u4f9b\u7a0b\u5e8f\u7ba1\u7406\u3001\u5378\u8f7d\u3001\u5f3a\u5236\u5220\u9664\u548c\u6b8b\u7559\u6e05\u7406\u529f\u80fd\u3002\n\n## \u529f\u80fd\u7279\u6027\n\n- **\u7a0b\u5e8f\u5217\u8868\u7ba1\u7406**: \u4eceWindows\u6ce8\u518c\u8868\u83b7\u53d6\u5df2\u5b89\u88c5\u7a0b\u5e8f\u5217\u8868\n- **\u7a0b\u5e8f\u641c\u7d22**: \u652f\u6301\u6309\u540d\u79f0\u548c\u53d1\u5e03\u5546\u641c\u7d22\u7a0b\u5e8f\n- **\u7a0b\u5e8f\u8be6\u60c5**: \u67e5\u770b\u7a0b\u5e8f\u7684\u8be6\u7ec6\u4fe1\u606f\uff08\u7248\u672c\u3001\u5927\u5c0f\u3001\u5b89\u88c5\u4f4d\u7f6e\u7b49\uff09\n- **\u6807\u51c6\u5378\u8f7d**: \u4f7f\u7528\u7a0b\u5e8f\u81ea\u5e26\u7684\u5378\u8f7d\u7a0b\u5e8f\u8fdb\u884c\u5378\u8f7d\n- **\u5f3a\u5236\u5220\u9664**: \u5f3a\u5236\u5220\u9664\u7a0b\u5e8f\u6587\u4ef6\u548c\u6ce8\u518c\u8868\u9879\n- **\u6b8b\u7559\u6e05\u7406**: \u6e05\u7406\u7a0b\u5e8f\u5378\u8f7d\u540e\u7684\u6b8b\u7559\u6587\u4ef6\u548c\u6587\u4ef6\u5939\n- **\u5217\u8868\u5237\u65b0**: \u91cd\u65b0\u626b\u63cf\u7cfb\u7edf\u4e2d\u7684\u5df2\u5b89\u88c5\u7a0b\u5e8f\n\n## \u5b89\u88c5\n\n### \u65b9\u5f0f\u4e00\uff1a\u901a\u8fc7PyPI\u5b89\u88c5\uff08\u63a8\u8350\uff09\n```bash\n# \u4f7f\u7528uv\u5b89\u88c5\nuvx --index-url https://pypi.tuna.tsinghua.edu.cn/simple undoom-uninstaller-mcp\n\n# \u6216\u4f7f\u7528pip\u5b89\u88c5\npip install undoom-uninstaller-mcp\n```\n\n### \u65b9\u5f0f\u4e8c\uff1a\u4ece\u6e90\u7801\u5b89\u88c5\n1. \u514b\u9686\u6216\u4e0b\u8f7d\u6b64\u9879\u76ee\n2. \u5b89\u88c5\u4f9d\u8d56\uff1a\n```bash\nuv sync\n```\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n### \u4f5c\u4e3aMCP\u670d\u52a1\u5668\u8fd0\u884c\n\n```bash\npython main.py\n```\n\n### \u53ef\u7528\u5de5\u5177\n\n#### 1. list_programs\n\u5217\u51fa\u6240\u6709\u5df2\u5b89\u88c5\u7684\u7a0b\u5e8f\uff08\u5305\u542b\u5b89\u88c5\u65f6\u95f4\u548c\u76d8\u7b26\u4fe1\u606f\uff09\n\n**\u53c2\u6570:**\n- `search` (\u53ef\u9009): \u641c\u7d22\u5173\u952e\u8bcd\n\n**\u8fd4\u56de\u4fe1\u606f:**\n- \u7a0b\u5e8f\u540d\u79f0\u3001\u53d1\u5e03\u5546\u3001\u7248\u672c\u3001\u5927\u5c0f\u3001\u5b89\u88c5\u4f4d\u7f6e\n- **\u65b0\u589e**: \u5b89\u88c5\u65f6\u95f4\u3001\u6240\u5728\u76d8\u7b26\n\n**\u793a\u4f8b:**\n```json\n{\n \"search\": \"chrome\"\n}\n```\n\n#### 2. get_program_details\n\u83b7\u53d6\u6307\u5b9a\u7a0b\u5e8f\u7684\u8be6\u7ec6\u4fe1\u606f\uff08\u5305\u542b\u5b89\u88c5\u65f6\u95f4\u548c\u76d8\u7b26\u4fe1\u606f\uff09\n\n**\u53c2\u6570:**\n- `program_name` (\u5fc5\u9700): \u7a0b\u5e8f\u540d\u79f0\n\n**\u8fd4\u56de\u4fe1\u606f:**\n- \u7a0b\u5e8f\u540d\u79f0\u3001\u53d1\u5e03\u5546\u3001\u7248\u672c\u3001\u5927\u5c0f\u3001\u5b89\u88c5\u4f4d\u7f6e\u3001\u5378\u8f7d\u5b57\u7b26\u4e32\u3001\u6ce8\u518c\u8868\u952e\n- **\u65b0\u589e**: \u5b89\u88c5\u65f6\u95f4\u3001\u6240\u5728\u76d8\u7b26\n\n**\u793a\u4f8b:**\n```json\n{\n \"program_name\": \"Google Chrome\"\n}\n```\n\n#### 3. uninstall_program\n\u5378\u8f7d\u6307\u5b9a\u7a0b\u5e8f\uff08\u4f7f\u7528\u7a0b\u5e8f\u81ea\u5e26\u7684\u5378\u8f7d\u7a0b\u5e8f\uff09\n\n**\u53c2\u6570:**\n- `program_name` (\u5fc5\u9700): \u8981\u5378\u8f7d\u7684\u7a0b\u5e8f\u540d\u79f0\n\n**\u793a\u4f8b:**\n```json\n{\n \"program_name\": \"Google Chrome\"\n}\n```\n\n#### 4. force_remove_program\n\u5f3a\u5236\u5220\u9664\u7a0b\u5e8f\uff08\u5220\u9664\u6587\u4ef6\u548c\u6ce8\u518c\u8868\u9879\uff09\n\n**\u8b66\u544a**: \u6b64\u64cd\u4f5c\u4e0d\u53ef\u9006\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\n\n**\u53c2\u6570:**\n- `program_name` (\u5fc5\u9700): \u8981\u5f3a\u5236\u5220\u9664\u7684\u7a0b\u5e8f\u540d\u79f0\n\n**\u793a\u4f8b:**\n```json\n{\n \"program_name\": \"Broken Software\"\n}\n```\n\n#### 5. clean_residues\n\u6e05\u7406\u7a0b\u5e8f\u6b8b\u7559\u6587\u4ef6\n\n**\u53c2\u6570:**\n- `program_name` (\u5fc5\u9700): \u8981\u6e05\u7406\u6b8b\u7559\u7684\u7a0b\u5e8f\u540d\u79f0\n\n**\u793a\u4f8b:**\n```json\n{\n \"program_name\": \"Old Program\"\n}\n```\n\n#### 6. refresh_programs\n\u5237\u65b0\u7a0b\u5e8f\u5217\u8868\n\n**\u53c2\u6570:** \u65e0\n\n#### 7. show_all_programs_detailed\n\u663e\u793a\u6240\u6709\u7a0b\u5e8f\u7684\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u62ec\u540d\u79f0\u3001\u5b89\u88c5\u65f6\u95f4\u548c\u76d8\u7b26\n\n**\u53c2\u6570:**\n- `limit` (\u53ef\u9009): \u9650\u5236\u8fd4\u56de\u7684\u7a0b\u5e8f\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a100\n- `sort_by` (\u53ef\u9009): \u6392\u5e8f\u5b57\u6bb5\uff0c\u53ef\u9009\u503c\uff1a\n - `name`: \u6309\u7a0b\u5e8f\u540d\u79f0\u6392\u5e8f\uff08\u9ed8\u8ba4\uff09\n - `install_date`: \u6309\u5b89\u88c5\u65f6\u95f4\u6392\u5e8f\n - `drive_letter`: \u6309\u76d8\u7b26\u6392\u5e8f\n\n**\u8fd4\u56de\u4fe1\u606f:**\n- \u7a0b\u5e8f\u540d\u79f0\u3001\u5b89\u88c5\u65f6\u95f4\u3001\u6240\u5728\u76d8\u7b26\n- \u53d1\u5e03\u5546\u3001\u7248\u672c\u3001\u5927\u5c0f\u3001\u5b89\u88c5\u4f4d\u7f6e\n\n**\u793a\u4f8b:**\n```json\n{\n \"limit\": 50,\n \"sort_by\": \"install_date\"\n}\n```\n\n#### 8. generate_markdown_report\n\u751f\u6210\u7cfb\u7edf\u7a0b\u5e8f\u4fe1\u606f\u7684Markdown\u62a5\u544a\u6587\u4ef6\n\n**\u53c2\u6570:**\n- `filename` (\u53ef\u9009): \u8f93\u51fa\u6587\u4ef6\u540d\uff08\u4e0d\u5305\u542b\u6269\u5c55\u540d\uff09\uff0c\u9ed8\u8ba4\u4e3a'system_programs_report'\n- `limit` (\u53ef\u9009): \u9650\u5236\u8fd4\u56de\u7684\u7a0b\u5e8f\u6570\u91cf\uff0c\u9ed8\u8ba4\u4e3a200\n- `sort_by` (\u53ef\u9009): \u6392\u5e8f\u5b57\u6bb5\uff0c\u53ef\u9009\u503c\uff1a\n - `name`: \u6309\u7a0b\u5e8f\u540d\u79f0\u6392\u5e8f\uff08\u9ed8\u8ba4\uff09\n - `install_date`: \u6309\u5b89\u88c5\u65f6\u95f4\u6392\u5e8f\n - `drive_letter`: \u6309\u76d8\u7b26\u6392\u5e8f\n- `include_stats` (\u53ef\u9009): \u662f\u5426\u5305\u542b\u8be6\u7ec6\u7edf\u8ba1\u4fe1\u606f\uff0c\u9ed8\u8ba4\u4e3atrue\n\n**\u8fd4\u56de\u4fe1\u606f:**\n- \u751f\u6210\u5305\u542b\u6240\u6709\u7a0b\u5e8f\u4fe1\u606f\u7684Markdown\u62a5\u544a\u6587\u4ef6\n- \u5305\u542b\u7edf\u8ba1\u6982\u89c8\u3001\u7a0b\u5e8f\u8be6\u7ec6\u5217\u8868\u7b49\n\n**\u793a\u4f8b:**\n```json\n{\n \"filename\": \"my_programs_report\",\n \"limit\": 100,\n \"sort_by\": \"name\",\n \"include_stats\": true\n}\n```\n\n## \u6280\u672f\u5b9e\u73b0\n\n### \u6570\u636e\u6765\u6e90\n\u7a0b\u5e8f\u4fe1\u606f\u4ece\u4ee5\u4e0bWindows\u6ce8\u518c\u8868\u4f4d\u7f6e\u83b7\u53d6\uff1a\n- `HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall`\n- `HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall`\n- `HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall`\n\n### \u7a0b\u5e8f\u4fe1\u606f\u5b57\u6bb5\n- **name**: \u7a0b\u5e8f\u540d\u79f0\n- **publisher**: \u53d1\u5e03\u5546\n- **version**: \u7248\u672c\u53f7\n- **size**: \u5b89\u88c5\u5927\u5c0f\n- **install_location**: \u5b89\u88c5\u4f4d\u7f6e\n- **install_date**: \u5b89\u88c5\u65f6\u95f4\uff08YYYY-MM-DD\u683c\u5f0f\uff09\n- **drive_letter**: \u6240\u5728\u76d8\u7b26\uff08\u5982C:\u3001D:\u7b49\uff0c\u7f51\u7edc\u8def\u5f84\u663e\u793a\u4e3a\"\u7f51\u7edc\u8def\u5f84\"\uff09\n- **uninstall_string**: \u5378\u8f7d\u547d\u4ee4\n- **reg_key**: \u6ce8\u518c\u8868\u952e\u8def\u5f84\n\n### \u6b8b\u7559\u6e05\u7406\u4f4d\u7f6e\n\u7cfb\u7edf\u4f1a\u68c0\u67e5\u4ee5\u4e0b\u5e38\u89c1\u6b8b\u7559\u4f4d\u7f6e\uff1a\n- \u7a0b\u5e8f\u5b89\u88c5\u76ee\u5f55\n- `%APPDATA%\\[\u7a0b\u5e8f\u540d]`\n- `%LOCALAPPDATA%\\[\u7a0b\u5e8f\u540d]`\n- `%PROGRAMDATA%\\[\u7a0b\u5e8f\u540d]`\n- `%USERPROFILE%\\AppData\\Local\\[\u7a0b\u5e8f\u540d]`\n- `%USERPROFILE%\\AppData\\Roaming\\[\u7a0b\u5e8f\u540d]`\n\n## \u6ce8\u610f\u4e8b\u9879\n\n1. **\u7ba1\u7406\u5458\u6743\u9650**: \u67d0\u4e9b\u64cd\u4f5c\u53ef\u80fd\u9700\u8981\u7ba1\u7406\u5458\u6743\u9650\n2. **\u6570\u636e\u5b89\u5168**: \u5f3a\u5236\u5220\u9664\u548c\u6b8b\u7559\u6e05\u7406\u64cd\u4f5c\u4e0d\u53ef\u9006\uff0c\u8bf7\u8c28\u614e\u4f7f\u7528\n3. **\u7cfb\u7edf\u517c\u5bb9\u6027**: \u4ec5\u652f\u6301Windows\u7cfb\u7edf\n4. **\u7a0b\u5e8f\u9650\u5236**: \u67d0\u4e9b\u7cfb\u7edf\u7a0b\u5e8f\u53ef\u80fd\u65e0\u6cd5\u5378\u8f7d\u6216\u5220\u9664\n\n## \u8bb8\u53ef\u8bc1\n\nMIT License\n\n## \u8d21\u732e\n\n\u6b22\u8fce\u63d0\u4ea4Issue\u548cPull Request\u6765\u6539\u8fdb\u6b64\u9879\u76ee\u3002",
"bugtrack_url": null,
"license": "MIT",
"summary": "A Windows program uninstaller MCP server with advanced management and cleanup features",
"version": "0.1.7",
"project_urls": {
"Homepage": "https://github.com/undoom/undoom-uninstaller-mcp",
"Issues": "https://github.com/undoom/undoom-uninstaller-mcp/issues",
"Repository": "https://github.com/undoom/undoom-uninstaller-mcp"
},
"split_keywords": [
"cleanup",
" mcp",
" program-management",
" uninstaller",
" windows"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "3b1806e3b5bd3b4f461bb8fdbfef3b8e92804f8a6c0a484d64cac27417cf7e0e",
"md5": "9528eaccb2716f75cc9f21c4b61ebaa5",
"sha256": "36f6b03f445c4579c4aeb2cc063477dc6c54ee5c0a957f523a1aa473c3f80f82"
},
"downloads": -1,
"filename": "undoom_uninstaller_mcp-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9528eaccb2716f75cc9f21c4b61ebaa5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 16187,
"upload_time": "2025-08-09T08:58:17",
"upload_time_iso_8601": "2025-08-09T08:58:17.391225Z",
"url": "https://files.pythonhosted.org/packages/3b/18/06e3b5bd3b4f461bb8fdbfef3b8e92804f8a6c0a484d64cac27417cf7e0e/undoom_uninstaller_mcp-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3d76537bf457cb4c4ea4f6ceb6cfcd5b7811540cf085525ffc13299d4da7a12d",
"md5": "24ca8c3430dbf4f439084c236277731e",
"sha256": "ff3b1ad6766afb2a458e5c3a69a2b1b788239e0e90af33b6df04d07091072794"
},
"downloads": -1,
"filename": "undoom_uninstaller_mcp-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "24ca8c3430dbf4f439084c236277731e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 12465,
"upload_time": "2025-08-09T08:58:19",
"upload_time_iso_8601": "2025-08-09T08:58:19.090145Z",
"url": "https://files.pythonhosted.org/packages/3d/76/537bf457cb4c4ea4f6ceb6cfcd5b7811540cf085525ffc13299d4da7a12d/undoom_uninstaller_mcp-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-09 08:58:19",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "undoom",
"github_project": "undoom-uninstaller-mcp",
"github_not_found": true,
"lcname": "undoom-uninstaller-mcp"
}