MCP-Mirror/keboola_mcp-server
If you are the rightful owner of keboola_mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server for interacting with Keboola Connection, providing tools for listing and accessing data from Keboola Storage API.
Tools
Functions exposed to the LLM to take actions
retrieve_transformations
Retrieves transformation configurations in the project, optionally filtered by specific transformation IDs.
USAGE:
- Use when you want to see transformation configurations in the project for given transformation_ids.
- Use when you want to retrieve all transformation configurations, then set transformation_ids to an empty list.
EXAMPLES:
- user_input:
give me all transformations
- returns all transformation configurations in the project
- user_input:
give me configurations for following transformation/s
|give me configurations for this transformation
- set transformation_ids to list of identifiers accordingly if you know the IDs
- returns all transformation configurations for the given transformations IDs
- user_input:
list me transformations for this transformation component 'specified-id'
- set transformation_ids to ['specified-id']
- returns the transformation configurations with ID 'specified-id'
get_component_configuration
Gets information about a specific component/transformation configuration.
USAGE:
- Use when you want to see the configuration of a specific component/transformation.
EXAMPLES:
- user_input:
give me details about this configuration
- set component_id and configuration_id to the specific component/transformation ID and configuration ID if you know it
- returns the component/transformation configuration pair
retrieve_components_configurations
Retrieves configurations of components present in the project, optionally filtered by component types or specific component IDs. If component_ids are supplied, only those components identified by the IDs are retrieved, disregarding component_types.
USAGE:
- Use when you want to see components configurations in the project for given component_types.
- Use when you want to see components configurations in the project for given component_ids.
EXAMPLES:
- user_input:
give me all components (in the project)
- returns all components configurations in the project
- user_input:
list me all extractor components (in the project)
- set types to ["extractor"]
- returns all extractor components configurations in the project
- user_input:
give me configurations for following component/s
|give me configurations for this component
- set component_ids to list of identifiers accordingly if you know them
- returns all configurations for the given components in the project
- user_input:
give me configurations for 'specified-id'
- set component_ids to ['specified-id']
- returns the configurations of the component with ID 'specified-id'
create_sql_transformation
Creates an SQL transformation using the specified name, SQL query following the current SQL dialect, a detailed description, and optionally a list of created table names if and only if they are generated within the SQL statements.
CONSIDERATIONS:
- Each SQL code block must include descriptive name that reflects its purpose and group one or more executable semantically related SQL statements.
- Each SQL query statement must be executable and follow the current SQL dialect, which can be retrieved using appropriate tool.
- When referring to the input tables within the SQL query, use fully qualified table names, which can be retrieved using appropriate tools.
- When creating a new table within the SQL query (e.g. CREATE TABLE ...), use only the quoted table name without
fully qualified table name, and add the plain table name without quotes to the
created_table_names
list. - Unless otherwise specified by user, transformation name and description are generated based on the SQL query and user intent.
USAGE:
- Use when you want to create a new SQL transformation.
EXAMPLES:
- user_input:
Can you save me the SQL query you generated as a new transformation?
- set the sql_statements to the query, and set other parameters accordingly.
- returns the created SQL transformation configuration if successful.
- user_input:
Generate me an SQL transformation which [USER INTENT]
- set the sql_statements to the query based on the [USER INTENT], and set other parameters accordingly.
- returns the created SQL transformation configuration if successful.
update_sql_transformation_configuration
Updates an existing SQL transformation configuration, optionally updating the description and disabling the configuration.
CONSIDERATIONS:
- The parameters configuration must include blocks with codes of SQL statements. Using one block with many codes of SQL statemetns is prefered and commonly used unless specified otherwise by the user.
- Each code contains SQL statements that are semantically related and have a descriptive name.
- Each SQL statement must be executable and follow the current SQL dialect, which can be retrieved using appropriate tool.
- The storage configuration must not be empty, and it should include input or output tables with correct mappings for the transformation.
- When the behavior of the transformation is not changed, the updated_description can be empty string.
EXAMPLES:
- user_input:
Can you edit this transformation configuration that [USER INTENT]?
- set the transformation configuration_id accordingly and update parameters and storage tool arguments based on the [USER INTENT]
- returns the updated transformation configuration if successful.
get_component
Gets information about a specific component given its ID.
USAGE:
- Use when you want to see the details of a specific component to get its documentation, configuration schemas, etc. Especially in situation when the users asks to create or update a component configuration. This tool is mainly for internal use by the agent.
EXAMPLES:
- user_input:
Create a generic extractor configuration for x
- Set the component_id if you know it or find the component_id by find_component_id or docs use tool and set it
- returns the component
create_component_root_configuration
Creates a component configuration using the specified name, component ID, configuration JSON, and description.
CONSIDERATIONS:
- The configuration JSON object must follow the root_configuration_schema of the specified component.
- Make sure the configuration parameters always adhere to the root_configuration_schema, which is available via the component_detail tool.
- The configuration JSON object should adhere to the component's configuration examples if found.
USAGE:
- Use when you want to create a new root configuration for a specific component.
EXAMPLES:
- user_input:
Create a new configuration for component X with these settings
- set the component_id and configuration parameters accordingly
- returns the created component configuration if successful.
create_component_row_configuration
Creates a component configuration row in the specified configuration_id, using the specified name, component ID, configuration JSON, and description.
CONSIDERATIONS:
- The configuration JSON object must follow the row_configuration_schema of the specified component.
- Make sure the configuration parameters always adhere to the row_configuration_schema, which is available via the component_detail tool.
- The configuration JSON object should adhere to the component's configuration examples if found.
USAGE:
- Use when you want to create a new row configuration for a specific component configuration.
EXAMPLES:
- user_input:
Create a new configuration for component X with these settings
- set the component_id, configuration_id and configuration parameters accordingly
- returns the created component configuration if successful.
update_component_root_configuration
Updates a specific component configuration using given by component ID, and configuration ID.
CONSIDERATIONS:
- The configuration JSON object must follow the root_configuration_schema of the specified component.
- Make sure the configuration parameters always adhere to the root_configuration_schema, which is available via the component_detail tool.
- The configuration JSON object should adhere to the component's configuration examples if found
USAGE:
- Use when you want to update a root configuration of a specific component.
EXAMPLES:
- user_input:
Update a configuration for component X and configuration ID 1234 with these settings
- set the component_id, configuration_id and configuration parameters accordingly.
- set the change_description to the description of the change made to the component configuration.
- returns the updated component configuration if successful.
update_component_row_configuration
Updates a specific component configuration row in the specified configuration_id, using the specified name, component ID, configuration JSON, and description.
CONSIDERATIONS:
- The configuration JSON object must follow the row_configuration_schema of the specified component.
- Make sure the configuration parameters always adhere to the row_configuration_schema, which is available via the component_detail tool.
USAGE:
- Use when you want to update a row configuration for a specific component and configuration.
EXAMPLES:
- user_input:
Update a configuration row of configuration ID 123 for component X with these settings
- set the component_id, configuration_id, configuration_row_id and configuration parameters accordingly
- returns the updated component configuration if successful.
get_component_configuration_examples
Retrieves sample configuration examples for a specific component.
USAGE:
- Use when you want to see example configurations for a specific component.
EXAMPLES:
- user_input:
Show me example configurations for component X
- set the component_id parameter accordingly
- returns a markdown formatted string with configuration examples
find_component_id
Returns list of component IDs that match the given query.
USAGE:
- Use when you want to find the component for a specific purpose.
EXAMPLES:
- user_input:
I am looking for a salesforce extractor component
- returns a list of component IDs that match the query, ordered by relevance/best match.
docs_query
Answers a question using the Keboola documentation as a source.
create_flow
Creates a new flow configuration in Keboola. A flow is a special type of Keboola component that orchestrates the execution of other components. It defines how tasks are grouped and ordered — enabling control over parallelization** and sequential execution. Each flow is composed of:
- Tasks: individual component configurations (e.g., extractors, writers, transformations).
- Phases: groups of tasks that run in parallel. Phases themselves run in order, based on dependencies.
CONSIDERATIONS:
- The
phases
andtasks
parameters must conform to the Keboola Flow JSON schema. - Each task and phase must include at least:
id
andname
. - Each task must reference an existing component configuration in the project.
- Items in the
dependsOn
phase field reference ids of other phases. - Links contained in the response should ALWAYS be presented to the user
USAGE: Use this tool to automate multi-step data workflows. This is ideal for:
- Creating ETL/ELT orchestration.
- Coordinating dependencies between components.
- Structuring parallel and sequential task execution.
EXAMPLES:
- user_input: Orchestrate all my JIRA extractors.
- fill
tasks
parameter with the tasks for the JIRA extractors - determine dependencies between the JIRA extractors
- fill
phases
parameter by grouping tasks into phases
- fill
retrieve_flows
Retrieves flow configurations from the project.
update_flow
Updates an existing flow configuration in Keboola. A flow is a special type of Keboola component that orchestrates the execution of other components. It defines how tasks are grouped and ordered — enabling control over parallelization** and sequential execution. Each flow is composed of:
- Tasks: individual component configurations (e.g., extractors, writers, transformations).
- Phases: groups of tasks that run in parallel. Phases themselves run in order, based on dependencies.
CONSIDERATIONS:
- The
phases
andtasks
parameters must conform to the Keboola Flow JSON schema. - Each task and phase must include at least:
id
andname
. - Each task must reference an existing component configuration in the project.
- Items in the
dependsOn
phase field reference ids of other phases. - The flow specified by
configuration_id
must already exist in the project. - Links contained in the response should ALWAYS be presented to the user
USAGE: Use this tool to update an existing flow.
get_flow_detail
Gets detailed information about a specific flow configuration.
get_flow_schema
Returns the JSON schema that defines the structure of Flow configurations.
retrieve_jobs
Retrieves all jobs in the project, or filter jobs by a specific component_id or config_id, with optional status filtering. Additional parameters support pagination (limit, offset) and sorting (sort_by, sort_order).
USAGE:
- Use when you want to list jobs for a given component_id and optionally for given config_id.
- Use when you want to list all jobs in the project or filter them by status.
EXAMPLES:
- If status = "error", only jobs with status "error" will be listed.
- If status = None, then all jobs with arbitrary status will be listed.
- If component_id = "123" and config_id = "456", then the jobs for the component with id "123" and configuration with id "456" will be listed.
- If limit = 100 and offset = 0, the first 100 jobs will be listed.
- If limit = 100 and offset = 100, the second 100 jobs will be listed.
- If sort_by = "endTime" and sort_order = "asc", the jobs will be sorted by the end time in ascending order.
get_job_detail
Retrieves detailed information about a specific job, identified by the job_id, including its status, parameters, results, and any relevant metadata.
EXAMPLES:
- If job_id = "123", then the details of the job with id "123" will be retrieved.
start_job
Starts a new job for a given component or transformation.
get_project_info
Return structured project information pulled from multiple endpoints.
query_table
Executes an SQL SELECT query to get the data from the underlying database.
- When constructing the SQL SELECT query make sure to check the SQL dialect used by the Keboola project's underlying database.
- When referring to tables always use fully qualified table names that include the database name, schema name and the table name.
- The fully qualified table name can be found in the table information, use a tool to get the information about tables. The fully qualified table name can be found in the response from that tool.
- Always use quoted column names when referring to table columns. The quoted column names can also be found in the response from the table information tool.
get_sql_dialect
Gets the name of the SQL dialect used by Keboola project's underlying database.
get_bucket_detail
Gets detailed information about a specific bucket.
retrieve_buckets
Retrieves information about all buckets in the project.
get_table_detail
Gets detailed information about a specific table including its DB identifier and column information.
retrieve_bucket_tables
Retrieves all tables in a specific bucket with their basic information.
update_bucket_description
Update the description for a given Keboola bucket.
update_table_description
Update the description for a given Keboola table.
update_column_description
Update the description for a given column in a Keboola table.
Prompts
Interactive templates invoked by user choice
analyze_project_structure
Generate a comprehensive analysis prompt for a Keboola project's structure.
This prompt analyzes the project's components, data flow, buckets, tables, and configurations to provide insights into capabilities and applications.
project_health_check
Generate a comprehensive health check analysis for the entire Keboola project.
This one-click prompt analyzes project health, identifies issues, and provides recommendations.
data_quality_assessment
Generate a comprehensive data quality assessment for all project data.
One-click analysis of data quality across all buckets and tables.
component_usage_summary
Generate a comprehensive summary of all components and their usage patterns.
One-click overview of project components, configurations, and usage analytics.
error_analysis_report
Generate an analysis of recent errors and failures across the project.
One-click error analysis with troubleshooting recommendations.
create_project_documentation
Generate comprehensive project documentation automatically.
One-click documentation creation for the entire Keboola project.
Resources
Contextual data attached and managed by the client