Keboola
KE
Docker Hub MCP

Keboola

by github.com/keboola · Devops

0.0 · 0 reviews
0 installs · 33 tools

Keboola MCP Server is an open-source bridge between your Keboola project and modern AI tools.

Ask DeepWiki

Keboola MCP Server

Connect your AI agents, MCP clients (Cursor, Claude, Windsurf, VS Code ...) and other AI assistants to Keboola. Expose data, transformations, SQL queries, and job triggers—no glue code required. Deliver the right data to agents when and where they need it.

Overview

Keboola MCP Server is an open-source bridge between your Keboola project and modern AI tools. It turns Keboola features—like storage access, SQL transformations, and job triggers—into callable tools for Claude, Cursor, CrewAI, LangChain, Amazon Q, and more.

Features

With the AI Agent and MCP Server, you can:

  • Storage: Query tables directly and manage table or bucket descriptions
  • Components: Create, List and inspect extractors, writers, data apps, and transformation configurations
  • SQL: Create SQL transformations with natural language
  • Jobs: Run components and transformations, and retrieve job execution details
  • Flows: Build and manage workflow pipelines using Conditional Flows and Orchestrator Flows.
  • Data Apps: Create, deploy and manage Keboola Streamlit Data Apps displaying your queries over storage data.
  • Metadata: Search, read, and update project documentation and object metadata using natural language
  • Dev Branches: Work safely in development branches outside of production, where all operations are scoped to the selected branch.

🚀 Quick Start: Remote MCP Server (Easiest Way)

The easiest way to use Keboola MCP Server is through our Remote MCP Server. This hosted solution eliminates the need for local setup, configuration, or installation.

What is the Remote MCP Server?

Our remote server is hosted on every multi-tenant Keboola stack and supports OAuth authentication. You can connect to it from any AI assistant that supports remote Streamable HTTP connection and OAuth authentication.

How to Connect

  1. Get your remote server URL: Navigate to your Keboola Project Settings → MCP Server tab
  2. Copy the server URL: It will look like https://mcp.<YOUR_REGION>.keboola.com/mcp
  3. Configure your AI assistant: Paste the URL into your AI assistant's MCP settings
  4. Authenticate: You'll be prompted to authenticate with your Keboola account and select your project

Supported Clients

  • Cursor: Use the "Install In Cursor" button in your project's MCP Server settings or click this button Install MCP Server
  • Claude Desktop: Add the integration via Settings → Integrations
  • Claude Code: Install using claude mcp add --transport http keboola <URL> (see below for details)
  • Windsurf: Configure with the remote server URL
  • Make: Configure with the remote server URL
  • Other MCP clients: Configure with the remote server URL

Claude Code Setup

Claude Code is a command-line interface tool that allows you to interact with Claude using your terminal. You can install the Keboola MCP Server integration using a simple command.

Installation:

Run the following command in your terminal, replacing <YOUR_REGION> with your Keboola region:

claude mcp add --transport http keboola https://mcp.<YOUR_REGION>.keboola.com/mcp

Region-specific commands:

Region Installation Command
US Virginia AWS claude mcp add --transport http keboola https://mcp.keboola.com/mcp
US Virginia GCP claude mcp add --transport http keboola https://mcp.us-east4.gcp.keboola.com/mcp
EU Frankfurt AWS claude mcp add --transport http keboola https://mcp.eu-central-1.keboola.com/mcp
EU Ireland Azure claude mcp add --transport http keboola https://mcp.north-europe.azure.keboola.com/mcp
EU Frankfurt GCP claude mcp add --transport http keboola https://mcp.europe-west3.gcp.keboola.com/mcp

Usage:

Once installed, you can use the Keboola MCP Server in Claude Code by typing /mcp in your conversation and selecting the Keboola tools you want to use.

Authentication:

When you first use the Keboola MCP Server in Claude Code, a browser window will open prompting you to: 1. Log in with your Keboola account 2. Select the project you want to connect to 3. Authorize the connection

After authentication, you can start using Keboola tools directly from Claude Code.

For detailed setup instructions and region-specific URLs, see our Remote Server Setup documentation.

Using Development Branches

You can work safely in Keboola development branches without affecting your production data. The remotely hosted MCP Servers respect the KBC_BRANCH_ID parameter and will scope all operations to the specified branch. You can find the development branch ID in the URL when navigating to the development branch in the UI, for example: https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard. The branch ID must be included in each request using the header X-Branch-Id: <branchId>, otherwise the MCP Server uses production branch as default. This should be managed by the AI client or the environment handling the server connection.

Tool Authorization and Access Control

When using HTTP-based transports (Streamable HTTP), you can control which tools are available to clients using HTTP headers. This is useful for restricting AI agent capabilities or enforcing compliance policies.

Authorization Headers

Header Description Example
X-Allowed-Tools Comma-separated list of allowed tools get_configs,get_buckets,query_data
X-Disallowed-Tools Comma-separated list of tools to exclude create_config,run_job
X-Read-Only-Mode Restrict to read-only tools only true, 1, or yes

Filter Behavior

Filters apply in order: allowed → read-only intersection → disallowed exclusion. Empty headers = no restriction.

Read-Only Tools

Read-only tools are those annotated with readOnlyHint=True. These tools only retrieve information without making any changes to your Keboola project. For the current list of read-only tools, see the TOOLS.md file which is an auto-generated snapshot of the actual tool set.

Example: Read-Only Access

X-Read-Only-Mode: true

For detailed documentation, see developers.keboola.com/integrate/mcp/#tool-authorization-and-access-control.


Local MCP Server Setup (Custom or Dev Way)

Run the MCP server on your own machine for full control and easy development. Choose this when you want to customize tools, debug locally, or iterate quickly. You’ll clone the repo, set Keboola credentials via environment variables or headers depending on the server transport, install dependencies, and start the server. This approach offers maximum flexibility (custom tools, local logging, offline iteration) but requires manual setup and you manage updates and secrets yourself.

The server supports multiple transport options, which can be selected by providing the --transport <transport> argument when starting the server: - stdio - Default when --transport is not specified. Standard input/output, typically used for local deployment with a single client. - streamable-http - Runs the server remotely over HTTP with a bidirectional streaming channel, allowing the client and server to continuously exchange messages. Connect via /mcp (e.g., http://localhost:8000/mcp). - sse - Deprecated (will be removed on 2026-Mar-31), use streamable-http instead. Runs the server remotely using Server-Sent Events (SSE) for one-way event streaming from server to client. Connect via /sse (e.g., http://localhost:8000/sse). - http-compat - A custom transport supporting both SSE and streamable-http. It is currently used on Keboola remote servers but will be replaced by streamable-http only when SSE is removed.

For client–server communication, Keboola credentials must be provided to enable working with your project in your Keboola Region. The following are required: KBC_STORAGE_TOKEN, KBC_STORAGE_API_URL, KBC_WORKSPACE_SCHEMA and optionally KBC_BRANCH_ID. You can provide these in two ways: - For personal use (mainly with stdio transport): set the environment variables before starting the server. All requests will reuse these predefined credentials. - For multi-user use: include the variables in the request headers so that each request uses the credentials provided with it.

KBC_STORAGE_TOKEN

This is your authentication token for Keboola:

For instructions on how to create and manage Storage API tokens, refer to the official Keboola documentation.

Note: If you want the MCP server to have limited access, use custom storage token, if you want the MCP to access everything in your project, use the master token.

KBC_WORKSPACE_SCHEMA

This identifies your workspace in Keboola and is used for SQL queries. However, this is only required if you're using a custom storage token instead of the Master Token:

Note: When creating a workspace manually, check Grant read-only access to all Project data option

Note: KBC_WORKSPACE_SCHEMA is called Dataset Name in BigQuery workspaces, you simply click connect and copy the Dataset Name

KBC_STORAGE_API_URL (Keboola Region)

Your Keboola Region API URL depends on your deployment region. You can determine your region by looking at the URL in your browser when logged into your Keboola project:

Region API URL
AWS North America https://connection.keboola.com
AWS Europe https://connection.eu-central-1.keboola.com
Google Cloud EU https://connection.europe-west3.gcp.keboola.com
Google Cloud US https://connection.us-east4.gcp.keboola.com
Azure EU https://connection.north-europe.azure.keboola.com

KBC_BRANCH_ID (Optional)

To operate on a specific Keboola development branch, set the branch ID using the KBC_BRANCH_ID parameter. The MCP server scopes its functionality to the specified branch, ensuring all changes remain isolated and do not impact the production branch.

  • If not provided, the server uses the production branch by default.
  • For development work, set KBC_BRANCH_ID to the numeric ID of your branch (e.g., 123456). You can find the development branch ID in the URL when navigating to the development branch in the UI, for example: https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard.
  • On remote transports, you can override per-request with the HTTP header X-Branch-Id: <branchId> or KBC_BRANCH_ID: <branchId>.

Installation

Make sure you have:

  • [ ] Python 3.10+ installed
  • [ ] Access to a Keboola project with admin rights
  • [ ] Your preferred MCP client (Claude, Cursor, etc.)

Note: Make sure you have uv installed. The MCP client will use it to automatically download and run the Keboola MCP Server. Installing uv:

macOS/Linux:

#if homebrew is not installed on your machine use:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install using Homebrew
brew install uv

Windows:

# Using the installer script
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or using pip
pip install uv

# Or using winget
winget install --id=astral-sh.uv -e

For more installation options, see the official uv documentation.

Running Keboola MCP Server

There are four ways to use the Keboola MCP Server, depending on your needs:

Option A: Integrated Mode (Recommended)

In this mode, Claude or Cursor automatically starts the MCP server for you. You do not need to run any commands in your terminal.

  1. Configure your MCP client (Claude/Cursor) with the appropriate settings
  2. The client will automatically launch the MCP server when needed

Claude Desktop Configuration

  1. Go to Claude (top left corner of your screen) -> Settings → Developer → Edit Config (if you don't see the claude_desktop_config.json, create it)
  2. Add the following configuration:
  3. Restart Claude desktop for changes to take effect
{
  "mcpServers": {
    "keboola": {
      "command": "uvx",
      "args": ["keboola_mcp_server --transport <transport>"],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_STORAGE_TOKEN": "your_keboola_storage_token",
        "KBC_WORKSPACE_SCHEMA": "your_workspace_schema",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Cursor Configuration

  1. Go to Settings → MCP
  2. Click "+ Add new global MCP Server"
  3. Configure with these settings:
{
  "mcpServers": {
    "keboola": {
      "command": "uvx",
      "args": ["keboola_mcp_server --transport <transport>"],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_STORAGE_TOKEN": "your_keboola_storage_token",
        "KBC_WORKSPACE_SCHEMA": "your_workspace_schema",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

Note: Use short, descriptive names for MCP servers. Since the full tool name includes the server name and must stay under ~60 characters, longer names may be filtered out in Cursor and will not be displayed to the Agent.

Cursor Configuration for Windows WSL

When running the MCP server from Windows Subsystem for Linux with Cursor AI, use this configuration:

{
  "mcpServers": {
    "keboola":{
      "command": "wsl.exe",
      "args": [
          "bash",
          "-c '",
          "export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com &&",
          "export KBC_STORAGE_TOKEN=your_keboola_storage_token &&",
          "export KBC_WORKSPACE_SCHEMA=your_workspace_schema &&",
          "export KBC_BRANCH_ID=your_branch_id_optional &&",
          "/snap/bin/uvx keboola_mcp_server --transport <transport>",
          "'"
      ]
    }
  }
}

Option B: Local Development Mode

For developers working on the MCP server code itself:

  1. Clone the repository and set up a local environment
  2. Configure Claude/Cursor to use your local Python path:
{
  "mcpServers": {
    "keboola": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": [
        "-m",
        "keboola_mcp_server --transport <transport>"
      ],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_STORAGE_TOKEN": "your_keboola_storage_token",
        "KBC_WORKSPACE_SCHEMA": "your_workspace_schema",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

Option C: Manual CLI Mode (For Testing Only)

You can run the server manually in a terminal for testing or debugging:

# Set environment variables
export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com
export KBC_STORAGE_TOKEN=your_keboola_storage_token
export KBC_WORKSPACE_SCHEMA=your_workspace_schema
export KBC_BRANCH_ID=your_branch_id_optional

uvx keboola_mcp_server --transport streamable-http

Note: This mode is primarily for debugging or testing. For normal use with Claude or Cursor, you do not need to manually run the server.

Note: The server will use the Streamable HTTP transport and listen on localhost:8000 for incoming connections at /mcp. You can use --port and --host parameters to make it listen elsewhere.

Option D: Using Docker

docker pull keboola/mcp-server:latest

docker run \
  --name keboola_mcp_server \
  --rm \
  -it \
  -p 127.0.0.1:8000:8000 \
  -e KBC_STORAGE_API_URL="https://connection.YOUR_REGION.keboola.com" \
  -e KBC_STORAGE_TOKEN="YOUR_KEBOOLA_STORAGE_TOKEN" \
  -e KBC_WORKSPACE_SCHEMA="YOUR_WORKSPACE_SCHEMA" \
  -e KBC_BRANCH_ID="YOUR_BRANCH_ID_OPTIONAL" \
  keboola/mcp-server:latest \
  --transport streamable-http \
  --host 0.0.0.0

Note: The server will use the Streamable HTTP transport and listen on localhost:8000 for incoming connections at /mcp. You can change -p to map the container's port somewhere else.

Do I Need to Start the Server Myself?

Scenario Need to Run Manually? Use This Setup
Using Claude/Cursor No Configure MCP in app settings
Developing MCP locally No (Claude starts it) Point config to python path
Testing CLI manually Yes Use terminal to run
Using Docker Yes Run docker container

Using MCP Server

Once your MCP client (Claude/Cursor) is configured and running, you can start querying your Keboola data:

Verify Your Setup

You can start with a simple query to confirm everything is working:

What buckets and tables are in my Keboola project?

Examples of What You Can Do

Data Exploration:

  • "What tables contain customer information?"
  • "Run a query to find the top 10 customers by revenue"

Data Analysis:

  • "Analyze my sales data by region for the last quarter"
  • "Find correlations between customer age and purchase frequency"

Data Pipelines:

  • "Create a SQL transformation that joins customer and order tables"
  • "Start the data extraction job for my Salesforce component"

Compatibility

MCP Client Support

MCP Client Support Status Connection Method
Claude (Desktop & Web) ✅ supported stdio
Cursor ✅ supported stdio
Windsurf, Zed, Replit ✅ Supported stdio
Codeium, Sourcegraph ✅ Supported HTTP+SSE
Custom MCP Clients ✅ Supported HTTP+SSE or stdio

Supported Tools

Note: Your AI agents will automatically adjust to new tools.

For a complete list of available tools with detailed descriptions, parameters, and usage examples, see TOOLS.md.

Troubleshooting

Common Issues

Issue Solution
Authentication Errors Verify KBC_STORAGE_TOKEN is valid
Workspace Issues Confirm KBC_WORKSPACE_SCHEMA is correct
Connection Timeout Check network connectivity

Development

Installation

Basic setup:

uv sync --extra dev

With the basic setup, you can use uv run tox to run tests and check code style.

Recommended setup:

uv sync --extra dev --extra tests --extra integtests --extra codestyle

With the recommended setup, packages for testing and code style checking will be installed which allows IDEs like VsCode or Cursor to check the code or run tests during development.

Integration tests

To run integration tests locally, use uv run tox -e integtests. NOTE: You will need to set the following environment variables:

  • INTEGTEST_STORAGE_API_URL
  • INTEGTEST_STORAGE_TOKEN
  • INTEGTEST_WORKSPACE_SCHEMA

In order to get these values, you need a dedicated Keboola project for integration tests.

Updating uv.lock

Update the uv.lock file if you have added or removed dependencies. Also consider updating the lock with newer dependency versions when creating a release (uv lock --upgrade).

Updating Tool Documentation

When you make changes to any tool descriptions (docstrings in tool functions), you must regenerate the TOOLS.md documentation file to reflect these changes:

uv run python -m src.keboola_mcp_server.generate_tool_docs

Support and Feedback

⭐ The primary way to get help, report bugs, or request features is by opening an issue on GitHub. ⭐

The development team actively monitors issues and will respond as quickly as possible. For general information about Keboola, please use the resources below.

Resources

Connect

add_config_row 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 row for component X with these settings` - set the component_id, configuration_id and configuration parameters accordingly - returns the created component configuration if successful.
create_config Creates a root 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_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` and `tasks` parameters must conform to the Keboola Flow JSON schema. - Each task and phase must include at least: `id` and `name`. - 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
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.
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: - By default, SQL transformation must create at least one table to produce a result; omit only if the user explicitly indicates that no table creation is needed. - 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 within a code block 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 create a new transformation out of this sql query?` - set the sql_code_blocks 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_code_blocks to the query based on the [USER INTENT], and set other parameters accordingly. - returns the created SQL transformation configuration if successful.
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. 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.
get_bucket Gets detailed information about a specific bucket.
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
get_config 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
get_config_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
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. EXAMPLES: - If job_id = "123", then the details of the job with id "123" will 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.
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: - 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'
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. 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.
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. 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'
query_data 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.
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. Results are ordered by relevance, then creation time. Considerations: - The search is purely name-based, and an item is returned when its name or any word in the name starts with any of the "name_prefixes" parameter.
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. 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_config_row 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.
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` and `tasks` parameters must conform to the Keboola Flow JSON schema. - Each task and phase must include at least: `id` and `name`. - 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.
update_sql_transformation 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 statements is preferred 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.
update_table_description Updates the description for a given Keboola table.
🥉
Security Tier
Bronze
70
Score
out of 100
Scanned by
orcorus-marketplace-automation
Mar 13, 2026

AI review failed after 1 turns: Error code: 401 - {'error': {'code': '', 'message': '[sk-hPL***S1Z] token quota exhausted !token.UnlimitedQuota && token.RemainQuota = -499 (request id: 20260313093759644026741QOlF3jJ3)', 'type': 'comet_api_error'}}

0.0
0 reviews
5
0%
4
0%
3
0%
2
0%
1
0%

Sign in to leave a review

No reviews yet — be the first!

Connect →
0.0
★ Rating
33
Tools
0
Installs

Configuration

KBC_STORAGE_TOKEN required 🔒 password
KBC_STORAGE_TOKEN

Configure the connection to your Keboola project

KBC_WORKSPACE_SCHEMA string
KBC_WORKSPACE_SCHEMA

your_workspace_schema

Docker Image

Docker Hub
mcp/keboola-mcp

Published by github.com/keboola