Skip to main content
Glama

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 次

Related MCP server: File Search Tool

安装

pip install wiztree-mcp

需要 Python 3.10+WizTree(免费,diskanalyzer.com)。

WizTree 设置

  1. 安装 WizTree(64 位)

  2. 确保 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。

  • 零额外依赖:仅 mcp SDK。csvsqlite3 均为 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

Available Tools

11 tools
cleanup_scansA

Remove older scans from the database to free up space.

Keeps the N most recent scans and deletes everything older. Entries are cascade-deleted when their parent scan is removed.

Args: keep_latest: Number of most recent scans to keep (default 5, min 1). ctx: MCP context (injected automatically).

Returns: Report of which scans were deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
keep_latestNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: it keeps the N most recent scans, deletes everything older, and performs cascade deletion. With no annotations provided, this fully compensates by detailing the mutation and data removal behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences plus structured Args/Returns sections. It is front-loaded with the main purpose and behavior, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one simple parameter and an existing output schema, the description is complete. It covers purpose, behavior, parameter details, and return value, leaving no apparent gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the input schema: 'Number of most recent scans to keep (default 5, min 1).' The schema only provides type and default, so the description clarifies the parameter's semantics and adds a constraint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Remove older scans from the database to free up space.' This is a specific verb-resource combination that distinguishes it from sibling tools like list_scans or scan_disk.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the behavior (keeps N most recent scans, deletes older) and mentions cascade deletion. While it doesn't explicitly state when to use vs. not use alternatives, the context is clear enough for an agent to infer usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_scansA

Compare two scans of the same drive to see what changed.

Use this to measure cleanup results, track growth over time, or identify which directories changed the most between two points.

Args: scan_id_before: The earlier scan ID (the "before" snapshot). scan_id_after: The later scan ID (the "after" snapshot). limit: Number of top changes to show (default 20, max 100). ctx: MCP context (injected automatically).

Returns: Comparison report with capacity changes and top growth/shrink paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scan_id_afterYes
scan_id_beforeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool compares two scans and returns a comparison report with capacity changes and top growth/shrink paths. It does not mention destructive or side effects, but the nature of comparison implies read-only. It provides sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a summary line, usage guidance, parameter details, and return description. It is concise yet complete, with no unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters and an output schema (not shown but noted), the description covers all necessary context: purpose, usage, parameters, and return value. It is complete for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the JSON schema provides no parameter descriptions. The description fully compensates by explaining each parameter (scan_id_before, scan_id_after, limit, ctx) in the Args section, including defaults and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compares two scans of the same drive to identify changes. It uses specific verbs like compare, measure, track, and identify, and distinguishes itself from sibling tools (e.g., list_scans, cleanup_scans) by focusing on diff rather than listing or cleanup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases (measure cleanup results, track growth, identify directories with most change) and implies when to use it. However, it lacks explicit when-not-to-use advice or direct alternatives, which would raise it to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

disk_summaryA

Get a detailed summary of a disk scan.

Returns drive info, capacity, total files/folders, and the top N largest files and folders.

Args: scan_id: The scan ID (use list_scans to find available scans). top_n: Number of top files and folders to include (default 20, max 100). ctx: MCP context (injected automatically).

Returns: Formatted summary string.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_nNo
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It does not mention whether the operation is read-only, has side effects, requires permissions, or has performance implications. The description only states the return format but lacks important behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with Args and Returns sections but is somewhat verbose. It could be more concise while retaining clarity. Every sentence provides value, but the docstring format adds redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description rightly avoids detailing return values. It adequately covers input parameters and the output nature (formatted summary string). Missing is any mention of error conditions or that the scan must exist, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since schema description coverage is 0%, the description compensates fully by explaining both parameters: scan_id (use list_scans to find) and top_n (default 20, max 100). This adds significant meaning beyond the schema's type and title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a detailed summary of a disk scan, listing specific return items (drive info, capacity, files/folders, top N largest). It distinguishes from sibling tools like list_scans (which provides available scans) and top_entries (likely just top items without summary).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using list_scans to find scan_id, guiding the user on prerequisite usage. However, it does not explicitly state when not to use this tool or mention alternatives like top_entries for simpler output.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drill_downA

Browse the contents of a specific folder (drill down).

Shows all entries inside the given folder path, sorted by size descending. Useful for interactively exploring large directories step by step.

Args: scan_id: The scan ID. folder_path: The folder path to drill into (e.g., "C:\Users", "D:\Projects\src"). limit: Number of entries to return (default 50, max 200). offset: Pagination offset for seeing more items. ctx: MCP context (injected automatically).

Returns: List of sub-entries (files and folders) inside the given path.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
scan_idYes
folder_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses sorting by size, pagination, and returns a list of sub-entries. However, it does not mention error handling, permissions, or side effects, leaving some behavioral aspects unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, with a clear header, a brief explanation, a well-structured args list, and a returns statement. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 4 parameters and an output schema, the description covers purpose, usage, parameters, and return values. It lacks error handling details but is fairly complete for a browse operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaningful explanations for all parameters: scan_id, folder_path (with examples), limit (default 50, max 200), and offset (pagination). This adds value beyond the schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Browse the contents of a specific folder (drill down)', which is a specific verb+resource. It also explains it shows all entries sorted by size, distinguishing it from siblings like disk_summary or top_entries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Useful for interactively exploring large directories step by step', which implies when to use. However, it does not explicitly mention when not to use or provide comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

file_type_summaryA

Summarize disk usage by file extension type.

Groups all files by their extension and returns a ranked list of which file types consume the most space.

Args: scan_id: The scan ID. limit: Number of extensions to show (default 30, max 100). ctx: MCP context (injected automatically).

Returns: Ranked table of file extensions by total size.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the grouping and ranking behavior but does not mention potential side effects or authorization needs. It is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (8 lines) with front-loaded purpose and clear structure including Args and Returns. Every sentence adds value with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the description's explanation of the ranked table return, the description is complete enough for an agent to understand input and output expectations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds value over the schema by specifying the limit's default (30) and maximum (100). The schema only has titles, so the description provides meaningful context beyond what is in the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool summarizes disk usage by file extension type, grouping by extension and returning a ranked list. This distinguishes it from siblings like disk_summary (overall) or large_old_files (specific large files).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains parameters and defaults but does not explicitly state when to use this tool versus alternatives like disk_summary or compare_scans. Usage is implied but not contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_treemapA

Get a treemap visualization image for a scan (if generated during scan).

Note: treemap images are only available if the scan was run with treemap=True in scan_disk.

Args: scan_id: The scan ID to retrieve the treemap for. ctx: MCP context (injected automatically).

Returns: PNG image content of the treemap visualization.

ParametersJSON Schema
NameRequiredDescriptionDefault
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
typeYes
_metaNo
mimeTypeYes
annotationsNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the return type (PNG image) and the availability condition. It does not discuss side effects, permissions, or error conditions, which is acceptable for a read-only retrieval tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, starting with the main purpose, then a note, followed by parameter and return information. Every sentence adds value without extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for a simple tool with one parameter and an output schema. It covers the precondition and return type. Missing error handling details, but not critical for this use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no description for scan_id, so the description compensates by explaining that it is the scan ID to retrieve the treemap for. This adds necessary semantic meaning beyond the schema's title.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets a treemap visualization image for a scan, specifying the resource and action. It does not explicitly distinguish from sibling tools, but it is unique in retrieving a treemap image, so differentiation is implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that treemap images are only available if the scan was run with treemap=True, providing a precondition. However, it does not give explicit guidance on when to use this tool versus alternatives like scan_disk or list_scans.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

large_old_filesA

Find files that are both large and haven't been modified recently.

These are prime candidates for cleanup — files taking up significant space that haven't been touched in a long time.

Args: scan_id: The scan ID. older_than_days: Minimum age in days (default 180, ~6 months). min_size_mb: Minimum file size in MB (default 100). limit: Maximum results (default 50, max 200). ctx: MCP context (injected automatically).

Returns: List of large, old files sorted by size descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
scan_idYes
min_size_mbNo
older_than_daysNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses sorting (by size descending) and default/max values, but does not explicitly state that the tool is read-only or describe any side effects. Adequate but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose, followed by parameter details in a structured Args section. Every sentence adds value with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (4 parameters, output schema exists), the description covers what the tool does, parameter meanings, defaults, and return value. It is complete enough for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 0% description coverage, but the description provides clear explanations for each parameter including default values and units (e.g., 'older_than_days: Minimum age in days (default 180, ~6 months)'). This compensates fully for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Find' and the resource 'files that are both large and haven't been modified recently,' making the purpose distinct from sibling tools like drill_down or file_type_summary which have different filtering criteria.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for cleanup by calling files 'prime candidates for cleanup,' but does not explicitly state when not to use or mention alternatives. This is clear but lacks exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scansA

List all previous disk scans stored in the database.

Returns a table with scan ID, drive, label, scan time, and capacity info. Use this to find scan IDs for other tools like disk_summary or top_entries.

Args: ctx: MCP context (injected automatically).

Returns: Formatted list of all scans.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions the return format (table with scan ID, drive, etc.) but does not disclose behavioral traits like read-only nature, performance considerations, or whether it's safe. The name implies reading, but additional transparency about side effects or resource usage would strengthen this dimension.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise with three main sentences plus an Args/Returns section. The first sentence effectively front-loads the purpose. Minor repetition exists between 'Returns a table...' and 'Returns: Formatted list...' but overall it's clean and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, no annotations), the description is reasonably complete. It explains the return values and how to use the output (to find scan IDs). Sibling tools provide context. However, since no output schema is provided, the description bears the burden of describing the output, which it does adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, achieving 100% coverage by default. The description adds value by explaining the implicit 'ctx' parameter that is injected automatically. Baseline for 0 parameters is 4, and the description meets this with clear context about the only parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List all previous disk scans stored in the database,' which is a specific verb and resource. The tool name 'list_scans' aligns perfectly. Sibling tools like 'scan_disk' (creates), 'cleanup_scans' (deletes), and 'compare_scans' (compares) have different purposes, so this tool is implicitly distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to find scan IDs for other tools like disk_summary or top_entries,' providing clear guidance on when to use the tool. However, it does not mention when not to use it or alternative tools, but in this context (a simple list), explicit exclusions are less critical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_diskA

Scan a drive or folder with WizTree and import results into the database.

This is the primary data ingestion tool. It:

  1. Locates the WizTree CLI executable

  2. Runs WizTree to export CSV (and optional treemap PNG)

  3. Streams the CSV into SQLite (memory-efficient, <50 MB)

  4. Returns a scan summary

After scanning, use other tools (disk_summary, top_entries, etc.) to query the results.

Args: target_path: Drive or folder to scan (e.g., "C:", "D:\Projects"). label: Optional human-readable label for this scan (e.g., "Cleanup Prep"). max_depth: Maximum folder depth to export (None = unlimited). Use a small value like 5 to reduce CSV size for quick scans. export_folders: Include folder entries in the export. export_files: Include file entries in the export. treemap: Also generate a treemap PNG image alongside the CSV. timeout: Maximum seconds to wait for the WizTree scan to complete. ctx: MCP context (injected automatically).

Returns: JSON string with scan result summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNo
timeoutNo
treemapNo
max_depthNo
target_pathYes
export_filesNo
export_foldersNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully compensates by detailing the steps: locating WizTree CLI, running it, streaming CSV into SQLite (memory-efficient), and returning a summary. It also mentions optional treemap generation and timeout handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a summary, step list, args table, and returns section. It is front-loaded with the purpose, but the step list could be slightly more concise; however, it remains clear and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, external dependency, file I/O), the description covers the process, parameter usage, and return value. The output description is somewhat generic ('JSON string with scan result summary') but sufficient. No output schema provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description has an 'Args:' section explaining each parameter in detail, including usage advice like max_depth defaults and treemap generation. This adds significant value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it scans a drive/folder with WizTree and imports results into the database. It also distinguishes from sibling tools by noting that after scanning, other tools should be used for querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly calls it the 'primary data ingestion tool' and advises using other tools for querying afterward. It also provides practical advice, e.g., using a small max_depth for quick scans.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_pathsA

Search for paths in a scan by keyword.

Useful for finding specific directories or files (e.g., "node_modules", "cache", "npm", "temp").

Args: scan_id: The scan ID. query: Search keyword or path fragment (case-insensitive). kind: Entry type — "all" (default), "files", or "folders". limit: Maximum results to return (default 50, max 200). ctx: MCP context (injected automatically).

Returns: Matching entries with total aggregate size.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoall
limitNo
queryYes
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses case-insensitive search, kind filter, limit on results, and that returns include total aggregate size. This adds meaningful behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact but well-structured with a short intro, a bullet-like Args list, and a Returns line. The example parenthetical adds value. Could be slightly more organized but efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, output schema exists), the description covers all necessary aspects: usage, parameter details, behavioral notes, and return summary. The 0% schema coverage is fully compensated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain all parameters. It does so thoroughly: scan_id, query (keyword/path fragment), kind (all/files/folders), limit (max 200, default 50). It also provides default values and clarifies behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search for paths in a scan by keyword' and provides concrete examples like 'node_modules', 'cache' etc. It distinguishes itself from sibling tools like disk_summary or top_entries by focusing on free-text path searching within a scan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Useful for finding specific directories or files', giving clear context. It does not explicitly state when not to use it or compare with alternatives, but the purpose is self-explanatory enough given the sibling tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

top_entriesA

List the largest entries in a scan (files, folders, or both).

Args: scan_id: The scan ID. kind: Entry type — "files" (default), "folders", or "all". limit: Number of entries to return (default 20, max 500). offset: Pagination offset (default 0). ctx: MCP context (injected automatically).

Returns: Formatted table of entries sorted by size descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNofiles
limitNo
offsetNo
scan_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses return format (formatted table sorted by size descending) and pagination behavior (offset/limit). It does not explicitly state it's read-only but implies no side effects. For an unannotated tool, this is fairly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise with a clear one-line summary followed by structured Args and Returns. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters and existence of output schema, the description covers all necessary context: parameter defaults, enum, pagination, return format and sorting.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must explain parameters fully. It does: scan_id (required), kind (with enum values and default), limit (default 20, max 500), offset (default 0). This adds substantial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists the largest entries in a scan, with explicit specification of kind (files, folders, all). This is a specific verb+resource combination that distinguishes it from siblings like drill_down or large_old_files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like large_old_files or search_paths. It does not mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observedcleanup_scans
    • First observedcompare_scans
    • First observeddisk_summary
    • First observeddrill_down
    • First observedfile_type_summary
    • First observedget_treemap
    • First observedlarge_old_files
    • First observedlist_scans
    • First observedscan_disk
    • First observedsearch_paths
    • First observedtop_entries

TDQS

A4.3/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: scanning, listing, summarizing, comparing, searching, drilling down, file type analysis, large old files, cleanup, and treemap retrieval. No two tools overlap in functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., scan_disk, list_scans, compare_scans). The naming is predictable and intuitive.

Tool Count5/5

11 tools cover the full domain of disk scanning, browsing, analysis, comparison, cleanup, and visualization without being excessive. Each tool earns its place.

Completeness4/5

The tool set covers the full lifecycle from scanning to analysis to cleanup. Minor gaps exist: no tool to delete a specific scan (only bulk cleanup of old scans) and no way to update scan metadata. Still, the surface is nearly complete.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    Read-only MCP server that wraps WizTree's CSV export and adds disk-usage analysis tools, enabling file system scanning and analysis via natural language.
    6
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that enables file system search and inspection, including directory listing, regex-based file name and content searches, and reading text, PDF, and DOCX files.
    1
    MIT
  • F
    license
    B
    quality
    D
    maintenance
    MCP server for network-troubleshooting PCAP analysis via tshark, enabling users to analyze PCAP files, detect anomalies, and troubleshoot network issues.
    22
    -