dlt
OfficialAllows storing and querying dlt pipeline data in DuckDB, enabling SQL analysis and schema management for DuckDB destinations.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dltShow me the tables and schema of the 'taxi' pipeline"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
How is it useful?
Large language models (LLMs) know a lot about the world, but nothing about your specific code and data.
The Model Context Protocol (MCP) server allows the LLM to retrieve up-to-date and correct information about your dlt pipelines, datasets, schema, etc. This significantly improves the development experience in AI-enabled IDEs (Copilot, Cursor, Continue, Claude Code, etc.)
Related MCP server: dltHub-AI-workbench
Installation
The package manager uv is required to launch the MCP server.
Add this section to your MCP configuration file inside your IDE. Add your destination(s) in the extras dlt-mcp[...]
{
"name": "dlt",
"command": "uv",
"args": [
"run",
"--with",
"dlt-mcp[duckdb]",
"dlt-mcp",
],
}The configuration file format varies slightly across IDEs
Features
Tools
The dlt MCP server provides tools that allows the LLM to take actions:
list_pipelines: Lists all available dlt pipelines. Each pipeline consists of several tables.
list_tables: Retrieves a list of all tables in the specified pipeline.
get_table_schemas: Returns the schema of the specified tables.
execute_sql_query: Executes a SELECT SQL statement for simple data analysis.
get_load_table: Retrieves metadata about data loaded with dlt.
get_pipeline_local_state: Fetches the state information of the pipeline, including incremental dates, resource state, and source state.
get_table_schema_diff: Compares the current schema of a table with another version and provides a diff.
search_docs: Searches over the
dltdocumentation using different modes (hybrid, full_text, or vector) to verify features and identify recommended patterns.search_code: Searches the source code for the specified query and optional file path, providing insights into internal code structures and patterns.
Available Tools
8 toolsdisplay_schemaB
Generate a mermaid diagram to represent the pipeline schema
pipeline_name: name of the pipeline hide_columns: when True, the columns are hidden
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes | ||
| hide_columns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the output is a mermaid diagram but does not disclose whether it is read-only, if it requires specific permissions, or any side effects. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two lines for the action and parameter details. No wasted words, front-loaded with the main purpose. Could be improved by moving parameter details into the schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (mermaid diagram), the description does not need to explain return values. However, it lacks context about prerequisites or how this tool fits into the pipeline ecosystem. Leaves some ambiguity about usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds basic meaning: pipeline_name is 'name of the pipeline' (redundant), hide_columns is explained as 'when True, the columns are hidden' (adds value). However, the compensation is marginal for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a mermaid diagram for the pipeline schema. Verb 'generate' and resource 'pipeline schema' are specific, and it distinguishes from siblings like get_table_schema (textual schema) and list_pipelines (list names).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description omits when to use this tool versus alternatives like get_table_schema or execute_sql_query. No exclusions or context for selecting this tool over siblings are given, though the action of generating a visual diagram is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_sql_queryD
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes | ||
| sql_select_query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Tool has no description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tool has no description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has no description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tool has no description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tool has no description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_load_tableC
Retrieve metadata about data loaded with dlt.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It does not disclose any behavioral traits such as read-only nature, scope of metadata, or side effects. The description is too sparse to convey behavioral characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no wasteful words. It is front-loaded with the primary action. However, the extreme brevity comes at the cost of clarity and detail, which is a trade-off.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description does not need to explain return values, but it still lacks essential context. It does not define 'metadata,' differentiate from sibling tools, or explain the scope of the data load. The description is incomplete for an agent to use this tool correctly without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning beyond the parameter name 'pipeline_name.' It does not explain what constitutes a valid pipeline name, how to find available pipelines, or any constraints. The description fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Retrieve metadata about data loaded with dlt,' which is a specific verb+resource, but 'metadata about data loaded' is vague and does not clearly differentiate from sibling tools like get_table_schema or list_tables. The purpose is implied but not sharp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when or when not to use this tool, nor any mention of alternatives among the sibling tools. The description leaves the agent to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pipeline_local_stateC
Retrieve the pipeline state information. Includes: incremental dates, resource state, source state
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| _state_version | No | |
| _version_hash | No | |
| _state_engine_version | No | |
| pipeline_name | No | |
| dataset_name | No | |
| default_schema_name | No | |
| schema_names | No | |
| destination_name | No | |
| destination_type | No | |
| staging_name | No | |
| staging_type | No | |
| _local | No | |
| sources | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It indicates a read-only operation ('Retrieve') but lacks details on auth, rate limits, error conditions, or behavior beyond the basic retrieval. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and no unnecessary words. It front-loads the primary action and lists included fields efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one required parameter and an existing output schema, the description is minimally adequate. It covers the purpose and key fields but does not elaborate on the output structure or any constraints, which would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema has no descriptions. The tool's description mentions the parameter 'pipeline_name' indirectly through context but adds no meaning beyond the schema's type and required flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'pipeline state information', and lists included fields. It is specific enough to distinguish from siblings like get_load_table or get_table_schema, though not explicitly contrasting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any exclusions or prerequisites. The description simply states what it does without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_schemaC
Get the schema of the specified table.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes | ||
| table_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| x-normalizer | No | |
| x-loader | No | |
| x-extractor | No | |
| name | No | |
| description | No | |
| schema_contract | No | |
| table_sealed | No | |
| parent | No | |
| filters | No | |
| columns | No | |
| resource | No | |
| table_format | No | |
| file_format | No | |
| write_disposition | No | |
| references | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only states 'Get the schema' without indicating that this is a read operation, any side effects, authentication requirements, or return format. The agent must infer behavior from the tool name alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it is under-specified relative to the tool's complexity. While it earns its place by stating the purpose, it fails to include necessary details about parameters or behavior, making it borderline insufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema and two simple parameters, the description should at least hint at what the schema includes (e.g., column names, types) or how to use the parameters. It does not, leaving the tool incomplete for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for its two parameters ('pipeline_name' and 'table_name'), and the tool description adds no explanation of what these parameters represent or how they should be used. This offers no value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get the schema' on 'the specified table', providing a specific verb and resource. However, it does not explicitly differentiate from sibling tools like 'display_schema' or 'get_table_schema_diff', which may perform similar functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as comparing schemas with 'get_table_schema_diff' or listing tables with 'list_tables'. It also lacks context about prerequisites or typical scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_schema_diffC
Get the diff between schema versions of a table.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes | ||
| table_name | Yes | ||
| another_version_hash | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states 'Get the diff', implying a read operation. It fails to disclose any behavioral traits such as potential side effects, permissions, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is efficient but lacks necessary detail. It could be expanded with parameter context without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description fails to explain the tool's behavior with respect to version comparison or default for another_version_hash. It is inadequate for a 3-parameter tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any parameters. The meaning of pipeline_name, table_name, and another_version_hash is left entirely to the schema, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('diff between schema versions of a table'), distinguishing it from siblings like get_table_schema. However, it does not specify which versions are compared, leaving ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or when not to use this tool versus alternatives like get_table_schema or execute_sql_query. The description provides no context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pipelinesB
List all available dlt pipelines. Each pipeline has several tables.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It mentions pipelines have tables but does not disclose if the operation is read-only, requires authentication, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, front-loaded with the core purpose, and contains no irrelevant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an output schema, the description is largely adequate. It adds the context that pipelines contain tables, which is helpful, but could mention any constraints or defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema description coverage is 100%. The description adds value by noting that each pipeline has tables, providing context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all available dlt pipelines' with a specific verb and resource. However, it does not differentiate from the sibling tool 'list_tables', which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'list_tables' or 'display_schema'. The description lacks any contextual or exclusionary cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesB
List all available tables in the specified pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states the action without addressing side effects, permissions, or whether it is read-only. For a listing operation, this minimal information may be sufficient, but it lacks transparency about required authorization or result format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It is appropriately sized for a simple tool, but could incorporate more detail (e.g., output explanation) within the same length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and presence of an output schema, the description provides basic completeness for a listing operation. However, it omits context such as what 'available' means (e.g., tables the user has access to) and does not describe the output structure, which the schema likely covers but is not explicitly referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description only implicitly refers to the pipeline_name parameter via 'in the specified pipeline'. It does not explain what constitutes a valid pipeline name, where to obtain it, or any constraints. The description adds minimal semantic value beyond the parameter's existence.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', resource 'tables', and scope 'in the specified pipeline'. It is specific and distinct from sibling tools like list_pipelines (which lists pipelines) and get_table_schema (which gets schema of a specific table).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_table_schema or display_schema. The description does not mention exclusions, prerequisites, or typical use cases, leaving the agent to infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.3.0- First observed
display_schema - First observed
execute_sql_query - First observed
get_load_table - First observed
get_pipeline_local_state - First observed
get_table_schema - First observed
get_table_schema_diff - First observed
list_pipelines - First observed
list_tables
TDQS
Scored across 8 tools
Each tool has a distinct purpose: display_schema for diagram, execute_sql_query for running SQL, get_load_table for load metadata, get_pipeline_local_state for state, get_table_schema for schema, get_table_schema_diff for version diff, list_pipelines for pipeline listing, list_tables for table listing. No overlap.
All tools follow a consistent verb_noun pattern with snake_case (e.g., display_schema, get_table_schema, list_pipelines). No mixing of conventions.
With 8 tools covering pipeline inspection, schema viewing, state retrieval, and query execution, the count is well-scoped for a data pipeline management server.
The tool set covers inspection and querying comprehensively (list, schema, state, load info, SQL execution), but lacks lifecycle operations like creating or deleting pipelines, which may be intentional for a read-only server.
Maintenance
Related MCP Connectors
Versioned documentation registry and semantic search for AI tools and coding assistants.
The grounded data layer for any LLM: governed SQL, metrics, lineage and catalog over your data.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Generate, edit, and export data-architecture diagrams from your AI. Column lineage, PNG in chat.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides LLMs with up-to-date, version-specific documentation and code examples directly from library sources, eliminating outdated training data and hallucinated APIs by fetching current documentation at prompt time.2807,538MIT

dltHub-AI-workbenchofficial
FlicenseAqualityBmaintenanceIt gives Claude Code, Cursor, and Codex structured workflows and an MCP server for building data pipelines with dlt - covering REST API ingestion, transformations, data quality, and exploration.1755-- FlicenseAqualityDmaintenanceProvides Large Language Models with real-time access to the latest documentation for Python libraries like Langchain, LlamaIndex, and OpenAI, enabling accurate and up-to-date code suggestions.1-
- AlicenseAqualityCmaintenanceExposes SQL Server and Snowflake schema metadata to AI coding agents, enabling schema search, join path discovery, and stored procedure metadata retrieval without live queries.18GPL 3.0