Keboola MCP server
{
"mcpServers": {
"keboola": {
"command": "uvx",
"args": [
"keboola-mcp-server"
],
"env": {
"KBC_BRANCH_ID": "<kbc_branch_id>",
"PROJECT_ID": "<project_id>",
"BRANCH_ID": "<branch_id>",
"KBC_STORAGE_API_URL": "https://...",
"KBC_KUBERNETES_TOKEN_PATH": "/path/to/directory",
"KBC_WORKSPACE_ID": "<kbc_workspace_id>"
}
}
}
}{
"mcpServers": {
"keboola": {
"command": "uvx",
"args": [
"keboola-mcp-server"
],
"env": {
"KBC_BRANCH_ID": "<kbc_branch_id>",
"PROJECT_ID": "<project_id>",
"BRANCH_ID": "<branch_id>",
"KBC_STORAGE_API_URL": "https://...",
"KBC_KUBERNETES_TOKEN_PATH": "/path/to/directory",
"KBC_WORKSPACE_ID": "<kbc_workspace_id>"
}
}
}
}{
"mcpServers": {
"keboola": {
"command": "uvx",
"args": [
"keboola-mcp-server"
],
"env": {
"KBC_BRANCH_ID": "<kbc_branch_id>",
"PROJECT_ID": "<project_id>",
"BRANCH_ID": "<branch_id>",
"KBC_STORAGE_API_URL": "https://...",
"KBC_KUBERNETES_TOKEN_PATH": "/path/to/directory",
"KBC_WORKSPACE_ID": "<kbc_workspace_id>"
}
}
}
}{
"servers": {
"keboola": {
"command": "uvx",
"args": [
"keboola-mcp-server"
],
"env": {
"KBC_BRANCH_ID": "${input:kbc_branch_id}",
"PROJECT_ID": "${input:project_id}",
"BRANCH_ID": "${input:branch_id}",
"KBC_STORAGE_API_URL": "${input:kbc_storage_api_url}",
"KBC_KUBERNETES_TOKEN_PATH": "${input:kbc_kubernetes_token_path}",
"KBC_WORKSPACE_ID": "${input:kbc_workspace_id}"
}
}
},
"inputs": [
{
"id": "kbc_branch_id",
"type": "promptString",
"description": "Kbc branch id",
"password": true
},
{
"id": "project_id",
"type": "promptString",
"description": "Project id",
"password": true
},
{
"id": "branch_id",
"type": "promptString",
"description": "Branch id",
"password": true
},
{
"id": "kbc_storage_api_url",
"type": "promptString",
"description": "Kbc storage api url",
"password": true
},
{
"id": "kbc_kubernetes_token_path",
"type": "promptString",
"description": "Kbc kubernetes token path",
"password": true
},
{
"id": "kbc_workspace_id",
"type": "promptString",
"description": "Kbc workspace id",
"password": true
}
]
}{
"mcpServers": {
"keboola": {
"command": "uvx",
"args": [
"keboola-mcp-server"
],
"env": {
"KBC_BRANCH_ID": "<kbc_branch_id>",
"PROJECT_ID": "<project_id>",
"BRANCH_ID": "<branch_id>",
"KBC_STORAGE_API_URL": "https://...",
"KBC_KUBERNETES_TOKEN_PATH": "/path/to/directory",
"KBC_WORKSPACE_ID": "<kbc_workspace_id>"
}
}
}
}file .mcp.json (in your project root)file claude_desktop_config.jsonfile ~/.cursor/mcp.jsonfile .vscode/mcp.jsonfile ~/.codeium/windsurf/mcp_config.jsoninstall uvx keboola-mcp-serverversion 1.86.0
What it does
Keboola MCP Server bridges AI assistants with Keboola data platforms. It exposes storage tables, SQL transformations, job execution, workflows, and metadata as callable tools for Claude, Cursor, Windsurf, and other MCP clients—available as a hosted remote server or local installation.
- Query Keboola storage tables and retrieve data directly from AI conversations without writing integration code.
- Create and execute SQL transformations using natural language prompts from your AI assistant.
- Trigger Keboola jobs, workflows, and data apps from AI agents and monitor their execution status.
Tools this server exposes
| Tool | Does |
|---|---|
| storage_query | Query tables from Keboola storage and manage table or bucket descriptions. |
| components_management | Create, list, and inspect extractors, writers, data apps, and transformation configurations. |
| sql_transformation | Create SQL transformations using natural language descriptions. |
| jobs_execution | Run components and transformations, and retrieve job execution details. |
| flows_management | Build and manage workflow pipelines using Conditional Flows and Orchestrator Flows. |
| data_apps | Create, deploy, and manage Keboola Streamlit Data Apps displaying queries over storage data. |
| metadata_management | Search, read, and update project documentation and object metadata using natural language. |
| dev_branches | Work in development branches with all operations scoped to the selected branch outside production. |
Before you enable it
An MCP server runs with whatever access you give it. Start with a development account rather than production, and check which tools the server exposes before you let an agent call them unattended.