mcpField
M
mcp-data-app

mcp-data-app

github.com/keboolaクラウド・DevOps17166 回インストール1 日前に更新
リポジトリ

mcp-data-app について

mcp-data-app は、MCP サーバーを Keboola のデータアプリとしてホストするスキルです。セットアップ、デプロイ、検証、クライアント接続に加え、ほかの HTTP/stdio サーバーの適応方法も扱います。

主な機能

  1. 01Keboola データアプリの作成
  2. 02シークレットと認証の設定
  3. 03MCP エンドポイントのデプロイと検証
  4. 04ほかの HTTP/stdio サーバーへの適応
  5. 05MCP クライアントの接続

活用シーン

  1. 01別途インフラを管理せず MCP サーバーをホスト
  2. 02分離されたサーバーインスタンスの作成
  3. 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.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 ラッパーです。マークされた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 に関する作業はすべてユーザーのリポジトリ内で行います。

ワークフロー

  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 にプッシュしてデプロイする — デプロイ方法を1つだけ選びます(kbagent / keboola-git / Kai を含む ホストされた MCP ツール / 手動 UI)。アプリレベルの認証は None に設定し、自動サスペンドは 24時間以上にします。デプロイは1回で完了させます。reference/deploy.md を参照してください。
  5. 検証する — まずログを確認し、次に curl /healthz、2つの .well-known/oauth-* ドキュメント、/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 を指定すると2つ目が作成されます)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. セッションごとにデプロイ方法を1つだけ選び、混在させないでください(ブランチやプロジェクトにずれが生じます)。
  4. ソースのみをプッシュします — デプロイ時に uv sync がインストールするため、ビルド成果物を git に含めないでください。

コメント