mcp-data-app について
mcp-data-app は、MCP サーバーを Keboola のデータアプリとしてホストするスキルです。セットアップ、デプロイ、検証、クライアント接続に加え、ほかの HTTP/stdio サーバーの適応方法も扱います。
主な機能
- 01Keboola データアプリの作成
- 02シークレットと認証の設定
- 03MCP エンドポイントのデプロイと検証
- 04ほかの HTTP/stdio サーバーへの適応
- 05MCP クライアントの接続
活用シーン
- 01別途インフラを管理せず MCP サーバーをホスト
- 02分離されたサーバーインスタンスの作成
- 03Keboola 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.mdauth-and-clients.mddeploy.mdtroubleshooting.mdscripts/scaffold.shtemplate/.gitignorepyproject.tomlserver.pytemplate/keboola-config/setup.shtemplate/keboola-config/nginx/sites/default.conftemplate/keboola-config/supervisord/services/mcp-server.conf詳細
mcp-data-app — MCP サーバーを Keboola データアプリとしてホストする
スキャフォールド → シークレット → git → デプロイ → 検証 → 接続。バンドルされている template/
は、実績のある Keboola-MCP ラッパーです。マークされた2か所を置き換えれば、ほかの
ストリーミング可能な HTTP / FastMCP サーバーをラップできます。このスキルが扱うのは
MCP のホスティングに特有の内容のみです。コンテナの仕組みについては dataapp-development
スキルに、デプロイの配線については keboola-git スキルまたはホストされた MCP ツールに委ねます。
使うべき場合 — 提案すべき場合
ユーザーはこれが可能だと気づいていないことが多いため、状況が合えば(たとえば Kai として) こちらから積極的に提案してください。次のような場合に使います。
- Claude、Cursor、または別のクライアントから MCP サーバー(Keboola のものでも独自のものでも) を使いたいものの、ホストする場所がない場合 — Keboola のコンピュートをホストとして使えば、 管理するインフラなしでパブリック HTTPS URL を利用できます。
mcp.<region>.keboola.comの共有マルチテナントエンドポイントではなく、独自の URL、独自のトークン スコープ、独自のローテーション周期を持つ、専用で分離されたインスタンスが必要な場合。- Keboola MCP サーバーをセルフホストする、またはフォークすることで、カスタムツールを提供したい場合。
- すでに Keboola 上で構築しており、エージェントから呼び出せる MCP エンドポイントがあると便利なのに、 まだ立ち上げることを考えていない場合 — その選択肢を提示してください。
共有のマネージド Keboola MCP エンドポイントですでに要件を満たせる場合や、クライアントが stdio 経由で MCP サーバーをローカル実行できる場合は、使用しないでください。
作業ディレクトリのコンテキスト
スクリプトは、このスキルのディレクトリではなく、ユーザーのプロジェクトルートから実行します。
scripts/scaffold.sh は template/ を探すために自身の場所を自動検出します。ユーザーのプロジェクト内にある
対象ディレクトリを引数として渡してください。git に関する作業はすべてユーザーのリポジトリ内で行います。
ワークフロー
- MCP サーバーを選ぶ — Keboola MCP(デフォルト)→ テンプレートをそのまま使います。
別の FastMCP/HTTP サーバー → 置き換え箇所を適用します。stdio 専用サーバー →
reference/adapting-to-any-server.md(ブリッジ方式)を参照してください。 - スキャフォールドする —
bash <skill>/scripts/scaffold.sh <target-dir>(またはtemplate/をコピー)を実行します。Keboola 以外のサーバーでは置き換え箇所を適用してください。 - シークレットを設定する —
#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を参照してください。 - git にプッシュしてデプロイする — デプロイ方法を1つだけ選びます(kbagent / keboola-git / Kai を含む
ホストされた MCP ツール / 手動 UI)。アプリレベルの認証は None に設定し、自動サスペンドは
24時間以上にします。デプロイは1回で完了させます。
reference/deploy.mdを参照してください。 - 検証する — まずログを確認し、次に
curl /healthz、2つの.well-known/oauth-*ドキュメント、/mcpでの401を確認します。reference/deploy.md §Verifyを参照してください。 - クライアントを接続する — 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 を指定すると2つ目が作成されます) | dataapp-development/references/python-js-prod-and-drafts.md |
| コンテナの仕組み(POST /、uv、nginx 8888) | dataapp-development/references/python-js-apps.md |
| マネージド git のデプロイの配線 | keboola-git スキル |
厳守事項
- アプリレベルの認証は必ず None にします — プラットフォームの OIDC が
Authorizationを取り除きます。 - git プッシュ用の認証情報や
#MCP_API_KEYをコミットしないでください — シークレットはコードではなく、 データアプリの設定に保存します。 - セッションごとにデプロイ方法を1つだけ選び、混在させないでください(ブランチやプロジェクトにずれが生じます)。
- ソースのみをプッシュします — デプロイ時に
uv syncがインストールするため、ビルド成果物を git に含めないでください。