Skip to main content
Glama

kaggle-mcp

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クライアントまたは互換ツールを使用してサーバーと対話できます。

Dockerコンテナの実行

1. Kaggle API 認証情報を設定する

このプロジェクトでは、Kaggle データセットにアクセスするために Kaggle API 認証情報が必要です。

  • https://www.kaggle.com/settingsにアクセスし、「Create New API Token」をクリックしてkaggle.jsonファイルをダウンロードします。
  • kaggle.jsonファイルを開き、ユーザー名とキーをプロジェクト ルートの新しい.envファイルにコピーします。
KAGGLE_USERNAME=your_username KAGGLE_KEY=your_key

2. Dockerイメージをビルドする

docker build -t kaggle-mcp-test .

3. .envファイルを使用してDockerコンテナを実行する

docker run --rm -it --env-file .env kaggle-mcp-test

これにより、Kaggle の認証情報がコンテナ内の環境変数として自動的に読み込まれます。


サーバー機能

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

ツール

  • 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 コードを受信します。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

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

  1. プロジェクト構造
    1. 設定
      1. サーバーの実行
        1. Dockerコンテナの実行
          1. Kaggle API 認証情報を設定する
          2. Dockerイメージをビルドする
          3. .envファイルを使用してDockerコンテナを実行する
        2. サーバー機能
          1. ツール
          2. プロンプト
        3. Claudeデスクトップに接続しています
          1. 使用例

            Related MCP Servers

            • -
              security
              A
              license
              -
              quality
              Allows you to explore and manipulate kintone data using AI tools such as Claude Desktop!
              Last updated -
              9
              Go
              MIT License
              • Apple
              • Linux
            • A
              security
              A
              license
              A
              quality
              Allows the use of Kagi's API for web searching and content enrichment through methods like fastgpt, enrich/web, and enrich/news.
              Last updated -
              3
              2
              Python
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              This server facilitates interaction with Keboola's Storage API, enabling users to browse and manage project buckets, tables, and components efficiently through Claude Desktop.
              Last updated -
              7
              57
              Python
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              Enables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.
              Last updated -
              3
              31
              6
              TypeScript
              MIT License
              • Apple
              • Linux

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/arrismo/kaggle-mcp'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server