com.keboola/mcp
PYPI · KEBOOLA-MCP-SERVER · 2 COMPONENTS · SCANNED SEP 21
Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ...
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security37
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Install-script risk not yet assessed.Unverified
- 2 of 52 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 0 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability73
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 26108 tokens (~593/item across 44 items; 44 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (98% of tools); any adoption earns full credit.Pass
Tool Safety88
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 2 of 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "run_sync_action" implies "execute" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Partial
- An AI judge read all 45 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the com.keboola/mcp server?
com.keboola/mcp runs locally as a PyPI package, launched with uvx keboola-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · keboola-mcp-server
claude mcp add com-keboola-mcp -- uvx keboola-mcp-server
{
"mcpServers": {
"com-keboola-mcp": {
"command": "uvx",
"args": [
"keboola-mcp-server"
]
}
}
} {
"servers": {
"com-keboola-mcp": {
"command": "uvx",
"args": [
"keboola-mcp-server"
]
}
}
} codex mcp add com-keboola-mcp -- uvx keboola-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-keboola-mcp": {
"type": "local",
"command": [
"uvx",
"keboola-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add com-keboola-mcp --command uvx --arg keboola-mcp-server
mcp_servers:
com-keboola-mcp:
command: "uvx"
args: ["keboola-mcp-server"] {
"McpServers": {
"com-keboola-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"keboola-mcp-server"
]
}
}
} assistant mcp add com-keboola-mcp -t stdio -c uvx -a keboola-mcp-server
{
"mcpServers": {
"com-keboola-mcp": {
"command": "uvx",
"args": [
"keboola-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 21 Sept 26 +10
- Malware scan: pass → unverified ▼ security
- Injection markers: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Tool coverage: unverified → 100 ▲ functional
- Schema quality: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: excellent functional
- First check of Schema quality: fail functional
- First check of Destructive annotations: 50 functional
- First check of Tool coverage: 98 functional
- First check of Tool coverage: 100 functional
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- Stability: pass → 0.90 functional
- Package version: 1.81.1 → 1.86.0 functional
- 20 Sept 26 +1
- Stability: 0.97 → pass security
- 19 Sept 26 −1
- Stability: pass → 0.97 functional
- 18 Sept 26 +1
- Stability: 0.97 → pass security
- 16 Sept 26 +1
- Package version: 1.80.1 → 1.81.1 functional
- 15 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 14 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 12 Sept 26 −3
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed pypi/keboola-mcp-server@1.86.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Dependencies 52 packages
| Packages resolved | 52 |
|---|---|
| Stale | 1 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
update_config Update Config ~1,152
Updates an existing root component configuration by modifying its parameters, storage mappings, name or description. Not for SQL transformations (`keboola.snowflake-transformation` / `keboola.google-bigquery-transformation`), data apps (`keboola.data-apps`) or flows — use the dedicated tools (see WHEN NOT TO USE). This IS the tool for updating Python (`keboola.python-transformation-v2`), R (`keboola.r-transformation-v2`) and DuckDB (`keboola.duckdb-transformation`) transformations. This tool allows PARTIAL parameter updates - you only need to provide the fields you want to change. All other fields will remain unchanged. Use this tool when modifying existing configurations; for configuration rows, use update_config_row instead. WHEN TO USE: - Modifying configuration parameters (credentials, settings, API keys, etc.) - Updating storage mappings (input/output tables or files) - Changing configuration name or description - Any combination of the above WHEN NOT TO USE: - `keboola.orchestrator` / `keboola.flow` → use `update_flow` - `keboola.data-apps` → use `modify_python_js_data_app` / `modify_streamlit_data_app` / `deploy_data_app` - `keboola.snowflake-transformation` / `keboola.google-bigquery-transformation` → use `update_sql_transformation` PREREQUISITES: - Configuration must already exist (use create_config for new configurations) - You must know both component_id and configuration_id - For parameter updates: Review the component's root_configuration_schema using get_components. - For storage updates: Ensure mappings are valid for the component type IMPORTANT CONSIDERATIONS: - Parameter updates are PARTIAL - only specify fields you want to change - parameter_updates supports granular operations: set keys, replace strings, remove keys, or append to lists - Parameters must conform to the component's root_configuration_schema - Validate schemas before calling: use get_components to retrieve root_configuration_schema - For row-based components, this updates the R…
| Name | Type | Req | Description |
|---|---|---|---|
| change_description | string | yes | A clear, human-readable summary of what changed in this update. Be specific: e.g., "Updated API key", "Added customers table to input mapping". |
| component_id | string | yes | The ID of the component the configuration belongs to. |
| configuration_id | string | yes | The ID of the configuration to update. |
| description | string | – | New detailed description for the configuration. Only provide if changing the description. Should explain the purpose, data sources, and behavior of this configuration. Leave empty to preserve the ori… |
| folder | – | – | Folder name to organize this configuration in the Keboola UI. Pass an empty string to remove an existing folder assignment. Existing folder names are returned in the response change_summary when no f… |
| name | string | – | New name for the configuration. Only provide if changing the name. Name should be short (typically under 50 characters) and descriptive. |
| parameter_updates | – | – | List of granular parameter update operations to apply. Each operation (set, str_replace, remove, list_append) modifies a specific value using JSONPath notation. Only provide if updating parameters -… |
| processors_after | – | – | The list of processors that will run after the configured component row runs. |
| processors_before | – | – | The list of processors that will run before the configured component row runs. |
| project_id | – | – | Target Keboola project id for this write. Required when the session is scoped to 2+ projects; optional (defaults to the single scoped project) otherwise. |
| runtime | – | – | Runtime settings such as "parallelism" (parallel row processing) and backend configuration. Only provide if updating runtime settings - this replaces the ENTIRE runtime configuration. Leave unfilled… |
| storage | – | – | Complete storage configuration containing input/output table and file mappings. Only provide if updating storage mappings - this replaces the ENTIRE storage configuration. When to use: - Adding/rem… |
| variables | – | – | Variable definitions for this configuration. Provide a non-empty list to create or replace all variable definitions. Provide an empty list ([]) to remove all variables. Omit (None) to leave existing… |
| Name | Type | Req | Description |
|---|---|---|---|
| change_summary | – | – | Optional summary of the change to update the agent's context. |
| component_id | string | yes | The ID of the component. |
| configuration_id | string | yes | The ID of the configuration. |
| description | string | yes | The description of the configuration. |
| links | array | yes | The links relevant to the configuration. |
| success | boolean | – | Indicates if the operation succeeded. |
| timestamp | string | yes | The timestamp of the operation. |
| version | integer | yes | The version number of the configuration. |
No examples provided.
update_config_row Update Config Row ~970
Updates an existing component configuration row by modifying its parameters, storage mappings, name, or description. This tool allows PARTIAL parameter updates - you only need to provide the fields you want to change. All other fields will remain unchanged. Configuration rows are individual items within a configuration, often representing separate data sources, tables, or endpoints that share the same component type and parent configuration settings. WHEN TO USE: - Modifying row-specific parameters (table sources, filters, credentials, etc.) - Updating storage mappings for a specific row (input/output tables or files) - Changing row name or description - Any combination of the above WHEN NOT TO USE: - `keboola.orchestrator` / `keboola.flow` → use `update_flow` - `keboola.data-apps` → use `modify_python_js_data_app` / `modify_streamlit_data_app` / `deploy_data_app` - `keboola.snowflake-transformation` / `keboola.google-bigquery-transformation` → use `update_sql_transformation` PREREQUISITES: - The configuration row must already exist (use add_config_row for new rows) - You must know component_id, configuration_id, and configuration_row_id - For parameter updates: Review the component's row_configuration_schema using get_components - For storage updates: Ensure mappings are valid for row-level storage IMPORTANT CONSIDERATIONS: - Parameter updates are PARTIAL - only specify fields you want to change - parameter_updates supports granular operations: set individual keys, replace strings, or remove keys - Parameters must conform to the component's row_configuration_schema (not root schema) - Validate schemas before calling: use get_components to retrieve row_configuration_schema - Each row operates independently - changes to one row don't affect others - Row-level storage is separate from root-level storage configuration WORKFLOW: 1. Retrieve current configuration using get_configs to see existing rows 2. Identify the specific row to modify by its configuration_row…
| Name | Type | Req | Description |
|---|---|---|---|
| change_description | string | yes | A clear, human-readable summary of what changed in this row update. Be specific. |
| component_id | string | yes | The ID of the component the configuration belongs to. |
| configuration_id | string | yes | The ID of the parent configuration containing the row to update. |
| configuration_row_id | string | yes | The ID of the specific configuration row to update. |
| description | string | – | New detailed description for the configuration row. Only provide if changing the description. Should explain the specific purpose and behavior of this individual row. |
| is_disabled | – | – | Enable or disable the configuration row. Set to True to disable execution (config row won't run), False to enable execution (config row will run). Only provide if changing the status, leave as null t… |
| name | string | – | New name for the configuration row. Only provide if changing the name. Name should be short (typically under 50 characters) and descriptive of this specific row. |
| parameter_updates | – | – | List of granular parameter update operations to apply to this row. Each operation (set, str_replace, remove, list_append) modifies a specific parameter using JSONPath notation. Only provide if updati… |
| processors_after | – | – | The list of processors that will run after the configured component row runs. |
| processors_before | – | – | The list of processors that will run before the configured component row runs. |
| project_id | – | – | Target Keboola project id for this write. Required when the session is scoped to 2+ projects; optional (defaults to the single scoped project) otherwise. |
| storage | – | – | Complete storage configuration for this row containing input/output table and file mappings. Only provide if updating storage mappings - this replaces the ENTIRE storage configuration for this row.… |
| Name | Type | Req | Description |
|---|---|---|---|
| change_summary | – | – | Optional summary of the change to update the agent's context. |
| component_id | string | yes | The ID of the component. |
| configuration_id | string | yes | The ID of the configuration. |
| description | string | yes | The description of the configuration. |
| links | array | yes | The links relevant to the configuration. |
| success | boolean | – | Indicates if the operation succeeded. |
| timestamp | string | yes | The timestamp of the operation. |
| version | integer | yes | The version number of the configuration. |
No examples provided.
update_descriptions Update Descriptions ~241
Updates the description for a Keboola storage item. This tool supports three item types, inferred from the provided item_id: - bucket: item_id = "in.c-bucket" - table: item_id = "in.c-bucket.table" - column: item_id = "in.c-bucket.table.column" Usage examples (payload uses a list of DescriptionUpdate objects): - Update a bucket: updates=[DescriptionUpdate(item_id="in.c-my-bucket", description="New bucket description")] - Update a table: updates=[DescriptionUpdate(item_id="in.c-my-bucket.my-table", description="New table description")] - Update a column: updates=[DescriptionUpdate(item_id="in.c-my-bucket.my-table.my_column", description="New column description")]
| Name | Type | Req | Description |
|---|---|---|---|
| project_id | – | – | Target Keboola project id for this write. Required when the session is scoped to 2+ projects; optional (defaults to the single scoped project) otherwise. |
| updates | array | yes | List of DescriptionUpdate objects with storage item_id and new description. Examples: "bucket_id", "bucket_id.table_id", "bucket_id.table_id.column_name" |
| Name | Type | Req | Description |
|---|---|---|---|
| failed | integer | yes | Number of failed updates. |
| results | array | yes | Results for each update attempt. |
| successful | integer | yes | Number of successful updates. |
| total_processed | integer | yes | Total number of items processed. |
No examples provided.
update_flow Update Flow ~623
Updates an existing flow configuration (either legacy `keboola.orchestrator` or conditional `keboola.flow`). PRE-REQUISITES: - Always use `get_flow_schema` (and `get_flow_examples`) for that flow type you want to update to follow the required structure and see the examples if unknown - Only pass `phases`/`tasks` when you want to replace them; omit to keep the existing ones unchanged RULES (ALL FLOWS): - `flow_type` must match the stored component id of the flow; do not switch flow types during update - `phases` and `tasks` must follow the schema for the selected flow type; include at least `id` and `name` - Tasks must reference existing component configurations; keep dependencies consistent - Always provide a clear `change_description` and surface any links returned in the response to the user CONDITIONAL FLOWS (`keboola.flow`): - Maintain a single entry phase and ensure every phase is reachable; connect phases via `next` transitions - No cycles or dangling phases; failed tasks already stop the flow, so only add retries/conditions if requested LEGACY FLOWS (`keboola.orchestrator`): - Phases run sequentially; tasks inside a phase run in parallel; `dependsOn` references other phase ids - Use `continueOnFailure` or best-effort patterns only when the user explicitly asks for them WHEN TO USE: - Renaming a flow, updating descriptions, adding/removing phases or tasks, adjusting dependencies, or enabling/disabling flow execution
| Name | Type | Req | Description |
|---|---|---|---|
| change_description | string | yes | Description of changes made. |
| configuration_id | string | yes | ID of the flow configuration. |
| description | string | – | Updated flow description. Only updated if provided. |
| flow_type | string | yes | The type of flow to update. Use "keboola.flow" for conditional flows or "keboola.orchestrator" for legacy flows. This MUST match the existing flow type. |
| folder | – | – | Folder name to organize this flow in the Keboola UI. Pass an empty string to remove an existing folder assignment. Existing folder names are returned in the response change_summary when no folder is… |
| is_disabled | – | – | Enable or disable the flow. Set to True to disable execution (flow won't run), False to enable execution (flow will run). Only provide if changing the status, leave as null to preserve current state. |
| name | string | – | Updated flow name. Only updated if provided. |
| phases | – | – | Updated list of phase definitions. |
| project_id | – | – | Target Keboola project id for this write. Required when the session is scoped to 2+ projects; optional (defaults to the single scoped project) otherwise. |
| tasks | – | – | Updated list of task definitions. |
| Name | Type | Req | Description |
|---|---|---|---|
| change_summary | – | – | Additional notes or hints about the operation. |
| component_id | string | yes | The ID of the component. |
| configuration_id | string | yes | The configuration ID of the flow. |
| description | string | yes | The description of the Flow. |
| links | array | yes | The links relevant to the flow. |
| response | – | – | The response message from the operation. |
| success | boolean | – | Indicates if the operation succeeded. |
| timestamp | string | yes | The timestamp of the operation. |
| version | integer | yes | The version number of the flow configuration. |
No examples provided.
update_project_description Update Project Description ~68
Updates the description of the current Keboola project.
| Name | Type | Req | Description |
|---|---|---|---|
| description | string | yes | The new project description text. |
| project_id | – | – | Target Keboola project id for this write. Required when the session is scoped to 2+ projects; optional (defaults to the single scoped project) otherwise. |
No output schema declared.
No examples provided.
update_sql_transformation Update Sql Transformation ~2,642
Updates an existing SQL transformation configuration by modifying its SQL code, storage mappings, name or description. This tool allows PARTIAL parameter updates for transformation SQL blocks and code - you only need to provide the operations you want to perform. All other fields will remain unchanged. Use this for modifying SQL transformations created with create_sql_transformation. WHEN TO USE: - SQL transformations only (Snowflake/BigQuery); use update_config for Python/R/DuckDB transformations - Modifying SQL queries in transformation (add/edit/remove SQL statements) - Updating transformation block or code block names - Changing input/output table mappings for the transformation - Updating the transformation name or description - Any combination of the above PREREQUISITES: - Transformation must already exist (use create_sql_transformation for new transformations) - You must know the configuration_id of the transformation - SQL dialect is determined automatically from the workspace - CRITICAL: Use get_configs first to see the current transformation structure and get block_id/code_id values TRANSFORMATION STRUCTURE: A transformation has this hierarchy: transformation └─ blocks[] - List of transformation blocks (each has a unique block_id) └─ block.name - Descriptive name for the block └─ block.codes[] - List of code blocks within the block (each has a unique code_id) └─ code.name - Descriptive name for the code block └─ code.script - SQL script (string with SQL statements) Example structure from get_configs: { "blocks": [ { "id": "b0", ← block_id needed for operations (format: b{index}) "name": "Data Preparation", "codes": [ { "id": "b0.c0", ← code_id needed for operations (format: b{block_index}.c{code_index}) "name": "Load customers", "script": "SELECT * FROM customers WHERE status = 'active';" } ] } ] } PARAMETER UPDATE OPERATIONS: All operat…
| Name | Type | Req | Description |
|---|---|---|---|
| change_description | string | yes | A clear, human-readable summary of what changed in this transformation update. Be specific: e.g., "Added JOIN with customers table", "Updated WHERE clause to filter active records". |
| configuration_id | string | yes | The ID of the transformation configuration to update. |
| description | string | – | New detailed description for the transformation. Only provide if changing the description. Should explain what the transformation does, data sources, and business logic. Leave empty to preserve the o… |
| folder | – | – | Folder name to organize this transformation in the Keboola UI. Pass an empty string to remove an existing folder assignment. Existing folder names are returned in the response change_summary when no… |
| name | string | – | New name for the transformation. Only provide if changing the name. Name should be short (typically under 50 characters) and descriptive. |
| parameter_updates | – | – | List of operations to apply to the transformation structure (blocks, codes, SQL scripts). Each operation modifies specific elements using block_id and code_id identifiers. Only provide if updating SQ… |
| project_id | – | – | Target Keboola project id for this write. Required when the session is scoped to 2+ projects; optional (defaults to the single scoped project) otherwise. |
| storage | – | – | Complete storage configuration for transformation input/output table mappings. Only provide if updating storage mappings - this replaces the ENTIRE storage configuration. When to use: - Adding/remo… |
| variables | – | – | Variable definitions for this transformation. Provide a non-empty list to create or replace all variable definitions. Provide an empty list ([]) to remove all variables. Omit (None) to leave existing… |
| Name | Type | Req | Description |
|---|---|---|---|
| change_summary | – | – | Optional summary of the change to update the agent's context. |
| component_id | string | yes | The ID of the component. |
| configuration_id | string | yes | The ID of the configuration. |
| description | string | yes | The description of the configuration. |
| links | array | yes | The links relevant to the configuration. |
| success | boolean | – | Indicates if the operation succeeded. |
| timestamp | string | yes | The timestamp of the operation. |
| version | integer | yes | The version number of the configuration. |
No examples provided.
validate_semantic_query Validate Semantic Query ~926
Performs best-effort semantic validation of an SQL query against one or more semantic models and compares it with the expected semantic objects provided. RETURNS: - `validation_auto_detected`: semantic validation built from objects heuristically detected in the SQL - `validation_detected_from_expected`: semantic validation built only from explicitly provided expected object IDs - expected semantic objects that were matched or missing in the auto-detected result - unexpected auto-detected objects outside the expected semantic scope LIMITATIONS: - Detection is heuristic and based on string matching over SQL and semantic metadata. - The tool does not parse SQL semantically and does not execute the query. - Auto-detected objects, missing objects, and relationship matches may therefore be imperfect. - Use the result as a best-effort semantic check, not as a formal proof that the query is correct. CONSIDERATIONS: - Prefer calling this tool before executing any SQL that touches semantic objects. - This tool confirms the SQL dialect, surfaces semantic constraint violations, and provides post-execution checks. - Only proceed to query_data once this tool returns valid=True and violations is empty. If violations are found, fix the query first or consider the limitations of this tool. - Entries under `semantic_models` carry `scope`/`project_id`/`source_project_id`/ `target_project_ids` -- see `get_semantic_context`'s CONSIDERATIONS for what they mean. A "targeted"/"organization"-scope model does not guarantee the query is actually runnable from every project that can see it; this tool validates against the semantic layer, not against whether the underlying Storage tables are reachable here. Pass `resolve_data_location=True` to check that directly for every used dataset instead of inferring it from scope alone. WHEN TO USE: - Before generating or approving a query that should follow a semantic model. - When you want to validate a SQL query against the semantic objects befo…
| Name | Type | Req | Description |
|---|---|---|---|
| expected_semantic_objects | array | – | Optional semantic object selections that define the expected semantic scope of the query. These expectations are compared with the objects actually detected in the SQL. Use `ids` when you want to ass… |
| query_ref | – | – | Opaque correlation token chosen by the agent. Pass the SAME value that was sent to query_data so the client can pair this validation with its result. Purely a passthrough; it does not affect executio… |
| resolve_data_location | boolean | – | For each dataset the SQL is detected to use, resolve whether its underlying Storage table is actually reachable from this project and, if not, add a warning-severity violation explaining why. Off by… |
| semantic_model_ids | array | yes | One or more semantic model IDs against which the SQL should be validated. Contexts from all models are merged into a single universe for object detection. Constraint evaluation is performed per model… |
| sql_query | string | yes | SQL query that should be checked against the semantic layer. The query is not executed; the tool performs best-effort semantic detection and rule validation using heuristic string matching, so the de… |
| Name | Type | Req | Description |
|---|---|---|---|
| matched_expected_objects | array | – | Expected semantic objects that were also detected in the SQL. |
| missing_expected_objects | array | – | Expected semantic objects that were not detected in the SQL. |
| query_ref | – | – | Correlation token echoed from the request. |
| unexpected_detected_objects | array | – | Detected semantic objects that fall outside the expected semantic scope. |
| validation_auto_detected | object | yes | Validation result built from semantic objects auto-detected from the SQL query. |
| validation_detected_from_expected | – | – | Validation result built only from explicitly provided expected semantic object IDs. |
No examples provided.
What is the com.keboola/mcp server?
com.keboola/mcp is listed in the public MCP registry as com.keboola/mcp. Connect your AI assistants to Keboola and expose your data, transformations, SQL queries, ... This page covers its PyPI package (keboola-mcp-server).
Is the com.keboola/mcp server safe to use?
com.keboola/mcp scores 61 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the com.keboola/mcp server expose?
com.keboola/mcp exposes 44 tools: get_components, get_configs, get_config_examples, create_config, update_config, and 39 more. Their descriptions and schemas cost roughly 25,755 tokens of context every time the server is loaded.
Is the com.keboola/mcp server still maintained?
com.keboola/mcp is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.