Keboola MCP Server is an open-source bridge between your Keboola project and modern AI tools.
1.7K
33 Tools
Version 4.43 or later needs to be installed to add the server automatically
Use cases
About
Keboola MCP Server is an open-source bridge between your Keboola project and modern AI tools.
Attribute | Details |
---|---|
Docker Image | mcp/keboola-mcp |
Author | keboola |
Repository | https://github.com/keboola/mcp-server |
Docker Image built by|Docker Inc.
Docker Scout Health Score| Verify Signature|
COSIGN_REPOSITORY=mcp/signatures cosign verify mcp/keboola-mcp --key https://raw.githubusercontent.com/docker/keyring/refs/heads/main/public/mcp/latest.pub
Licence|MIT License
Tools provided by this Server | Short Description |
---|---|
add_config_row | Creates a component configuration row in the specified configuration_id, using the specified name, component ID, configuration JSON, and description. |
create_config | Creates a root component configuration using the specified name, component ID, configuration JSON, and description. |
create_flow | Creates a new flow configuration in Keboola. |
create_oauth_url | Generates an OAuth authorization URL for a Keboola component configuration. |
create_sql_transformation | Creates an SQL transformation using the specified name, SQL query following the current SQL dialect, a detailed description, and a list of created table names. |
docs_query | Answers a question using the Keboola documentation as a source. |
find_component_id | Returns list of component IDs that match the given query. |
get_bucket | Gets detailed information about a specific bucket. |
get_component | Gets information about a specific component given its ID. |
get_config | Gets information about a specific component/transformation configuration. |
get_config_examples | Retrieves sample configuration examples for a specific component. |
get_flow | Gets detailed information about a specific flow configuration. |
get_flow_schema | Returns the JSON schema that defines the structure of Flow configurations. |
get_job | Retrieves detailed information about a specific job, identified by the job_id, including its status, parameters, results, and any relevant metadata. |
get_project_info | Return structured project information pulled from multiple endpoints. |
get_sql_dialect | Gets the name of the SQL dialect used by Keboola project's underlying database. |
get_table | Gets detailed information about a specific table including its DB identifier and column information. |
list_buckets | Retrieves information about all buckets in the project. |
list_configs | Retrieves configurations of components present in the project, optionally filtered by component types or specific component IDs. |
list_flows | Retrieves flow configurations from the project. |
list_jobs | Retrieves all jobs in the project, or filter jobs by a specific component_id or config_id, with optional status filtering. |
list_tables | Retrieves all tables in a specific bucket with their basic information. |
list_transformations | Retrieves transformation configurations in the project, optionally filtered by specific transformation IDs. |
query_data | Executes an SQL SELECT query to get the data from the underlying database. |
run_job | Starts a new job for a given component or transformation. |
search | Searches for Keboola items in the production branch of the current project whose names match the given prefixes, potentially narrowed down by item type, limited and paginated. |
update_bucket_description | Updates the description for a given Keboola bucket. |
update_column_description | Updates the description for a given column in a Keboola table. |
update_config | Updates a specific root component configuration using given by component ID, and configuration ID. |
update_config_row | Updates a specific component configuration row in the specified configuration_id, using the specified name, component ID, configuration JSON, and description. |
update_flow | Updates an existing flow configuration in Keboola. |
update_sql_transformation | Updates an existing SQL transformation configuration, optionally updating the description and disabling the configuration. |
update_table_description | Updates the description for a given Keboola table. |
add_config_row
Creates a component configuration row in the specified configuration_id, using the specified name, component ID, configuration JSON, and description.
CONSIDERATIONS:
USAGE:
EXAMPLES:
Create a new configuration row for component X with these settings
component_id
|string
|The ID of the component for which to create the configuration.
configuration_id
|string
|The ID of the configuration for which to create the configuration row.
description
|string
|The detailed description of the component configuration explaining its purpose and functionality.
name
|string
|A short, descriptive name summarizing the purpose of the component configuration.
parameters
|object
|The component row configuration parameters, adhering to the row_configuration_schema
storage
|object
optional|The table and/or file input / output mapping of the component configuration. It is present only for components that have tables or file input mapping definedcreate_config
Creates a root component configuration using the specified name, component ID, configuration JSON, and description.
CONSIDERATIONS:
USAGE:
EXAMPLES:
Create a new configuration for component X with these settings
component_id
|string
|The ID of the component for which to create the configuration.
description
|string
|The detailed description of the component configuration explaining its purpose and functionality.
name
|string
|A short, descriptive name summarizing the purpose of the component configuration.
parameters
|object
|The component configuration parameters, adhering to the root_configuration_schema
storage
|object
optional|The table and/or file input / output mapping of the component configuration. It is present only for components that have tables or file input mapping definedcreate_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:
CONSIDERATIONS:
phases
and tasks
parameters must conform to the Keboola Flow JSON schema.id
and name
.dependsOn
phase field reference ids of other phases.USAGE: Use this tool to automate multi-step data workflows. This is ideal for:
EXAMPLES:
tasks
parameter with the tasks for the JIRA extractorsphases
parameter by grouping tasks into phases
Parameters|Type|Description
-|-|-
description
|string
|Detailed description of the flow purpose.
name
|string
|A short, descriptive name for the flow.
phases
|array
|List of phase definitions.
tasks
|array
|List of task definitions.create_oauth_url
Generates an OAuth authorization URL for a Keboola component configuration.
When using this tool, be very concise in your response. Just guide the user to click the authorization link.
Note that this tool should be called specifically for the OAuth-requiring components after their configuration is created e.g. keboola.ex-google-analytics-v4 and keboola.ex-gmail.
Parameters | Type | Description |
---|---|---|
component_id | string | The component ID to grant access to (e.g., "keboola.ex-google-analytics-v4"). |
config_id | string | The configuration ID for the component. |
create_sql_transformation
Creates an SQL transformation using the specified name, SQL query following the current SQL dialect, a detailed description, and a list of created table names.
CONSIDERATIONS:
created_table_names
list.USAGE:
EXAMPLES:
Can you create a new transformation out of this sql query?
Generate me an SQL transformation which [USER INTENT]
description
|string
|The detailed description of the SQL transformation capturing the user intent, explaining the SQL query, and the expected output.
name
|string
|A short, descriptive name summarizing the purpose of the SQL transformation.
sql_code_blocks
|array
|The SQL query code blocks, each containing a descriptive name and a sequence of semantically related independently executable sql_statements written in the current SQL dialect.
created_table_names
|array
optional|A list of created table names if they are generated within the SQL query statements (e.g., using CREATE TABLE ...
).docs_query
Answers a question using the Keboola documentation as a source.
Parameters | Type | Description |
---|---|---|
query | string | Natural language query to search for in the documentation. |
find_component_id
Returns list of component IDs that match the given query.
USAGE:
EXAMPLES:
I am looking for a salesforce extractor component
query
|string
|Natural language query to find the requested component.get_bucket
Gets detailed information about a specific bucket.
Parameters | Type | Description |
---|---|---|
bucket_id | string | Unique ID of the bucket. |
get_component
Gets information about a specific component given its ID.
USAGE:
EXAMPLES:
Create a generic extractor configuration for x
component_id
|string
|ID of the component/transformationget_config
Gets information about a specific component/transformation configuration.
USAGE:
EXAMPLES:
give me details about this configuration
component_id
|string
|ID of the component/transformation
configuration_id
|string
|ID of the component/transformation configurationget_config_examples
Retrieves sample configuration examples for a specific component.
USAGE:
EXAMPLES:
Show me example configurations for component X
component_id
|string
|The ID of the component to get configuration examples for.get_flow
Gets detailed information about a specific flow configuration.
Parameters | Type | Description |
---|---|---|
configuration_id | string | ID of the flow configuration to retrieve. |
get_flow_schema
Returns the JSON schema that defines the structure of Flow configurations.
get_job
Retrieves detailed information about a specific job, identified by the job_id, including its status, parameters, results, and any relevant metadata.
EXAMPLES:
job_id
|string
|The unique identifier of the job whose details should be retrieved.get_project_info
Return structured project information pulled from multiple endpoints.
get_sql_dialect
Gets the name of the SQL dialect used by Keboola project's underlying database.
get_table
Gets detailed information about a specific table including its DB identifier and column information.
Parameters | Type | Description |
---|---|---|
table_id | string | Unique ID of the table. |
list_buckets
Retrieves information about all buckets in the project.
list_configs
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:
EXAMPLES:
give me all components (in the project)
list me all extractor components (in the project)
give me configurations for following component/s
| give me configurations for this component
give me configurations for 'specified-id'
component_ids
|array
optional|List of component IDs to retrieve configurations for. If none, return all components.
component_types
|array
optional|List of component types to filter by. If none, return all components.list_flows
Retrieves flow configurations from the project.
Parameters | Type | Description |
---|---|---|
flow_ids | array optional | The configuration IDs of the flows to retrieve. |
list_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:
EXAMPLES:
component_id
|string
optional|The optional ID of the component whose jobs you want to list, default = None.
config_id
|string
optional|The optional ID of the component configuration whose jobs you want to list, default = None.
limit
|integer
optional|The number of jobs to list, default = 100, max = 500.
offset
|integer
optional|The offset of the jobs to list, default = 0.
sort_by
|string
optional|The field to sort the jobs by, default = "startTime".
sort_order
|string
optional|The order to sort the jobs by, default = "desc".
status
|string
optional|The optional status of the jobs to filter by, if None then default all.list_tables
Retrieves all tables in a specific bucket with their basic information.
Parameters | Type | Description |
---|---|---|
bucket_id | string | Unique ID of the bucket. |
list_transformations
Retrieves transformation configurations in the project, optionally filtered by specific transformation IDs.
USAGE:
EXAMPLES:
give me all transformations
give me configurations for following transformation/s
| give me configurations for this transformation
list me transformations for this transformation component 'specified-id'
transformation_ids
|array
optional|List of transformation component IDs to retrieve configurations for.query_data
Executes an SQL SELECT query to get the data from the underlying database.
query_name
|string
|A concise, human-readable name for this query based on its purpose and what data it retrieves. Use normal words with spaces (e.g., "Customer Orders Last Month", "Top Selling Products", "User Activity Summary").
sql_query
|string
|SQL SELECT query to run.run_job
Starts a new job for a given component or transformation.
Parameters | Type | Description |
---|---|---|
component_id | string | The ID of the component or transformation for which to start a job. |
configuration_id | string | The ID of the configuration for which to start a job. |
search
Searches for Keboola items in the production branch of the current project whose names match the given prefixes, potentially narrowed down by item type, limited and paginated. Results are ordered by relevance, then creation time.
Considerations:
name_prefixes
|array
|Name prefixes to match against item names.
item_types
|array
optional|Optional list of keboola item types to filter by.
limit
|integer
optional|Maximum number of items to return (default: 50, max: 100).
offset
|integer
optional|Number of matching items to skip, pagination.update_bucket_description
Updates the description for a given Keboola bucket.
Parameters | Type | Description |
---|---|---|
bucket_id | string | The ID of the bucket to update. |
description | string | The new description for the bucket. |
update_column_description
Updates the description for a given column in a Keboola table.
Parameters | Type | Description |
---|---|---|
column_name | string | The name of the column to update. |
description | string | The new description for the column. |
table_id | string | The ID of the table that contains the column. |
update_config
Updates a specific root component configuration using given by component ID, and configuration ID.
CONSIDERATIONS:
USAGE:
EXAMPLES:
Update a configuration for component X and configuration ID 1234 with these settings
change_description
|string
|Description of the change made to the component configuration.
component_id
|string
|The ID of the component the configuration belongs to.
configuration_id
|string
|The ID of the configuration to update.
description
|string
|The detailed description of the component configuration explaining its purpose and functionality.
name
|string
|A short, descriptive name summarizing the purpose of the component configuration.
parameters
|object
|The component configuration parameters, adhering to the root_configuration_schema schema
storage
|object
optional|The table and/or file input / output mapping of the component configuration. It is present only for components that are not row-based and have tables or file input mapping definedupdate_config_row
Updates a specific component configuration row in the specified configuration_id, using the specified name, component ID, configuration JSON, and description.
CONSIDERATIONS:
USAGE:
EXAMPLES:
Update a configuration row of configuration ID 123 for component X with these settings
change_description
|string
|Description of the change made to the component configuration.
component_id
|string
|The ID of the component to update.
configuration_id
|string
|The ID of the configuration to update.
configuration_row_id
|string
|The ID of the configuration row to update.
description
|string
|The detailed description of the component configuration explaining its purpose and functionality.
name
|string
|A short, descriptive name summarizing the purpose of the component configuration.
parameters
|object
|The component row configuration parameters, adhering to the row_configuration_schema
storage
|object
optional|The table and/or file input / output mapping of the component configuration. It is present only for components that have tables or file input mapping definedupdate_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:
CONSIDERATIONS:
phases
and tasks
parameters must conform to the Keboola Flow JSON schema.id
and name
.dependsOn
phase field reference ids of other phases.configuration_id
must already exist in the project.USAGE: Use this tool to update an existing flow.
Parameters | Type | Description |
---|---|---|
change_description | string | Description of changes made. |
configuration_id | string | ID of the flow configuration to update. |
description | string | Updated flow description. |
name | string | Updated flow name. |
phases | array | Updated list of phase definitions. |
tasks | array | Updated list of task definitions. |
update_sql_transformation
Updates an existing SQL transformation configuration, optionally updating the description and disabling the configuration.
CONSIDERATIONS:
EXAMPLES:
Can you edit this transformation configuration that [USER INTENT]?
change_description
|string
|Description of the changes made to the transformation configuration.
configuration_id
|string
|ID of the transformation configuration to update
parameters
|string
|The updated "parameters" part of the transformation configuration that contains the newly applied settings and preserves all other existing settings.
storage
|object
|The updated "storage" part of the transformation configuration that contains the newly applied settings and preserves all other existing settings.
is_disabled
|boolean
optional|Whether to disable the transformation configuration. Default is False.
updated_description
|string
optional|Updated transformation description reflecting the changes made in the behavior of the transformation. If no behavior changes are made, empty string preserves the original description.update_table_description
Updates the description for a given Keboola table.
Parameters | Type | Description |
---|---|---|
description | string | The new description for the table. |
table_id | string | The ID of the table to update. |
{
"mcpServers": {
"keboola-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"KBC_WORKSPACE_SCHEMA",
"-e",
"KBC_STORAGE_TOKEN",
"mcp/keboola-mcp"
],
"env": {
"KBC_WORKSPACE_SCHEMA": "your_workspace_schema",
"KBC_STORAGE_TOKEN": "your_keboola_storage_token"
}
}
}
}
Manual installation
You can install the MCP server using:
Installation for