Skip to content
AI Features

MCP tools and access control

What an AI assistant can do through the Keboola MCP Server — the tool catalogue by category — and how to restrict it with the X-Allowed-Tools, X-Disallowed-Tools, and X-Read-Only-Mode headers, including the read-only tool set.

What your AI client can call through the Keboola MCP Server, and how to narrow that down. You don’t need to remember tool names — the client picks them; the names below matter when you’re restricting access. To set a client up in the first place, see Connect an AI client.

CategoryWhat the assistant can do
Components & TransformationsCreate, edit, and launch them with natural language.
StorageBrowse, edit, and document buckets, tables, and columns.
SQLRun and manage SQL queries.
Semantic layerExplore the project’s semantic models and validate queries against them.
JobsStart, monitor, and debug execution flows.
FlowsCreate and manage flows (including conditional flows) that orchestrate components.
Data AppsCreate, deploy, and manage Streamlit and Python/JS data apps.
Search & DiscoveryFind components, configurations, and objects across the project.
Project & OAuthRead project info and set up OAuth authorizations for components.
DocumentationSearch the official Keboola docs from inside the AI chat.

For the exact tool names and their annotations, see TOOLS.md in the server repository.

On the remote server you can limit which tools an AI client is offered. This is useful for:

  • AI agent restrictions — capping what an agent (Devin, Cursor, your own) may do in the project.
  • Compliance and security — enforcing data-governance policy by blocking write operations.
  • Customer-specific access — tailored access profiles per use case.

Over the Streamable HTTP transport, the client controls this with HTTP headers.

HeaderDescriptionExample value
X-Allowed-ToolsComma-separated list of tool names to allow. Only these tools will be available.get_configs,get_buckets,query_data
X-Disallowed-ToolsComma-separated list of tool names to exclude. These tools will be removed from the available set.create_config,run_job
X-Read-Only-ModeWhen set to true, 1, or yes, restricts access to read-only tools only.true

The headers are set by the client (your AI agent integration or custom MCP client) when it calls the server — check your client’s documentation for how to add custom HTTP headers.

When several headers are present, filters apply in this order:

  1. Allowed-tools filter — if X-Allowed-Tools is specified, only those tools are initially available.
  2. Read-only intersection — if X-Read-Only-Mode is enabled, the available tools are intersected with the read-only set.
  3. Disallowed exclusion — tools listed in X-Disallowed-Tools are removed from the final set.

Empty headers are treated as no restriction/exclusion (backward-compatible behavior).

These tools are classified as read-only — they don’t modify data. The live set may grow over time; TOOLS.md carries the current annotations.

CategoryTools
Componentsget_configs, get_components, get_config_examples, run_sync_action
Flowsget_flows, get_flow_examples, get_flow_schema
Storageget_buckets, get_tables
SQLquery_data
Semanticget_semantic_context, get_semantic_schema, search_semantic_context, validate_semantic_query
Data Appsget_data_apps
Jobsget_jobs
Searchsearch, find_component_id
Projectget_project_info
Documentationdocs_query

AI agent restrictions — let an agent query and explore data, but not create or modify configurations:

X-Read-Only-Mode: true

Compliance and security — a customer-specific profile allowing only specific tools and explicitly blocking others:

X-Allowed-Tools: get_buckets,get_tables,query_data,search
X-Disallowed-Tools: run_job

Combined restrictions — all three headers together, for fine-grained control:

X-Allowed-Tools: get_configs,get_buckets,get_tables,query_data,create_config
X-Read-Only-Mode: true
X-Disallowed-Tools: query_data

This leaves only get_configs, get_buckets, and get_tables available — the intersection of allowed and read-only, minus the disallowed.

Next: Run the server yourself →

Ask Kai

Hi, I'm Kai — Keboola's AI assistant for the docs. Ask me anything and I'll answer from the documentation and cite the pages I use.

Kai is an AI and can make mistakes. Check the sources it links.