
You can build Data Apps inside Keboola with Kai. But what if you prefer working with Keboola via MCP, in Claude Code, Cursor, or another AI-powered editor? Want to build a JavaScript Data App that Kai doesn't support yet?
That's what the Keboola AI Kit is for. It's a set of skills you install into your agent so it knows how to work with Keboola - how to query your data, how to structure a Data App, how to deploy it.
Here's how to set it up.
A heads up: this tutorial involves working with a terminal (for example in VS Code), GitHub, and external AI code editors like Claude Code. If you're comfortable with that, keep reading. If not, you can build Data Apps directly inside Keboola with Kai, start here: Build an Interactive Dashboard in 5 Minutes with Kai.
You should be comfortable with:
The AI Kit lives on GitHub: keboola/ai-kit
In Claude Code:
npx add-skill keboola/ai-kit
You'll see a prompt asking to install the add-skill package - type y to proceed. This is a one-time setup.
After cloning, you'll go through a few quick setup prompts:
Skills are instruction files that teach your agent how to do specific things. The ai-kit repo has 13 of them covering different Keboola tasks. Pick dataapp-developer - it teaches your agent the rules for building Data Apps: how to connect to Keboola Storage, how to structure the code for deployment, how authentication works. Without it, your agent writes generic code. With it, your agent writes Keboola-ready code.

This is asking: which code editors do you want these skills installed into? Each editor stores skills in a different folder (Claude Code uses .claude/skills, Cursor uses a different path). The "Universal" group at the top installs to a shared .agents/skills folder that many editors read automatically. You can pick multiple - if you use both Claude Code and Cursor, select both.
Project saves the skills inside your current project folder (committed to git with your code). Global saves them in your home directory, available in every project you open. Pick Global if you use Keboola across multiple projects.
Symlink creates a shortcut pointing to one copy of the skill files. If the skills get updated later, every agent sees the update automatically. Copy duplicates the files into each agent's folder separately. Go with Symlink - when Keboola updates the ai-kit, you update once and it's everywhere.
You'll see an installation summary with a security risk assessment. The installer checks the skill files for anything suspicious. "Safe / 0 alerts / Low Risk" means the skills are clean. Type Yes to proceed.
That's the install done. Your agent now has the Keboola Data App knowledge loaded.
Your agent needs to talk to your Keboola project. The MCP Server handles this.
For Claude Code, type:
claude mcp add --transport http keboola https://mcp.YOUR-STACK.keboola.com/mcp
Replace YOUR-STACK with your Keboola region (e.g., europe-west3.gcp, us-east4.gcp, north-europe.azure). You'll authenticate via OAuth when prompted.
You can also find the URL in your Keboola Project Settings → MCP.
Command not working? MCP transport options evolve quickly. The latest setup instructions are always in two places:

Using Cursor, Windsurf, VS Code, or another editor? Each one connects slightly differently. Our MCP Server documentation has step-by-step setup for all supported editors, including the "Install in Cursor" one-click button.
Once connected, your agent can query your tables, read configurations, create transformations, and deploy Data Apps - all through natural language.
Now your agent knows your Keboola project data and configs (via MCP), and also knows how to build Data Apps properly (via the ai-kit skills). Now we describe what we want.
Example for a Streamlit dashboard:
Build a Keboola Data App that shows my top-selling products
from the order table. Include filters for date range and
product category. Deploy it to my project.
Your agent will:
You can create Streamlit Data App directly in Keboola UI with Kai - Build an Interactive Dashboard in 5 Minutes with Kai.
Example for a JavaScript app:
Build me a JavaScript Data App that visualizes which products
my customers buy together. Use a heatmap. Add filters for
time period and minimum purchase count. Connect it to
my Keboola project data.
The ai-kit skills teach your agent the keboola-config/ folder structure (nginx config, supervisord, setup script) that Python/JS Data Apps need. Without these skills, your agent wouldn't know this Keboola-specific requirement.
Important: Unlike Streamlit apps (where you can paste code directly into Keboola), JavaScript Data Apps require a Git repository. Your agent creates the files locally, you handle the deployment in Keboola UI.
Here's what the actual flow looks like:
Push your code to GitHub. Your agent can do this for you if you have gh CLI set up. Otherwise, create a repo manually and push. The repo can be private, Keboola will ask you to authenticate in the next step.
Create the Data App in Keboola UI:
repo scope, then paste it in the token fieldmainThe dataapp-developer plugin is focused on building Data Apps for Keboola. It teaches your agent:
keboola-streamlit Python library for reading/writing data, authentication, cachingFor JavaScript Data Apps, the skills provide the keboola-config/ folder structure and deployment patterns, but the core knowledge is Python/Streamlit-oriented. Your agent fills in the JS framework knowledge from its general training.
Other plugins in the ai-kit:
developer Code review, security analysis, workflow automationcomponent-developer Building custom Keboola Python componentsdataapp-developer Streamlit/Python Data Apps for Keboolakeboola-cli Project management, configuration reviewincident-commander Post-mortem creation from Slacknpx add-skill keboola/ai-kitThat's it. Your agent now speaks Keboola.