kaggle-mcp

by arrismo
Verified

Kaggle MCP(モデルコンテキストプロトコル)サーバー

このリポジトリには、 fastmcpライブラリを使用して構築されたMCP(モデルコンテキストプロトコル)サーバー( server.py )が含まれています。Kaggle APIと連携して、データセットの検索とダウンロードのためのツール、およびEDAノートブック生成のためのプロンプトを提供します。

プロジェクト構造

  • server.py : FastMCP サーバーアプリケーション。Kaggle とやり取りするためのリソース、ツール、プロンプトを定義します。
  • .env.example : 環境変数(Kaggle API 認証情報)のサンプルファイル。ファイル名を.envに変更し、必要な情報を入力してください。
  • requirements.txt : 必要な Python パッケージをリストします。
  • pyproject.toml & uv.lock : uvパッケージ マネージャーのプロジェクト メタデータとロックされた依存関係。
  • datasets/ : ダウンロードした Kaggle データセットが保存されるデフォルトのディレクトリ。

設定

  1. リポジトリをクローンします。
    git clone <repository-url> cd <repository-directory>
  2. 仮想環境を作成します (推奨):
    python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` # Or use uv: uv venv
  3. 依存関係をインストールします: pip を使用します:
    pip install -r requirements.txt
    またはuvを使用します:
    uv sync
  4. Kaggle API 資格情報を設定します。
    • 方法1(推奨): 環境変数
      • .envファイルを作成する
      • .envファイルを開き、Kaggle ユーザー名と API キーを追加します。
        KAGGLE_USERNAME=your_kaggle_username KAGGLE_KEY=your_kaggle_api_key
      • APIキーはKaggleアカウントページ( Account > API > Create New API Token )から取得できます。ユーザー名とキーを含むkaggle.jsonファイルがダウンロードされます。
    • 方法2: kaggle.jsonファイル
      • Kaggle アカウントからkaggle.jsonファイルをダウンロードします。
      • kaggle.jsonファイルを適切な場所(Linux/macOS の場合は通常~/.kaggle/kaggle.json 、Windows の場合はC:\Users\<Your User Name>\.kaggle\kaggle.json )に配置します。環境変数が設定されていない場合、 kaggleライブラリはこのファイルを自動的に検出します。

サーバーの実行

  1. 仮想環境がアクティブであることを確認します。
  2. MCP サーバーを実行します。
    uv run kaggle-mcp
    サーバーが起動し、リソース、ツール、プロンプトが登録されます。MCPクライアントまたは互換ツールを使用してサーバーと対話できます。

サーバー機能

サーバーは、モデル コンテキスト プロトコルを通じて次の機能を公開します。

ツール

  • search_kaggle_datasets(query: str) :
    • 指定されたクエリ文字列に一致する Kaggle 上のデータセットを検索します。
    • 参照、タイトル、ダウンロード数、最終更新日などの詳細を含む、一致する上位 10 個のデータセットの JSON リストを返します。
  • download_kaggle_dataset(dataset_ref: str, download_path: str | None = None) :
    • 特定の Kaggle データセットのファイルをダウンロードして解凍します。
    • dataset_ref : username/dataset-slugの形式のデータセット識別子 (例: kaggle/titanic )。
    • download_path (オプション): データセットのダウンロード先を指定します。省略した場合は、サーバースクリプトの場所を基準とした相対パス./datasets/<dataset_slug>/がデフォルトとなります。

プロンプト

  • generate_eda_notebook(dataset_ref: str) :
    • 指定された Kaggle データセット参照の基本的な探索的データ分析 (EDA) ノートブックを作成するための AI モデル (Gemini など) に適したプロンプト メッセージを生成し、
    • プロンプトでは、データの読み込み、欠損値のチェック、視覚化、基本的な統計をカバーする Python コードが求められます。

Claudeデスクトップに接続しています

Claude > 設定 > 開発者 > 構成の編集 > claude_desktop_config.json に移動して、以下を追加します。

{ "mcpServers": { "kaggle-mcp": { "command": "kaggle-mcp", "cwd": "<path-to-their-cloned-repo>/kaggle-mcp" } } }

使用例

AI エージェントまたは MCP クライアントは、次のようにしてこのサーバーと対話できます。

  1. エージェント: 「Kaggle で「心臓病」に関するデータセットを検索してください」
    • サーバーはsearch_kaggle_datasets(query='heart disease')を実行します。
  2. エージェント: 「データセット 'user/heart-disease-dataset' をダウンロードしてください」
    • サーバーはdownload_kaggle_dataset(dataset_ref='user/heart-disease-dataset')を実行します。
  3. エージェント: 「'user/heart-disease-dataset' の EDA ノートブックプロンプトを生成します」
    • サーバーはgenerate_eda_notebook(dataset_ref='user/heart-disease-dataset')を実行します。
    • サーバーは構造化されたプロンプト メッセージを返します。
  4. エージェント: (コード生成モデルにプロンプトを送信します) -> EDA Python コードを受信します。
-
security - not tested
-
license - not tested
-
quality - not tested

Kaggle API と連携して、データセットの検索とダウンロードのためのツールと、EDA ノートブックを生成するためのプロンプトを提供します。

  1. Project Structure
    1. Setup
      1. Running the Server
        1. Server Features
          1. Tools
          2. Prompts
        2. Connecting to Claude Desktop
          1. Usage Example
            ID: arwswog1el