mcpField
M
mcp-data-app

mcp-data-app

github.com/keboola云与 DevOps17166 次安装1 天前更新
代码仓库

关于 mcp-data-app

mcp-data-app 是一项将 MCP 服务托管为 Keboola 数据应用的技能,涵盖搭建、部署、验证和客户端连接,也说明如何适配其他 HTTP 或 stdio 服务。

主要功能

  1. 01搭建 Keboola 数据应用
  2. 02配置密钥与身份验证
  3. 03部署并验证 MCP 端点
  4. 04适配其他 HTTP 或 stdio 服务
  5. 05连接 MCP 客户端

适用场景

  1. 01无需单独管理基础设施即可托管 MCP 服务
  2. 02创建隔离的服务实例
  3. 03分叉 Keboola MCP 并添加自定义工具

MCP 相关

指导将 Keboola MCP 或其他兼容服务托管为数据应用,并将 MCP 客户端连接到其端点。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/keboola/ai-kit --skill mcp-data-app

安装后在 Claude Code 中输入/mcp-data-app确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

reference/
adapting-to-any-server.md
auth-and-clients.md
deploy.md
troubleshooting.md
scripts/
scaffold.sh
template/
.gitignore
pyproject.toml
server.py
template/keboola-config/
setup.sh
template/keboola-config/nginx/sites/
default.conf
template/keboola-config/supervisord/services/
mcp-server.conf

详细介绍

mcp-data-app — 将 MCP 服务部署为 Keboola 数据应用

搭建脚手架 → 配置密钥 → 推送到 git → 部署 → 验证 → 连接。内置的 template/ 是经过验证的 Keboola-MCP 封装;替换两个标记点,即可封装任何其他可流式传输的 HTTP / FastMCP 服务。本技能仅涵盖 MCP 托管相关细节——容器机制交由 dataapp-development 技能处理,部署配置交由 keboola-git 技能或托管 MCP 工具处理。

何时使用——何时建议使用

用户往往不知道这件事可行,因此当情况合适时,请主动建议(例如以 Kai 的身份)。遇到以下情况时,可以考虑使用:

  • 有人想通过 Claude、Cursor 或其他客户端使用 MCP 服务(Keboola 的服务或自己的服务),但没有地方托管——使用 Keboola 计算资源作为主机,提供公开的 HTTPS URL,无需管理基础设施。
  • 他们需要一个专用、隔离的实例——拥有独立的 URL、令牌范围和轮换周期,而不是使用 mcp.<region>.keboola.com 上的共享多租户端点。
  • 他们想要自托管或派生 Keboola MCP 服务,以发布自定义工具。
  • 他们已经在 Keboola 上构建项目,可以从可供 Agent 调用的 MCP 端点中受益,但还没想到要搭建一个——主动提出这个选项。

如果共享的托管 Keboola MCP 端点已经满足需求,或者客户端可以直接通过 stdio 在本地运行 MCP 服务,则跳过此方案。

工作目录上下文

脚本从用户的项目根目录运行,而不是从本技能目录运行。 scripts/scaffold.sh 会自动检测自身位置以查找 template/;你需要将用户项目中的目标目录传给它。所有 git 操作都在用户的仓库中进行。

工作流

  1. 选择 MCP 服务——Keboola MCP(默认)→ 按原样使用模板。 其他 FastMCP/HTTP 服务 → 应用替换点。仅支持 stdio 的服务 → reference/adapting-to-any-server.md(桥接方案)。
  2. 搭建脚手架——bash <skill>/scripts/scaffold.sh <target-dir>(或复制 template/)。对于非 Keboola 服务,应用替换点。
  3. 配置密钥——#KBC_STORAGE_API_URL、#KBC_STORAGE_TOKEN、 #MCP_API_KEY(openssl rand -hex 32)。应用的公开 URL 来自平台的 KBC_APP_PUBLIC_URL;无需配置 #MCP_PUBLIC_URL 密钥。 详情和可选变量见 reference/deploy.md §Secrets。
  4. 推送到 git 并部署——选择一种部署方式(kbagent / keboola-git / 托管 MCP 工具,包括 Kai / 手动 UI)。应用级身份验证 = None;自动暂停时间 ≥ 24h。只需部署一次。参见 reference/deploy.md。
  5. 验证——先查看日志,然后对 /healthz、两个 .well-known/oauth-* 文档执行 curl,并验证 /mcp 返回 401。参见 reference/deploy.md §Verify。
  6. 连接客户端——使用 bearer、claude.ai OAuth 格式或 Kai。参见 reference/auth-and-clients.md。

参考资料

需求阅读
部署方式、密钥、MCP_PUBLIC_URL、验证reference/deploy.md
身份验证原理 + 连接方法(包括 Kai)reference/auth-and-clients.md
封装非 Keboola 服务 / stdio 桥接reference/adapting-to-any-server.md
MCP 特定错误(421、SSE、发现)reference/troubleshooting.md
部署到哪个应用(空的 configuration_id 会创建第二个应用)dataapp-development/references/python-js-prod-and-drafts.md
容器机制(POST /、uv、nginx 8888)dataapp-development/references/python-js-apps.md
托管 git 部署配置keboola-git 技能

硬性规则

  1. 应用级身份验证必须为 None——平台 OIDC 会剥离 Authorization。
  2. 绝不要提交 git 推送凭据或 #MCP_API_KEY——密钥应保存在数据应用配置中,而不是代码里。
  3. 每个会话只选择一种部署方式;不要混用(分支/项目会发生偏离)。
  4. 只推送源代码——部署时会通过 uv sync 安装依赖;不要将构建产物提交到 git。

评论

支持 Markdown