Labsco
MCP SERVER · OFFICIAL PROJECT

Keboola

by keboola

Query Keboola storage, build SQL transformations, run jobs and flows, and manage data apps — scoped to the project you name in conversation.

Data Platform: Pipelines, Warehousing, BI & Governance
Summary
The whole Keboola project surface, with a read-only switch you can enforce from outside the model.

Two details matter when putting this in front of an agent. Project selection happens in the conversation rather than at connect time, so one connection reaches every project you can see and you say which one. And access is narrowed by HTTP header — read-only mode restricts to the tools annotated as read-only, and the allowed-tools header names an explicit list — so the limit lives in the deployment rather than in a prompt asking the model to behave.

What it is

Keboola's own MCP server, hosted on every multi-tenant Keboola stack at a per-region URL and also runnable on your own machine. It turns storage access, transformations, job triggers, flows, and project metadata into tools, and scopes every operation to the branch you select.

What you get
  • Storage: query tables directly, and manage table and bucket descriptions
  • Components: create, list, and inspect extractors, writers, data apps, and transformation configurations
  • SQL transformations authored from a described rule rather than hand-written
  • Jobs: run components and transformations, then read the execution details
  • Flows: build and manage pipelines, both Conditional Flows and Orchestrator Flows
  • Data apps: create, deploy, and manage Keboola Streamlit apps over your storage data
  • Metadata: search, read, and update project documentation and object metadata
  • Development branches — everything scopes to the branch you set, production by default
  • Tool filtering by HTTP header: X-Allowed-Tools names an explicit list, X-Disallowed-Tools excludes, and X-Read-Only-Mode restricts to the read-only tools
Requirements

A Keboola account with admin rights on the project. The hosted route installs nothing: take the URL from your project's settings, connect, and your client opens a browser for OAuth — project selection happens afterwards in the conversation. To run it locally you need Python 3.10 or higher and uv; sign in once with the login command, which stores a self-refreshing session in ~/.keboola/mcp/credentials.json, then start the server with only KBC_STORAGE_API_URL set. Where a browser cannot open — containers, CI — set KBC_STORAGE_TOKEN and KBC_PROJECT_ID instead, or send them per request as headers. Transport is stdio by default, with streamable-http available through --transport.

Setup effort

One command plus a key — uvx keboola_mcp_server --transport streamable-http, then supply credentials