How to Teach Your AI Agent to Build Keboola Data Apps

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.
Before you start
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:
- Command line / terminal - you'll be running install commands and connecting services
- GitHub - you have an account and can create repos and push code. JS Data Apps need a Git repository for deployment
- An AI code editor like Claude Code, Cursor, or similar - installed and working. New to Claude Code? Start with Anthropic's getting started guide
- Keboola MCP Server (Model Context Protocol) - this is how your agent connects to your Keboola project. Think of it as giving your agent access to your tables, configurations, and tools. You'll set it up in Step 2
- A Keboola project with some data in it
Step 1: Install the AI Kit
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:
1. Select skills
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.

2. Select agents
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.
3. Installation scope
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.
4. Installation method
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.
5. Confirm
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.
Step 2: Connect your Keboola project via MCP
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:
- Your Keboola project: Settings → MCP Server tab (has copy-paste commands for Claude Code, Cursor, and other editors)
- GitHub: keboola/mcp-server README

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.
Step 3: Build a Data App
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:
- Query your project to understand the table structure
- Write the Streamlit code following Keboola's Data App patterns
- Deploy it through the MCP connection in your project
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:
- Go to Data Apps → Create New Python / JS Data App
- Enter your GitHub repo URL and username
- If the repo is private, create a GitHub Personal Access Token - generate one at github.com/settings/tokens/new with
reposcope, then paste it in the token field - Click "Load branches" and select
main - Add your secrets as Environment Variables in the Keboola UI. Your agent already knows these values from when it built the app (it read them from your project via MCP) - check your Claude Code conversation for the WORKSPACE_ID, BRANCH_ID, KBC_TOKEN, and KBC_URL it used
- Deploy
What ai-kit skills contains
The dataapp-developer plugin is focused on building Data Apps for Keboola. It teaches your agent:
- How to connect to Keboola Storage - the
keboola-streamlitPython library for reading/writing data, authentication, caching - How to structure the app - code patterns, theming, deployment requirements
- How to validate - a systematic validate → build → verify workflow, so your agent checks its work before deploying
- Python/Streamlit best practices - SQL queries compatible with your workspace backend, proper type handling, session state management
For 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:
developerCode review, security analysis, workflow automationcomponent-developerBuilding custom Keboola Python componentsdataapp-developerStreamlit/Python Data Apps for Keboolakeboola-cliProject management, configuration reviewincident-commanderPost-mortem creation from Slack
Try it
- Install:
npx add-skill keboola/ai-kit - Connect: Add your Keboola MCP Server
- Build: Describe the Data App you want
That's it. Your agent now speaks Keboola.



