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
- Keboola Storage API token
- Snowflake Read Only Workspace
Installation
Installing via Smithery
To install Keboola Explorer for Claude Desktop automatically via Smithery:
1npx -y @smithery/cli install keboola-mcp-server --client claude
Manual Installation
First, clone the repository and create a virtual environment:
1git clone https://github.com/keboola/keboola-mcp-server.git 2cd keboola-mcp-server 3python3 -m venv .venv 4source .venv/bin/activate
Install the package in development mode:
1pip3 install -e .
For development dependencies:
1pip3 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):
1{ 2 "mcpServers": { 3 "keboola": { 4 "command": "/path/to/keboola-mcp-server/.venv/bin/python", 5 "args": [ 6 "-m", 7 "keboola_mcp_server", 8 "--api-url", 9 "https://connection.YOUR_REGION.keboola.com" 10 ], 11 "env": { 12 "KBC_STORAGE_TOKEN": "your-keboola-storage-token", 13 "PYTHONPATH": "/path/to/keboola-mcp-server/src", 14 "KBC_SNOWFLAKE_ACCOUNT": "your-snowflake-account", 15 "KBC_SNOWFLAKE_USER": "your-snowflake-user", 16 "KBC_SNOWFLAKE_PASSWORD": "your-snowflake-password", 17 "KBC_SNOWFLAKE_WAREHOUSE": "your-snowflake-warehouse", 18 "KBC_SNOWFLAKE_DATABASE": "your-snowflake-database", 19 "KBC_SNOWFLAKE_SCHEMA": "your-snowflake-schema", 20 "KBC_SNOWFLAKE_ROLE": "your-snowflake-role" 21 } 22 } 23 } 24}
Replace:
/path/to/keboola-mcp-server
with your actual path to the cloned repositoryyour-keboola-storage-token
with your Keboola Storage API tokenYOUR_REGION
with your Keboola region (e.g.,north-europe.azure
, etc.). You can remove it if your region is justconnection
explicitlyyour-snowflake-account
with your Snowflake account identifieryour-snowflake-user
with your Snowflake usernameyour-snowflake-password
with your Snowflake passwordyour-snowflake-warehouse
with your Snowflake warehouse nameyour-snowflake-database
with your Snowflake database nameyour-snowflake-schema
with your Snowflake schema nameyour-snowflake-role
with your Snowflake role name
Note: If you are using a specific version of Python (e.g. 3.11 due to some package compatibility issues), you'll need to update the
command
into using that specific version, e.g./path/to/keboola-mcp-server/.venv/bin/python3.11
Note: The Snowflake credentials can be obtained by creating a Read Only Snowflake Workspace in your Keboola project (the same project where you got your Storage Token). The workspace will provide all the necessary Snowflake connection parameters.
- 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 any error messages
- Verify your Keboola Storage API token is correct
- Ensure all paths in the configuration are absolute paths
- Confirm the virtual environment is properly activated and all dependencies are installed
- Make sure the PYTHONPATH points to the
src
directory
Cursor AI Setup
To use this server with Cursor AI, you have two options for configuring the transport method: 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 (or both) based on your preferred transport method:
Option 1: Using Server-Sent Events (SSE)
1{ 2 "mcpServers": { 3 "keboola": { 4 "url": "http://localhost:8000/sse?storage_token=YOUR_STORAGE_TOKEN&snowflake_account=YOUR_ACCOUNT&snowflake_user=YOUR_USER&snowflake_password=YOUR_PASSWORD&snowflake_database=YOUR_DATABASE&snowflake_schema=YOUR_SCHEMA&snowflake_warehouse=YOUR_WAREHOUSE" 5 } 6 } 7}
Option 2: Using Standard I/O (stdio)
1{ 2 "mcpServers": { 3 "keboola": { 4 "command": "/path/to/keboola-mcp-server/venv/bin/python", 5 "args": [ 6 "-m", 7 "keboola_mcp_server", 8 "--transport", 9 "stdio", 10 "--api-url", 11 "https://connection.YOUR_REGION.keboola.com" 12 ], 13 "env": { 14 "KBC_STORAGE_TOKEN": "your-keboola-storage-token", 15 "KBC_SNOWFLAKE_ACCOUNT": "your-snowflake-account", 16 "KBC_SNOWFLAKE_USER": "your-snowflake-user", 17 "KBC_SNOWFLAKE_PASSWORD": "your-snowflake-password", 18 "KBC_SNOWFLAKE_DATABASE": "your-snowflake-database", 19 "KBC_SNOWFLAKE_SCHEMA": "your-snowflake-schema", 20 "KBC_SNOWFLAKE_WAREHOUSE": "your-snowflake-warehouse" 21 } 22 } 23 } 24}
Replace all placeholder values (your_*
) with your actual Keboola and Snowflake credentials. These can be obtained from your Keboola project's Read Only Snowflake Workspace.
Replace YOUR_REGION
with your Keboola region (e.g., north-europe.azure
, etc.). You can remove it if your region is just connection
explicitly.
After updating the configuration:
- Restart Cursor AI
- If you use the
sse
transport make sure to start your MCP server. You can do so by running this in the activated virtual environment where you built the server:/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 be automatically detect your MCP server and enable it.
Available Tools
The server provides the following tools for interacting with Keboola Connection:
- List buckets and tables
- Get bucket and table information
- Preview table data
- Export table data to CSV
- List components and configurations
Development
Run tests:
1pytest
Format code:
1black . 2isort .
Type checking:
1mypy .
License
MIT License - see LICENSE file for details.