Skip to content

Boreon MCP Layer · Migrations

Move Tableau to Snowflake in one conversation.

The Boreon MCP Layer sits between your Tableau Server or Tableau Cloud site and Snowflake. Ask for a workbook and the agent reads it, turns the Prep flow underneath into a dynamic table, rebuilds the dashboard as a Streamlit in Snowflake app, and checks every number against Tableau before publishing. Nobody writes a script or a line of SQL.

How a Snowflake migration runs.

Your central LLM portal

Migrate Sales Pipeline Review to Snowflake

  1. Read the workbook Dashboard zones, sheets, shelves, filters and calculations read
  2. Found the Prep flow behind it Its published data source is a flow output on Snowflake 1 flow
  3. Flow to dynamic table One SQL statement, one CTE per flow step CREATE DYNAMIC TABLE sales.pipeline_dt TARGET_LAG = '1 hour' WAREHOUSE = compute_wh AS WITH clean AS (…), joined AS (…) SELECT … FROM joined created
  4. Every sheet proven on Snowflake Each sheet's query runs before anything is published proven
  5. Numbers checked against Tableau VizQL Data Service parity, row by row checked
  6. Published as a Streamlit in Snowflake app Fidelity shown per sheet published

Published, with a fidelity report for every sheet.

One layer that speaks Tableau and Snowflake.

The layer reads each side through its own APIs and keeps a map of how Tableau fields line up with warehouse columns. It only writes when you ask, and it logs every write.

Tableau

  • Tableau Server or Tableau Cloud, your own site
  • Workbooks and dashboards (.twb / .twbx)
  • Published data sources (.tds)
  • Tableau Prep flows (.tfl)
  • VizQL Data Service and the Metadata API
  • PAT, JWT or a central service account

Boreon MCP Layer

Behind the Data & AI Portal

Snowflake

  • Your account, databases and roles
  • Databases, schemas and virtual warehouses
  • Streamlit in Snowflake apps
  • Dynamic tables from Prep flows
  • SQL API for every query
  • Key pair, OAuth or a PAT

Dashboards become Streamlit apps. Prep flows become dynamic tables.

Workbook to Streamlit app

Dashboards to Streamlit apps

The dashboard's layout, marks, colors, sort and number formats become a Streamlit in Snowflake app, with its filters as live selectors.

.tfl to dynamic table

Tableau Prep flows

Each flow step becomes a CTE in one SQL statement, created as a Snowflake dynamic table, or a materialized view where Snowflake allows one.

Flow, table, app

The whole chain

A workbook fed by a Prep flow moves as one job. The table is created and verified first, then the app is built on it.

The rules it works by.

  1. 01 All or nothing

    A dashboard is only rebuilt on the Snowflake tables its data already lives in. If a single sheet can't be matched, nothing is published, and you get the reason.

  2. 02 Numbers first

    Averages, distinct counts and medians stay exact under dashboard filters, and every result is checked against Tableau's answer.

  3. 03 Proven before it ships

    Every sheet's query runs on Snowflake before publishing, so the app opens without SQL errors.

  4. 04 Your identity, your roles

    It signs in with a key pair or OAuth, or as each person through Snowflake OAuth, so their own roles apply.

  5. 05 Read-only by default

    It only writes what you ask for, a published app or a new table, and logs each one.

Which Tableau dashboard would you move first?

Start there. It becomes the first thing we move, checked number by number against Tableau, and the portal it lands in stays yours.