Skip to main content
Glama
dbt-labs
by dbt-labs

get_model_parents

Retrieve the parent models of a specified dbt model to understand its dependencies and lineage within the dbt-mcp server.

Instructions

Get the parents of a specific dbt model.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
model_nameYes

Implementation Reference

  • Primary MCP tool handler for get_model_parents. Defines input parameters (name or unique_id), description from prompt, and delegates execution to ModelsFetcher.fetch_model_parents.
    @dbt_mcp_tool(
        description=get_prompt("discovery/get_model_parents"),
        title="Get Model Parents",
        read_only_hint=True,
        destructive_hint=False,
        idempotent_hint=True,
    )
    async def get_model_parents(
        context: DiscoveryToolContext,
        name: str | None = NAME_FIELD,
        unique_id: str | None = UNIQUE_ID_FIELD,
    ) -> list[dict]:
        return await context.models_fetcher.fetch_model_parents(name, unique_id)
  • Core helper function in ModelsFetcher that constructs GraphQL variables, executes the GET_MODEL_PARENTS query, and extracts the parents from the response.
    async def fetch_model_parents(
        self, model_name: str | None = None, unique_id: str | None = None
    ) -> list[dict]:
        model_filters = self._get_model_filters(model_name, unique_id)
        variables = {
            "environmentId": await self._paginator.get_environment_id(),
            "modelsFilter": model_filters,
            "first": 1,
        }
        result = await self.api_client.execute_query(
            GraphQLQueries.GET_MODEL_PARENTS, variables
        )
        raise_gql_error(result)
        edges = result["data"]["environment"]["applied"]["models"]["edges"]
        if not edges:
            return []
        return edges[0]["node"]["parents"]
  • GraphQL query schema definition for retrieving model parents, including common fields fragment for various node types.
    GET_MODEL_PARENTS = (
        textwrap.dedent("""
        query GetModelParents(
            $environmentId: BigInt!,
            $modelsFilter: ModelAppliedFilter
            $first: Int,
        ) {
            environment(id: $environmentId) {
                applied {
                    models(filter: $modelsFilter, first: $first) {
                        pageInfo {
                            endCursor
                        }
                        edges {
                            node {
                                parents
    """)
        + COMMON_FIELDS_PARENTS_CHILDREN
        + textwrap.dedent("""
                                }
                            }
                        }
                    }
                }
            }
        }
    """)
    )
  • Registration of get_model_parents (line 340) in the DISCOVERY_TOOLS list, which is bound and registered via register_discovery_tools function.
    DISCOVERY_TOOLS = [
        get_mart_models,
        get_all_models,
        get_model_details,
        get_model_parents,
        get_model_children,
        get_model_health,
        get_exposures,
        get_exposure_details,
        get_all_sources,
        get_source_details,
        get_macro_details,
        get_seed_details,
        get_semantic_model_details,
        get_snapshot_details,
        get_test_details,
    ]
  • Tool name constant definition in ToolName enum.
    GET_MODEL_PARENTS = "get_model_parents"

Tool Definition Quality

Score is being calculated. Check back soon.

Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dbt-labs/dbt-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server