keboola-mcp-server
by: keboola
keboola mcp server
📌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:
-
Create or edit the Claude Desktop configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
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 repositoryYOUR_REGION
with your Keboola region (e.g.,north-europe.azure
, etc.). Remove it if your region is justconnection
your-keboola-storage-token
with your Keboola Storage API tokenyour-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.
- 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:
- Check the logs in Claude Desktop for errors
- Verify your Keboola Storage API token is correct
- Ensure all configuration paths are absolute paths
- 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).
-
Create or edit the Cursor AI configuration file:
- Location:
~/.cursor/mcp.json
- Location:
-
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:
-
Restart Cursor AI
-
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
-
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
:
- Go to your Keboola BigQuery workspace and download the JSON credentials file.
- 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.