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 auf dem Laufwerk C: den Speicher?“, „Finde alle Dateien über 1 GB in Downloads“, „Wie viel Speicherplatz belegen Videos in diesem Ordner?“, „Gibt es verwaiste Python-Abhängigkeiten, die ich bereinigen kann?“.

Ich finde das sehr nützlich für die Bereinigung nicht mehr benötigter Cache-Dateien von WSL, Python, Docker und npm. Verwende lokale Modelle für mehr Privatsphäre.

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

WizTree hat keine API: Es gibt eine Kommandozeile, die ein CSV mit allem exportiert, was gescannt wurde. Der Server verwendet diesen Export.

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

Ein Scan läuft einmalig und wird als CSV-Snapshot im Cache gespeichert. Alle Folgefragen werden beantwortet, indem das CSV im Streaming-Modus gelesen wird: Es erfolgt kein erneuter Scan der Platte, das gesamte Laufwerk wird nicht in den Speicher geladen. Ein Snapshot–z. B. 500.000 Dateien–belegt etwa 50 MB und beantwortet eine Abfrage in ungefähr einer Sekunde.

Snapshots werden automatisch wiederverwendet: Wenn du die Festplatte C:\ gescannt hast und danach etwas über C:\Users\me\Downloads fragst, verwendet der Server den vorhandenen Snapshot, anstatt die Arbeit zu wiederholen.


Related MCP server: WizTree MCP

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 das für dich ausreicht, bist du bereit.

Der Server findet WizTree64.exe selbst, wenn der Ordner wiztree-mcp im Ordner deinesWizTree-Portables liegt oder wenn WizTree in Program Files installiert ist. Andernfalls zeige den Speicherort mit der Umgebungsvariable WIZTREE_EXE an.


Verbindung mit Claude Code

Ein Befehl, kein JSON-Editorierent – das Skript übernimmt die Zusammenführung:

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 das gilt

Wann du dassetzen solltest

user

alle Ordner

das, was du fast immer willst

project

schreibt eine .mcp.json in den aktuellen Ordner

um sie mit Menschen zu teilen, die am selben Repo arbeiten

local (Standard)

nur für dich, nur in diesem Ordner

schnelle Experimente

Überprüfen:

claude mcp list

Dann claude beenden und neu starten: MCP-Server verbinden sich beim Start der Sitzung, nie live. Innerhalb der Sitzung heißen die Tools z. B. mcp__wiztree__wiztree_scan, aber du musst die Namen nicht: Frage einfach „Was ist auf D:?“.

Falls du den Projektbereich ohne CLI bevorzugst, kannst du auch eine .mcp.json manuell in dem Ordner anlegen, aus dem du claude startest, mit der gleichen Struktur wie unten bei Cursor gezeigt. In der ersten Sitzung fragt Claude Code dich um Genehmigung, weil du einem Projekt- .mcp.json nicht automatisch vertraust.


Verbindung mit 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.

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

Oder lass das Skript es machen: Es erhält andere bereits eingerichtete Server und macht ein Backup:

.venv\Scripts\python.exe install_mcp.py

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

Verbindung mit DeepSeek Harness

Hier gilt das JSON der anderen beiden Clients nicht, therefore das Kopieren der Cursor-Konfiguration und das Ändern der Pfade funktioniert nicht. DeepSeek Harness (dsh) hat keinen Schlüssel mcpServers: Du bindest jeden MCP-Server als Plugin-Instanz von @deepseek-ai/dsh-mcp-client in eine YAML-Datei. Ein 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 Objekt-Eintrag

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

Transport

implizit

explizit transport: stdio

Der in die Liste ein zu Fügen:

- 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 angelegt.

Wo du sie platzierst: in der cordis.patch.yml des Profils oder in der des Harness-Home ($DSH_HOME, Standard ~/.dsh). Die Ebenen stapeln sich in dieser Reihenfolge – Profil-Bundle, cordis.patch.yml des Profils, cordis.patch.yml des Harness-Home, und schließlich Overlays, die mit --patch übergeben. Prüfen mit fortgeschrittener Konfiguration: dsh --dump-config.

Drei Dinge, die hier wichtig sind:

  • toolCallTimeoutMs: 900000. Die Voreinstellung ist 60000 ms, eine Minute. Das Scannen eines vollständigen Laufwerks ohne Administratorrechte dauert viel länger und der Aufruf würde mitten unterbrochen. Die anderen Clients haben kein so enges Limit.

  • Windows-Pfade ohne Ausführungszeichen. In YAML interpretieren doppelte Anführungszeichen Escape-Sequenzen, deshalb scheitert "C:\Users\..." beim Parsen an \U. Ohne Anführungszeichen oder mit einfachen Anführungszeichen bleiben Backslashes Zeichen für Zeichen erhalten.

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

DeepSeek Harness ist in Developer Preview, daher kann sich das Format zwischen Releases ändern: wenn etwas nicht übereinstimmt, vergleiche mit der offiziellen MCP-Dokumentation.


Werkzeuge

Werkzeug

Zweck

wiztree_info

Welche ausführbare Datei benutzt wird, Version, ob der Prozess erhöht ist, Cache-Speicherort. Anrufen, wenn etwas schiefgeht.

wiztree_list_drives

Liste der Laufwerke mit Kapazität, belegtem und freien Speicher.

wiztree_scan

Scanne ein Laufwerk oder einen Ordner und erstelle den Snapshot. Gibt Summen, freien Speicher des Volumen und die größten Top-Level-Einträge zurück.

wiztree_top_files

Größte Dateien, mit Filtern nach Unterordner, Erweiterung und Mindestgröße. .

wiztree_top_folders

Größte Ordner (rekursive Größe), mit max_depth, um eine gut lesbare Stufe zu erhalten.

wiztree_folder_breakdown

Was innerhalb eines Ordners liegt, Ebene für Ebene, mit Prozentsatz des Gesamtsummen. Das Tool zum schrittweisen Heruntergehen.

wiztree_file_types

Speicher nach Endung aggregiert.

wiztree_search

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

wiztree_duplicates

Doppelte Dateien und wiederherstellbarer Speicher. Liest nur von Datenträgern von denen, die dieselbe Größe teilen: In AppData\Local` wurden 11 GB wiederherstellbar, während 10 MB gelesen wurden.

wiztree_treemap

Erzeugt WizTree’s PNG-Treemap. Wenn bereits ein Snapshot desselben Stamms vorhanden ist, zeichnet es ohne Disk erneut zu lesen. Mit return_image=true auch Inline zurück.

wiztree_export_csv

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

wiztree_gui_state

Liest den Zustand des von dir benutzen WizTree-Fensters: was geladen ist, welches Laufwerk ausgewählt ist, welcher Tab aktiv. Dient zur Antwort „dieses Laufwerk“ / „hier“.

wiztree_open_gui

Öffnet das WizTree-Fenster auf einem Pfad und kehrt sofort zurück. Um eine Beobachtung zur visuellen Prüfung zu übergeben.

wiztree_import_csv

Registriert eine CSV, die du aus der GUI exportiert hast (File > Export), als Snapshot: kein erneut durchscanntes, sondern erbt auch Admin-Scan. Die Datei wird nie geändert oder gelöscht.

wiztree_list_scans

Zwischengespeicherte Snapshots.

wiztree_clear_cache

Leert den Cache.

Alle Abfrage-Tools akzepthalten path, refresh, max_age_minutes, admin, filter, filter_exclude, timeout_seconds, und scannen selbstständig, wenn sie keinen gültigen Snapshot finden: Das LLM kann also direkt zu wiztree_top_files ohne vorher wiztree_scan aufzurufen.


GUI und die AI gemeinsam nutzen

Du kannst das WizTree-Fenster offen lassen, klicken und gleichzeitig schon im Chat Uhr Stellen fragen. Das funktioniert, aber es ist wissen, wie weit es geht.

WizTree zeichnet die Dateiliste in einem TVirtualDrawTree: ein self-kontrollete Steuerelement, bei dem Zeilen nicht als Text existieren, sondern immediately gew printed werden. Von außerhalb des Prozesses sind sie Pixel, keine Daten. Die Arbeitsergebnisse, die du am Bildschirm siehst, wie du nicht lesbar.

Wie weit was das Fenster Doch –through normal Win32-Nachrichten: it ist which ist shows, das ist genug:

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

Das Fluss ist: du klick auf [D:] in der GUI → frag „Was ist hier vom Speicher?“ → wiztree_gui_state reads, das Fenster auf zeigers D: → die anderen Tools beantworten zu D:. Du musst keinen Pfad angeben.

Zwei Wege, um mit dem Fenster geöffnet Daten teilen:

  • Neuscan (zero friction). Der Server scannt direkt das Ziel, das er von der GUI ausliest. Kostet die Zeit eines Scans.

  • CSV-Weitergabe (sofort). In der GUI machst File > Export, dann wiztree_import_csv. Kein ernecaninn, wenn der GUI mit Admin läuft, Begleitung der MFT. Das ist der schnellste Weg, um an einem vollständigen Laufwerk zu arbeiten.

Beide Ansätze nebeneinander: CLI-Export in habem sec ern wurde bestätigt,owen WizTree-Fenster geöffnet, ohne zu stören – der globale Mutex blockiert keine Instances.

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 ein volles Laufwerk in Sekunden scannt. Das Lesen der MFT erfordert jedoch Administratorrechte.

  • Nicht erhöhter Prozess (der Normalfall 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 neu mit erhöhten Rechten und verwendet die MFT. Dies löst die Windows-UAC- Abfrage 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 Abfragen durchgeführt. wiztree_info zeigt Ihnen, in welcher Situation Sie sich befinden.


Umgebungsvariablen

Variable

Standard

Beschreibung

WIZTREE_EXE

automatische 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 Zeit sparen können

Dinge, die bei der Arbeit mit der WizTree-4.32-CLI in der Praxis 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. Die Übergabe 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 abschließenden Punkt exportiert: payload wird zu payload.. Windows erlaubt keine abschließenden Punkte in Namen, daher entfernt der Parser ihn.

  • WizTree kann seine eigenen CSVs erneut lesen. Die Übergabe 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 zum Prüfen: Sie müssen verifizieren, dass die Ausgabedatei erstellt wurde.

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

  • Der Duplikatfinder 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 auf 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 belegt, 3 Änderungsdatum.


Lizenz

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language analysis of Azure usage data from CSV files, providing cost summaries, visualizations, and insights about service and regional spending patterns.
    1
    -
  • A
    license
    B
    quality
    D
    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
    B
    maintenance
    Query local CSV, Parquet, JSON and TSV files with real SQL via DuckDB. Gives your AI coding tool ground-truth data access instead of hallucinated answers.
    4
    MIT