MCP HubMCP Hub
keboola

keboola-mcp-server

by: keboola

keboola mcp server

10created 12/01/2025
Visit
keboola

📌Overview

Purpose: The Keboola MCP Server facilitates interaction with the Keboola Connection by providing tools to access and manage data through the Keboola Storage API.

Overview: This server is designed as a Model Context Protocol (MCP) server that allows users to list, access, and manage data efficiently within the Keboola platform. It supports integration with various tools, enhancing the data manipulation capabilities in a seamless manner.

Key Features:

  • Data Management: Enables comprehensive listing and access to buckets, tables, and their data, allowing users to efficiently manage and manipulate stored data.

  • Data Exporting: Provides functionality to export table data to CSV format, facilitating easy data sharing and reporting.

  • Configuration Tools: Offers tools for retrieving bucket and table information, and allows for listing components and configurations within the Keboola environment, simplifying the user experience.


Keboola MCP Server

A Model Context Protocol (MCP) server for interacting with Keboola Connection. This server provides tools for listing and accessing data from Keboola Storage API.

Requirements

  • Python 3.10 or newer
  • Keboola Storage API token
  • Snowflake or BigQuery Read Only Workspace

Installation

Installing via Smithery

To install Keboola Explorer for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install keboola-mcp-server --client claude

Manual Installation

First, clone the repository and create a virtual environment:

git clone https://github.com/keboola/keboola-mcp-server.git
cd keboola-mcp-server
python3 -m venv .venv
source .venv/bin/activate
pip3 install -U pip 

Install the package in development mode:

pip3 install -e .

For development dependencies:

pip3 install -e ".[dev]"

Claude Desktop Setup

To use this server with Claude Desktop, follow these steps:

  1. Create or edit the Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the following configuration (adjust paths according to your setup):

{
  "mcpServers": {
    "keboola": {
      "command": "/path/to/keboola-mcp-server/.venv/bin/python",
      "args": [
        "-m",
        "keboola_mcp_server",
        "--api-url",
        "https://connection.YOUR_REGION.keboola.com"
      ],
      "env": {
        "KBC_STORAGE_TOKEN": "your-keboola-storage-token",
        "KBC_WORKSPACE_SCHEMA": "your-workspace-schema"
      }
    }
  }
}

Replace:

  • /path/to/keboola-mcp-server with your actual path to the cloned repository
  • YOUR_REGION with your Keboola region (e.g., north-europe.azure, etc.). Remove it if your region is just connection
  • your-keboola-storage-token with your Keboola Storage API token
  • your-workspace-schema with your Snowflake schema or BigQuery dataset

If using a specific Python version (e.g. 3.11), update the command accordingly.

The workspace can be created in your Keboola project where you obtained your Storage Token. It provides necessary connection parameters including schema or dataset name.

  1. After updating the configuration:
    • Completely quit Claude Desktop (don't just close the window)
    • Restart Claude Desktop
    • Look for the hammer icon in the bottom right corner indicating the server is connected

Troubleshooting

If you encounter connection issues:

  1. Check the logs in Claude Desktop for errors
  2. Verify your Keboola Storage API token is correct
  3. Ensure all configuration paths are absolute paths
  4. Confirm the virtual environment is activated and all dependencies are installed

Cursor AI Setup

You can configure the transport method as Server-Sent Events (SSE) or Standard I/O (stdio).

  1. Create or edit the Cursor AI configuration file:

    • Location: ~/.cursor/mcp.json
  2. Add one of the following configurations:

Option 1: Server-Sent Events (SSE)

{
  "mcpServers": {
    "keboola": {
      "url": "http://localhost:8000/sse?storage_token=YOUR-KEBOOLA-STORAGE-TOKEN&workspace_schema=YOUR-WORKSPACE-SCHEMA"
    }
  }
}

Option 2a: Standard I/O (stdio)

{
  "mcpServers": {
    "keboola": {
      "command": "/path/to/keboola-mcp-server/.venv/bin/python",
      "args": [
        "-m",
        "keboola_mcp_server",
        "--transport",
        "stdio",
        "--api-url",
        "https://connection.YOUR_REGION.keboola.com"
      ],
      "env": {
        "KBC_STORAGE_TOKEN": "your-keboola-storage-token", 
        "KBC_WORKSPACE_SCHEMA": "your-workspace-schema"         
      }
    }
  }
}

Option 2b: WSL Standard I/O (wsl stdio)

For running the MCP server from Windows Subsystem for Linux with Cursor AI:

{
  "mcpServers": {
    "keboola": {
      "command": "wsl.exe",
      "args": [
        "bash",
        "-c",
        "'source /wsl_path/to/keboola-mcp-server/.env",
        "&&",
        "/wsl_path/to/keboola-mcp-server/.venv/bin/python -m keboola_mcp_server.cli --transport stdio'"
      ]
    }
  }
}

Where /wsl_path/to/keboola-mcp-server/.env contains:

export KBC_STORAGE_TOKEN="your-keboola-storage-token"
export KBC_WORKSPACE_SCHEMA="your-workspace-schema"

Replace paths and tokens as in previous steps.

After updating the configuration:

  1. Restart Cursor AI

  2. If using the sse transport, start your MCP server with:

    /path/to/keboola-mcp-server/.venv/bin/python -m keboola_mcp_server --transport sse --api-url https://connection.YOUR_REGION.keboola.com
    
  3. Cursor AI should automatically detect and enable your MCP server.

BigQuery Support

If your Keboola project uses BigQuery backend, set the GOOGLE_APPLICATION_CREDENTIALS environment variable in addition to KBC_STORAGE_TOKEN and KBC_WORKSPACE_SCHEMA:

  1. Go to your Keboola BigQuery workspace and download the JSON credentials file.
  2. Set the path of this file to the GOOGLE_APPLICATION_CREDENTIALS environment variable.

This grants your MCP server permissions to access your BigQuery workspace.

Available Tools

The server provides tools to:

  • List buckets and tables
  • Get bucket and table information
  • Preview table data
  • Export table data to CSV
  • List components and configurations

Development

Run tests:

pytest

Format code:

black .
isort .

Type checking:

mypy .

License

MIT License - see LICENSE file for details.