wiztree-mcp
基于WizTree的磁盘分析MCP服务器,通过MCP工具扫描驱动器、查询磁盘使用情况、搜索路径、比较快照以及可视化文件系统数据。
README
wiztree-mcp
基于 WizTree 的磁盘分析 MCP 服务器 — 通过 MCP 工具扫描驱动器、查询磁盘使用情况、搜索路径、比较快照以及可视化文件系统数据。
// Claude Code 配置
{
"mcpServers": {
"wiztree": {
"command": "wiztree-mcp"
}
}
}
功能特性
🗂️ 扫描
scan_disk— 用 WizTree 扫描驱动器/文件夹并将结果导入 SQLite。内存高效流式处理(无需将完整 CSV 加载到内存)。
📋 查询
list_scans— 列出所有历史扫描记录disk_summary— 详细概览(容量、文件数、文件夹数、Top N)top_entries— 按大小排序的最大文件/文件夹drill_down— 浏览指定文件夹的内容
🔍 搜索
search_paths— 关键字/通配符路径搜索,附带汇总大小file_type_summary— 按文件扩展名统计磁盘使用情况large_old_files— 查找长期未修改的大文件
🔄 比较
compare_scans— 两次扫描的差异报告(增长 + 缩减)
🛠️ 管理
get_treemap— 获取树图可视化(若扫描时已生成)cleanup_scans— 清理旧扫描,仅保留最近 N 次
安装
pip install wiztree-mcp
需要 Python 3.10+ 和 WizTree(免费,diskanalyzer.com)。
WizTree 设置
- 安装 WizTree(64 位)
- 确保
WizTree64.exe在 PATH 中或位于标准安装位置,或设置WIZTREE_PATH环境变量:set WIZTREE_PATH=D:\apps\WizTree\WizTree64.exe
使用
启动服务器
wiztree-mcp
这将在 STDIO 上启动 MCP 服务器——这是 Claude Code 等 MCP 主机的标准传输方式。
扫描驱动器
# 通过 MCP 工具(在 Claude Code 或任意 MCP 主机中)
await mcp.call_tool("scan_disk", {"target_path": "C:"})
查询结果
await mcp.call_tool("disk_summary", {"scan_id": 1})
await mcp.call_tool("top_entries", {"scan_id": 1, "kind": "files", "limit": 20})
await mcp.call_tool("search_paths", {"scan_id": 1, "query": "node_modules"})
await mcp.call_tool("drill_down", {"scan_id": 1, "folder_path": "C:\\Users"})
比较扫描
await mcp.call_tool("compare_scans", {
"scan_id_before": 1,
"scan_id_after": 2,
})
环境变量
| 变量 | 说明 |
|---|---|
WIZTREE_PATH |
WizTree64.exe 的路径(覆盖自动检测) |
WIZTREE_MCP_DATA_DIR |
数据库和导出 CSV 的存储目录(默认:~/.local/share/wiztree-mcp/) |
架构
┌─────────────────────────────────────────────────┐
│ MCP 主机 (Claude Code) │
├─────────────────────────────────────────────────┤
│ STDIO 传输 ──── wiztree-mcp 服务器 │
│ │ │
│ ┌──────────────────────┴──────────────────┐ │
│ │ FastMCP (mcp SDK) │ │
│ │ ├── 11 个工具 via @mcp.tool() │ │
│ │ └── Lifespan (DB 生命周期管理) │ │
│ ├────────────────────────────────────────┤ │
│ │ 数据库 (SQLite) │ │
│ │ ├── scans 表 (元数据) │ │
│ │ ├── entries 表 (文件 + 文件夹) │ │
│ │ └── 6 个索引用于快速查询 │ │
│ ├────────────────────────────────────────┤ │
│ │ WizTree CLI │ │
│ │ └── WizTree64.exe /export=... │ │
│ └────────────────────────────────────────┘ │
└─────────────────────────────────────────────────┘
关键设计决策:
- CSV → SQLite 流式处理:CSV 逐行解析并插入 SQLite。无论 CSV 多大,内存占用始终不超过 ~50 MB。
- SQL 查询:所有工具使用索引 SQL 查询(O(log n)),而非数组遍历(O(n))。
- 持久化:数据在服务器重启后仍然保留。跨会话比较即 SQL JOIN。
- 零额外依赖:仅
mcpSDK。csv和sqlite3均为 Python 标准库。
开发
git clone https://github.com/onmokoworks/wiztree-mcp
cd wiztree-mcp
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -e .
python tests/test_db_quick.py
python tests/test_csv_importer.py
性能
| 指标 | 之前 (TypeScript) | 之后 (Python + SQLite) |
|---|---|---|
| CSV 解析 (400 MB) | ~210 秒, 1-2 GB 内存 | ~30 秒, <50 MB 内存 |
| 查询 | O(n) 数组扫描 | O(log n) SQL 索引 |
| 持久化 | 无(内存缓存) | SQLite 永久存储 |
| 跨会话比较 | 完整加载 2 个 CSV | SQL JOIN(毫秒级) |
| 启动 | ~5 秒(解析 CSV) | ~50 毫秒(打开数据库) |
| 依赖项 | csv-parse + zod + sdk | 仅 mcp(CSV + SQLite 使用 Python 标准库) |
许可证
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。