tableau-lineage-mcp
Tableau Workbook Auditor
Finden Sie heraus, was mit einer beliebigen Tableau-Arbeitsmappe (.twbx) nicht stimmt, und bilden Sie jede darin enthaltene Abhängigkeit ab – vollständig in Ihrem Browser. Unbenutzte Felder, doppelte Berechnungen, Leistungsprobleme, die vollständige Lineage berechneter Felder, Filter, Dashboards und gespeicherte SQL-Abfragen. Es wird nichts hochgeladen, gespeichert oder übertragen.
🔗 Live: https://tableau-lineage.com
📦 MCP-Server: tableau-lineage-mcp
Warum
Die Tableau-Arbeitsmappe einer anderen Person zu übernehmen bedeutet, dutzende berechnete Felder von Hand nachzuvollziehen, um eine Frage zu beantworten: Woher kommt diese Zahl, und was bricht, wenn ich sie ändere?
Zwei weitere Fragen tauchen fast genauso häufig auf und haben keine kostenlose Antwort:
Was ist hier unbenutzt? Tableau hat keine eingebaute Möglichkeit, ungenutzte Felder aufzulisten; die Anfrage ist seit 2015 im Community-Forum offen.
Warum ist es langsam? Tableaus Workbook Optimizer benötigt eine Creator-Lizenz, und Catalog benötigt Data Management auf Server oder Cloud.
Dieses Tool liest die Arbeitsmappendatei selbst und beantwortet alle drei Fragen – kostenlos, ohne Lizenz und ohne Konto. Da Arbeitsmappen oft vertrauliche Daten enthalten, läuft alles lokal: Die .twbx verlässt Ihren Rechner nie – das ist eine Eigenschaft der Architektur und kein Versprechen (es gibt keinen Server, an den sie gesendet werden könnte).
Related MCP server: Tableau MCP
Funktionen
Audit
Toter Ballast: Jedes Feld, jeder Parameter und jede Berechnung, das von nichts verwendet wird, mit einer Bewertung nach Konfidenz (
unused,likely-unused,referenced-in-comment) und ausgeführtem Grund. Diese werden eher als Kandidaten denn als Gewissheiten gemeldet, denn eine Arbeitsmappendatei kann nicht beweisen, dass ein Feld nirgendwo unbenutzt.Doppelte Berechnungen: identische Formeln unter verschiedenen Namen, und der gefährlichere Fall desselben Namens, dessen Name e Allen Reize mit sich herumträgt einen altersverschiedene Formeln.
Performance-Lint: 15 statische Regeln über das, was die Datei tatsächlich enthält. Schwere und verschachtelte LODs, lange Berechnungen, string-lastige Arbeit, zu viele Schnellfilter, fehlende Kontextfilter, Live-Verbindungen, nicht fixierte Dashboard-Größen, zu dicht bestückte Dashboards, verwaiste Arbeitsblätter.
Lineage
Interaktiver Abhängigkeitsgraph (vis-network): berechnete Felder, Rohfelder, Parameter und Arbeitsblätter als Knoten; Kanten zeigen, was was speist. Nach Datenquelle clustern, suchen, Ketten hervorheben, zoomen und schwenken.
Durchsuchbares Datenwörterbuch: jede Formel, gruppiert nach Datenquelle, plus einen Abschnitt für Arbeitsblätter.
Sieben anklickbare Kennzahlen: Datenquellen, berechnete Felder, Rohfelder, Parameter, LOD-Berechnungen, Tabellenberechnungen, Filter.
Struktur
Filter, entschlüsselt: jeder Filter über Arbeitsblätter hinweg dedupliziert, mit seiner Art (kategorisch / quantitativ / relatives Datum), Kontextfilter-Betüse, gespeicherten Mitgliedsauswahl und Bereichen sowie einer Aufschlüsselung pro Arbeitssoffice. Datenquellen-Filter werden als separater Punk ausgewiesen.
Dashboards: welche Arbeitsblätter welches Dashboard platzieren, dessen feste Größe und Gerätelayouts plus Blätter, die auf keinem Dashboard liegen, und Blätter, die ausgeblendet sind.
Datenprovenanz: Extrakt oder Live-Verbindung, Verbindungsklasse inklusive Datenbank/Server, veröffentlichte (
sqlproxy) Quellen und der Aktualisierungsverlauf, wo ihn die Arbeitsmappuchen achthundert.Gespeichertes SQL: jede Custom-SQL-Abfrage (Volltext), jede Initial-SQL-Anweisung, Verweis auf eine gespeicherte Physical-Query mit Parametern und
RASQL_*-Berechnung, jeweils zugeordnet zur adressierten Verbindung. Laufzeitgenerierte Live-Verbindungsabfragen sind in Arbeitsmappendateien nicht gespeichert und daher explizit nicht erhalten.
Versionen vergleichen
Legen Siehin das bis zu fünf Versionen desselben Dashboards ab und erhalten Sie einen semantischer Diff: welche Berechnungen hinzugefügt, entfernt, umbenannt oder bearbeitet wurden; bei jeder Änderung sehen Sie die nachgelagerten Felder, die sie bricht können – außer geänderte Parameter, Flashcards, Arbeitsblätter, Dashboards, Datenquellen und SQL. Eine bloße Umformatierung einer Berechnung wird nicht als Änderung gemeldet; verschwindet ein Feld, während eine identische Formel unter neuem Namen wieder auftaucht, wird das als Umbenennung angezeigt.
Ein Git-Diff zwischen zwei .ttwbx-Dateien kann das nicht leisten: Die Arbeitsmappe ist ein einziges, dhiel erwähntes XML-Data-Module, in dem Layoutkoordinaten und neu erzeugte IDs die eigentlichen wenigen Änderungen machen.
export
Alle Exporte werden im Browser ausgenommen, auf Basis desselben geparsten Modells:
Interaktiver HTML-Bericht: self-contained und offline-fähig (vis-network direkt eingebettet), Security-mit dem Tool und dem Autor.
Markdown-Übergabe-Dokument: die Arbeitsmappe als zusammenhängender Text (Kennzahlen, Audit, Dashboards, Datenquellen, Parameter, Filter, jede Formel, gespeichertes SQL) für ein Ticket, ein Wiki oder eine README-Datei. Zugleich das Format, die ein LLM am besten versteht, wenn später jemand eine Frage zur Arbeitsmappe stellt.
CSV als Datenfeld-Inventar (einschließlich der Nutzung in welchen Arbeitsblättern) und JSON des vollständigen Modells inklusive Audit.
Alles andere
Durch Architektur privat: Das Auspacken und Analysieren (unzip + XML) der Arbeitsmappe wird im Client ausgeführt. Kein Backend, keine Uploads, keine Cookies. Ziel-Statistik ist eine anonyme, aggregierte Aufruf-Zähler ohne Tracking.
Arbeitsmappen bis 500 MB: Nur das XML der Arbeitsmappe wird dekomprimiert; der verpackte Datenextrakt wird nie angefasst.
Barrierefreiheit: Tastaturnavigation, Fokusmanagement, AA-Kontrast, Bereitschaft gegenüber
reduced-motionund ein Text-Wörterbuch als gleichwertige Alternative zum Graphen auf der Leinwand.Sieben UI-Sprachen für die Kernintenstrings (Schaltflächen, Labels, Statusmeldungen), mit Englisch als Ausweichsprache. Längere Erklärtexte sind nur in Englisch erhalten.
Wie funktioniert es
.twbx (a ZIP)
└─ fflate unzips ONLY the .twb entry ──► DOMParser reads the XML once
├─ extractor.ts lineage model: calcs, dependencies, params, stats
├─ filterExtractor.ts filters + per-worksheet usage
├─ sqlExtractor.ts Custom SQL, Initial SQL, stored procs, RAWSQL
├─ dashboardExtractor dashboards, hidden/orphan sheets, provenance
├─ audit.ts dead weight, duplicates, performance lint
└─ diff.ts semantic diff between two parsed workbooks
├─ in-app: a sandboxed <iframe srcdoc> report
└─ exports: HTML / Markdown / CSV / JSON, all from the same modelDer verpackte Datenextrakt innerhalb einer .twbx-Datei wird (nur) nie dekomprimiert. Deshalb ist eine 500-MB-Arbeitsmappe unproblematisch, und deshalb kann das Tool Ihre Datenzeilen nicht einmal prinzipiell sehen.
Anmerkungen zur Korrektheit
Das Analyse-Kernprogramm ist ein TypeScript-Port des ursprünglichen Python-Dienstes, mit Verbesserungen, die grundsätzlich jeweils deshalb existieren, weil die naive Bootstrap-Versionet auf einer realen Arbeitsmappe falsche Ergebnisse geliefert hat:
Parameternamen über die Beschriftung. Formeln referenzieren Parameter über ihre Caption (Beispiel
[Parameters].[Survival Target (Months)]), während der interne Name abweicht (z. B.[Survival Benchmark]). Das Original erzeugte dadurch eine gehen GesuchteParameters-Abhängigkeit.Tabellenberechnungen anhand des Tokens, nicht eines Joker-Snippets.
TOTALin[total_views]führte vorher dazu, dass gewöhnliche Felder fälschlich als Tabellenberechnung erkannt wurden. Jetzt werden nur ganze Funktionsaufrufe berücksichtigt; die LOD-Detection an geschweifte Klammern verankert.Kommentare und String-Literale werden vor der Einflussanalyse entfernt. Ein Feldname, der in einem Kommentar mit
//vorkommt, wird nicht als Abhängigkeit betrachtet – und diese Annahme hat falsche ungenutzte Felder zuvor als benutzt erscheinen lassen.Knoten werden per Datenquelle geschlüsselt, nicht nur per Name. Zwei Datenquellen können beide
[dbo].[Sales]nennen; wenn man sie zusammenführt, verschmelzen unabhängige Äste in einen Knoten.Beschriftungsauflösung ist dokumentenweit. Bei auf veröffentlichten Datenquellen erstellten Arbeitsmappen bleiben Captions nur in den Analyse-Tabellen der Arbeitsblätter erhalten, sodass Filter und Arbeitsblattfeldern teilweise nur rohe Schlüssel wie
Calculation_5431234567890123auftauchen.Ein
<datasources>-Block ist nur auf der Stammschutz-Node echt. Jedes Arbeitsblatt trägt eine Referenzliste der gleichen Form; dadurch wurde ein einzelne Datenquelle in einer Zwölf-Blatt-Arbeitsmappe 13 Mal gezählt.
Alle Fälle sind durch Tests abgedeckt (npm test, npm run test:core).
Technik-Stack
Vite · React 19 · TypeScript · Tailwind CSS · fflate (unzip) · native DOM entsprechendeParser (XML) · vis-network (Graph). Kein Backend.
MCP Server (für KI-Begleiter)
Die System-Engine wird auch als MCP-Server ausgeliefert, sodass Claude, Cursor und andere MCP-Clients Arbeitsmappen direkt auf der Festplatte lesen und prüfen können. Immer noch 100 % lokal.
Claude Desktop: Laden die Ergänzung herunter und Doppel-Klick der Datei. Nur ein Klick, kein Terminal und keine Node.js-Maintenance.
Claude Code (installier das MCP plus noch ein Skill, das erkennt, wann man ihn nutzen sollte):
/plugin marketplace add andey0Saikiran/tableau-lineage
/plugin install tableau-lineage@tableau-lineageCursor und andere MCP-Clients:
claude mcp add tableau-lineage -- npx -y tableau-lineage-mcpElf Werkzeuge: analyze_workbook, audit_workbook, diff_workbooks, list_calculated_fields, get_field, trace_dependencies, list_parameters, get_lineage_graph, list_sql_queries, list_filters, list_worksheets. Die vollständige Dokumentation befindet sich in mcp/.
Dann fragen Sie sie:
„Prüfen Sie diese Arbeitsmappe und sagen Sie mir, was bedenkenlos gelöscht werden kann.“
„Was hat sich zwischen diesen beiden Versionen geändert, und was würden dadurch?“
„Welche Blätter enthalten den Filter Region, und welche Werte sind jeweils ausgewählt?“
„Erstellen Sie ein Datenlexikon für diese Arbeitsmappe.“
Heimat starten
npm install
npm run dev # http://localhost:5173Wichtige Skripte:
npm run build # typecheck + production build + pre-render to dist/
npm run preview # serve the production build
npm run typecheck # tsc --noEmit
npm test # Vitest: extractors, audit, diff, exports
npm run test:core # extractor parity + regression tests (Node)
npm run prerender # re-run the static pre-render over an existing dist/Der Build-Vorgang rendert die Einstiegsseite mit react-dom/server und bettet das Markup in dist/index.html ein, sodass Crawler echte Inhalte statt einer leeren Markierung <div id="root"> erhalten. Die Site bleibt vollständig statisch: kein Server ist beim Build oder beim Betrieb aktiv.
Bereitstellung (Cloudflare Workers static assets)
Das ist eine statische Site; der Ordner dist/ kann auf jedem statischen Host abgelegt werden. Die Live-Site läuft auf Cloudflare Workers static assets, konfiguriert über wrangler.jsonc in diesem Repository:
{ "name": "tableau-lineage", "assets": { "directory": "./dist" } }Scheiben Sie dieses Repository auf GitHub.
Cloudflare Dashboard → Workers & Pages → Create → Import from a component → Repository wählen. Cloudflare wertet
wrangler.jsoncaus und überträgtdist/als static assets handed.Build-Einstellungen:
Build-Kommando: `npm
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceEnables AI applications to integrate with Tableau through tools, resources, and prompts for querying data, exploring content, and retrieving visualizations from Tableau workbooks and datasources.10,642323Apache 2.0- AlicenseNot gradedqualityBmaintenanceEnables AI applications to interact with Tableau through tools for querying data, exploring content, and retrieving views.10,642Apache 2.0
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to programmatically read, modify, and query Tableau workbook files (.twb and .twbx) on the local filesystem via 80 tools.5MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that allows LLMs to inspect and safely edit Tableau Desktop workbooks (.twb) via XML, including creating native calculated fields using Tableau formula syntax.MIT
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Generate SBOMs, scan vulnerabilities, and analyze dependencies from local projects or Git repos.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/andey0Saikiran/tableau-lineage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server