Skip to main content
Glama

wizTree MCP

So funktioniert es

wizTreeMCP ist ein Python-MCP-Server, der WizTree von einem LLM aus steuert. Du kannst ihn mit Claude Code, Cursor oder DeepSeek Harness verbinden und in natürlicher Sprache fragen: „Was belegt Speicherplatz auf Laufwerk C:?“, „finde alle Dateien über 1 GB im Downloads-Ordner“, „wie viel Speicherplatz nehmen Videos in diesem Ordner ein?“, „gibt es verwaiste Python-Abhängigkeiten, die ich aufräumen kann?“.

Ich finde ihn sehr nützlich für die Bereinigung von ungenutzten Caches bei wsl, python, docker, npm.

Einzelne Datei: wiztree_mcp.py. Funktioniert nur unter Windows, weil WizTree eine Windows-Anwendung ist.

WizTree hat keine API: Es hat eine Befehlszeile, die ein CSV mit allem exportiert, was es gescannt hat. Der Server nutzt das.

LLM (MCP client) --stdio--> wiztree_mcp.py --CLI--> WizTree64.exe
                                  |                      |
                                  |<----- CSV snapshot ---
                                  |
                        streaming queries on the CSV

Ein Scan läuft einmal und wird als CSV-Snapshot im Cache gespeichert. Alle Folgefragen werden durch das Streaming-Lesen dieser CSV beantwortet: kein erneuter Scan der Festplatte, kein Laden des gesamten Laufwerks in den Speicher. Ein Snapshot von einer halben Million Dateien benötigt ~50 MB und beantwortet eine Anfrage in etwa einer Sekunde.

Snapshots werden automatisch wiederverwendet: Wenn du C:\ gescannt hast und dann etwas über C:\Users\me\Downloads fragst, verwendet der Server den vorhandenen Snapshot erneut, anstatt die Arbeit noch einmal zu erledigen.


Installation

Erfordert Python 3.10+.

cd wiztree-mcp
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt

Die virtuelle Umgebung wurde bereits in .venv erstellt: Wenn dir das reicht, bist du startklar.

Der Server findet WizTree64.exe von selbst, wenn der Ordner wiztree-mcp im WizTree-Portable-Ordner liegt, oder wenn WizTree in Program Files installiert ist. Andernfalls weise ihn mit der Umgebungsvariable WIZTREE_EXE darauf hin.


Verbindung zu Claude Code

Ein Befehl, kein JSON-Editieren — er übernimmt das Zusammenführen:

claude mcp add wiztree --scope user -- "C:\path\to\wiztree-mcp\.venv\Scripts\python.exe" "C:\path\to\wiztree-mcp\wiztree_mcp.py"

--scope steuert, wo die Registrierung gespeichert wird:

Geltungsbereich

Wo er gilt

Wann du ihn verwenden solltest

user

alle Ordner

das, was du fast immer willst

project

schreibt eine .mcp.json in den aktuellen Ordner

zum Teilen mit Leuten, die am selben Repo arbeiten

local (Standard)

nur für dich, nur in diesem Ordner

schnelle Experimente

Überprüfen:

claude mcp list

Dann beenden und claude neu starten: MCP-Server verbinden sich beim Start der Sitzung, nie im laufenden Betrieb. Innerhalb der Sitzung heißen die Tools mcp__wiztree__wiztree_scan und ähnlich, aber du musst sie nicht benennen: Frag einfach „Was belegt Speicherplatz auf D:“.

Wenn du den Projektbereich ohne die CLI bevorzugst, kannst du auch eine .mcp.json von Hand in den Ordner schreiben, aus dem du claude startest, mit derselben Struktur, die unten für Cursor gezeigt wird. In der ersten Sitzung fragt Claude Code dich um Genehmigung, weil eine Projekt- .mcp.json nicht automatisch vertrauenswürdig ist.


Verbindung zu Cursor

{
  "mcpServers": {
    "wiztree": {
      "command": "C:\\path\\to\\wiztree-mcp\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\wiztree-mcp\\wiztree_mcp.py"],
      "env": {
        "WIZTREE_EXE": "C:\\path\\to\\WizTree64.exe"
      }
    }
  }
}

Verweise auf .venv\Scripts\python.exe, nicht auf das System-python: So musst du die Umgebung nicht aktivieren und Cursor findet die Abhängigkeiten immer.

Die Datei cursor-mcp.json enthält bereits den Ausschnitt mit den korrekten absoluten Pfaden für diese Installation: Öffne sie und kopiere sie.

Oder lass das Skript es erledigen — es behält andere bereits konfigurierte Server und erstellt ein Backup:

.venv\Scripts\python.exe install_mcp.py

Starte Cursor neu: In der MCP-Liste solltest du wiztree mit 16 Tools sehen. Der Agent-Modus ist erforderlich; MCP-Tools werden im Ask-Modus nicht aufgerufen.


Verbindung zu DeepSeek Harness

Hier gilt das JSON der anderen beiden Clients nicht, also funktioniert das Kopieren der Cursor-Konfiguration und das Ändern von Pfaden nicht. DeepSeek Harness (dsh) hat keinen mcpServers-Schlüssel: Es mountet jeden MCP-Server als Plugin-Instanz von @deepseek-ai/dsh-mcp-client in einer YAML-Datei. Eine Plugin-Instanz = ein MCP-Server.

Claude Code / Cursor

DeepSeek Harness

Format

JSON

YAML

Datei

mcp.json / .mcp.json

cordis.patch.yml

Struktur

mcpServers-Objekt

Liste von Plugins auf oberster Ebene

ein Server

ein Eintrag im Objekt

ein Eintrag mit name: '@deepseek-ai/dsh-mcp-client'

Transport

implizit

explizit transport: stdio

Der Eintrag, der zur Liste hinzugefügt werden muss:

- id: mcp-wiztree
  name: '@deepseek-ai/dsh-mcp-client'
  config:
    serverName: wiztree
    transport: stdio
    command: C:\path\to\wiztree-mcp\.venv\Scripts\python.exe
    args:
      - C:\path\to\wiztree-mcp\wiztree_mcp.py
    env:
      WIZTREE_EXE: C:\path\to\WizTree64.exe
    toolCallTimeoutMs: 900000

Die Datei dsh-cordis-patch.yml hat die absoluten Pfade bereits fertig.

Wo du sie platzierst: in der cordis.patch.yml des Profils oder in der des Harness-Home-Verzeichnisses ($DSH_HOME, Standard ~/.dsh). Die Ebenen stapeln sich in dieser Reihenfolge — Profil-Bundle, Profil-cordis.patch.yml, Harness-Home-cordis.patch.yml und schließlich Overlays, die mit --patch übergeben werden. Überprüfe das effektive Ergebnis mit dsh --dump-config.

Drei Dinge, die hier wichtig sind:

  • toolCallTimeoutMs: 900000. Der Standardwert ist 60000 ms, eine Minute. Das Scannen eines vollständigen Laufwerks ohne Administratorrechte dauert viel länger und der Aufruf würde mitten in der Ausführung abgebrochen. Die anderen Clients haben keine so enge Grenze.

  • Windows-Pfade ohne doppelte Anführungszeichen. In YAML interpretieren doppelte Anführungszeichen Escape-Sequenzen, also schlägt das Parsen von "C:\Users\..." bei \U fehl. Ohne Anführungszeichen oder mit einfachen Anführungszeichen bleiben Backslashes wörtlich.

  • Toolnamen werden zu mcp__wiztree__wiztree_scan usw., dieselbe Konvention wie bei Claude Code.

DeepSeek Harness befindet sich in der Entwicklervorschau, daher kann sich dieses Format zwischen den Versionen ändern: Wenn etwas nicht übereinstimmt, vergleiche mit der offiziellen MCP-Dokumentation.


Tools

Tool

Zweck

wiztree_info

Welche ausführbare Datei verwendet wird, Version, ob der Prozess erhöhte Rechte hat, Cache-Speicherort. Rufe dies zuerst auf, wenn etwas schiefgeht.

wiztree_list_drives

Liste der Laufwerke mit Kapazität, belegtem und freiem Speicherplatz.

wiztree_scan

Scannt ein Laufwerk oder einen Ordner und erstellt den Snapshot. Gibt Summen, freien Speicherplatz des Volumes und die größten Einträge der obersten Ebene zurück.

wiztree_top_files

Größte Dateien, mit Filtern für Unterordner, Erweiterung und Mindestgröße.

wiztree_top_folders

Größte Ordner (rekursive Größe), mit max_depth, um auf einer lesbaren Ebene zu bleiben.

wiztree_folder_breakdown

Was in einem Ordner ist, eine Ebene nach der anderen, mit Prozentsatz der Gesamtmenge. Das Tool zum schrittweisen Hinuntergehen.

wiztree_file_types

Speicherplatz, aggregiert nach Erweiterung.

wiztree_search

Suche nach Glob (*.iso), einfachem Wort (Teiltreffer) oder Regex, sortiert nach Größe.

wiztree_duplicates

Doppelte Dateien und wiederherstellbarer Speicherplatz. Liest von der Festplatte nur Dateien, die eine Größe teilen: In AppData\Local fand es 11 GB wiederherstellbar, während es 10 MB las.

wiztree_treemap

Erzeugt WizTrees PNG-Treemap. Wenn bereits ein Snapshot desselben Stamms existiert, zeichnet es daraus, ohne die Festplatte erneut zu lesen. Mit return_image=true gibt es ihn auch inline zurück.

wiztree_export_csv

Roher CSV-Export mit allen WizTree-CLI-Optionen, wohin du willst.

wiztree_gui_state

Liest das WizTree-Fenster, das du verwendest: was geladen ist, welches Laufwerk ausgewählt ist, welcher Tab aktiv ist. Wird verwendet, um „dieses Laufwerk“ / „hier“ zu beantworten, ohne dass du den Pfad eingibst.

wiztree_open_gui

Öffnet das WizTree-Fenster auf einem Pfad und kehrt sofort zurück. Um einen Fund zur visuellen Inspektion zu übergeben.

wiztree_import_csv

Registriert ein CSV, das du aus der GUI exportiert hast (Datei > Export), als Snapshot: kein erneuter Scan, und es erbt auch einen Administrator-Scan. Die Datei wird nie geändert oder gelöscht.

wiztree_list_scans

Zwischengespeicherte Snapshots.

wiztree_clear_cache

Leert den Cache.

Alle Abfragetools akzeptieren path, refresh, max_age_minutes, admin, filter, filter_exclude, timeout_seconds und scannen selbst, wenn sie keinen gültigen Snapshot finden: Das LLM kann direkt zu wiztree_top_files gehen, ohne zuerst wiztree_scan aufzurufen.


GUI und KI zusammen verwenden

Du kannst das WizTree-Fenster offen halten, herumklicken und gleichzeitig Fragen aus dem Chat stellen. Das funktioniert, aber es ist gut zu wissen, wie weit es geht.

WizTree zeichnet die Dateiliste in einem TVirtualDrawTree: einem owner-drawn Steuerelement, bei dem Zeilen nicht als Text existieren, sondern im laufenden Betrieb gemalt werden. Von außerhalb des Prozesses sind sie Pixel, keine Daten. Die Ergebnisse, die du auf dem Bildschirm siehst, sind nicht lesbar.

Was das Fenster über normale Win32-Nachrichten preisgibt, ist wohin es zeigt, und das reicht:

1. WizTree window (pid 58140)
   Title           : [C:\Users\...\wiztree mcp test]  - WizTree
   Loaded target   : C:\Users\...\wiztree mcp test
   Drive selector  : <Select folder...>
   Available       : [C:] OS , [D:] Local Disk , <Select folder...>, ...
   Tabs            : File View, Tree View

Der Ablauf ist also: Du klickst auf [D:] in der GUI → fragst „Was belegt hier Speicherplatz?“wiztree_gui_state liest, dass das Fenster auf D: zeigt → die anderen Tools antworten über D:. Du musst keinen Pfad eingeben.

Zwei Möglichkeiten, Daten bei geöffnetem Fenster zu teilen:

  • Erneuter Scan (null Reibung). Der Server scannt selbst das Ziel, das er aus der GUI liest. Es kostet die Zeit eines Scans.

  • CSV-Übergabe (sofort). In der GUI Datei > Export, dann wiztree_import_csv. Kein erneuter Scan, und wenn die GUI als Administrator lief, übernimmst du den MFT-Scan. Das ist der schnellste Weg, um an einem vollständigen Laufwerk zu arbeiten.

Beide Ansätze koexistieren: Ein Befehlszeilen-Export wurde in einer halben Sekunde ausgeführt, während ein WizTree-Fenster geöffnet war, ohne es zu stören — der globale Mutex blockiert keine gleichzeitigen Instanzen.

Hinweis: WizTree64.exe path.csv lädt die CSV nur im Headless-Modus (mit /export oder /treemapimagefile). Ohne Schalter gestartet öffnet es nicht die GUI mit dieser CSV; es fällt auf ein Standardlaufwerk zurück. In der GUI wird die CSV über das Laufwerks-Dropdown, Eintrag <CSV File>, geöffnet.


Schnelle Scans: admin

Auf NTFS-Volumes liest WizTree die MFT direkt, weshalb es eine ganze Festplatte in Sekunden scannt. Aber das Lesen der MFT erfordert Administratorrechte.

  • Nicht erhöhter Prozess (der normale Fall mit Cursor): WizTree fällt auf einen rekursiven Ordnerscan zurück. Auf C:\ kann das mehrere Minuten dauern; bei einem einzelnen Ordner ist es immer noch schnell (~500k Dateien in 5 Sekunden).

  • admin: true: WizTree startet erneut mit erhöhten Rechten und verwendet die MFT. Dies löst die Windows-UAC-Eingabeaufforderung aus, die manuell akzeptiert werden muss.

Wenn Sie dies häufig benötigen, starten Sie Cursor als Administrator: Der Server erbt die Erhöhung und alle Scans werden sofort ohne weitere Eingabeaufforderungen durchgeführt. wiztree_info sagt Ihnen, in welcher Situation Sie sich befinden.


Umgebungsvariablen

Variable

Standard

Beschreibung

WIZTREE_EXE

Auto-Erkennung

Vollständiger Pfad zu WizTree64.exe.

WIZTREE_DIR

Ordner, der die ausführbare Datei enthält, Alternative zu WIZTREE_EXE.

WIZTREE_MCP_CACHE

%LOCALAPPDATA%\wiztree-mcp

Wo CSV-Snapshots und Treemaps gespeichert werden.

WIZTREE_MCP_MAX_SCANS

12

Wie viele Snapshots aufbewahrt werden, bevor der älteste gelöscht wird.


Tests

.venv\Scripts\python.exe test_smoke.py

Startet den Server über stdio genau wie Cursor, erstellt einen Testbaum (mit Leerzeichen und Kommas in Namen) und übt alle 16 Tools aus: 37 Prüfungen.

Um es mit echten Daten auszuprobieren:

.venv\Scripts\python.exe test_manual.py "C:\Users\me\AppData\Local"

Implementierungsdetails, die Ihnen Zeit sparen können

Dinge, die bei der Arbeit mit der WizTree 4.32 CLI entdeckt wurden und nirgendwo dokumentiert sind:

  • CSV-Header sind lokalisiert. Auf Italienisch heißt die erste Spalte Nome file, nicht File Name. Die ersten 7 Spalten sind immer in derselben Reihenfolge, während optionale (DRIVECAPACITY, CREATEDDATE, MFTRECNO, …) einen stabilen ASCII-Namen behalten. Der Parser verlässt sich für die ersten Spalten auf die Position und für die anderen auf den Namen.

  • Keine Anführungszeichen in Argumenten. Das Übergeben von /export="C:\out.csv" über subprocess führt dazu, dass WizTree ein unsichtbares modales Fehlerfenster öffnet und der Prozess für immer hängt. Werte müssen nackt übergeben werden (/export=C:\out.csv) und Python das Quoting für CreateProcess überlassen.

  • Dateien ohne Erweiterung werden mit einem nachgestellten Punkt exportiert: payload wird zu payload.. Windows erlaubt keine nachgestellten Punkte in Namen, daher entfernt der Parser ihn.

  • WizTree kann seine eigenen CSVs erneut lesen. Das Übergeben einer exportierten .csv als Scan-Pfad funktioniert: So werden Treemaps aus einem Snapshot gezeichnet, ohne die Festplatte erneut zu berühren.

  • Nicht vorhandener Pfad = Exit-Code 0 und keine Datei. Es gibt keinen Fehlercode, den man prüfen kann: Sie müssen verifizieren, dass die Ausgabedatei erstellt wurde.

  • Es gibt einen globalen Mutex (WizTreeMutex): Aufrufe werden mit einer Sperre serialisiert.

  • Der Duplikatsuche existiert nur in der GUI. Die Binärdatei enthält Duplicate Files:, Duplicates only, die Spalten DUPSIZE/DUPCOUNT und den INI-Schlüssel dupmethod, aber kein Befehlszeilenschalter erreicht sie. wiztree_duplicates ruft daher WizTree nicht auf: Es gruppiert nach Größe aus dem Snapshot und liest von der Festplatte nur Dateien, die eine Größe mit anderen teilen.

  • /exportlimit=N kürzt den Export auf N Zeilen in Traversierungsreihenfolge, nicht ein globales Top-N. Deshalb wird das Ranking hier, im Streaming über die CSV, durchgeführt und nicht von WizTree.

  • /sortby-Werte: 0 keine Reihenfolge, 1 Größe, 2 zugewiesen, 3 Änderungsdatum.


Lizenz

MIT. WizTree ist Software von Antibody Software, die unter ihrer eigenen Lizenz vertrieben wird: Dieses Projekt ruft nur seine Befehlszeile auf.

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AlessandroBonomo28/wiztree-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server