Install
$ agentstack add mcp-andey0saikiran-tableau-lineage ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Tableau Lineage Visualizer
A privacy-first web app that visualizes the field-level lineage, calculated-field dependencies, and metadata inside any Tableau workbook (.twbx), entirely in your browser. Drop in a workbook and get an interactive dependency graph and a searchable data dictionary. Nothing is uploaded, stored, or sent anywhere.
🔗 Live: https://tableau-lineage.com
Why
Inheriting or auditing someone else's Tableau workbook means reverse-engineering dozens of calculated fields and their tangled dependencies by hand. This tool reads the workbook's structure and maps it for you: every calculated field, its formula, the raw fields and parameters it depends on, which calcs are LOD or table calculations, and any SQL the workbook stores (Custom SQL, Initial SQL, stored procedures, RAWSQL fields).
Because Tableau workbooks often contain sensitive data, the whole thing runs locally; the .twbx never leaves your machine.
Features
- Interactive dependency graph (vis-network): nodes for calculated fields, raw
fields, and parameters; edges show what depends on what. Cluster by data source, search, highlight dependency chains, zoom and pan.
- Searchable data dictionary: every calculated field grouped by data source, with
its formula and dependencies; every parameter with its type, current value, and options.
- Stored SQL, surfaced: when a workbook contains SQL, a panel shows every Custom SQL
query (full text), Initial SQL statement, stored-procedure reference with parameters, and RAWSQL_* calculated field, each mapped to the connection (class · dbname · server) it targets. Runtime-generated live-connection queries are not stored in files, so they are explicitly out of scope.
- Seven metrics at a glance: data sources, calculated fields, raw fields, parameters,
LOD calcs, table calcs, filters.
- Filters, decoded: every filter deduplicated across worksheets — the field it acts
on, its kind (categorical / quantitative / relative-date), context-filter status, stored member selections and ranges, plus a per-worksheet breakdown showing exactly which sheets filter on what. Data-source filters are called out separately.
- Worksheets in the lineage: each sheet appears in the graph as a hexagon wired to
the fields it uses (dashed) and filters on (cyan), toggleable via the Sheets button; the dictionary gains a Worksheets section, and the CSV/JSON exports carry a "used in worksheets" mapping per field.
- Exports, all generated in-browser:
- Interactive HTML: a self-contained, watermarked report (vis-network inlined, so
it works offline). The same artifact you see in the app.
- CSV of the field inventory and JSON of the full model.
- Clickable metrics: click a stat (Calculated Fields, Raw Fields, Parameters, LOD,
Table Calcs) to highlight those nodes in the graph.
- Private by architecture:
.twbxparsing (unzip + XML) happens client-side. No
backend, no upload, no cookies. Analytics is an anonymous, aggregate page-view count.
- Accessible: keyboard navigation, focus management, AA contrast, reduced-motion
support, and a text dictionary as an equivalent to the canvas graph.
- Seven UI languages with English fallback.
How it works
.twbx (a ZIP)
└─ fflate unzips the .twb entry ──► DOMParser reads the XML
└─ extractor.ts builds the lineage model (calc fields, deps, params, stats)
├─ in-app: rendered as a sandboxed report
└─ exports: HTML / CSV / JSON, all from the same model
The analytical core (src/lib/extractor.ts) is a faithful TypeScript port of the original Python service's extraction logic, with two correctness fixes:
- Parameter references by caption. Formulas reference parameters by their caption
(e.g. [Parameters].[Survival Target (Months)]), but the parameter's internal name can differ ([Survival Benchmark]). The original failed to resolve these and leaked a phantom Parameters dependency. Fixed.
- Table-calc detection by token, not substring. The original flagged a field as a
table calc because TOTAL was a substring of [total_views]. Now matched as whole function calls (\bTOTAL\s*(). LOD detection is brace-anchored.
Both fixes are covered by npm run test:core (real-workbook fixtures + a synthetic LOD/table-calc case).
Tech stack
Vite · React 19 · TypeScript · Tailwind CSS · fflate (unzip) · native DOMParser (XML) · vis-network (graph). No backend.
MCP server (for AI assistants)
The same extraction engine ships as an MCP server, so Claude, Cursor, and other MCP clients can read calculated-field dependencies, formulas, and parameters straight from a workbook on your disk. Still 100% local, nothing uploaded.
claude mcp add tableau-lineage -- npx -y tableau-lineage-mcp
Tools: analyze_workbook, list_calculated_fields, get_field, trace_dependencies, list_parameters, get_lineage_graph, list_sql_queries (Custom SQL, Initial SQL, stored procs, RAWSQL_*), list_filters (per-worksheet breakdown, context filters, members and ranges), list_worksheets (each sheet's fields and filters). Full docs in [mcp/](mcp/).
Run locally
npm install
npm run dev # http://localhost:5173
Other scripts:
npm run build # typecheck + production build to dist/
npm run preview # serve the production build
npm run typecheck # tsc --noEmit
npm run test:core # extractor parity + regression tests (Node)
Deploy (Cloudflare Pages)
This is a static site; deploy the dist/ folder to any static host. Recommended: Cloudflare Pages (unlimited bandwidth, global CDN, native apex-domain TLS).
- Push this repo to GitHub.
- Cloudflare dashboard → Workers & Pages → Create → Pages → Connect to Git → select
the repo.
- Build settings:
- Build command:
npm run build - Output directory:
dist
- Every push to
mainnow builds and deploys automatically. (Cloudflare Workers Builds
runs the build and deploy on each push.)
- Custom domain: Pages project → Custom domains → add
tableau-lineage.comand
www. Moving the domain's nameservers to Cloudflare gives automatic HTTPS and apex-domain handling.
public/_headers ships a security baseline and a Content-Security-Policy that restricts outbound connections to this origin and Cloudflare's analytics only, which is what makes the "your data never leaves your browser" promise enforceable.
Analytics (cookieless)
Visitor counts come from Cloudflare Web Analytics: cookieless, no personal data.
- Cloudflare dashboard → Web Analytics → Add a site → enter the hostname.
- Copy the beacon token and paste it into the commented `
inindex.html`. - View numbers in the Cloudflare dashboard → Web Analytics.
That single page-view beacon is the only data collected.
Demo workbook
public/demo.twbx powers the "try a sample workbook" button. Replace it with any .twbx you'd like to feature as the default example.
License
[MIT](LICENSE) © 2026 Sai Kiran Andey
Built by Sai Kiran Andey.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: andey0Saikiran
- Source: andey0Saikiran/tableau-lineage
- License: MIT
- Homepage: https://tableau-lineage.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.