Databricks Domo Migration Accelerator MCP Server
Provides tools for migrating Domo assets to Databricks, including discovering, assessing, planning, and deploying Databricks Asset Bundles (SQL/Python pipelines) to a Databricks workspace with Unity Catalog integration.
Allows committing generated Databricks Asset Bundles to a GitHub repository as a pull request for version control and collaboration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Databricks Domo Migration Accelerator MCP ServerDiscover and assess Domo assets for migration"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Databricks Domo Migration Accelerator
Assess a Domo estate and migrate it to Databricks — via an MCP server and a web console.
The Python package is
pseudo_domo_mcp(it impersonates a Domo tenant's API surface so the whole workflow runs offline). The product is the Databricks Domo Migration Accelerator.
It packages the Domo discovery / assessment / migration workflow two ways over one engine:
an MCP server (FastMCP, stdio + streamable-HTTP) so an AI client (Claude Code, Cursor, Genie Code, …) can drive the migration conversationally, and
an operator web console (FastAPI + a zero-build HTML/JS frontend) that lets you click a Magic ETL or dashboard, Analyze its data flow, Draft the Databricks pipeline code, and Create it — with catalog/schema config.
It runs fully offline on synthetic fixtures shaped after Domo's public REST API — no live tenant, no Databricks workspace, no network required. When you're ready, point it at a real Domo tenant (OAuth) and a real Databricks workspace (CLI/OAuth) via config, and the same tools deploy real Lakeflow Declarative Pipelines.
Everything ships customer-agnostic. The bundled data is a fictional company ("Northwind Manufacturing"). The industry data models under
models/are vendored from the open-source Databricks Industry Data Models; the MCP scaffold follows the ai-dev-kitdatabricks-mcp-serverpattern.
Why "pseudo-Domo"
It impersonates the surface of a Domo tenant (datasets, dataflows, cards,
pages, sources) so the whole discover → assess → analyze → draft → create
workflow is exercisable before you have tenant credentials. All tenant reads go
through a provider abstraction (pseudo_domo_mcp/providers/): FixtureProvider
(default, offline) today; LiveProvider (real Domo REST — OAuth2
client_credentials) when creds land. Swapping is one config change; the tools
never change.
Related MCP server: Databricks MCP Server
The workflow
The console is a wizard:
Configure ─► Connect ─► Discover ─► Assess ─► Plan ─► Build & DeployConfigure / Connect — set the Databricks target + Domo provider, then connect (fixture mode connects instantly to the bundled sample tenant).
Discover — a Discovery Scan builds a typed, searchable inventory of every asset: connectors, Magic ETL, SQL DataFlows, DataSets, cards, Beast Modes, pages. Search by name and filter by type. Connectors are first-class and each carries a Databricks ingestion remap plan (Lakeflow Connect / Auto Loader / Apps+Lakebase), because source connections are what must be explicitly re-mapped.
Assess — governed vs. shadow IT is inferred (Domo has no governance field) from source/connector type, writeback, owner shape, and refresh cadence, with a confidence score and the signals behind each call shown for confirm/override.
Plan — a value-driven wave plan + per-connector ingestion strategy.
Build & Deploy — pick a migratable asset →
Analyze: the Magic ETL DAG as a medallion-layered (bronze → silver → gold) SVG, built from the same parser that transpiles it.
Draft: the 6-agent transpiler returns bronze/silver/gold Spark SQL + a semantic view folding the card's Beast Modes + a PASS/FAIL reconcile gate.
Create (progressive): always writes a deployable Databricks Asset Bundle (
databricks.yml+ SQL) and shows the deploy command; deploys viadatabricks bundle deploywhen a profile is set; optionally commits the bundle to a linked GitHub / Azure DevOps repo as a PR.
Config is reachable anytime via ⚙ Config.
The MCP tools
Tool | What it does |
| Inventory the tenant — datasets/dataflows/cards/pages/sources + an inferred governed/shadow split. |
| Typed, searchable asset inventory (connector / magic_etl / sql_dataflow / dataset / card / beast_mode / page); connectors carry a Databricks remap plan. |
| Classify each object by data domain + source, infer governance (with signals + confidence), score complexity and value. |
| List vendored industry models ( |
| Draft-map a Domo DataSet's columns → a canonical industry-model table (similarity + confidence + unmapped flags). |
| Score each source system GREEN/AMBER/RED for Lakeflow Connect ingestion + recommended pattern. |
| 6-agent transpiler → medallion Spark SQL + folded Beast Modes + repoint plan + reconcile gate. |
| Aggregate all of the above into a prioritized, value-driven wave plan. |
Quick start
uv venv --python 3.11 .venv && source .venv/bin/activate
uv pip install -e . # add --index-url <your-mirror> behind a proxy
# 1) Web console (browse → analyze → draft → create)
python -m pseudo_domo_mcp.webapp.app # http://127.0.0.1:8010
# 2) MCP server — stdio (for Claude Code / Cursor)
python -m pseudo_domo_mcp.server
# 3) MCP server — HTTP
PSEUDO_DOMO_TRANSPORT=http PORT=8000 python -m pseudo_domo_mcp.server
127.0.0.1:8000/mcpis the MCP protocol endpoint (it speakstext/event-stream), not a web page — open a browser at the web console port instead.
Connect the MCP to Claude Code
.mcp.json in this repo registers the stdio server. Then ask, e.g.:
"Discover the Domo tenant, give me the migration plan, then transpile the pilot."
Configuration
Set in the web console's ⚙ Config panel or via env (persisted to
.pseudo_domo_config.json, git-ignored):
Setting | Purpose |
| Default Unity Catalog target for generated pipelines. Overridable per asset at Create (a domain/BU can target its own catalog/schema). |
|
|
| Which Databricks Industry Data Model(s) to draft-map onto (universal; references the open-source repo). Multi-select. |
| Databricks CLI profile ( |
|
|
| Domo OAuth2 client_credentials. The secret is read from the environment, never written to config. |
| State persistence: |
| Optional: link a GitHub or Azure DevOps repo so Create commits the generated bundle as a PR. Token read from env, never stored. |
Staying current with Databricks conventions
The SDP/DAB patterns the tool generates against are not hardcoded — they track the ai-dev-kit repo. A pattern manifest is cached locally and refreshed on install; re-refresh anytime via ⚙ Config → Refresh patterns from ai-dev-kit. Fully offline-safe: with no network, built-in defaults apply.
Test
python -m pytest -q # end-to-end: discover→assess→map→feasibility→transpile gate→planGoing live
LiveProvider (pseudo_domo_mcp/providers/live_provider.py) documents the exact
Domo REST endpoint map (verified against developer.domo.com). Domo has two API
planes, and a full migration inventory needs both:
Public API (
https://api.domo.com, OAuth2 client_credentials; scopesdata user dashboard audit …) — the census + schemas:GET /v1/datasets,/v1/datasets/{id}(schema.columns),/v1/pages,/v1/cards(metadata only),/v1/streams,/v1/users,/v1/groups.Instance API (
https://{instance}.domo.com,X-DOMO-Developer-Token) — the transform internals:GET /api/dataprocessing/v1/dataflows[/{id}](Magic ETL DAG + SQL body) and/api/content/v1/cards(Beast Mode expressions).
So the migration triplet = instance dataflow internals + public dataset schema +
instance card export. The public API alone gives the census + schemas but not the
transform logic or Beast Modes. To go live: set domo_provider=live + OAuth
credentials (and DOMO_INSTANCE + DOMO_DEVELOPER_TOKEN for the transform
triplet), then implement the stubbed reads.
Layout
pseudo_domo_mcp/
server.py FastMCP server (stdio + streamable-http)
webapp/ FastAPI console + zero-build HTML/CSS/JS frontend
tools/ thin @mcp.tool wrappers (one per capability)
core/ engine: provider select, DDL parse, classify, governance
inference, map, feasibility, assets (typed inventory),
graph (DAG), config, bundle (DAB writer), gitlink
providers/ FixtureProvider (offline) | LiveProvider (Domo REST stub)
transpiler/ 6-agent Domo→Databricks transpiler + importable pipeline.run()
fixtures/
tenant/ synthetic Domo census (datasets/dataflows/cards/pages)
lineages/ full triplets (Magic ETL + schema + Beast Modes) for transpile
models/ vendored industry-model DDL (automotive, transport_shipping)
tests/ end-to-end pytestLicense
See LICENSE. Vendored industry-model DDL retains its upstream license (see
models/README.md).
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
- Flicense-qualityDmaintenanceEnables AI assistants like Claude to interact with Databricks workspaces through custom prompts and tools. Supports running SQL queries, managing clusters, creating jobs, and accessing workspace resources via the Databricks SDK.Last updated2
- Alicense-qualityDmaintenanceEnables AI assistants to interact with Databricks workspaces programmatically, providing comprehensive tools for cluster management, notebook operations, job orchestration, Unity Catalog data governance, user management, permissions control, and FinOps cost analytics.Last updated322MIT
- Flicense-quality-maintenanceEnables LLMs to manage Databricks clusters, jobs, and notebooks while providing schema references for gold and silver data layers. It allows agents to perform data discovery and execute SQL queries directly against Databricks environments.Last updated
- Alicense-qualityDmaintenanceEnables AI agents to explore Unity Catalog metadata, execute SQL queries, and analyze data lineage including notebooks and jobs, empowering autonomous data discovery and query generation in Databricks.Last updatedMIT
Related MCP Connectors
Domain intelligence platform that turns your LLM into a professional domain consultant.
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
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/pete-welch-db/databricks-domo-migration-accelerator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server