Integration

Keboola Storage integration

Keboola is a data operations platform; its Storage API manages the data and the component configurations of one project. List, create, rename and delete buckets and tables, preview up to 1000 rows, export a table to File Storage, import a stored file into a table, delete rows by filter, add or drop columns, set primary keys, take snapshots, read and set metadata, manage component configurations (extractors, writers, transformations, flows) with their rows and versions, and read events, files and storage jobs or search storage. Long operations answer with a storage job: follow it with get_storage_job until its status is success or error. Left out: running components and flows (the separate Job Queue API), development branch creation and merge requests, workspaces (they carry database passwords), tokens, bucket sharing, listings and registration, file upload preparation (it hands out cloud upload credentials) and trigger creation. The connection asks for the domain of your Keboola stack, the part after connection. in the address you sign in at: keboola.com (AWS US Virginia), us-east4.gcp.keboola.com (GCP US Virginia), eu-central-1.keboola.com (AWS EU Frankfurt), north-europe.azure.keboola.com (Azure EU Ireland) or europe-west3.gcp.keboola.com (GCP EU Frankfurt); for a single-tenant stack, the part after connection. in its own address. It also asks for a Storage API token from Project Settings, API Tokens, sent in the X-StorageApi-Token header.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Keboola Storage.Built from the 67 Keboola Storage tools below, on the connection you add once.

What you can do with Keboola Storage

Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.

Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.

Metadata, 6 operations

  • delete_bucket_metadataDelete bucket metadataDELETEDeletes one metadata item from a bucket, identified by its ID from list_bucket_metadata.
  • delete_table_metadataDelete table metadataDELETEDeletes one metadata item from a table, identified by its ID from list_table_metadata.
  • list_bucket_metadataList bucket metadataGETLists the metadata of a bucket: timestamped key and value pairs grouped by provider.
  • list_table_metadataList table metadataGETLists the metadata of a table: timestamped key and value pairs grouped by provider.
  • set_bucket_metadataSet bucket metadataPOSTSets several metadata keys on a bucket in one call (an existing key of the same provider is overwritten) and returns all of the bucket's metadata.
  • set_table_metadataSet table metadataPOSTSets metadata keys on a table and on its columns in one call (an existing key of the same provider is overwritten) and returns the table and column metadata.

Row, 6 operations

  • create_configuration_rowCreate configuration rowPOSTAdds a row to a configuration from its configuration data and returns it.
  • delete_configuration_rowDelete configuration rowDELETEDeletes a configuration row for good; it cannot be restored.
  • delete_table_rowsDelete table rowsDELETEDeletes the rows of a table that match filters (whereFilters, or an import time window); deleting all rows needs allowTruncate=true. Answers with a storage job; follow it with get_storage_job.
  • get_configuration_rowGet configuration rowGETReturns one row of a configuration with its configuration data and state.
  • list_configuration_rowsList configuration rowsGETLists the rows of a configuration (for example one row per extracted table).
  • update_configuration_rowUpdate configuration rowPUTUpdates a configuration row's name, description, configuration data, state or disabled flag; rows are versioned on their own.

Table, 6 operations

  • delete_tableDelete tableDELETEDeletes a table; force=true also drops its aliases.
  • get_tableGet tableGETReturns one table: columns, primary key, row count, size, last import and change dates, metadata and, for typed tables, the column definitions.
  • list_bucket_tablesList bucket tablesGETLists the tables of one bucket with their attributes and metadata; include can add columns and column metadata.
  • list_tablesList tablesGETLists every table the token can read with its bucket, primary key, row count, size and last import and change dates.
  • search_tablesSearch tablesGETFinds the tables whose metadata matches a key, a value or a provider; give at least one of the three.
  • update_tableUpdate tablePUTRenames a table by setting a new display name (unique within its bucket).

Bucket, 5 operations

  • create_bucketCreate bucketPOSTCreates a bucket in the in or out stage, or links a bucket another project shared (sourceProjectId and sourceBucketId), and returns it. Bucket IDs read like in.c-main.
  • delete_bucketDelete bucketDELETEDeletes a bucket (or unlinks a linked one). Only an empty bucket can be deleted unless force=true, which also drops its tables and aliases.
  • get_bucketGet bucketGETReturns one bucket with its tables, metadata and the buckets linked to it.
  • list_bucketsList bucketsGETLists every bucket of the project (the containers of tables) with its stage (in or out), display name, backend, size and row count.
  • update_bucketUpdate bucketPUTChanges a bucket's display name or color.

Config, 5 operations

  • create_configurationCreate configurationPOSTCreates a configuration of a component in a branch from a name and configuration data (at most 4 MB), and returns it.
  • delete_configurationDelete configurationDELETEMarks a configuration as deleted; it stays listable with isDeleted=true and restore_configuration brings it back.
  • get_configurationGet configurationGETReturns one configuration of a component: its configuration data, state, rows, version and change description.
  • list_configurationsList configurationsGETLists the configurations of one component in a branch, with their rows; isDeleted=true lists the deleted ones instead.
  • update_configurationUpdate configurationPUTUpdates a configuration's name, description, configuration data, state, rows order, folder or disabled flag; each change makes a new version.

Event, 5 operations

  • create_eventCreate eventPOSTRecords an external event in the project (at most 200 KB), for example a message from your own process attached to a component and run.
  • get_eventGet eventGETReturns one event with its message, component, object and context.
  • list_bucket_eventsList bucket eventsGETLists the events (imports, exports, changes) of one bucket, newest first by default.
  • list_eventsList eventsGETLists the project's events (almost every API call and job creates one), newest first, with filters on component, configuration, run or a query string.
  • list_table_eventsList table eventsGETLists the events (imports, exports, changes) of one table, newest first by default.

Snapshot, 4 operations

  • create_table_snapshotCreate table snapshotPOSTSaves a snapshot of a table's current data and properties; create_table can later rebuild a table from it. Answers with a storage job; follow it with get_storage_job.
  • delete_snapshotDelete snapshotDELETEDeletes a table snapshot; the table itself is not changed. Answers with a storage job; follow it with get_storage_job.
  • get_snapshotGet snapshotGETReturns one table snapshot with its table, description and creation time.
  • list_table_snapshotsList table snapshotsGETLists the snapshots of a table (saved copies of its data and properties).

File, 3 operations

  • delete_fileDelete fileDELETEDeletes a file from File Storage.
  • get_fileGet fileGETReturns one file of File Storage with its name, size, tags and a download link that expires after one hour.
  • list_filesList filesGETLists the files in File Storage the token can read (exports, uploads) with name, size, tags and a download link, optionally filtered by tags or a query.

Trigger, 3 operations

  • delete_triggerDelete triggerDELETEDeletes a trigger; the token it created for itself is revoked unless another trigger still runs with it.
  • get_triggerGet triggerGETReturns one trigger with its watched tables, the configuration it runs and its cool-down period.
  • list_triggersList triggersGETLists the triggers of the project: which tables they watch, which component configuration (usually a flow) they run and their cool-down period.

Column, 2 operations

  • add_table_columnAdd table columnPOSTAdds a column to a table; typed tables also need its data type (definition or basetype). Answers with a storage job; follow it with get_storage_job.
  • delete_table_columnDelete table columnDELETEDeletes a column from a table; force=true also removes it from the table's aliases. Answers with a storage job; follow it with get_storage_job.

Component, 2 operations

  • get_componentGet componentGETReturns the definition of a component available in Keboola: name, type, description, flags and configuration schema.
  • list_componentsList componentsGETLists the components used in the project (extractors, writers, transformations, applications) with their configurations.

Dev branch, 2 operations

  • get_branchGet branchGETReturns one development branch with its name, description and creator.
  • list_branchesList branchesGETLists the development branches of the project, the default (production) branch included.

Job, 2 operations

  • get_storage_jobGet storage jobGETReturns one storage job: its status (waiting, processing, success or error), the operation, the results once it succeeded, and the error when it failed.
  • list_storage_jobsList storage jobsGETLists the storage jobs (imports, exports, snapshots, structure changes) with their status, newest first, optionally by status or time window.

Primary key, 2 operations

  • create_primary_keyCreate primary keyPOSTSets the primary key of a table (one or more columns) so later imports can update rows instead of only adding them. Answers with a storage job; follow it with get_storage_job.
  • remove_primary_keyRemove primary keyDELETERemoves the primary key of a table. Answers with a storage job; follow it with get_storage_job.

Tag, 2 operations

  • add_file_tagAdd file tagPOSTAdds a tag to a file in File Storage.
  • delete_file_tagDelete file tagDELETERemoves one tag from a file in File Storage.

Version, 2 operations

  • get_configuration_versionGet configuration versionGETReturns one version of a configuration: its name, description, configuration data, rows order and rows as of that version.
  • list_configuration_versionsList configuration versionsGETLists the versions of a configuration with who changed it, when, and the change description.

Content, 1 operation

  • get_file_contentGet file contentGETReturns the content of a file in File Storage, for non-sliced files up to 10 MB, stored as a file.

Create, 1 operation

  • copy_configurationCopy configurationPOSTCreates a new configuration from one version of an existing configuration and returns its ID.

Data preview, 1 operation

  • preview_table_dataPreview table dataGETReturns up to 1000 rows of a table as columns and rows, optionally only some columns, rows changed in a time window, or a full-text match. For a full download use export_table.

Export async, 1 operation

  • export_tableExport tablePOSTExports a table, or the rows matching filters, to a file in File Storage. Answers with a storage job; follow it with get_storage_job. Its results then hold the file ID.

Global search, 1 operation

  • search_storageSearch storageGETSearches buckets, tables, columns, flows, transformations and configurations across the organization's projects by text (or a regular expression with mode=regex).

Import async, 1 operation

  • import_table_dataImport table dataPOSTLoads a CSV file already in File Storage (dataFileId) into an existing table, replacing its data or, with incremental=true, adding to it. Answers with a storage job; follow it with get_storage_job.

Restore, 1 operation

  • restore_configurationRestore configurationPOSTRestores a deleted configuration, which makes a new version of it.

Rollback, 1 operation

  • rollback_configurationRollback configurationPOSTRestores a configuration to an earlier version by creating a new version identical to it; state is kept.

Tables async, 1 operation

  • create_tableCreate tablePOSTCreates a table in a bucket from a CSV file already in File Storage (dataFileId), a table snapshot (snapshotId) or a point in time of another table (sourceTableId and timestamp).

Tables definition, 1 operation

  • create_typed_tableCreate typed tablePOSTCreates an empty table with typed columns (Snowflake and BigQuery projects) from a column list with names and data types. Answers with a storage job; follow it with get_storage_job.

Use Keboola Storage from Claude Code, Cursor or Codex

Connect Keboola Storage in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Keboola Storage operations become tools the client can call, next to every other integration you connected.

Claude Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Keboola Storage

  1. Create your workspace

    Sign up free. Nothing to install.

  2. Connect Keboola Storage once

    Add your Keboola Storage connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.

  3. Describe the job in chat

    The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.

Keboola Storage integration FAQ

What can you do with the Keboola Storage integration?

LiveContext exposes 67 operations on Keboola Storage, covering metadata, row, table and bucket.

Popular integrations

Browse the whole catalog