TOMPo — Power BI & Fabric Lineage Intelligence. MCP Server + Streamlit Web App. Trace lineage from columns to visuals, cross-workspace. Governance health scores.
Project description
TOMPo MCP — Power BI & Fabric Lineage Intelligence
Trace lineage from semantic models → tables → reports → pages → visuals → columns/measures.
An MCP (Model Context Protocol) server that brings Power BI lineage intelligence directly into your AI assistant — GitHub Copilot, Claude Desktop, Cursor, or any MCP-compatible client.
What it does
- Full Lineage: See exactly which columns and measures appear in which visuals, across all reports bound to a semantic model
- Impact Analysis: "What breaks if I rename
Employee.StartDate?" — instantly shows every affected visual - Interactive Visualization: Export a self-contained D3 tree (HTML file) with expand/collapse, zoom, and search
- Zero Infrastructure: Runs locally on your machine using your own Azure identity. No App Service, no Docker, no backend.
Quick Start
1. Install
pip install git+https://github.com/microsoft/tompo-mcp.git
Or clone and install locally:
git clone https://github.com/microsoft/tompo-mcp.git
cd tompo-mcp
pip install -e .
2. Login to Azure
az login
3. Add to VS Code
Add to your VS Code settings.json (Ctrl+Shift+P → "Preferences: Open User Settings (JSON)"):
{
"mcp": {
"servers": {
"tompo": {
"command": "python",
"args": ["-m", "tompo_mcp"]
}
}
}
}
4. Use in Copilot Chat
Open GitHub Copilot Chat and start asking:
> List my Fabric workspaces
> Generate lineage for dataset abc-123 in workspace xyz-456
> What visuals use the Employee.Department column?
> Export the lineage as an interactive HTML file
MCP Tools
| Tool | Description |
|---|---|
list_workspaces |
List all Fabric/Power BI workspaces you have access to |
generate_lineage |
Full lineage: Model → Tables → Reports → Pages → Visuals → Fields |
impact_analysis |
Find all visuals where a specific column or measure is used |
describe_semantic_model |
Detailed metadata: tables, columns, measures, relationships, roles |
export_lineage_html |
Generate interactive D3 visualization as a self-contained HTML file |
How It Works
You type in Copilot Chat
│
▼
Copilot calls TOMPo MCP tools
│
▼
TOMPo runs locally on your machine:
→ Uses your az login identity
→ Calls Fabric REST APIs (getDefinition, Scanner, DAX)
→ Parses model + report definitions
→ Builds lineage tree
→ Returns data to Copilot
│
▼
Copilot shows the lineage tree / impact table
(or opens interactive HTML in your browser)
Authentication
TOMPo uses DefaultAzureCredential which automatically picks up:
- Azure CLI (
az login) — most common for developers - VS Code Azure Account — if you're signed into the Azure extension
- Environment variables — for CI/CD pipelines
- Managed Identity — for Azure-hosted scenarios
You need access to the Fabric workspaces you want to analyze. No extra app registrations or service principals required.
Metadata Extraction (3-tier fallback)
- Fabric
getDefinitionAPI — returns full model.bim / TMDL / PBIR definitions - Admin Scanner API — fallback if getDefinition fails (requires admin permissions)
- DAX
executeQueries— last resort usingINFO.TABLES(),INFO.COLUMNS(), etc.
If a sensitivity label blocks access, TOMPo temporarily downgrades to "General", extracts metadata, then restores the original label.
Interactive Visualization
The export_lineage_html tool generates a single HTML file with:
- D3 horizontal tree with expand/collapse nodes
- Color-coded by type (model, table, report, page, visual, column, measure)
- Impact Analysis tab with searchable data grid
- Semantic Model tab with tables, columns, measures, relationships
- Zoom, pan, fullscreen — all interactive
- Works offline — all JavaScript and CSS inlined, no server needed
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"tompo": {
"command": "python",
"args": ["-m", "tompo_mcp"]
}
}
}
Development
git clone https://github.com/microsoft/tompo-mcp.git
cd tompo-mcp
pip install -e ".[dev]"
python -m pytest tests/
Requirements
- Python 3.10+
- Azure CLI (
az login) or any Azure credential - Access to Fabric/Power BI workspaces
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tompo_mcp-0.3.12.tar.gz.
File metadata
- Download URL: tompo_mcp-0.3.12.tar.gz
- Upload date:
- Size: 110.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4494d5c35a6efa71aa2699960494c6f8fbcf79778117f3313413fd5c05731a6d
|
|
| MD5 |
a4b2d655af2d17162d445bcdd9eb2182
|
|
| BLAKE2b-256 |
40494de8b75511f64fcdf55eea5de6139b0a1127543c23d0eec45c90bcfdbf38
|
File details
Details for the file tompo_mcp-0.3.12-py3-none-any.whl.
File metadata
- Download URL: tompo_mcp-0.3.12-py3-none-any.whl
- Upload date:
- Size: 72.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
28b7b7c19412830021dea6c186ab985cab998d9deefca56a32c8aecc61c8236f
|
|
| MD5 |
5d654849294741f20ac568f74d4585c4
|
|
| BLAKE2b-256 |
38630f1a647ed4190a379d891ec3b97e3e76eadd55b09e9ae88c0536a748b2ce
|