---
id: "lib-2026-10-28-own-dbt-mcp-server-instead-of-the-vendor-s"
type: "library"
title: "Own dbt MCP server instead of the vendor's"
title_original: "KARPOV.CONF 2026: «MCP — это pip для AI»"
lang: "RU"
org: "ex-Toloka data platform (KARPOV.CONF 2026)"
source_type: "Talk"
date: "2026-10-28"
week: "2026-W44"
url: "https://nosov.ai/library/lib-2026-10-28-own-dbt-mcp-server-instead-of-the-vendor-s/"
original_url: "https://www.youtube.com/watch?v=P-VACeCI3W4&t=16203"
tier: "B"
tier_name: "Useful, limited"
tier_reason: "Two data-platform engineers who built Toloka's dbt platform give specific, checkable reasons the official dbt MCP server failed and a clear tool-design pattern, but the result is a single pre-recorded demo with no measured comparison."
summary_basis: "transcript"
original_minutes: "31"
tags: ["ai technology", "mcp", "dbt", "tool design"]
---

# Own dbt MCP server instead of the vendor's

Original title: KARPOV.CONF 2026: «MCP — это pip для AI»

Tier B (Useful, limited): Two data-platform engineers who built Toloka's dbt platform give specific, checkable reasons the official dbt MCP server failed and a clear tool-design pattern, but the result is a single pre-recorded demo with no measured comparison.

Summary based on the full transcript.

## In short

A 31-minute talk at KARPOV.CONF 2026 (28 October 2026) by Evgeny Ermakov (PhD, data consultant, formerly Mail.ru, Yandex and Toloka) and Nikita Yurasov (senior developer); names and the consultancy's name are garbled in the captions. Their Toloka data platform runs on dbt, and analysts wanted agents in Cursor to understand lineage, assess the impact of changes and review pull requests. The official dbt Labs MCP server exposed too many tools, filled the context and included dangerous commands, so they wrote their own small MCP server built around analysts' use cases rather than around dbt commands. Their core advice: design tools from business processes, one tool per use case, with descriptions written as prompts.

## Key numbers

- ~2,000: dbt models on the platform, split into Data Mesh domains, with about 100 DAGs and about 5,000 tasks a day
- 59 vs 40: tools in the official dbt Labs MCP server against Cursor's limit of 40 tools
- 25,000: tokens taken by the official server's tool list, up to a third of the context window
- 77: downstream models in 3 domains, to a depth of 10, flagged by the custom review_branch tool for a one-column change

## What it reports

- Platform: about 2,000 dbt models in Data Mesh domains, about 100 DAGs, about 5,000 tasks a day, on Databricks, Spark and Airflow. dbt is scheduled through their own open-source library (now forked as "DMP") to avoid paying for dbt Cloud.
- Goals for agent access: understand the project structure and lineage, estimate the impact of a change, review PRs, without burning tokens, without breaking analysts' workflow, and with remote access to the repository.
- Problems with the official dbt Labs MCP: 59 tools against Cursor's 40-tool limit, so some are invisible; about 25,000 tokens for the tool list, up to a third of the context; some tools are paid and tied to dbt Cloud. Asked what a one-column change would break, the agent saw 52 tools and did not know how to review a PR. It also exposes commands such as `dbt build --full-refresh`, which could break production if permissions are loose.
- Fix: a "compound tool", `review_branch`, that runs the diff, downstream impact, cross-domain data-contract risks and a summary in sequence, so the agent makes one call per request.
- Design rules: start from use cases, not API endpoints or CRUD; one tool per case; write descriptions as prompts with when-to-use guidance and examples; cross-reference dependent tools; keep the tool count low; ship skills alongside MCP, since the two complement each other.
- Build effort: FastMCP in Python; the server code took "a few hours", and with coding agents is close to free. The hard part is tool design.
- Demo: adding an `email_verified` column touched 77 downstream models in three domains, to a depth of 10, and the agent flagged an SCD2 child model that would pick up the change, which is not visible in the PR diff. The server also lets people read SQL files remotely, from Claude Desktop or a phone.
- Q&A: they expect CLI and MCP to coexist; a remote MCP server installs with one line, which matters for people who cannot install CLI tools for security reasons. Their contrast of 200,000 tokens through a CLI against one MCP call was an example, not a measurement.

## How they got it

The speakers describe a server they built and show a pre-recorded demo on their own platform. The vendor-server figures (tool count, Cursor limit, token cost) can be checked against public dbt and Cursor documentation; the custom server's benefit is shown only by the demo.

## Limits

- One demo case; no measured token savings, accuracy or review-quality comparison against the official server.
- Neither speaker works at Toloka now, so the platform figures describe the system as they built it, not necessarily its current state.
- The 200,000-token CLI figure is illustrative.
- Source is YouTube auto-captions: the consultancy name ("IG CS and Partners"), surnames, Toloka ("Талок") and dbt terms are garbled in places.

## Why it matters for companies

Data teams adding agents to their warehouse or dbt project will meet the same problem: vendor MCP servers mirror the vendor's command set, which overloads the agent's context and can expose destructive operations. The talk gives a cheap alternative: a small internal server whose tools match how your analysts actually work (review a branch, check impact, check contracts), with clear descriptions. The pattern applies to any internal system without a good MCP server, and the build cost is low enough that tool design, not engineering, becomes the main work.

## Key passages in translation

> 59 тулов в DBTMCP, при этом в курсре ограничение на 40 тулов и части он просто не видит.

The dbt MCP has 59 tools, while Cursor has a 40-tool limit, so it simply does not see some of them.

> И здесь он указывает, что вообще есть 77 модель, которые в трёх разных доменах на аж глубине 10 будут затронуты.

And here it shows that 77 models in three different domains, as deep as level 10, will be affected.

> Вся инженерная часть написания самого сервера очень проста. Это буквально не ну несколько часов, а сейчас с агентским кодингом, в общем, можно сказать, что почти бесплатно.

The engineering part of writing the server itself is very simple. It is literally a few hours, and now with agentic coding you could say it is almost free.

Original: https://www.youtube.com/watch?v=P-VACeCI3W4&t=16203
