113 lines
106 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en" dir="ltr" class="docs-wrapper docs-doc-page docs-version-current plugin-docs plugin-id-default docs-doc-id-python-sdk/builder/mcp-builder" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v2.4.3">
<title data-rh="true">MCP Builder | DataHub</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://docs.datahub.com/docs/python-sdk/builder/mcp-builder"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="MCP Builder | DataHub"><meta data-rh="true" name="description" content="These classes and methods make it easier to construct MetadataChangeProposals."><meta data-rh="true" property="og:description" content="These classes and methods make it easier to construct MetadataChangeProposals."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://docs.datahub.com/docs/python-sdk/builder/mcp-builder"><link data-rh="true" rel="alternate" href="https://docs.datahub.com/docs/python-sdk/builder/mcp-builder" hreflang="en"><link data-rh="true" rel="alternate" href="https://docs.datahub.com/docs/python-sdk/builder/mcp-builder" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://RK0UG797F3-dsn.algolia.net" crossorigin="anonymous"><link rel="alternate" type="application/rss+xml" href="/learn/rss.xml" title="DataHub RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/learn/atom.xml" title="DataHub Atom Feed">
<link rel="preconnect" href="https://www.google-analytics.com">
<link rel="preconnect" href="https://www.googletagmanager.com">
<script async src="https://www.googletagmanager.com/gtag/js?id=G-PKGVLETT4C"></script>
<script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-PKGVLETT4C",{})</script>
<link rel="preconnect" href="https://www.googletagmanager.com">
<script>window.dataLayer=window.dataLayer||[]</script>
<script>!function(e,t,a,n,g){e[n]=e[n]||[],e[n].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});var m=t.getElementsByTagName(a)[0],r=t.createElement(a);r.async=!0,r.src="https://www.googletagmanager.com/gtm.js?id=GTM-5M8T9HNN",m.parentNode.insertBefore(r,m)}(window,document,"script","dataLayer")</script>
<link rel="search" type="application/opensearchdescription+xml" title="DataHub" href="/opensearch.xml">
<meta httpequiv="Content-Security-Policy" content="frame-ancestors &#39;self&#39; https://*.acryl.io https://acryldata.io http://localhost:*">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;700&display=swap">
<script src="https://tools.luckyorange.com/core/lo.js?site-id=28ea8a38" async defer="defer"></script>
<script src="/scripts/rb2b.js" async defer="defer"></script>
<script src="https://app.revenuehero.io/scheduler.min.js"></script>
<script src="https://tag.clearbitscripts.com/v1/pk_2e321cabe30432a5c44c0424781aa35f/tags.js" referrerpolicy="strict-origin-when-cross-origin"></script>
<script src="/scripts/reo.js"></script>
<script id="runllm-widget-script" type="module" src="https://widget.runllm.com" crossorigin="true" runllm-name="DataHub" runllm-assistant-id="81" runllm-position="BOTTOM_RIGHT" runllm-keyboard-shortcut="Mod+j" runllm-preset="docusaurus" runllm-theme-color="#1890FF" runllm-brand-logo="https://docs.datahub.com/img/datahub-logo-color-mark.svg" runllm-community-url="https://datahub.com/slack" runllm-community-type="slack" runllm-disable-ask-a-person="true" async></script><link rel="stylesheet" href="/assets/css/styles.d8fe2eb8.css">
<link rel="preload" href="/assets/js/runtime~main.a760fe73.js" as="script">
<link rel="preload" href="/assets/js/main.a5ea2da0.js" as="script">
</head>
<body class="navigation-with-keyboard">
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5M8T9HNN" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><div class="announcementBar_mb4j" style="background-color:transparent;color:#ffffff" role="banner"><div class="content_knG7 announcementBarContent_xLdY"><div class="shimmer-banner"><p>DataHub Secures $35 Million Series B</p><a href="https://datahub.com/news/series-b-announcement/" target="_blank" class="button"><div>Read the announcement<span></span></div></a></div></div></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a href="https://datahub.com" target="_blank" rel="noopener noreferrer" class="navbar__brand"><div class="navbar__logo"><img src="/img/datahub-logo-color-light-horizontal.svg" alt="DataHub Logo" class="themedImage_ToTc themedImage--light_HNdA"><img src="/img/datahub-logo-color-dark-horizontal.svg" alt="DataHub Logo" class="themedImage_ToTc themedImage--dark_i4oU"></div></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link versionNavItem_cbn8">Next</a><ul class="dropdown__menu"><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/docs/python-sdk/builder/mcp-builder">Next</a></li><li><a class="dropdown__link" href="/docs/1.1.0/features">1.1.0</a></li><li><hr class="dropdown-separator" style="margin: 0.4rem;"></li><li><div class="dropdown__link"><b>Archived versions</b></div></li><li>
<a class="dropdown__link" href="https://docs-website-t9sv4w3gr-acryldata.vercel.app/docs/features">1.0.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-t9sv4w3gr-acryldata.vercel.app/docs/0.15.0/features">0.15.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-8jkm4uler-acryldata.vercel.app/docs/0.14.1/features">0.14.1
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-eue2qafvn-acryldata.vercel.app/docs/features">0.14.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-psat3nzgi-acryldata.vercel.app/docs/features">0.13.1
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-lzxh86531-acryldata.vercel.app/docs/features">0.13.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-2uuxmgza2-acryldata.vercel.app/docs/features">0.12.1
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-irpoe2osc-acryldata.vercel.app/docs/features">0.11.0
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li><li>
<a class="dropdown__link" href="https://docs-website-1gv2yzn9d-acryldata.vercel.app/docs/features">0.10.5
<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg>
</a>
</li></ul></div></div><div class="navbar__items navbar__items--right"><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/docs">Docs</a><a class="navbar__item navbar__link" href="/integrations">Integrations</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Learn</a><ul class="dropdown__menu dropdown__menu_Z8FC"><div class="wrapper_kp81"><div><a href="https://datahub.com/weekly-demo" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-join-slack.png" alt="Weekly Demo"></div><div class="title_c7DP">Weekly Demo</div></a></div><div><a href="https://datahub.com/use-cases" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-forum.png" alt="Use Cases"></div><div class="title_c7DP">Use Cases</div></a></div><div><a href="httpps://datahub.com/adoption-stories" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-events.png" alt="Adoption Stories"></div><div class="title_c7DP">Adoption Stories</div></a></div><div><a href="https://medium.com/datahub-project" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-champions.png" alt="Blog"></div><div class="title_c7DP">Blog</div></a></div><div><a href="https://www.youtube.com/channel/UC3qFQC5IiwR5fvWEqi_tJ5w" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-share-your-journey.png" alt="Youtube"></div><div class="title_c7DP">Youtube</div></a></div></div></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Community</a><ul class="dropdown__menu dropdown__menu_Z8FC"><div class="wrapper_kp81"><div><a href="https://datahub.com/slack/" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-join-slack.png" alt="Join Slack"></div><div class="title_c7DP">Join Slack</div></a></div><div><a href="https://datahub.com/events" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-events.png" alt="Events"></div><div class="title_c7DP">Events</div></a></div><div><a href="https://datahub.com/champions/" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-champions.png" alt="Champions"></div><div class="title_c7DP">Champions</div></a></div><div><a href="https://datahub.com/share-your-journey/" target="_blank" rel="noopener noreferrer" class="card_BUD7"><div class="icon_BgHd"><img src="/img/icon-share-your-journey.png" alt="Share Your Journey"></div><div class="title_c7DP">Share Your Journey</div></a></div></div></ul></div><a href="https://datahub.com/products/why-datahub-cloud/" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">
<style>
.cloud-cta {
color: var(--ifm-menu-color-active);
font-weight: 600;
background: linear-gradient(40deg, var(--ifm-menu-color-active), var(--ifm-menu-color-active));
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
transition: background-image 0.3s ease;
}
.cloud-cta:hover {
color: transparent;
background: linear-gradient(40deg, var(--ifm-menu-color-active), #ff1493);
background-size: 200% 100%;
-webkit-background-clip: text;
background-clip: text;
animation: gradientShift 3s ease infinite;
}
@keyframes gradientShift {
0%, 100% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
}
</style>
<div class="cloud-cta">Get Cloud</div>
</a><a href="https://datahub.com/slack?utm_source=docs&amp;utm_medium=header&amp;utm_campaign=docs_header" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">
<style>
.slack-logo:hover {
opacity: 0.8;
}
</style>
<img class="slack-logo" src="https://upload.wikimedia.org/wikipedia/commons/d/d5/Slack_icon_2019.svg" , alt="slack" , height="20px" style="margin: 10px 0 0 0;">
</a><div class="searchBox_ZlJk"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20" aria-hidden="true"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="main-wrapper mainWrapper_z2l0 docsWrapper_BCFX"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docPage__5DB"><aside class="theme-doc-sidebar-container docSidebarContainer_b6E3"><div class="sidebarViewport_Xe31"><div class="sidebar_njMd"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Getting Started</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/features">What Is DataHub?</a><button aria-label="Toggle the collapsible sidebar category &#x27;What Is DataHub?&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/category/features">Features</a><button aria-label="Toggle the collapsible sidebar category &#x27;Features&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>DataHub Cloud</div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/managed-datahub/managed-datahub-overview">DataHub Cloud Overview</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/managed-datahub/welcome-acryl">Getting Started with DataHub Cloud</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/authentication/guides/sso/initialize-oidc">Configure Single Sign-On</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/managed-datahub/remote-executor/about">Remote Executor</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/managed-datahub/datahub-api/entity-events-api">DataHub API</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/managed-datahub/slack/saas-slack-app">Slack</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/managed-datahub/operator-guide/setting-up-events-api-on-aws-eventbridge">Operator Guides</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item saasOnly"><a class="menu__link" href="/docs/managed-datahub/approval-workflows">Change Proposals &amp; Approval Workflows</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/managed-datahub/chrome-extension">Cloud Chrome Extension</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item saasOnly"><a class="menu__link" href="/docs/managed-datahub/subscription-and-notification">Subscriptions &amp; Notifications</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/managed-datahub/release-notes/v_0_3_12">DataHub Cloud Release History</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Integrations</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/metadata-ingestion">Overview</a><button aria-label="Toggle the collapsible sidebar category &#x27;Overview&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/metadata-ingestion/cli-ingestion">Quickstart Guides</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/metadata-ingestion/source_overview">Sources</a><button aria-label="Toggle the collapsible sidebar category &#x27;Sources&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/metadata-ingestion/schedule_docs/intro">Advanced Guides</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>API & SDKs</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/metadata-modeling/metadata-model">DataHub&#x27;s Open Metadata Standard</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/what-is-datahub/datahub-concepts">Concepts</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/metadata-standards">Metadata Standards</a><button aria-label="Toggle the collapsible sidebar category &#x27;Metadata Standards&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/api/datahub-apis">APIs and SDKs Overview</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/api/graphql/overview">API</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" href="/docs/metadata-ingestion/as-a-library">Python SDK</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/metadata-ingestion/as-a-library">Python Emitter</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-2 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" tabindex="0" href="/docs/python-sdk/builder/mce-builder">SDK Reference</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" aria-expanded="true" tabindex="0" href="/docs/python-sdk/builder/mce-builder">Builder</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/python-sdk/builder/mce-builder">MCE Builder</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-4 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/python-sdk/builder/mcp-builder">MCP Builder</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/docs/python-sdk/clients/graph-client">Clients</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-3 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" tabindex="0" href="/docs/python-sdk/sdk-v2/entities">SDK V2</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/python-sdk/models">Models</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-3 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/python-sdk/urns">URNs</a></li></ul></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/metadata-integration/java/as-a-library">Java SDK</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/cli">DataHub CLI</a><button aria-label="Toggle the collapsible sidebar category &#x27;DataHub CLI&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/act-on-metadata">DataHub Actions</a><button aria-label="Toggle the collapsible sidebar category &#x27;DataHub Actions&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/api/tutorials/datasets">Guides</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Admin</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/authentication">Authentication</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/authorization">Authorization</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/how/delete-metadata">Advanced Guides</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Deployment</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/category/deployment-guides">Deployment Guides</a><button aria-label="Toggle the collapsible sidebar category &#x27;Deployment Guides&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/deploy/confluent-cloud">Advanced Guides</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Developers</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/architecture/architecture">Architecture</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/developers">Developing on DataHub</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/advanced/mcp-mcl">Advanced Guides</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menuHtmlItem_M9Kj menu__list-item"><div>Community</div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" aria-expanded="false" href="/docs/category/community">Community</a><button aria-label="Toggle the collapsible sidebar category &#x27;Community&#x27;" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" aria-expanded="false" href="/docs/releases">Release History</a></div></li></ul></nav></div></div></aside><main class="docMainContainer_gTbr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="Breadcrumbs"><ul class="breadcrumbs" itemscope="" itemtype="https://schema.org/BreadcrumbList"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Python SDK</span><meta itemprop="position" content="1"></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">SDK Reference</span><meta itemprop="position" content="2"></li><li class="breadcrumbs__item"><span class="breadcrumbs__link">Builder</span><meta itemprop="position" content="3"></li><li itemscope="" itemprop="itemListElement" itemtype="https://schema.org/ListItem" class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link" itemprop="name">MCP Builder</span><meta itemprop="position" content="4"></li></ul></nav><span class="theme-doc-version-badge badge badge--secondary">Version: Next</span><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>MCP Builder</h1></header><div class="sphinx-api-docs"><a id="mcp-builder"></a><p>These classes and methods make it easier to construct MetadataChangeProposals.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp.MetadataChangeProposalWrapper"><span class="visually-hidden">MetadataChangeProposalWrapper</span><a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper" class="hash-link" aria-label="Direct link to datahub.emitter.mcp.MetadataChangeProposalWrapper" title="Direct link to datahub.emitter.mcp.MetadataChangeProposalWrapper"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp.</span><span class="class-name">MetadataChangeProposalWrapper</span>(<span class="arg-name">entityType</span> = <span class="arg-default">&#x27;ENTITY_TYPE_UNSET&#x27;</span>, <span class="arg-name">changeType</span> = <span class="arg-default">&#x27;UPSERT&#x27;</span>, <span class="arg-name">entityUrn</span> = <span class="arg-default">None</span>, <span class="arg-name">entityKeyAspect</span> = <span class="arg-default">None</span>, <span class="arg-name">auditHeader</span> = <span class="arg-default">None</span>, <span class="arg-name">aspectName</span> = <span class="arg-default">None</span>, <span class="arg-name">aspect</span> = <span class="arg-default">None</span>, <span class="arg-name">systemMetadata</span> = <span class="arg-default">None</span>, <span class="arg-name">headers</span> = <span class="arg-default">None</span>)<a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper" class="hash-link"></a></div><p>Bases: <code>object</code></p><ul><li><strong>Parameters:</strong><ul><li><strong>entityType</strong> (<code>str</code>)</li><li><strong>changeType</strong> (<code>Union</code>[<code>str</code>, <a href="/docs/python-sdk/models#datahub.metadata.schema_classes.ChangeTypeClass"><code>ChangeTypeClass</code></a>]) </li><li><strong>entityUrn</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>entityKeyAspect</strong> (<code>Optional</code>[<code>_Aspect</code>]<!-- -->)</li><li><strong>auditHeader</strong> (<code>Optional</code>[<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.KafkaAuditHeaderClass"><code>KafkaAuditHeaderClass</code></a>]) </li><li><strong>aspectName</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>aspect</strong> (<code>Optional</code>[<code>_Aspect</code>]<!-- -->)</li><li><strong>systemMetadata</strong> (<code>Optional</code>[<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.SystemMetadataClass"><code>SystemMetadataClass</code></a>]) </li><li><strong>headers</strong> (<code>Optional</code>[<code>Dict</code>[<code>str</code>, <code>str</code>]<!-- -->])</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="as_workunit-treat_errors_as_warningsfalse-is_primary_sourcetrue">as_workunit(<!-- -->*<!-- -->, treat_errors_as_warnings=False, is_primary_source=True)<a href="#as_workunit-treat_errors_as_warningsfalse-is_primary_sourcetrue" class="hash-link" aria-label="Direct link to as_workunit-treat_errors_as_warningsfalse-is_primary_sourcetrue" title="Direct link to as_workunit-treat_errors_as_warningsfalse-is_primary_sourcetrue"></a></h4><ul><li><strong>Parameters:</strong><ul><li><strong>treat_errors_as_warnings</strong> (<code>bool</code>)</li><li><strong>is_primary_source</strong> (<code>bool</code>)</li></ul></li><li><strong>Return type:</strong><code>MetadataWorkUnit</code></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="aspect--optional_aspect--none">aspect <em>: <code>Optional</code>[<code>_Aspect</code>]</em> <em>= None</em><a href="#aspect--optional_aspect--none" class="hash-link" aria-label="Direct link to aspect--optional_aspect--none" title="Direct link to aspect--optional_aspect--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="aspectname--optionalstr--none">aspectName <em>: <code>Optional</code>[<code>str</code>]</em> <em>= None</em><a href="#aspectname--optionalstr--none" class="hash-link" aria-label="Direct link to aspectname--optionalstr--none" title="Direct link to aspectname--optionalstr--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="auditheader--optionalkafkaauditheaderclass--none">auditHeader <em>: <code>Optional</code>[<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.KafkaAuditHeaderClass"><code>KafkaAuditHeaderClass</code></a>]</em> <em>= None</em><a href="#auditheader--optionalkafkaauditheaderclass--none" class="hash-link" aria-label="Direct link to auditheader--optionalkafkaauditheaderclass--none" title="Direct link to auditheader--optionalkafkaauditheaderclass--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="changetype--unionstr-changetypeclass--upsert">changeType <em>: <code>Union</code>[<code>str</code>, <a href="/docs/python-sdk/models#datahub.metadata.schema_classes.ChangeTypeClass"><code>ChangeTypeClass</code></a>]</em> <em>= &#x27;UPSERT&#x27;</em><a href="#changetype--unionstr-changetypeclass--upsert" class="hash-link" aria-label="Direct link to changetype--unionstr-changetypeclass--upsert" title="Direct link to changetype--unionstr-changetypeclass--upsert"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="classmethod-construct_manyentityurn-aspects"><em>classmethod</em> construct_many(entityUrn, aspects)<a href="#classmethod-construct_manyentityurn-aspects" class="hash-link" aria-label="Direct link to classmethod-construct_manyentityurn-aspects" title="Direct link to classmethod-construct_manyentityurn-aspects"></a></h4><ul><li><strong>Parameters:</strong><ul><li><strong>entityUrn</strong> (<code>str</code>)</li><li><strong>aspects</strong> (<code>Sequence</code>[<code>Optional</code>[<code>_Aspect</code>]<!-- -->])</li></ul></li><li><strong>Return type:</strong><code>List</code>[<a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="entitykeyaspect--optional_aspect--none">entityKeyAspect <em>: <code>Optional</code>[<code>_Aspect</code>]</em> <em>= None</em><a href="#entitykeyaspect--optional_aspect--none" class="hash-link" aria-label="Direct link to entitykeyaspect--optional_aspect--none" title="Direct link to entitykeyaspect--optional_aspect--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="entitytype--str--entity_type_unset">entityType <em>: <code>str</code></em> <em>= &#x27;ENTITY_TYPE_UNSET&#x27;</em><a href="#entitytype--str--entity_type_unset" class="hash-link" aria-label="Direct link to entitytype--str--entity_type_unset" title="Direct link to entitytype--str--entity_type_unset"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="entityurn--optionalstr--none">entityUrn <em>: <code>Optional</code>[<code>str</code>]</em> <em>= None</em><a href="#entityurn--optionalstr--none" class="hash-link" aria-label="Direct link to entityurn--optionalstr--none" title="Direct link to entityurn--optionalstr--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="classmethod-from_objobj-tuplesfalse"><em>classmethod</em> from_obj(obj, tuples=False)<a href="#classmethod-from_objobj-tuplesfalse" class="hash-link" aria-label="Direct link to classmethod-from_objobj-tuplesfalse" title="Direct link to classmethod-from_objobj-tuplesfalse"></a></h4><p>Attempt to deserialize into an MCPW, but fall back
to a standard MCP if were missing codegend classes for the
entity key or aspect.</p><ul><li><strong>Parameters:</strong><ul><li><strong>obj</strong> (<code>dict</code>)</li><li><strong>tuples</strong> (<code>bool</code>)</li></ul></li><li><strong>Return type:</strong><code>Union</code>[<a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a>, <a href="/docs/python-sdk/models#datahub.metadata.schema_classes.MetadataChangeProposalClass"><code>MetadataChangeProposalClass</code></a>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="classmethod-from_obj_require_wrapperobj-tuplesfalse"><em>classmethod</em> from_obj_require_wrapper(obj, tuples=False)<a href="#classmethod-from_obj_require_wrapperobj-tuplesfalse" class="hash-link" aria-label="Direct link to classmethod-from_obj_require_wrapperobj-tuplesfalse" title="Direct link to classmethod-from_obj_require_wrapperobj-tuplesfalse"></a></h4><ul><li><strong>Parameters:</strong><ul><li><strong>obj</strong> (<code>dict</code>)</li><li><strong>tuples</strong> (<code>bool</code>)</li></ul></li><li><strong>Return type:</strong><a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="headers--optionaldictstr-str--none">headers <em>: <code>Optional</code>[<code>Dict</code>[<code>str</code>, <code>str</code>]<!-- -->]</em> <em>= None</em><a href="#headers--optionaldictstr-str--none" class="hash-link" aria-label="Direct link to headers--optionaldictstr-str--none" title="Direct link to headers--optionaldictstr-str--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="make_mcp">make_mcp()<a href="#make_mcp" class="hash-link" aria-label="Direct link to make_mcp()" title="Direct link to make_mcp()"></a></h4><ul><li><strong>Return type:</strong><a href="/docs/python-sdk/models#datahub.metadata.schema_classes.MetadataChangeProposalClass"><code>MetadataChangeProposalClass</code></a></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="systemmetadata--optionalsystemmetadataclass--none">systemMetadata <em>: <code>Optional</code>[<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.SystemMetadataClass"><code>SystemMetadataClass</code></a>]</em> <em>= None</em><a href="#systemmetadata--optionalsystemmetadataclass--none" class="hash-link" aria-label="Direct link to systemmetadata--optionalsystemmetadataclass--none" title="Direct link to systemmetadata--optionalsystemmetadataclass--none"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="to_objtuplesfalse-simplified_structurefalse">to_obj(tuples=False, simplified_structure=False)<a href="#to_objtuplesfalse-simplified_structurefalse" class="hash-link" aria-label="Direct link to to_obj(tuples=False, simplified_structure=False)" title="Direct link to to_obj(tuples=False, simplified_structure=False)"></a></h4><ul><li><strong>Parameters:</strong><ul><li><strong>tuples</strong> (<code>bool</code>)</li><li><strong>simplified_structure</strong> (<code>bool</code>)</li></ul></li><li><strong>Return type:</strong><code>dict</code></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="classmethod-try_from_mclmcl"><em>classmethod</em> try_from_mcl(mcl)<a href="#classmethod-try_from_mclmcl" class="hash-link" aria-label="Direct link to classmethod-try_from_mclmcl" title="Direct link to classmethod-try_from_mclmcl"></a></h4><ul><li><strong>Parameters:</strong><strong>mcl</strong> (<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.MetadataChangeLogClass"><code>MetadataChangeLogClass</code></a>) </li><li><strong>Return type:</strong><code>Union</code>[<a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a>, <a href="/docs/python-sdk/models#datahub.metadata.schema_classes.MetadataChangeProposalClass"><code>MetadataChangeProposalClass</code></a>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="classmethod-try_from_mcpcmcpc"><em>classmethod</em> try_from_mcpc(mcpc)<a href="#classmethod-try_from_mcpcmcpc" class="hash-link" aria-label="Direct link to classmethod-try_from_mcpcmcpc" title="Direct link to classmethod-try_from_mcpcmcpc"></a></h4><p>Attempts to create a MetadataChangeProposalWrapper from a MetadataChangeProposalClass.
Neatly handles unsupported, expected cases, such as unknown aspect types or non-json content type.</p><ul><li><strong>Raises:</strong><strong>Exception if the generic aspect is invalid**</strong>,** <strong>e.g. contains invalid json.</strong> </li><li><strong>Parameters:</strong><strong>mcpc</strong> (<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.MetadataChangeProposalClass"><code>MetadataChangeProposalClass</code></a>) </li><li><strong>Return type:</strong><code>Optional</code>[<a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="validate">validate()<a href="#validate" class="hash-link" aria-label="Direct link to validate()" title="Direct link to validate()"></a></h4><ul><li><strong>Return type:</strong><code>bool</code></li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.BigQueryDatasetKey"><span class="visually-hidden">BigQueryDatasetKey</span><a href="#datahub.emitter.mcp_builder.BigQueryDatasetKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.BigQueryDatasetKey" title="Direct link to datahub.emitter.mcp_builder.BigQueryDatasetKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">BigQueryDatasetKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.BigQueryDatasetKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ProjectIdKey"><code>ProjectIdKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>project_id</strong> (<em>str</em>)</li><li><strong>dataset_id</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="dataset_id--str">dataset_id <em>: <code>str</code></em><a href="#dataset_id--str" class="hash-link" aria-label="Direct link to dataset_id--str" title="Direct link to dataset_id--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict--">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict--" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict--" title="Direct link to model_config--classvarconfigdict--"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.BucketKey"><span class="visually-hidden">BucketKey</span><a href="#datahub.emitter.mcp_builder.BucketKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.BucketKey" title="Direct link to datahub.emitter.mcp_builder.BucketKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">BucketKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.BucketKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>bucket_name</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="bucket_name--str">bucket_name <em>: <code>str</code></em><a href="#bucket_name--str" class="hash-link" aria-label="Direct link to bucket_name--str" title="Direct link to bucket_name--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---1">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---1" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---1" title="Direct link to model_config--classvarconfigdict---1"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.CatalogKey"><span class="visually-hidden">CatalogKey</span><a href="#datahub.emitter.mcp_builder.CatalogKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.CatalogKey" title="Direct link to datahub.emitter.mcp_builder.CatalogKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">CatalogKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.CatalogKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>catalog</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="catalog--str">catalog <em>: <code>str</code></em><a href="#catalog--str" class="hash-link" aria-label="Direct link to catalog--str" title="Direct link to catalog--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---2">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---2" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---2" title="Direct link to model_config--classvarconfigdict---2"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.CatalogKeyWithMetastore"><span class="visually-hidden">CatalogKeyWithMetastore</span><a href="#datahub.emitter.mcp_builder.CatalogKeyWithMetastore" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.CatalogKeyWithMetastore" title="Direct link to datahub.emitter.mcp_builder.CatalogKeyWithMetastore"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">CatalogKeyWithMetastore</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.CatalogKeyWithMetastore" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.MetastoreKey"><code>MetastoreKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>metastore</strong> (<em>str</em>)</li><li><strong>catalog</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="catalog--str-1">catalog <em>: <code>str</code></em><a href="#catalog--str-1" class="hash-link" aria-label="Direct link to catalog--str-1" title="Direct link to catalog--str-1"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---3">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---3" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---3" title="Direct link to model_config--classvarconfigdict---3"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.ContainerKey"><span class="visually-hidden">ContainerKey</span><a href="#datahub.emitter.mcp_builder.ContainerKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.ContainerKey" title="Direct link to datahub.emitter.mcp_builder.ContainerKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">ContainerKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.ContainerKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.DatahubKey"><code>DatahubKey</code></a></p><p>Base class for container guid keys. Most users should use one of the subclasses instead.</p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="as_urn">as_urn()<a href="#as_urn" class="hash-link" aria-label="Direct link to as_urn()" title="Direct link to as_urn()"></a></h4><ul><li><strong>Return type:</strong><code>str</code></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="as_urn_typed">as_urn_typed()<a href="#as_urn_typed" class="hash-link" aria-label="Direct link to as_urn_typed()" title="Direct link to as_urn_typed()"></a></h4><ul><li><strong>Return type:</strong><a href="/docs/python-sdk/urns#datahub.metadata.urns.ContainerUrn"><code>ContainerUrn</code></a></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="backcompat_env_as_instance--bool">backcompat_env_as_instance <em>: <code>bool</code></em><a href="#backcompat_env_as_instance--bool" class="hash-link" aria-label="Direct link to backcompat_env_as_instance--bool" title="Direct link to backcompat_env_as_instance--bool"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="env--optionalstr">env <em>: <code>Optional</code>[<code>str</code>]</em><a href="#env--optionalstr" class="hash-link" aria-label="Direct link to env--optionalstr" title="Direct link to env--optionalstr"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="guid_dict">guid_dict()<a href="#guid_dict" class="hash-link" aria-label="Direct link to guid_dict()" title="Direct link to guid_dict()"></a></h4><ul><li><strong>Return type:</strong><code>Dict</code>[<code>str</code>, <code>str</code>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="instance--optionalstr">instance <em>: <code>Optional</code>[<code>str</code>]</em><a href="#instance--optionalstr" class="hash-link" aria-label="Direct link to instance--optionalstr" title="Direct link to instance--optionalstr"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---4">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---4" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---4" title="Direct link to model_config--classvarconfigdict---4"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="parent_key">parent_key()<a href="#parent_key" class="hash-link" aria-label="Direct link to parent_key()" title="Direct link to parent_key()"></a></h4><ul><li><strong>Return type:</strong><code>Optional</code>[<a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="platform--str">platform <em>: <code>str</code></em><a href="#platform--str" class="hash-link" aria-label="Direct link to platform--str" title="Direct link to platform--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="property_dict">property_dict()<a href="#property_dict" class="hash-link" aria-label="Direct link to property_dict()" title="Direct link to property_dict()"></a></h4><ul><li><strong>Return type:</strong><code>Dict</code>[<code>str</code>, <code>str</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.DatabaseKey"><span class="visually-hidden">DatabaseKey</span><a href="#datahub.emitter.mcp_builder.DatabaseKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.DatabaseKey" title="Direct link to datahub.emitter.mcp_builder.DatabaseKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">DatabaseKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.DatabaseKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>database</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="database--str">database <em>: <code>str</code></em><a href="#database--str" class="hash-link" aria-label="Direct link to database--str" title="Direct link to database--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---5">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---5" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---5" title="Direct link to model_config--classvarconfigdict---5"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.DatahubKey"><span class="visually-hidden">DatahubKey</span><a href="#datahub.emitter.mcp_builder.DatahubKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.DatahubKey" title="Direct link to datahub.emitter.mcp_builder.DatahubKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">DatahubKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.DatahubKey" class="hash-link"></a></div><p>Bases: <code>BaseModel</code></p><ul><li><strong>Parameters:</strong><strong>data</strong> (<code>Any</code>)</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="guid">guid()<a href="#guid" class="hash-link" aria-label="Direct link to guid()" title="Direct link to guid()"></a></h4><ul><li><strong>Return type:</strong><code>str</code></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="guid_dict-1">guid_dict()<a href="#guid_dict-1" class="hash-link" aria-label="Direct link to guid_dict()" title="Direct link to guid_dict()"></a></h4><ul><li><strong>Return type:</strong><code>Dict</code>[<code>str</code>, <code>str</code>]</li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---6">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---6" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---6" title="Direct link to model_config--classvarconfigdict---6"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.ExperimentKey"><span class="visually-hidden">ExperimentKey</span><a href="#datahub.emitter.mcp_builder.ExperimentKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.ExperimentKey" title="Direct link to datahub.emitter.mcp_builder.ExperimentKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">ExperimentKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.ExperimentKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>id</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="id--str">id <em>: <code>str</code></em><a href="#id--str" class="hash-link" aria-label="Direct link to id--str" title="Direct link to id--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---7">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---7" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---7" title="Direct link to model_config--classvarconfigdict---7"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.FolderKey"><span class="visually-hidden">FolderKey</span><a href="#datahub.emitter.mcp_builder.FolderKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.FolderKey" title="Direct link to datahub.emitter.mcp_builder.FolderKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">FolderKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.FolderKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>folder_abs_path</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="folder_abs_path--str">folder_abs_path <em>: <code>str</code></em><a href="#folder_abs_path--str" class="hash-link" aria-label="Direct link to folder_abs_path--str" title="Direct link to folder_abs_path--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---8">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---8" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---8" title="Direct link to model_config--classvarconfigdict---8"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.MetastoreKey"><span class="visually-hidden">MetastoreKey</span><a href="#datahub.emitter.mcp_builder.MetastoreKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.MetastoreKey" title="Direct link to datahub.emitter.mcp_builder.MetastoreKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">MetastoreKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.MetastoreKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>metastore</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="metastore--str">metastore <em>: <code>str</code></em><a href="#metastore--str" class="hash-link" aria-label="Direct link to metastore--str" title="Direct link to metastore--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---9">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---9" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---9" title="Direct link to model_config--classvarconfigdict---9"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.NamespaceKey"><span class="visually-hidden">NamespaceKey</span><a href="#datahub.emitter.mcp_builder.NamespaceKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.NamespaceKey" title="Direct link to datahub.emitter.mcp_builder.NamespaceKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">NamespaceKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.NamespaceKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><p>For Iceberg namespaces (databases/schemas)</p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>namespace</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---10">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---10" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---10" title="Direct link to model_config--classvarconfigdict---10"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="namespace--str">namespace <em>: <code>str</code></em><a href="#namespace--str" class="hash-link" aria-label="Direct link to namespace--str" title="Direct link to namespace--str"></a></h4></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.NotebookKey"><span class="visually-hidden">NotebookKey</span><a href="#datahub.emitter.mcp_builder.NotebookKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.NotebookKey" title="Direct link to datahub.emitter.mcp_builder.NotebookKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">NotebookKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.NotebookKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.DatahubKey"><code>DatahubKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>notebook_id</strong> (<em>int</em>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="as_urn-1">as_urn()<a href="#as_urn-1" class="hash-link" aria-label="Direct link to as_urn()" title="Direct link to as_urn()"></a></h4><ul><li><strong>Return type:</strong><code>str</code></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="instance--optionalstr-1">instance <em>: <code>Optional</code>[<code>str</code>]</em><a href="#instance--optionalstr-1" class="hash-link" aria-label="Direct link to instance--optionalstr-1" title="Direct link to instance--optionalstr-1"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---11">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---11" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---11" title="Direct link to model_config--classvarconfigdict---11"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="notebook_id--int">notebook_id <em>: <code>int</code></em><a href="#notebook_id--int" class="hash-link" aria-label="Direct link to notebook_id--int" title="Direct link to notebook_id--int"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="platform--str-1">platform <em>: <code>str</code></em><a href="#platform--str-1" class="hash-link" aria-label="Direct link to platform--str-1" title="Direct link to platform--str-1"></a></h4></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.PlatformKey"><span class="visually-hidden">PlatformKey</span><a href="#datahub.emitter.mcp_builder.PlatformKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.PlatformKey" title="Direct link to datahub.emitter.mcp_builder.PlatformKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">PlatformKey</span>()<a href="#datahub.emitter.mcp_builder.PlatformKey" class="hash-link"></a></div><p>alias of <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.ProjectIdKey"><span class="visually-hidden">ProjectIdKey</span><a href="#datahub.emitter.mcp_builder.ProjectIdKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.ProjectIdKey" title="Direct link to datahub.emitter.mcp_builder.ProjectIdKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">ProjectIdKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.ProjectIdKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>project_id</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---12">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---12" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---12" title="Direct link to model_config--classvarconfigdict---12"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="project_id--str">project_id <em>: <code>str</code></em><a href="#project_id--str" class="hash-link" aria-label="Direct link to project_id--str" title="Direct link to project_id--str"></a></h4></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.SchemaKey"><span class="visually-hidden">SchemaKey</span><a href="#datahub.emitter.mcp_builder.SchemaKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.SchemaKey" title="Direct link to datahub.emitter.mcp_builder.SchemaKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">SchemaKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.SchemaKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.DatabaseKey"><code>DatabaseKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>database</strong> (<em>str</em>)</li><li><strong>schema</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="db_schema--str">db_schema <em>: <code>str</code></em><a href="#db_schema--str" class="hash-link" aria-label="Direct link to db_schema--str" title="Direct link to db_schema--str"></a></h4><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---13">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---13" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---13" title="Direct link to model_config--classvarconfigdict---13"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.UnitySchemaKey"><span class="visually-hidden">UnitySchemaKey</span><a href="#datahub.emitter.mcp_builder.UnitySchemaKey" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.UnitySchemaKey" title="Direct link to datahub.emitter.mcp_builder.UnitySchemaKey"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">UnitySchemaKey</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.UnitySchemaKey" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.CatalogKey"><code>CatalogKey</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>catalog</strong> (<em>str</em>)</li><li><strong>unity_schema</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---14">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---14" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---14" title="Direct link to model_config--classvarconfigdict---14"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="unity_schema--str">unity_schema <em>: <code>str</code></em><a href="#unity_schema--str" class="hash-link" aria-label="Direct link to unity_schema--str" title="Direct link to unity_schema--str"></a></h4></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.UnitySchemaKeyWithMetastore"><span class="visually-hidden">UnitySchemaKeyWithMetastore</span><a href="#datahub.emitter.mcp_builder.UnitySchemaKeyWithMetastore" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.UnitySchemaKeyWithMetastore" title="Direct link to datahub.emitter.mcp_builder.UnitySchemaKeyWithMetastore"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-text">class</span> <span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">UnitySchemaKeyWithMetastore</span>(<span class="arg-name">**data</span>)<a href="#datahub.emitter.mcp_builder.UnitySchemaKeyWithMetastore" class="hash-link"></a></div><p>Bases: <a href="#datahub.emitter.mcp_builder.CatalogKeyWithMetastore"><code>CatalogKeyWithMetastore</code></a></p><ul><li><strong>Parameters:</strong><ul><li><strong>data</strong> (<code>Any</code>)</li><li><strong>platform</strong> (<em>str</em>)</li><li><strong>instance</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>env</strong> (<em>str</em> <em>|</em> <em>None</em>)</li><li><strong>backcompat_env_as_instance</strong> (<em>bool</em>)</li><li><strong>metastore</strong> (<em>str</em>)</li><li><strong>catalog</strong> (<em>str</em>)</li><li><strong>unity_schema</strong> (<em>str</em>)</li></ul></li></ul><h4 class="anchor anchorWithStickyNavbar_LWe7" id="model_config--classvarconfigdict---15">model_config <em>: ClassVar<!-- -->[ConfigDict]</em> <em>= {}</em><a href="#model_config--classvarconfigdict---15" class="hash-link" aria-label="Direct link to model_config--classvarconfigdict---15" title="Direct link to model_config--classvarconfigdict---15"></a></h4><p>Configuration for the model, should be a dictionary conforming to <!-- -->[ConfigDict][pydantic.config.ConfigDict]<!-- -->.</p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="unity_schema--str-1">unity_schema <em>: <code>str</code></em><a href="#unity_schema--str-1" class="hash-link" aria-label="Direct link to unity_schema--str-1" title="Direct link to unity_schema--str-1"></a></h4></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.add_dataset_to_container"><span class="visually-hidden">add_dataset_to_container</span><a href="#datahub.emitter.mcp_builder.add_dataset_to_container" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.add_dataset_to_container" title="Direct link to datahub.emitter.mcp_builder.add_dataset_to_container"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">add_dataset_to_container</span>(<span class="arg-name">container_key</span>, <span class="arg-name">dataset_urn</span>)<a href="#datahub.emitter.mcp_builder.add_dataset_to_container" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>container_key</strong> (<code>TypeVar</code>(<code>KeyType</code>, bound= <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a>)) </li><li><strong>dataset_urn</strong> (<code>str</code>)</li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.add_domain_to_entity_wu"><span class="visually-hidden">add_domain_to_entity_wu</span><a href="#datahub.emitter.mcp_builder.add_domain_to_entity_wu" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.add_domain_to_entity_wu" title="Direct link to datahub.emitter.mcp_builder.add_domain_to_entity_wu"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">add_domain_to_entity_wu</span>(<span class="arg-name">entity_urn</span>, <span class="arg-name">domain_urn</span>)<a href="#datahub.emitter.mcp_builder.add_domain_to_entity_wu" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>entity_urn</strong> (<code>str</code>)</li><li><strong>domain_urn</strong> (<code>str</code>)</li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.add_entity_to_container"><span class="visually-hidden">add_entity_to_container</span><a href="#datahub.emitter.mcp_builder.add_entity_to_container" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.add_entity_to_container" title="Direct link to datahub.emitter.mcp_builder.add_entity_to_container"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">add_entity_to_container</span>(<span class="arg-name">container_key</span>, <span class="arg-name">entity_type</span>, <span class="arg-name">entity_urn</span>)<a href="#datahub.emitter.mcp_builder.add_entity_to_container" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>container_key</strong> (<code>TypeVar</code>(<code>KeyType</code>, bound= <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a>)) </li><li><strong>entity_type</strong> (<code>str</code>)</li><li><strong>entity_urn</strong> (<code>str</code>)</li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.add_owner_to_entity_wu"><span class="visually-hidden">add_owner_to_entity_wu</span><a href="#datahub.emitter.mcp_builder.add_owner_to_entity_wu" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.add_owner_to_entity_wu" title="Direct link to datahub.emitter.mcp_builder.add_owner_to_entity_wu"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">add_owner_to_entity_wu</span>(<span class="arg-name">entity_type</span>, <span class="arg-name">entity_urn</span>, <span class="arg-name">owner_urn</span>)<a href="#datahub.emitter.mcp_builder.add_owner_to_entity_wu" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>entity_type</strong> (<code>str</code>)</li><li><strong>entity_urn</strong> (<code>str</code>)</li><li><strong>owner_urn</strong> (<code>str</code>)</li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.add_structured_properties_to_entity_wu"><span class="visually-hidden">add_structured_properties_to_entity_wu</span><a href="#datahub.emitter.mcp_builder.add_structured_properties_to_entity_wu" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.add_structured_properties_to_entity_wu" title="Direct link to datahub.emitter.mcp_builder.add_structured_properties_to_entity_wu"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">add_structured_properties_to_entity_wu</span>(<span class="arg-name">entity_urn</span>, <span class="arg-name">structured_properties</span>)<a href="#datahub.emitter.mcp_builder.add_structured_properties_to_entity_wu" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>entity_urn</strong> (<code>str</code>)</li><li><strong>structured_properties</strong> (<code>Dict</code>[<a href="/docs/python-sdk/urns#datahub.metadata.urns.StructuredPropertyUrn"><code>StructuredPropertyUrn</code></a>, <code>str</code>]) </li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.add_tags_to_entity_wu"><span class="visually-hidden">add_tags_to_entity_wu</span><a href="#datahub.emitter.mcp_builder.add_tags_to_entity_wu" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.add_tags_to_entity_wu" title="Direct link to datahub.emitter.mcp_builder.add_tags_to_entity_wu"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">add_tags_to_entity_wu</span>(<span class="arg-name">entity_type</span>, <span class="arg-name">entity_urn</span>, <span class="arg-name">tags</span>)<a href="#datahub.emitter.mcp_builder.add_tags_to_entity_wu" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>entity_type</strong> (<code>str</code>)</li><li><strong>entity_urn</strong> (<code>str</code>)</li><li><strong>tags</strong> (<code>List</code>[<code>str</code>]<!-- -->)</li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.create_embed_mcp"><span class="visually-hidden">create_embed_mcp</span><a href="#datahub.emitter.mcp_builder.create_embed_mcp" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.create_embed_mcp" title="Direct link to datahub.emitter.mcp_builder.create_embed_mcp"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">create_embed_mcp</span>(<span class="arg-name">urn</span>, <span class="arg-name">embed_url</span>)<a href="#datahub.emitter.mcp_builder.create_embed_mcp" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>urn</strong> (<code>str</code>)</li><li><strong>embed_url</strong> (<code>str</code>)</li></ul></li><li><strong>Return type:</strong><a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a></li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.entity_supports_aspect"><span class="visually-hidden">entity_supports_aspect</span><a href="#datahub.emitter.mcp_builder.entity_supports_aspect" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.entity_supports_aspect" title="Direct link to datahub.emitter.mcp_builder.entity_supports_aspect"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">entity_supports_aspect</span>(<span class="arg-name">entity_type</span>, <span class="arg-name">aspect_type</span>)<a href="#datahub.emitter.mcp_builder.entity_supports_aspect" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>entity_type</strong> (<code>str</code>)</li><li><strong>aspect_type</strong> (<code>Type</code>[<code>TypeVar</code>(<code>Aspect</code>, bound= <code>_Aspect</code>)]<!-- -->) </li></ul></li><li><strong>Return type:</strong><code>bool</code></li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.gen_containers"><span class="visually-hidden">gen_containers</span><a href="#datahub.emitter.mcp_builder.gen_containers" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.gen_containers" title="Direct link to datahub.emitter.mcp_builder.gen_containers"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">gen_containers</span>(<span class="arg-name">container_key</span>, <span class="arg-name">name</span>, <span class="arg-name">sub_types</span>, <span class="arg-name">parent_container_key</span> = <span class="arg-default">None</span>, <span class="arg-name">extra_properties</span> = <span class="arg-default">None</span>, <span class="arg-name">structured_properties</span> = <span class="arg-default">None</span>, <span class="arg-name">domain_urn</span> = <span class="arg-default">None</span>, <span class="arg-name">description</span> = <span class="arg-default">None</span>, <span class="arg-name">owner_urn</span> = <span class="arg-default">None</span>, <span class="arg-name">external_url</span> = <span class="arg-default">None</span>, <span class="arg-name">tags</span> = <span class="arg-default">None</span>, <span class="arg-name">qualified_name</span> = <span class="arg-default">None</span>, <span class="arg-name">created</span> = <span class="arg-default">None</span>, <span class="arg-name">last_modified</span> = <span class="arg-default">None</span>)<a href="#datahub.emitter.mcp_builder.gen_containers" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><ul><li><strong>container_key</strong> (<code>TypeVar</code>(<code>KeyType</code>, bound= <a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a>)) </li><li><strong>name</strong> (<code>str</code>)</li><li><strong>sub_types</strong> (<code>List</code>[<code>str</code>]<!-- -->)</li><li><strong>parent_container_key</strong> (<code>Optional</code>[<a href="#datahub.emitter.mcp_builder.ContainerKey"><code>ContainerKey</code></a>]) </li><li><strong>extra_properties</strong> (<code>Optional</code>[<code>Dict</code>[<code>str</code>, <code>str</code>]<!-- -->])</li><li><strong>structured_properties</strong> (<code>Optional</code>[<code>Dict</code>[<a href="/docs/python-sdk/urns#datahub.metadata.urns.StructuredPropertyUrn"><code>StructuredPropertyUrn</code></a>, <code>str</code>]]) </li><li><strong>domain_urn</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>description</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>owner_urn</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>external_url</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>tags</strong> (<code>Optional</code>[<code>List</code>[<code>str</code>]<!-- -->])</li><li><strong>qualified_name</strong> (<code>Optional</code>[<code>str</code>]<!-- -->)</li><li><strong>created</strong> (<code>Optional</code>[<code>int</code>]<!-- -->)</li><li><strong>last_modified</strong> (<code>Optional</code>[<code>int</code>]<!-- -->)</li></ul></li><li><strong>Return type:</strong><code>Iterable</code>[<code>MetadataWorkUnit</code>]</li></ul></div><h3 class="anchor anchorWithStickyNavbar_LWe7" id="datahub.emitter.mcp_builder.mcps_from_mce"><span class="visually-hidden">mcps_from_mce</span><a href="#datahub.emitter.mcp_builder.mcps_from_mce" class="hash-link" aria-label="Direct link to datahub.emitter.mcp_builder.mcps_from_mce" title="Direct link to datahub.emitter.mcp_builder.mcps_from_mce"></a></h3><div class="h3-block"><div class="section-heading"><span class="class-owner">datahub.emitter.mcp_builder.</span><span class="class-name">mcps_from_mce</span>(<span class="arg-name">mce</span>)<a href="#datahub.emitter.mcp_builder.mcps_from_mce" class="hash-link"></a></div><ul><li><strong>Parameters:</strong><strong>mce</strong> (<a href="/docs/python-sdk/models#datahub.metadata.schema_classes.MetadataChangeEventClass"><code>MetadataChangeEventClass</code></a>) </li><li><strong>Return type:</strong><code>Iterable</code>[<a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper"><code>MetadataChangeProposalWrapper</code></a>]</li></ul></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="slackUtm_uoBr"><div class="slackUtm_uoBr"><hr>Need more help? Join the conversation in <a href="https://datahub.com/slack?utm_source=docs&amp;utm_medium=footer&amp;utm_campaign=docs_footer&amp;utm_content=python-sdk/builder/mcp-builder">Slack!</a></div></div><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/datahub-project/datahub/blob/master/genDocs/python-sdk/builder/mcp-builder.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_VsjB"></div></div></footer><div class="feedbackWrapper_mUHF"><div class="feedbackWidget_PX4d"><div class="feedbackButtons_wn3V"><strong>Is this page helpful?</strong><div><button class="feedbackButton_UgQs"><span role="img" aria-label="like" class="anticon anticon-like"><svg viewBox="64 64 896 896" focusable="false" data-icon="like" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0142.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z"></path></svg></span></button><button class="feedbackButton_UgQs"><span role="img" aria-label="dislike" class="anticon anticon-dislike"><svg viewBox="64 64 896 896" focusable="false" data-icon="dislike" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z"></path></svg></span></button></div></div></div></div></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/python-sdk/builder/mce-builder"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">MCE Builder</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/python-sdk/clients/graph-client"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Graph Client</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#datahub.emitter.mcp.MetadataChangeProposalWrapper" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">MetadataChangeProposalWrapper</span></a></li><li><a href="#datahub.emitter.mcp_builder.BigQueryDatasetKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">BigQueryDatasetKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.BucketKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">BucketKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.CatalogKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">CatalogKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.CatalogKeyWithMetastore" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">CatalogKeyWithMetastore</span></a></li><li><a href="#datahub.emitter.mcp_builder.ContainerKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">ContainerKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.DatabaseKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">DatabaseKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.DatahubKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">DatahubKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.ExperimentKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">ExperimentKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.FolderKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">FolderKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.MetastoreKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">MetastoreKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.NamespaceKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">NamespaceKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.NotebookKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">NotebookKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.PlatformKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">PlatformKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.ProjectIdKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">ProjectIdKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.SchemaKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">SchemaKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.UnitySchemaKey" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">UnitySchemaKey</span></a></li><li><a href="#datahub.emitter.mcp_builder.UnitySchemaKeyWithMetastore" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">UnitySchemaKeyWithMetastore</span></a></li><li><a href="#datahub.emitter.mcp_builder.add_dataset_to_container" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">add_dataset_to_container</span></a></li><li><a href="#datahub.emitter.mcp_builder.add_domain_to_entity_wu" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">add_domain_to_entity_wu</span></a></li><li><a href="#datahub.emitter.mcp_builder.add_entity_to_container" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">add_entity_to_container</span></a></li><li><a href="#datahub.emitter.mcp_builder.add_owner_to_entity_wu" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">add_owner_to_entity_wu</span></a></li><li><a href="#datahub.emitter.mcp_builder.add_structured_properties_to_entity_wu" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">add_structured_properties_to_entity_wu</span></a></li><li><a href="#datahub.emitter.mcp_builder.add_tags_to_entity_wu" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">add_tags_to_entity_wu</span></a></li><li><a href="#datahub.emitter.mcp_builder.create_embed_mcp" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">create_embed_mcp</span></a></li><li><a href="#datahub.emitter.mcp_builder.entity_supports_aspect" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">entity_supports_aspect</span></a></li><li><a href="#datahub.emitter.mcp_builder.gen_containers" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">gen_containers</span></a></li><li><a href="#datahub.emitter.mcp_builder.mcps_from_mce" class="table-of-contents__link toc-highlight"><span classname="visually-hidden">mcps_from_mce</span></a></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/docs/">Introduction</a></li><li class="footer__item"><a class="footer__link-item" href="/docs/quickstart">Quickstart</a></li></ul></div><div class="col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://datahub.com/slack" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://www.youtube.com/channel/UC3qFQC5IiwR5fvWEqi_tJ5w" target="_blank" rel="noopener noreferrer" class="footer__link-item">YouTube<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://medium.com/datahub-project" target="_blank" rel="noopener noreferrer" class="footer__link-item">Blog<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/docs/townhalls">Town Halls</a></li><li class="footer__item"><a href="https://datahub.com/adoption-stories/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Adoption<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div><div class="col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://demo.datahub.com/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Demo</a></li><li class="footer__item"><a href="https://feature-requests.datahubproject.io/roadmap" target="_blank" rel="noopener noreferrer" class="footer__link-item">Roadmap<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a class="footer__link-item" href="/docs/contributing">Contributing</a></li><li class="footer__item"><a href="https://github.com/datahub-project/datahub" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li><li class="footer__item"><a href="https://feature-requests.datahubproject.io/" target="_blank" rel="noopener noreferrer" class="footer__link-item">Feature Requests<svg width="13.5" height="13.5" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_nPIU"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2015-2025 DataHub Project Authors.</div></div></div></footer></div>
<script src="/assets/js/runtime~main.a760fe73.js"></script>
<script src="/assets/js/main.a5ea2da0.js"></script>
</body>
</html>