mcpField
K
Keboola MCP Server

Keboola MCP Server

远程服务
github.com/keboola数据与分析85今天更新
代码仓库

关于 Keboola MCP Server

Keboola MCP Server 将 AI 客户端连接到 Keboola 项目,并把数据平台操作开放为可调用工具。它涵盖存储、SQL、作业和工作流,并支持分支范围操作及工具访问控制。

主要功能

  1. 01查询表并管理描述
  2. 02创建和检查组件
  3. 03用自然语言创建 SQL 转换
  4. 04运行作业并查看执行详情
  5. 05管理工作流管道和 Data Apps
  6. 06搜索和更新元数据

适用场景

  1. 01从 AI 客户端查询 Keboola 数据
  2. 02创建并运行 SQL 转换
  3. 03运行组件并查看作业结果
  4. 04在开发分支中操作以隔离生产环境

MCP 相关

它向 MCP 客户端提供 Keboola 存储、组件、SQL 转换、作业、流程、Data Apps 和元数据操作工具。支持托管远程连接和本地传输方式。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.us-east4.gcp.keboola.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
pypikeboola-mcp-server1.110.3

工具

47
参数类型必填说明
component_idsarray是组件的 ID

详细介绍

询问 DeepWiki

Keboola MCP 服务

将 AI Agent、MCP 客户端(Cursor、Claude、Windsurf、VS Code 等)和其他 AI 助手连接到 Keboola。开放数据、转换、SQL 查询和作业触发器,无需编写任何粘合代码。随时随地为 Agent 提供所需的数据。

概览

Keboola MCP 服务是连接 Keboola 项目与现代 AI 工具的开源桥梁。它将 Keboola 的功能(例如存储访问、SQL 转换和作业触发器)转化为可供 Claude、Cursor、CrewAI、LangChain、Amazon Q 等调用的工具。

功能

借助 AI Agent 和 MCP 服务,您可以:

  • 存储:直接查询表,并管理表或存储桶的描述
  • 组件:创建、列出并检查提取器、写入器、数据应用和转换配置
  • SQL:使用自然语言创建 SQL 转换
  • 作业:运行组件和转换,并获取作业执行详情
  • 流程:使用 Conditional Flows 和 Orchestrator Flows 构建和管理工作流管道。
  • 数据应用:创建、部署和管理 Keboola Streamlit 数据应用,以展示对存储数据的查询结果。
  • 元数据:使用自然语言搜索、读取和更新项目文档及对象元数据
  • 开发分支:在生产环境之外的开发分支中安全工作,所有操作均限定在所选分支内。

🚀 快速开始:远程 MCP 服务(最简单的方式)

使用 Keboola MCP 服务最简单的方式是通过我们的远程 MCP 服务。此托管解决方案无需本地设置、配置或安装。

什么是远程 MCP 服务?

我们的远程服务托管在每个多租户 Keboola 堆栈上,并支持 OAuth 身份验证。您可以从任何支持远程 Streamable HTTP 连接和 OAuth 身份验证的 AI 助手连接到它。

如何连接
  1. 获取远程服务 URL:前往 Keboola 项目设置 → MCP Server 标签页
  2. 复制服务 URL:格式如下:https://mcp.<YOUR_REGION>.keboola.com/mcp
  3. 配置 AI 助手:将 URL 粘贴到 AI 助手的 MCP 设置中
  4. 进行身份验证:系统会提示您使用 Keboola 账户登录。之后,在对话中选择要使用的项目(例如“列出我的 Keboola 项目”/“使用项目 X”)
支持的客户端
  • Cursor:在项目的 MCP Server 设置中使用“Install In Cursor”按钮,或点击 此按钮 安装 MCP 服务
  • Claude Desktop:通过“设置”→“集成”添加集成
  • Claude Code:使用 claude mcp add --transport http keboola <URL> 安装(详情见下文)
  • Windsurf:使用远程服务 URL 进行配置
  • Make:使用远程服务 URL 进行配置
  • 其他 MCP 客户端:使用远程服务 URL 进行配置
Claude Code 设置

Claude Code 是一款命令行界面工具,可让你通过终端与 Claude 交互。你可以使用一条简单的命令安装 Keboola MCP Server 集成。

安装:

在终端中运行以下命令,并将 <YOUR_REGION> 替换为你的 Keboola 区域:

claude mcp add --transport http keboola https://mcp.<YOUR_REGION>.keboola.com/mcp

各区域对应的命令:

区域安装命令
美国弗吉尼亚 AWSclaude mcp add --transport http keboola https://mcp.keboola.com/mcp
美国弗吉尼亚 GCPclaude mcp add --transport http keboola https://mcp.us-east4.gcp.keboola.com/mcp
欧盟法兰克福 AWSclaude mcp add --transport http keboola https://mcp.eu-central-1.keboola.com/mcp
欧盟爱尔兰 Azureclaude mcp add --transport http keboola https://mcp.north-europe.azure.keboola.com/mcp
欧盟法兰克福 GCPclaude mcp add --transport http keboola https://mcp.europe-west3.gcp.keboola.com/mcp

使用方法:

安装完成后,在对话中输入 /mcp 并选择要使用的 Keboola 工具,即可在 Claude Code 中使用 Keboola MCP Server。

身份验证:

首次在 Claude Code 中使用 Keboola MCP Server 时,会打开一个浏览器窗口,提示你:

  1. 使用 Keboola 账户登录
  2. 授权连接

完成身份验证后,你就可以直接在 Claude Code 中使用 Keboola 工具。之后可在对话中选择项目——只需询问 Claude 要使用哪些 Keboola 项目。

有关详细设置说明和各区域对应的 URL,请参阅远程服务设置文档。

使用开发分支

你可以在 Keboola 开发分支中安全地工作,而不会影响生产数据。远程托管的 MCP Servers 会遵循 KBC_BRANCH_ID 参数,并将所有操作限制在指定分支范围内。在 UI 中打开开发分支时,可以在 URL 中找到开发分支 ID,例如:https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard。每个请求都必须在请求头中包含分支 ID:X-Branch-Id: <branchId>,否则 MCP Server 默认使用生产分支。此操作应由 AI 客户端或负责处理服务连接的环境完成。

工具授权与访问控制

使用基于 HTTP 的传输方式(Streamable HTTP)时,你可以通过 HTTP 请求头控制客户端可用的工具。这对于限制 AI Agent 的能力或强制执行合规政策很有用。

授权请求头
请求头说明示例
X-Allowed-Tools允许使用的工具列表,以逗号分隔get_configs,get_buckets,query_data
X-Disallowed-Tools要排除的工具列表,以逗号分隔create_config,run_job
X-Read-Only-Mode仅允许使用只读工具true、1 或 yes
过滤规则

过滤器按以下顺序应用:允许 → 只读交集 → 排除不允许的工具。请求头为空表示不限制。

只读工具

只读工具是指带有 readOnlyHint=True 注解的工具。这些工具只会检索信息,不会对 Keboola 项目进行任何更改。如需查看当前只读工具列表,请参阅 TOOLS.md 文件,该文件是实际工具集自动生成的快照。

示例:只读访问
X-Read-Only-Mode: true
延迟加载工具
标头描述示例
X-Deferred-Tools以逗号分隔的工具列表,这些工具会以 _meta["anthropic/alwaysLoad"] = false 列出run_sync_action,get_flow_schema

注册服务器时设置 alwaysLoad: true 的 Claude Code / Claude Agent SDK 客户端,会将这些工具保留为延迟加载状态,通过工具搜索访问,而不是预先加载其定义。此标头只会更改 tools/list 元数据,不会隐藏工具或授予工具访问权限。标头为空或包含未知工具名称时,不会产生任何变化。

详细文档请参阅 developers.keboola.com/integrate/mcp/#tool-authorization-and-access-control。

行级和列级安全

行级和列级策略是 Keboola Metastore 对象(rls-policy、cls-policy),通过 kbagent rls / kbagent cls 编写。此服务既不会读取也不会应用这些策略。在启用了 row-level-security 功能的项目中,此服务会使用 Connection 登录类型 governed 创建其工作区(即 keboola.mcp-server-tool 组件的 mcp-workspace-<hex> 配置)。受治理工作区没有凭据:只有 Query Service 可以读取它,并且 Query Service 会根据项目策略筛选每个 query_data 结果。此服务不会重写查询,也没有回退方案:Query Service 拒绝的内容,query_data 就会作为错误返回。

  • 启用方式。 只有此服务会检查项目功能;Connection 无需任何功能或角色即可创建受治理工作区(Snowflake,无公钥)。堆栈的 Connection 必须接受登录类型 governed:不支持该类型的堆栈会拒绝创建,之后所有需要该工作区的工具都会失败(不会回退到普通工作区)。BigQuery 项目仍使用未经筛选的普通工作区。旧的普通 MCP 工作区不会被删除:功能启用后会跳过该工作区,但仍可通过 workspace_schema 或 X-Workspace-Id 固定指定它。
  • 默认拒绝。 如果没有任何 rls-policy 应用于受治理工作区中的某个表,Query Service 就会拒绝访问该表("*" 规则会向每位已识别的读取者开放该表);单独使用 cls-policy 不会授予任何行的访问权限。不读取任何表的语句(SELECT 1)可以执行。拒绝会以 Row-level security does not allow this query 错误返回给 Agent。
  • 读取者身份。 Query Service 会根据此服务转发的程序化令牌(kbc_at_ / kbc_pat_,随 X-KBC-ProjectId 发送)解析用户。只有旧版 Storage 令牌的会话,或此服务无法映射到用户的会话(例如 Kai),都没有经过验证的身份,因此无法读取受治理表中的任何内容。组规则永远不会匹配(OAuth 登录不携带任何组信息)。
  • 绑定。 未设置绑定时,工作区会获得项目的所有策略;此服务不会创建任何绑定。若要只向工作区授予部分策略,请将策略绑定到其 KID:KID:<stack id>:project-<project id>:workspace-<workspace id> (默认分支的工作区;分支工作区则在 project 前还包含 branch-<branch id>)。堆栈 ID 是 Query Service 配置使用的 ID(QUERY_RLS_STACK_ID,例如 dev-keboola-aws-eu-west-1),工作区 ID 可在 get_project_info 输出中找到,而 kbagent rls bind --project P --workspace-id WS --rls-policy ID --stack-id S 会写入绑定。绑定只会缩小适用范围,并从下一次查询起生效;切换到其他工作区后,绑定不会随会话转移:分支会话或重新创建的工作区会有新的 KID,并重新适用所有策略。
  • 限制。 如果没有为数据应用单独配置工作区,此服务的工作区 ID 也会作为该应用的 WORKSPACE_ID;应用会使用自己的令牌查询,没有经过验证的身份,因此无法读取受治理表中的任何内容。元数据工具(get_tables、get_buckets、search)不受策略筛选:它们可以列出受治理工作区拒绝读取的表。

本地 MCP 服务设置(自定义或开发方式)

在自己的机器上运行 MCP 服务,以获得完全控制并便于开发。如果你想自定义工具、本地调试或快速迭代,请选择此方式。你需要安装服务、完成身份验证(一次性浏览器登录,无需粘贴令牌),然后启动服务。此方式灵活性最高(自定义工具、本地日志、离线迭代),但需要手动设置,并由你自行管理更新和密钥。

服务支持多种传输选项,启动服务时可通过提供 --transport <transport> 参数来选择:

  • stdio - 未指定 --transport 时的默认选项。标准输入/输出,通常用于单客户端本地部署。
  • streamable-http - 通过 HTTP 在远程运行服务,并使用双向流式传输通道,让客户端与服务持续交换消息。通过 /mcp 连接(例如,http://localhost:8000/mcp)。
  • http-compat - streamable-http 的别名,为向后兼容而保留。

要与 Keboola 项目配合使用,服务需要两项内容:你的 Keboola 区域(KBC_STORAGE_API_URL)以及一种身份验证方式。推荐使用一次性浏览器登录——你无需创建、复制或粘贴令牌。还可以选择设置 KBC_BRANCH_ID,以便在开发分支中工作。

部分变量不会从请求标头中读取:

  • KBC_STORAGE_API_URL:使用自身 Storage API URL 启动的服务(通过 --api-url 参数或 KBC_STORAGE_API_URL 环境变量设置)只服务于对应的 Keboola 堆栈。若 X-Storage-Api-Url 标头请求使用其他主机,该请求会被忽略(并记录警告),服务仍会在此请求中使用自身的 URL。如果希望每个请求都能选择其堆栈,请在启动服务时不要为其设置自己的 Storage API URL。
  • KBC_KUBERNETES_TOKEN_PATH(仅限已部署的服务,参见 docs/kubernetes-sa-auth.md):仅从环境中读取,绝不会从标头中读取。
  • KBC_WORKSPACE_ID / KBC_WORKSPACE_SCHEMA:与上面的 Storage API URL 类似,使用自身工作区固定值启动的服务(通过任一变量或 --workspace-id 设置)会在每个请求中保留该固定值;若 X-Workspace-Id 或 X-Workspace-Schema 标头请求使用其他工作区,该请求会被忽略(并记录警告)。没有自身固定值的服务(共享多用户场景)会像下文所述,按请求从请求中获取固定值。
登录

使用浏览器登录一次即可;服务会保存会话并自动刷新,因此无需管理令牌:

uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com

这会打开浏览器,让你登录 Keboola,然后将整个堆栈的会话保存到 ~/.keboola/mcp/credentials.json(仅你本人可读取,每个堆栈一条记录)。之后,只需设置 KBC_STORAGE_API_URL 即可启动服务——无需令牌。要使用哪些项目,将在登录后通过对话(get_accessible_projects / set_project_scope)选择,而非在登录时选择。

命令作用
login --api-url <url>登录一个堆栈
login --force重新登录/切换账号
login --show-token打印当前会话令牌(用于调试)
logout [--api-url <url>] [--all]移除某个堆栈的已存会话(或移除所有堆栈的会话)

如果你在交互式终端中通过 stdio 启动服务,且没有已存会话,服务会在首次启动时自动运行此浏览器登录流程。MCP 客户端(Claude、Cursor、……)会在后台启动服务,无法打开浏览器,因此请先自行运行一次 login。

没有 Keboola 账户时启动

你也可以只提供 KBC_STORAGE_API_URL,完全不提供凭据来启动服务。它会进入引导模式:需要访问 Keboola 的工具会说明如何获取凭据,而 create_project 这个工具无需凭据即可使用。它会创建一个新的 Keboola 项目,将会话登录到该项目,并返回一个确认 URL。在浏览器中打开该 URL 并登录,即可永久拥有该项目;在此之前,项目是临时的,Keboola 可能会收回它。确认后,工具创建的会话会被撤销,你可以继续使用自己的 login。

这需要启用了 Agent 配置功能的 stack;在其他环境中,该工具会提示它不可用。

无需运行服务,也可以通过远程托管的 MCP 服务实现同样的操作,前提是其运营方已启用此功能(KBC_ALLOW_ANONYMOUS_PROVISIONING):这类部署还会提供 https://mcp.<stack>/mcp-anonymous,该端点不接受凭据。无需身份验证即可将客户端指向该端点,调用 create_project,然后继续在该调用创建的项目中工作——服务会为你保留凭据,工具会返回一个不透明的 scope_token,供你在后续调用中重新发送。它使用单独的 URL,是因为普通的 /mcp 端点必须继续拒绝未经身份验证的请求:MCP 客户端正是通过这种拒绝来判断应开始 OAuth 登录。认领项目后,切换到 /mcp,并使用现在拥有该项目的账户登录。

不使用浏览器进行身份验证

对于无法通过浏览器登录的容器或 CI 环境,可直接提供 Keboola 访问令牌或个人访问令牌——设置 KBC_STORAGE_TOKEN(环境变量)或发送 X-StorageAPI-Token 标头——并同时提供 KBC_PROJECT_ID(或 X-KBC-ProjectId 标头)来选择项目。对于 HTTP 传输,这些信息可以按请求通过标头提供,因此每个请求都携带自己的凭据。

KBC_WORKSPACE_ID

通过 ID 将查询固定到一个特定的现有工作区,而不是使用上文所述的基于 schema 的查找;如果同时设置了 KBC_WORKSPACE_SCHEMA,则优先使用此选项。Data App / kai-agent 调用方会通过 X-Workspace-Id 标头提供此选项,使嵌入该应用的 Kai 只能通过自己的工作区进行查询。

可通过 KBC_WORKSPACE_ID 环境变量、--workspace-id CLI 标志,或(对于多用户部署)按请求设置 X-Workspace-Id 标头。

KBC_STORAGE_API_URL(Keboola 区域)

Keboola 区域 API URL 取决于你的部署区域。登录 Keboola 项目后,可以查看浏览器中的 URL 来确定所在区域:

区域API URL
AWS 北美https://connection.keboola.com
AWS 欧洲https://connection.eu-central-1.keboola.com
Google Cloud 欧盟https://connection.europe-west3.gcp.keboola.com
Google Cloud 美国https://connection.us-east4.gcp.keboola.com
Azure 欧盟https://connection.north-europe.azure.keboola.com
KBC_BRANCH_ID(可选)

要在特定的 Keboola 开发分支上操作,请使用 KBC_BRANCH_ID 参数设置分支 ID。MCP 服务会将其功能限定在指定分支内,确保所有更改彼此隔离,不会影响生产分支。

  • 如果未提供,服务默认使用生产分支。
  • 对于开发工作,请将 KBC_BRANCH_ID 设置为分支的数字 ID(例如 123456)。在 UI 中浏览开发分支时,可以从 URL 中找到开发分支 ID,例如:https://connection.us-east4.gcp.keboola.com/admin/projects/PROJECT_ID/branch/BRANCH_ID/dashboard。
  • 对于远程传输,可通过 HTTP 标头 X-Branch-Id: <branchId> 或 KBC_BRANCH_ID: <branchId> 按请求覆盖。
安装

请确保你已具备:

  • 已安装 Python 3.11+
  • 拥有 Keboola 项目的访问权限和管理员权限
  • 已安装你偏好的 MCP 客户端(Claude、Cursor 等)

注意:请确保已安装 uv。MCP 客户端会使用它自动下载并运行 Keboola MCP Server。 安装 uv:

macOS/Linux:

#if homebrew is not installed on your machine use:
# /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install using Homebrew
brew install uv

Windows:

# Using the installer script
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Or using pip
pip install uv

# Or using winget
winget install --id=astral-sh.uv -e

如需了解其他安装方式,请参阅 uv 官方文档。

运行 Keboola MCP Server

根据你的需求,有四种方式可以使用 Keboola MCP Server:

选项 A:集成模式(推荐)

在此模式下,Claude 或 Cursor 会为你自动启动 MCP 服务。

  1. 登录一次:在终端中登录,以保存会话(客户端会在后台启动服务,因此无法在该环境中打开浏览器):
    uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com
    
  2. 使用以下设置配置 MCP 客户端(Claude/Cursor)——只需设置 KBC_STORAGE_API_URL。
  3. 客户端会在需要时自动启动 MCP 服务。
Claude Desktop 配置
  1. 前往 Claude(屏幕左上角)-> Settings → Developer → Edit Config(如果看不到 claude_desktop_config.json,请创建该文件)
  2. 添加以下配置:
  3. 重启 Claude Desktop,使更改生效
{
  "mcpServers": {
    "keboola": {
      "command": "uvx",
      "args": ["keboola_mcp_server --transport <transport>"],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

配置文件位置:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
Cursor 配置
  1. 前往 Settings → MCP
  2. 点击“+ Add new global MCP Server”
  3. 使用以下设置进行配置:
{
  "mcpServers": {
    "keboola": {
      "command": "uvx",
      "args": ["keboola_mcp_server --transport <transport>"],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}

注意:为 MCP 服务使用简短且描述性强的名称。由于工具的完整名称包含服务名称,且必须控制在约 60 个字符以内,名称过长时可能会在 Cursor 中被筛除,无法显示给 Agent。

Windows WSL 的 Cursor 配置

在 Windows Subsystem for Linux 中通过 Cursor AI 运行 MCP 服务时,请使用以下配置:

{
  "mcpServers": {
    "keboola":{
      "command": "wsl.exe",
      "args": [
          "bash",
          "-c '",
          "export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com &&",
          "export KBC_BRANCH_ID=your_branch_id_optional &&",
          "/snap/bin/uvx keboola_mcp_server --transport <transport>",
          "'"
      ]
    }
  }
}
选项 B:本地开发模式

适用于直接开发 MCP 服务代码的开发者:

  1. 克隆代码库并设置本地环境
  2. 配置 Claude/Cursor 使用本地 Python 路径:
{
  "mcpServers": {
    "keboola": {
      "command": "/absolute/path/to/.venv/bin/python",
      "args": [
        "-m",
        "keboola_mcp_server --transport <transport>"
      ],
      "env": {
        "KBC_STORAGE_API_URL": "https://connection.YOUR_REGION.keboola.com",
        "KBC_BRANCH_ID": "your_branch_id_optional"
      }
    }
  }
}
选项 C:手动 CLI 模式(仅用于测试)

你可以在终端中手动运行服务,以进行测试或调试:

# Sign in once (stores a session under ~/.keboola/mcp), then start the server.
export KBC_STORAGE_API_URL=https://connection.YOUR_REGION.keboola.com
uvx keboola_mcp_server login --api-url "$KBC_STORAGE_API_URL"

uvx keboola_mcp_server --transport streamable-http

注意:此模式主要用于调试或测试。正常使用 Claude 或 Cursor 时, 无需手动运行服务。

注意:服务将使用 Streamable HTTP 传输,并在 localhost:8000 上监听 /mcp 的传入连接。 你可以使用 --port 和 --host 参数更改监听地址。

选项 D:使用 Docker

容器无法打开浏览器,因此请使用令牌进行身份验证(请参阅无浏览器身份验证):将 KBC_STORAGE_TOKEN 设置为 Keboola 访问令牌/个人访问令牌,并将 KBC_PROJECT_ID 设置为目标项目。(通过 HTTP 时,也可以在每个请求中传递 X-StorageAPI-Token / X-KBC-ProjectId 标头,并省略这些环境变量。)

docker pull keboola/mcp-server:latest

docker run \
  --name keboola_mcp_server \
  --rm \
  -it \
  -p 127.0.0.1:8000:8000 \
  -e KBC_STORAGE_API_URL="https://connection.YOUR_REGION.keboola.com" \
  -e KBC_STORAGE_TOKEN="YOUR_KEBOOLA_TOKEN" \
  -e KBC_PROJECT_ID="YOUR_PROJECT_ID" \
  -e KBC_BRANCH_ID="YOUR_BRANCH_ID_OPTIONAL" \
  keboola/mcp-server:latest \
  --transport streamable-http \
  --host 0.0.0.0

注意:服务将使用 Streamable HTTP 传输,并在 localhost:8000 上监听 /mcp 的传入连接。 你可以更改 -p,将容器端口映射到其他位置。

我需要自己启动服务吗?
场景是否需要手动运行?使用此设置
使用 Claude/Cursor否在应用设置中配置 MCP
本地开发 MCP否(Claude 会启动服务)将配置指向 Python 路径
手动测试 CLI是使用终端运行
使用 Docker是运行 Docker 容器

使用 MCP 服务

配置并运行 MCP 客户端(Claude/Cursor)后,即可开始查询 Keboola 数据:

验证设置

你可以先执行一个简单查询,确认一切正常:

What buckets and tables are in my Keboola project?
可以完成的任务示例

数据探索:

  • “哪些表包含客户信息?”
  • “运行查询,找出收入排名前 10 的客户”

数据分析:

  • “按地区分析我上季度的销售数据”
  • “找出客户年龄与购买频率之间的相关性”

数据管道:

  • “创建一个 SQL 转换,用于联接客户表和订单表”
  • “启动 Salesforce 组件的数据提取任务”

兼容性

MCP 客户端支持
MCP 客户端支持状态连接方式
Claude(桌面版和 Web 版)✅ 支持stdio
Cursor✅ 支持stdio
Windsurf、Zed、Replit✅ 支持stdio
Codeium、Sourcegraph✅ 支持Streamable HTTP
自定义 MCP 客户端✅ 支持Streamable HTTP 或 stdio

支持的工具

注意: AI Agent 会自动适配新工具。

如需查看可用工具的完整列表,以及详细说明、参数和使用示例,请参阅 TOOLS.md。

故障排除

常见问题
问题解决方案
身份验证错误重新运行 keboola_mcp_server login(如果使用令牌进行身份验证,请验证令牌和 KBC_PROJECT_ID)
连接超时检查网络连接

开发

安装

基础设置:

uv sync --extra dev

使用基础设置时,可以运行 uv run tox 来运行测试并检查代码风格。

推荐设置:

uv sync --extra dev --extra tests --extra integtests --extra codestyle

使用推荐设置时,将安装用于测试和代码风格检查的软件包,这样 IDE(例如 VsCode 或 Cursor)就能在开发期间检查代码或运行测试。

集成测试

要在本地运行集成测试,请使用 uv run tox -e integtests。 注意:你需要设置以下环境变量:

  • INTEGTEST_POOL_STORAGE_API_URL
  • INTEGTEST_STORAGE_TOKENS
  • INTEGTEST_STORAGE_TOKEN_STORAGE_BRANCHES

要获取这些值,你需要准备专用于集成测试的 Keboola 项目。 每个测试会话都会创建自己的只读工作区,因此无需配置工作区架构。详细设置说明和设计文档请参阅 integtests/README.md。

更新 uv.lock

如果添加或移除了依赖项,请更新 uv.lock 文件。发布版本时,也可以考虑将依赖项更新到较新版本(uv lock --upgrade)。

更新工具文档

更改任何工具说明(工具函数中的文档字符串)后,必须重新生成 TOOLS.md 文档文件,以反映这些更改:

uv run python -m src.keboola_mcp_server.generate_tool_docs
发布

我们不会为每个已合并的 PR 单独发布版本。更改会持续合并到主干(main),并在一起重新测试后定期发布——这样可以避免破坏用户正在使用的设置。

发布时会推送一个或两个 git 标签:

  • vX.Y.Z — MCP 服务版本(始终推送)
  • agent-vX.Y.Z — In Platform Agent 版本(仅在同时发布该 Agent 时推送)

任一标签都会触发 release.yml CI,构建并发布 Docker 镜像。KaiBench 仅在生产环境的 vX.Y.Z 标签上运行(不会在 agent-vX.Y.Z 标签或 -dev. 预发布版本上运行)。请使用 release-notes 技能——它会准备发布说明和 PR 草稿,并指导你为 vX.Y.Z 和 agent-vX.Y.Z 添加标签。

支持与反馈

⭐ 获取帮助、报告错误或申请功能的主要方式是在 GitHub 上提交 issue。⭐

开发团队会积极关注 issue,并尽快回复。有关 Keboola 的一般信息,请使用以下资源。

资源

联系

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。