关于 Keboola MCP Server
Keboola MCP Server 将 AI 客户端连接到 Keboola 项目,并把数据平台操作开放为可调用工具。它涵盖存储、SQL、作业和工作流,并支持分支范围操作及工具访问控制。
主要功能
- 01查询表并管理描述
- 02创建和检查组件
- 03用自然语言创建 SQL 转换
- 04运行作业并查看执行详情
- 05管理工作流管道和 Data Apps
- 06搜索和更新元数据
适用场景
- 01从 AI 客户端查询 Keboola 数据
- 02创建并运行 SQL 转换
- 03运行组件并查看作业结果
- 04在开发分支中操作以隔离生产环境
MCP 相关
它向 MCP 客户端提供 Keboola 存储、组件、SQL 转换、作业、流程、Data Apps 和元数据操作工具。支持托管远程连接和本地传输方式。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.us-east4.gcp.keboola.com/mcpclaude mcp add --transport http keboola https://mcp.us-east4.gcp.keboola.com/mcp{"mcpServers":{"keboola":{"type":"http","url":"https://mcp.us-east4.gcp.keboola.com/mcp"}}}在 Cursor 中打开{"servers":{"keboola":{"type":"http","url":"https://mcp.us-east4.gcp.keboola.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"keboola":{"type":"http","url":"https://mcp.us-east4.gcp.keboola.com/mcp"}}}{"mcpServers":{"keboola":{"serverUrl":"https://mcp.us-east4.gcp.keboola.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
47| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| component_ids | array | 是 | 组件的 ID |
详细介绍
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 助手连接到它。
如何连接
- 获取远程服务 URL:前往 Keboola 项目设置 →
MCP Server标签页 - 复制服务 URL:格式如下:
https://mcp.<YOUR_REGION>.keboola.com/mcp - 配置 AI 助手:将 URL 粘贴到 AI 助手的 MCP 设置中
- 进行身份验证:系统会提示您使用 Keboola 账户登录。之后,在对话中选择要使用的项目(例如“列出我的 Keboola 项目”/“使用项目 X”)
支持的客户端
- Cursor:在项目的 MCP Server 设置中使用“Install In Cursor”按钮,或点击
此按钮
- 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
各区域对应的命令:
| 区域 | 安装命令 |
|---|---|
| 美国弗吉尼亚 AWS | claude mcp add --transport http keboola https://mcp.keboola.com/mcp |
| 美国弗吉尼亚 GCP | claude mcp add --transport http keboola https://mcp.us-east4.gcp.keboola.com/mcp |
| 欧盟法兰克福 AWS | claude mcp add --transport http keboola https://mcp.eu-central-1.keboola.com/mcp |
| 欧盟爱尔兰 Azure | claude mcp add --transport http keboola https://mcp.north-europe.azure.keboola.com/mcp |
| 欧盟法兰克福 GCP | claude 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 时,会打开一个浏览器窗口,提示你:
- 使用 Keboola 账户登录
- 授权连接
完成身份验证后,你就可以直接在 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 服务。
- 登录一次:在终端中登录,以保存会话(客户端会在后台启动服务,因此无法在该环境中打开浏览器):
uvx keboola_mcp_server login --api-url https://connection.YOUR_REGION.keboola.com - 使用以下设置配置 MCP 客户端(Claude/Cursor)——只需设置
KBC_STORAGE_API_URL。 - 客户端会在需要时自动启动 MCP 服务。
Claude Desktop 配置
- 前往 Claude(屏幕左上角)-> Settings → Developer → Edit Config(如果看不到 claude_desktop_config.json,请创建该文件)
- 添加以下配置:
- 重启 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 配置
- 前往 Settings → MCP
- 点击“+ Add new global MCP Server”
- 使用以下设置进行配置:
{
"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 服务代码的开发者:
- 克隆代码库并设置本地环境
- 配置 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_URLINTEGTEST_STORAGE_TOKENSINTEGTEST_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 的一般信息,请使用以下资源。
资源
- 用户文档
- 开发者文档
- Keboola 平台
- 问题跟踪器 ← 联系 MCP 服务的主要方式
联系
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。