Skip to main content
Glama
pete-welch-db

Databricks Domo Migration Accelerator MCP Server

Databricks Domo Migration Accelerator

Domo 자산을 평가하고 Databricks로 마이그레이션 — MCP 서버 웹 콘솔을 통해.

Python 패키지는 pseudo_domo_mcp입니다(실제 Domo 테넌트의 API 표면을 모방하여 전체 워크플로가 오프라인으로 실행됩니다). 제품은 Databricks Domo Migration Accelerator입니다.

이 방법론은 Databricks Lakebridge(Profiler + Analyzer → Convert → Reconcile)를 미러링하고, 가치 기반 의사 결정 단계를 추가로 확장합니다:

Assess → Rationalize → Convert → Reconcile

  • Assess — 인벤토리 + 거버넌스 추론 + 자산별 복잡성, 가치, 노력(1-5)사용량 프록시(종속 카드 + 새로고침 주기 + 규모).

  • Rationalize — 각 자산의 처분(Retire · Repoint · Rebuild · Elevate · Consolidate) 및 대상 표면(AI/BI + Genie · Genie App Builder · Sigma Input Tables · Apps + Lakebase)을 결정합니다. 제안은 Assess 신호에서 미리 채워집니다. 필터링된 검색은 자산 범위를 좁히고, 저장된 필터 세트는 마이그레이션 웨이브입니다.

  • Convert — Magic ETL / SQL DataFlow를 Lakeflow 파이프라인 + Unity Catalog 메트릭 뷰로 트랜스파일합니다. Domo 오케스트레이션(일정 + 데이터플로우 종속성)을 복구하고 Databricks Workflows에 매핑합니다.

  • Reconcile — 재구축된 골드에 대한 스키마 일치 게이트.

미래 상태 추정은 노력 점수 + 결정을 마이그레이션 FTE-주, 대상 소비 크기, 그리고 (Domo 지출이 있는 경우) 절감 프레임으로 집계합니다.

하나의 엔진 위에서 Domo 검색 / 평가 / 마이그레이션 워크플로를 두 가지 방식으로 패키징합니다:

  • MCP 서버(FastMCP, stdio + streamable-HTTP) — AI 클라이언트(Claude Code, Cursor, Genie Code, …)가 대화형으로 마이그레이션을 주도할 수 있습니다.

  • 운영자 웹 콘솔(FastAPI + 빌드 없는 HTML/JS 프론트엔드) — Magic ETL 또는 대시보드를 클릭하고, 데이터 흐름을 Analyze하고, Databricks 파이프라인 코드를 Draft하고, Create할 수 있습니다 — 카탈로그/스키마 구성 포함.

Domo 공개 REST API 형태를 따른 합성 픽스처에서 완전히 오프라인으로 실행됩니다 — 라이브 테넌트, Databricks 작업 영역, 네트워크가 필요 없습니다. 준비가 되면 구성 파일을 통해 실제 Domo 테넌트(OAuth)와 실제 Databricks 작업 영역(CLI/OAuth)을 가리키면 동일한 도구가 실제 Lakeflow Declarative Pipelines를 배포합니다.

모든 것은 고객 중립적으로 제공됩니다. 번들 데이터는 가상 회사("Northwind Manufacturing")입니다. models/ 아래의 산업 데이터 모델은 오픈 소스 Databricks Industry Data Models에서 가져온 것입니다. MCP 스캐폴드는 ai-dev-kit databricks-mcp-server 패턴을 따릅니다.

"pseudo-Domo"의 이유

Domo 테넌트의 표면(데이터셋, 데이터플로우, 카드, 페이지, 소스)을 모방하여 전체 discover → assess → analyze → draft → create 워크플로를 테넌트 자격 증명 없이도 실행할 수 있습니다. 모든 테넌트 읽기는 공급자 추상화(pseudo_domo_mcp/providers/)를 통해 이루어집니다: 현재는 FixtureProvider(기본값, 오프라인), 자격 증명이 있으면 LiveProvider(실제 Domo REST — OAuth2 client_credentials). 교체는 구성 변경 하나로 충분하며, 도구는 변경되지 않습니다.

Related MCP server: Databricks MCP Server

워크플로

콘솔은 마법사입니다:

 Configure ─► Connect ─► Discover ─► Assess ─► Plan ─► Build & Deploy
  • Configure / Connect — Databricks 대상 + Domo 공급자를 설정하고 연결합니다(픽스처 모드는 번들 샘플 테넌트에 즉시 연결).

  • DiscoverDiscovery Scan은 모든 자산의 유형별, 검색 가능한 인벤토리를 구축합니다: 커넥터, Magic ETL, SQL DataFlow, 데이터셋, 카드, Beast Mode, 페이지. 이름으로 검색하고 유형으로 필터링합니다. 커넥터는 일급 객체이며 각각 Databricks 수집 재매핑 계획(Lakeflow Connect / Auto Loader / Apps+Lakebase)을 포함합니다. 소스 연결은 명시적으로 재매핑되어야 하기 때문입니다.

  • Assess — 거버넌스 vs. 섀도우 IT는 소스/커넥터 유형, 쓰기백, 소유자 형태, 새로고침 주기에서 추론됩니다(Domo에는 거버넌스 필드가 없음). 각 호출 뒤의 신호와 신뢰도 점수가 표시되어 확인/재정의할 수 있습니다.

  • Plan — 가치 기반 웨이브 계획 + 커넥터별 수집 전략.

  • Build & Deploy — 마이그레이션 가능한 자산을 선택 →

    • Analyze: Magic ETL DAG를 메달리온 계층(브론즈 → 실버 → 골드) SVG로 표시 — 트랜스파일하는 동일한 파서로 생성.

    • Draft: 6-에이전트 트랜스파일러가 브론즈/실버/골드 Spark SQL + 카드의 Beast Mode를 접은 시맨틱 뷰 + PASS/FAIL 조정 게이트를 반환.

    • Create(점진적): 항상 배포 가능한 Databricks Asset Bundle(databricks.yml + SQL)을 작성하고 배포 명령을 표시합니다. 프로필이 설정된 경우 databricks bundle deploy로 배포합니다. 선택적으로 번들을 연결된 GitHub / Azure DevOps 저장소에 PR로 커밋합니다.

구성은 언제든지 ⚙ Config에서 접근할 수 있습니다.

MCP 도구

도구

기능

domo_discover

테넌트 인벤토리 — 데이터셋/데이터플로우/카드/페이지/소스 + 추론된 거버넌스/섀도우 분할.

domo_inventory

유형별, 검색 가능한 자산 인벤토리(connector / magic_etl / sql_dataflow / dataset / card / beast_mode / page); 커넥터는 Databricks 재매핑 계획 포함.

domo_assess

각 객체를 데이터 도메인 + 소스로 분류하고, 거버넌스를 추론(신호 + 신뢰도 포함), 복잡성가치를 점수화.

list_industry_models

가져온 산업 모델(automotive, transport_shipping) 및 해당 도메인/테이블을 나열.

industry_model_map

Domo DataSet의 열을 표준 산업 모델 테이블로 초안 매핑(유사성 + 신뢰도 + 매핑되지 않은 플래그).

lakeflow_feasibility

각 소스 시스템을 Lakeflow Connect 수집에 대해 GREEN/AMBER/RED로 점수화 + 권장 패턴.

transpile_lineage

6-에이전트 트랜스파일러 → 메달리온 Spark SQL + 접힌 Beast Mode + 재매핑 계획 + 조정 게이트.

migration_plan

위의 모든 것을 우선순위가 있는 가치 기반 웨이브 계획으로 집계.

빠른 시작

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/mcpMCP 프로토콜 엔드포인트입니다(text/event-stream을 사용). 웹 페이지가 아닙니다 — 브라우저는 웹 콘솔 포트에서 여세요.

MCP를 Claude Code에 연결

이 저장소의 .mcp.json은 stdio 서버를 등록합니다. 그런 다음 예를 들어 물어보세요:

"Domo 테넌트를 검색하고, 마이그레이션 계획을 제공한 다음, 파일럿을 트랜스파일하세요."

구성

웹 콘솔의 ⚙ Config 패널 또는 환경 변수로 설정합니다(.pseudo_domo_config.json에 저장, git-ignored):

설정

용도

catalog / schema

생성된 파이프라인의 기본 Unity Catalog 대상. 자산별로 Create에서 재정의 가능(도메인/BU는 자체 카탈로그/스키마를 대상으로 할 수 있음).

pipeline_language

sql 또는 python — SDP 소스 언어. 자산별로 재정의 가능.

industry_models

초안 매핑할 Databricks Industry Data Model(들) (범용; 오픈 소스 저장소 참조). 다중 선택.

databricks_profile

Databricks CLI 프로필(databricks auth login). 비어 있으면 번들 파일만 작성; 설정하면 실제 배포. OAuth는 CLI가 처리하며 작업 영역 비밀은 저장되지 않음.

domo_provider

fixture(오프라인) 또는 live(Domo REST).

domo_client_id + DOMO_CLIENT_SECRET (env)

Domo OAuth2 client_credentials. 비밀은 환경에서 읽으며 구성에 절대 기록되지 않습니다.

store_backend + lakebase_instance

상태 저장: local(JSON 파일, 기본값) 또는 lakebase(Databricks Postgres) — 지속적이고 공유된 스캔 기록 / 마이그레이션 상태 / 번들 레지스트리.

git_provider + git_repo + GIT_TOKEN (env)

선택 사항: GitHub 또는 Azure DevOps 저장소를 연결하여 Create가 생성된 번들을 PR로 커밋. 토큰은 환경에서 읽으며 저장되지 않음.

Databricks 규칙 최신 상태 유지

도구가 생성하는 SDP/DAB 패턴은 하드코딩되지 않았습니다ai-dev-kit 저장소를 추적합니다. 패턴 매니페스트는 로컬에 캐시되고 설치 시 새로 고쳐집니다. 언제든지 ⚙ Config → Refresh patterns from ai-dev-kit로 다시 새로 고칠 수 있습니다. 완전히 오프라인 안전: 네트워크가 없으면 기본 제공 기본값이 적용됩니다.

테스트

python -m pytest -q      # end-to-end: discover→assess→map→feasibility→transpile gate→plan

라이브 전환

LiveProvider(pseudo_domo_mcp/providers/live_provider.py)는 정확한 Domo REST 엔드포인트 맵을 문서화합니다(developer.domo.com에서 확인됨). Domo에는 두 개의 API 평면이 있으며 전체 마이그레이션 인벤토리에는 둘 다 필요합니다:

  • Public API(https://api.domo.com, OAuth2 client_credentials; 범위 data user dashboard audit …) — 인구 조사 + 스키마: GET /v1/datasets, /v1/datasets/{id}(schema.columns), /v1/pages, /v1/cards(메타데이터만), /v1/streams, /v1/users, /v1/groups.

  • Instance API(https://{instance}.domo.com, X-DOMO-Developer-Token) — 변환 내부: GET /api/dataprocessing/v1/dataflows[/{id}](Magic ETL DAG + SQL 본문) 및 /api/content/v1/cards(Beast Mode 표현식).

따라서 마이그레이션 트리플 = 인스턴스 데이터플로우 내부 + 공개 데이터셋 스키마 + 인스턴스 카드 내보내기. 공개 API만으로는 인구 조사 + 스키마를 얻을 수 있지만 변환 논리나 Beast Mode는 얻을 수 없습니다. 라이브로 전환하려면: domo_provider=live + OAuth 자격 증명(및 변환 트리플을 위한 DOMO_INSTANCE + DOMO_DEVELOPER_TOKEN)을 설정한 다음 스텁된 읽기를 구현하세요.

레이아웃

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 pytest

문서

  • docs/GUIDE.md — 설치, 전체 Assess → Rationalize → Convert → Reconcile 워크플로, MCP 도구 + REST 참조, 라이브 전환.

  • docs/FAQ.md — 무엇인지, Lakebridge와의 관계, 점수/사용량, 처분 및 표면, 오케스트레이션, 추정 등.

라이선스

LICENSE를 참조하세요. 가져온 산업 모델 DDL은 원본 라이선스를 유지합니다(models/README.md 참조).

Available Tools

8 tools
domo_assessA

Assess the Domo estate: classify by data domain + source, score governance and migration complexity, and tag business value.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo"dataflows" (default) assesses each DataFlow + its card; "cards" assesses cards standalone; "summary" returns portfolio rollups.dataflows

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It mentions high-level activities (classify, score, tag) but does not specify whether the tool is read-only, has side effects, requires specific permissions, or what the output format is beyond input schema hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one parameter and an output schema (not shown but noted), the description sufficiently covers the main functionality. It could be slightly improved by hinting at the output structure, but overall it is complete enough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'scope' is fully described in the input schema (100% coverage). The description does not add extra semantics beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool assesses the Domo estate by classifying, scoring, and tagging. It distinguishes from siblings like domo_discover and domo_inventory, which focus on discovery and inventory, respectively.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description: use when you need to assess the Domo estate. However, no explicit when-to-use or when-not-to-use guidance is provided, and no alternatives are mentioned in the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domo_discoverB

Inventory the Domo tenant for a migration assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhat to return. One of: "summary" — counts + governance split + source systems (default) "datasets" — the DataSet census "dataflows" — the DataFlow (Magic ETL / SQL) census "cards" — the Card census "pages" — the Page (dashboard) census "sources" — distinct upstream source systems "all" — every census in one payloadsummary

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the purpose without describing behavior such as read-only nature, side effects, rate limits, or authentication needs. The minimal description leaves the agent guessing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise—one sentence covering purpose. It is front-loaded but could benefit from including usage guidelines without adding much length. Still, it is appropriately sized for a simple tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (1 parameter, no required fields, output schema present), the description is adequate. However, it lacks context about what the output represents or how it supports migration assessment, which would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameter 'scope' has a detailed description in the schema. The tool description adds no extra meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Inventory'), the target ('the Domo tenant'), and the context ('for a migration assessment'). It is specific and distinct from sibling tools like 'domo_inventory' and 'domo_assess'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide any guidance on when to use this tool versus alternatives. There is no mention of when not to use it or which sibling tool might be more appropriate for specific tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domo_inventoryB

Typed, searchable asset inventory of the Domo estate.

Domo work is organized by object type; this returns every asset with a common shape plus type-specific fields, optionally filtered.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNocase-insensitive substring match on the asset name.
asset_typeNofilter to one type — connector | magic_etl | sql_dataflow | dataset | card | beast_mode | page. Empty = all types.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions returning 'every asset' and 'optionally filtered', but does not disclose behavioral traits like pagination, performance, rate limits, or error handling, which are important for a read-based inventory tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief with two sentences, front-loading the core purpose. It is efficient but could incorporate usage guidance without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (asset inventory with type-specific fields) and the presence of an output schema, the description is adequate but lacks details about return values, filtering behavior, or limitations. It does not fully compensate for the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with parameter descriptions, so the baseline is 3. The tool description adds little beyond the schema: it restates 'optionally filtered' but does not provide additional context or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'Typed, searchable asset inventory of the Domo estate' and specifies it returns assets with common shape and type-specific fields. However, it does not differentiate from sibling tools like domo_discover or domo_assess.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching and filtering assets via parameters, but it provides no explicit guidance on when to use this tool versus the listed siblings, nor does it mention prerequisites or exclusion cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

industry_model_mapA

Draft-map a Domo DataSet's columns onto a canonical industry-model table.

Conforms a Domo output DataSet to the Databricks Industry Data Model ("silver") so the transpiled pipeline lands governed, standard entities rather than a like-for-like copy.

ParametersJSON Schema
NameRequiredDescriptionDefault
industryNotarget model key (e.g. "automotive", "transport_shipping").automotive
overridesNo{domo_column: target_column | ""} human column choices.
dataset_idNothe Domo DataSet id to map; OR
lineage_idNoa Build lineage id — its output DataSet is mapped.
prefer_domainNobias table selection; inferred from name if omitted.
force_table_fqnNopin the target table (user re-selected it in the UI).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes a 'Draft-map' action, suggesting a planning step rather than a direct transformation, but does not disclose specifics like error handling, irreversibility, or side effects. Some transparency but gaps remain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise—two sentences with no wasted words. The first sentence clearly states the action, and the second provides context. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no annotations), the description could be more complete. It lacks guidance on how to use parameters like 'overrides' or behavior when data is missing. However, the output schema exists and provides return value info, so the description is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 6 parameters have descriptions in the input schema (100% coverage). The overall description adds context about conforming to a canonical model, but does not provide additional per-parameter semantics beyond what the schema already offers. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Draft-map a Domo DataSet's columns onto a canonical industry-model table.' It uses a specific verb ('draft-map') and resource ('DataSet columns to industry model'), and distinguishes from sibling tools like 'list_industry_models' (listing) and 'transpile_lineage' (transpilation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage during mapping before transpilation ('so the transpiled pipeline lands governed...'), but does not explicitly state when to use vs. when not to. No exclusions or alternatives are provided, though siblings hint at different steps. Guidance is adequate but not explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lakeflow_feasibilityA

Score Domo source systems for Lakeflow Connect ingestion feasibility.

For each upstream source feeding the Domo estate, returns GREEN/AMBER/RED plus the recommended Databricks ingestion pattern (managed connector vs Auto Loader vs Lakebase re-platform) and a rationale — the input to sequencing the 28-source migration.

ParametersJSON Schema
NameRequiredDescriptionDefault
source_systemNooptional — score just one source (e.g. "SQL Server"); omit to score every source discovered in the tenant, ranked GREEN-first.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It clearly explains that omitting source_system scores all discovered sources ranked GREEN-first, and specifies the return types (GREEN/AMBER/RED plus pattern and rationale). It does not mention side effects or permissions, but as a scoring tool it is likely read-only and non-destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a two-paragraph structure with a clear purpose verb in the first sentence, followed by specific output details and context. Every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single optional parameter and rich output, the description fully covers what the tool does, how to use it, and what to expect. It references the broader migration context (28-source sequencing) and ties to sibling tools implicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds significant meaning beyond the schema: it explains the behavior when source_system is omitted (score all, ranked GREEN-first) and provides an example value ('SQL Server'). This effectively clarifies optionality and default behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'score' and resource 'Domo source systems for Lakeflow Connect ingestion feasibility', specifying the output (GREEN/AMBER/RED, pattern, rationale) and context (28-source migration). It distinguishes from siblings like domo_discover and domo_assess by focusing on feasibility scoring rather than discovery or assessment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for scoring source systems to plan migration sequencing, but it does not explicitly state when not to use this tool or provide alternatives. The reference to 'input to sequencing the 28-source migration' gives context, but exclusions or sibling comparisons are missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_industry_modelsB

List available Databricks Industry Data Models (and their domains).

ParametersJSON Schema
NameRequiredDescriptionDefault
industryNooptional — if given (e.g. "automotive"), returns that model's domains and table count; otherwise lists all vendored industries.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full responsibility. It does not disclose any behavioral traits beyond the basic listing action (e.g., whether it requires authentication, any side effects, or performance implications). The read-only nature is implied but not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. No wasted words; every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter) and the presence of an output schema, the description is mostly complete. It could benefit from a brief note on what 'domains' refers to, but not critical for understanding the basic function.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'industry', with a clear description of its optional use. The tool description adds no further meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('Databricks Industry Data Models'). It also mentions the optional inclusion of domains, providing specific scope. However, it does not explicitly differentiate from sibling tools like 'industry_model_map', which might have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of use cases, prerequisites, or exclusions. The sibling tools are listed but the description offers no comparative context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

migration_planA

Produce the prioritized Domo->Databricks migration plan.

Combines the tenant census, per-dataflow assessment, and per-source Lakeflow Connect feasibility into a wave-sequenced plan ranked by business value then migration complexity. This is the structured "assessment deliverable" a customer engagement produces.

Returns waves, the governance split, source feasibility rollup, and the recommended pilot. All figures are draft-grade until live tenant data.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output structure (waves, governance split, source feasibility rollup, recommended pilot) and that figures are 'draft-grade'. This adds useful behavioral context beyond a simple 'produce plan'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and then elaborates on inputs and outputs. It is reasonably concise but could be slightly tighter by merging the second and third sentences without loss of clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema that likely details return fields, the description fully covers what the tool does and what it returns. No missing information is evident for an agent to decide whether to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description need not add param details. It compensates by explaining what the tool produces and how it combines inputs, which is valuable semantics for an agent with no configurable inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Produce the prioritized Domo->Databricks migration plan') and clearly states the resource (migration plan). It distinguishes from sibling tools like domo_assess and domo_discover by positioning this as the final 'assessment deliverable' that combines multiple inputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used after census, assessment, and feasibility steps, but does not explicitly state when NOT to use it or provide alternative tools for different scenarios. The context is clear but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

transpile_lineageA

Transpile one Domo lineage triplet into a Databricks SDP medallion.

Runs the 6-agent transpiler (Ingest -> Parse -> Emit -> BeastMode -> Repoint -> Reconcile) over a lineage's triplet (Magic ETL + DataSet schema

  • card Beast Modes) and returns the emitted bronze/silver/gold Spark SQL, the folded semantic-metrics view, the Domo->Databricks connector-swap plan, and the PASS/FAIL reconciliation gate.

ParametersJSON Schema
NameRequiredDescriptionDefault
out_dirNooptional directory for the emitted .sql/.json artifacts; defaults to a temp dir.
industryNoindustry model to tag the value driver against.automotive
lineage_idYesthe triplet lineage id (e.g. "customer360"). Get valid ids from domo_assess (assessments with has_triplet=true).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and reveals the internal 6-agent transpiler process (Ingest, Parse, Emit, BeastMode, Repoint, Reconcile) and the specific outputs (bronze/silver/gold SQL, semantic-metrics view, connector-swap plan, reconciliation gate). It also explains the input composition (Magic ETL, DataSet schema, card Beast Modes). However, it does not disclose side effects, authentication needs, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise—two sentences that front-load the purpose in the first sentence and elaborate on the process and outputs in the second. Every word adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6-agent transpiler with multiple outputs), the description adequately covers the process, inputs, and outputs. An output schema exists to document return values, so the description focuses on what the tool does. It also mentions a prerequisite (lineage_id from domo_assess), making it complete for an agent to understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context beyond the schema: for lineage_id, it notes that valid IDs come from domo_assess; for out_dir, it clarifies the default behavior; for industry, it explains the purpose of tagging. This extra information improves parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to transpile a Domo lineage triplet into a Databricks SDP medallion. It specifies the verb 'Transpile,' the resource 'Domo lineage triplet,' and the outcome 'Databricks SDP medallion.' It also lists the 6-agent transpiler steps and outputs, distinguishing it clearly from sibling tools like domo_assess or migration_plan.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. It only hints at a prerequisite by mentioning that valid lineage_ids come from domo_assess, but provides no guidance on when to choose transpile_lineage over other tools such as domo_discover or lakeflow_feasibility.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observeddomo_assess
    • First observeddomo_discover
    • First observeddomo_inventory
    • First observedindustry_model_map
    • First observedlakeflow_feasibility
    • First observedlist_industry_models
    • First observedmigration_plan
    • First observedtranspile_lineage

TDQS

A3.6/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have clearly distinct purposes, such as 'domo_inventory' for detailed typed inventory vs 'domo_discover' for initial assessment. The only potential overlap is between 'domo_discover' and 'domo_inventory', but descriptions clarify they serve different stages.

Naming Consistency3/5

Names use a mix of verb-first (domo_discover, domo_assess, transpile_lineage) and noun-first (domo_inventory, industry_model_map, migration_plan) patterns. While all snake_case, the inconsistent verb/noun ordering and varying prefixes reduce predictability.

Tool Count5/5

With 8 tools covering discovery, inventory, assessment, mapping, feasibility, transpilation, and planning, the count is well-scoped for a migration accelerator. Each tool serves a distinct, necessary function without redundancy.

Completeness4/5

The tool set covers the core migration workflow from discovery to planning, including industry model mapping and lineage transpilation. Minor gaps exist, such as no tool for post-migration execution or validation, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    427
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables 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.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    MIT