datanika-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DATANIKA_URL | No | https://app.datanika.io | |
| DATANIKA_API_KEY | Yes |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_agent_tiersB | Get the 5-tier agent capability stack — describes what the API can do. |
| get_connection_typesA | List all supported connection types with their config schemas. |
| list_connectionsC | List all connections in the organization. |
| get_connectionC | Get details of a specific connection by ID. |
| introspect_connectionA | List schemas and tables of a source connection. Args: connection_id: The connection to introspect. schema: Optional schema name to filter tables. |
| preview_connectionB | Preview the first N rows of a table from a source connection. Args: connection_id: The connection to query. table: Table name to preview. schema: Optional schema name. limit: Max rows to return (default 100). |
| query_connectionA | Execute a read-only SQL query against a source connection. Args: connection_id: The connection to query. query: A single SELECT statement (no mutations allowed). |
| compile_transformationA | Compile a dbt transformation — resolves Jinja, ref(), source(). No execution. Args: transformation_id: The transformation to compile. |
| preview_transformationA | Compile and execute a transformation, returning preview rows. Args: transformation_id: The transformation to preview. limit: Max rows to return (default 100, max 1000). |
| list_uploadsA | List all uploads (extract + load jobs) in the organization. |
| list_pipelinesA | List all pipelines (dbt transform orchestration) in the organization. |
| list_transformationsA | List all dbt transformations in the organization. |
| list_runsA | List pipeline/upload/transformation runs with optional filters. Args: target_type: Filter by type — 'upload', 'pipeline', or 'transformation'. status: Filter by status — 'pending', 'running', 'success', 'failed', 'cancelled'. limit: Max results (default 50, max 200). |
| get_runB | Get details of a specific run by ID. Args: run_id: The run ID to look up. |
| get_run_logsC | Get the logs of a specific run. Args: run_id: The run ID whose logs to fetch. |
| list_catalogA | List all catalog entries (source tables and dbt models). |
| get_catalog_entryA | Get details of a specific catalog entry. Args: entry_id: The catalog entry ID. |
| create_connectionA | Create a new data connection. Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args: name: Human-readable name for the connection. connection_type: One of the supported types (e.g. 'postgres', 'mysql', 'stripe'). config: Connection-specific configuration (host, port, credentials, etc.). |
| create_uploadA | Create a new upload (extract + load job). Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args: name: Upload name. source_connection_id: ID of the source connection. destination_connection_id: ID of the destination connection. dlt_config: Optional dlt extraction config (load_mode, table_name, etc.). description: Optional description. |
| create_pipelineA | Create a new pipeline (dbt transform orchestration). Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args: name: Pipeline name. destination_connection_id: ID of the destination connection. command: dbt command — 'run', 'build', 'test', 'seed', 'snapshot', 'compile'. description: Optional description. |
| create_transformationA | Create a new dbt SQL transformation. Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args: name: Model name (letters, digits, underscores, hyphens; must start with letter or _). sql_body: dbt-compatible SQL (supports ref(), source(), Jinja). materialization: 'view', 'table', 'incremental', 'ephemeral', or 'snapshot'. description: Optional description. schema_name: Target schema (default 'staging'). |
| bulk_importA | Bulk-import connections, uploads, pipelines, and transformations in one call. Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Uses the JSON v2 import format. Validates everything first — if any errors, nothing is created. Args: payload: JSON v2 import payload with version, connections, uploads, pipelines, transformations sections. See AI_IMPORT_GUIDE.md. |
| trigger_uploadA | Trigger an upload run. Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args:
upload_id: The upload to run.
wait: If true, block until the run completes (up to 120s). The result
is returned either way -- a run that FAILED comes back as
|
| trigger_pipelineA | Trigger a pipeline run (dbt build/run/test). Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args:
pipeline_id: The pipeline to run.
wait: If true, block until the run completes (up to 120s). The result
is returned either way -- a run that FAILED comes back as
|
| trigger_transformationA | Trigger a transformation run. Write tool: available only when this session was granted write access — the local server's --allow-write flag, or an OAuth consent in which the user approved write. Read-only sessions refuse it. Args:
transformation_id: The transformation to run.
wait: If true, block until the run completes (up to 120s). The result
is returned either way -- a run that FAILED comes back as
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Each tool targets a distinct resource-action pair, and the descriptions clearly separate similar operations (e.g., preview vs. compile vs. trigger transformation; preview vs. query connection). The list_*/get_*/create_*/trigger_* families each map to unique entities or operations with no meaningful overlap. Even the similarly named list tools are differentiated by resource type and arguments.
All 25 tools follow the same verb_noun pattern in snake_case, e.g., list_uploads, get_connection, create_pipeline, trigger_transformation. The verbs are consistently used across entity types, and there are no mixed conventions like camelCase or inconsistent verb forms. The naming is highly predictable and aids agent tool selection.
At 25 tools, the set is on the higher end of typical MCP servers, but each tool covers a distinct operation across connections, uploads, pipelines, transformations, runs, and catalog. The count feels slightly heavy yet justified for a data platform with multiple resource types and lifecycle actions. It is not bloated with redundant tools; rather, it is a thorough but near-upper-limit surface.
The server provides comprehensive read and create operations (list, get, create, trigger) for all core entities, and useful extras like preview, compile, introspect, and bulk import. However, there are no update or delete operations for connections, uploads, pipelines, or transformations, which is a notable gap for full lifecycle management. Agents cannot modify or remove existing resources, which may force workarounds or leave dead ends.