MCP Connector

Interact with Kaggle Competitions and Datasets

An MCP server for Kaggle - browse and submit competitions, manage datasets and kernels, and publish versioned ML models.

Works with kaggle

Maintainer of this project? Claim this page to edit the listing.


91
Spark score
out of 100
Updated last month
Version 0.1.1
Models
universal

Add to Favorites

Why it matters

Seamlessly integrate with the Kaggle API to manage competitions, datasets, kernels, and models. Automate tasks like downloading data, submitting predictions, and managing datasets.

Outcomes

What it gets done

01

List and search Kaggle competitions and datasets

02

Download competition files and datasets

03

Submit predictions to competitions

04

Create and manage Kaggle datasets

Install

Add it to your toolbox

Run in your project directory:

curl -fsSL https://spark.entire.vc/get/vb-kaggle-mcp | bash

Capabilities

Tools your agent gets

competitions_list

List and search available competitions

competition_list_files

List all files in a competition

competition_download_file

Download a specific competition file

competition_download_files

Download all competition files

competition_submit

Submit predictions to a competition

competition_submissions

View your submission history

competition_leaderboard_view

View the competition leaderboard

competition_leaderboard_download

Download leaderboard data

+7 tools

Overview

Kaggle MCP Server

This MCP server exposes 38 tools for Kaggle: competition browsing and submission, dataset search/download/versioning, kernel push/pull, and full model and model-instance CRUD with version management. Use it to browse, download, submit to, or manage Kaggle competitions, datasets, kernels, and ML models conversationally. Requires a Kaggle account with API credentials.

What it does

A comprehensive MCP server for the Kaggle API covering 38 tools across four areas. Competitions (8 tools): list and search competitions, list and download competition files either individually or all at once, submit predictions, view submission history, and view or download the leaderboard. Datasets (9 tools): search and filter, get metadata, list files, check processing status, download files individually or all at once, create a new dataset, initialize its metadata, and create new versions with full version control. Kernels (7 tools): search and filter, list files, initialize metadata, push a kernel to Kaggle, pull or download one, download its output files, and check execution status. Models (14 tools): search and filter, get details, and initialize, create, update, and delete a model - plus the same lifecycle (get, initialize, create, update, delete) for model instances, along with creating, downloading, and deleting specific model versions.

When to use - and when NOT to

Use it to browse, download, submit to, or manage Kaggle competitions, datasets, kernels or notebooks, and ML models conversationally - for example, "list active computer vision competitions," "download the Titanic dataset," or "submit my predictions.csv with the message Initial baseline model." It requires a Kaggle account with API credentials (a username and API key generated from kaggle.com/account). It is not useful for actions Kaggle's own API doesn't support.

Capabilities

Tool naming is consistent across all four areas: the plural collection-search tool for each area (competitions_list, datasets_list, kernels_list, models_list) is distinct from the singular per-item tools that act on one competition, dataset, kernel, or model at a time (competition_submit, dataset_create, kernel_push, model_update, and so on) - a caller can predict which form to use once they know whether they're searching a collection or acting on a specific item.

How to install

uvx mcp-server-kaggle

Or pip install mcp-server-kaggle, uv tool install mcp-server-kaggle, or build from source with git clone plus uv sync. Requires Python 3.10 or higher. Get credentials from kaggle.com/account (Create New Token, which downloads a kaggle.json file), then set KAGGLE_USERNAME and KAGGLE_API_KEY as environment variables or in a .env file. A Claude Desktop config looks like:

{
  "mcpServers": {
    "kaggle": {
      "command": "uvx",
      "args": ["mcp-server-kaggle"],
      "env": { "KAGGLE_USERNAME": "YOUR_KAGGLE_USERNAME", "KAGGLE_API_KEY": "YOUR_KAGGLE_API_KEY" }
    }
  }
}

It can also run standalone via mcp-server-kaggle or as a Python module with python -m kaggle_mcp.

Who it's for

Data scientists and ML practitioners who want to browse competitions and datasets, submit predictions, manage notebooks, or publish and version models directly from Claude Desktop or another MCP client, instead of switching to Kaggle's website or CLI.

Source README

Kaggle MCP Server

PyPI
MCP Registry
License: MIT

A Model Context Protocol (MCP) server that provides seamless integration with the Kaggle API. Interact with Kaggle competitions, datasets, kernels, and models through MCP-compatible clients like Claude Desktop.

Features

  • Competitions: List, download files, submit, view leaderboards and submissions
  • Datasets: Search, download, create, and manage datasets with version control
  • Kernels: List, push, pull, and manage Kaggle notebooks and scripts
  • Models: Create, update, and manage ML models and instances with full version control

Installation

Prerequisites

  • Python 3.10 or higher
  • A Kaggle account with API credentials

Install from PyPI

The recommended way is to run the server with uvx, which handles the install for you:

uvx mcp-server-kaggle

Or install it explicitly:

pip install mcp-server-kaggle
# or
uv tool install mcp-server-kaggle

Install from Source

For development or local modifications:

git clone https://github.com/Seif-Sameh/Kaggle-mcp.git
cd Kaggle-mcp
uv sync

Setup

1. Get Your Kaggle API Credentials

  1. Go to https://www.kaggle.com/account
  2. Scroll to the "API" section
  3. Click "Create New Token"
  4. This downloads kaggle.json with your credentials

2. Configure Credentials

Option A: Environment Variables (Recommended)

export KAGGLE_USERNAME=your_username
export KAGGLE_API_KEY=your_api_key

Or add to your ~/.zshrc or ~/.bashrc:

echo 'export KAGGLE_USERNAME=your_username' >> ~/.zshrc
echo 'export KAGGLE_API_KEY=your_api_key' >> ~/.zshrc
source ~/.zshrc

Option B: Using .env File

Create a .env file in your project directory:

KAGGLE_USERNAME=your_username
KAGGLE_API_KEY=your_api_key

Usage

With Claude Desktop

The recommended way to use Kaggle MCP is with Claude Desktop.

  1. Locate your Claude Desktop config file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. Add the Kaggle MCP server configuration:

{
  "mcpServers": {
    "kaggle": {
      "command": "uvx",
      "args": ["mcp-server-kaggle"],
      "env": {
        "KAGGLE_USERNAME": "YOUR_KAGGLE_USERNAME",
        "KAGGLE_API_KEY": "YOUR_KAGGLE_API_KEY"
      }
    }
  }
}
Running from a local source clone (alternative)
{
  "mcpServers": {
    "kaggle": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/Kaggle-mcp",
        "run",
        "mcp-server-kaggle"
      ],
      "env": {
        "KAGGLE_USERNAME": "YOUR_KAGGLE_USERNAME",
        "KAGGLE_API_KEY": "YOUR_KAGGLE_API_KEY"
      }
    }
  }
}
  1. Restart Claude Desktop

  2. Start using Kaggle through Claude!

Try asking Claude:

  • "List the latest Kaggle competitions"
  • "Download the Titanic dataset"
  • "Show me my recent competition submissions"
  • "Search for NLP datasets"

Standalone Usage

Run the MCP server directly:

mcp-server-kaggle

Or as a Python module:

python -m kaggle_mcp

Available Tools

Competitions (8 tools)

Tool Description
competitions_list List and search available competitions
competition_list_files List all files in a competition
competition_download_file Download a specific competition file
competition_download_files Download all competition files
competition_submit Submit predictions to a competition
competition_submissions View your submission history
competition_leaderboard_view View the competition leaderboard
competition_leaderboard_download Download leaderboard data

Datasets (10 tools)

Tool Description
datasets_list Search and filter datasets
dataset_metadata Get dataset metadata
dataset_list_files List files in a dataset
dataset_status Check dataset processing status
dataset_download_file Download a specific dataset file
dataset_download_files Download all dataset files
dataset_create Create a new dataset
dataset_initialize Initialize dataset metadata
dataset_create_version Create a new dataset version

Kernels (7 tools)

Tool Description
kernels_list Search and filter kernels
kernel_list_files List files in a kernel
kernel_initialize Initialize kernel metadata
kernel_push Push a kernel to Kaggle
kernel_pull Download a kernel
kernel_output Download kernel output files
kernel_status Check kernel execution status

Models (14 tools)

Tool Description
models_list Search and filter models
model_get Get model details and metadata
model_initialize Initialize model metadata
model_create Create a new model
model_update Update model information
model_delete Delete a model
model_instance_get Get model instance details
model_instance_initialize Initialize model instance metadata
model_instance_create Create a new model instance
model_instance_update Update a model instance
model_instance_delete Delete a model instance
model_instance_version_create Create a new model version
model_instance_version_download Download a model version
model_instance_version_delete Delete a model version

Examples

Example 1: Working with Competitions

Ask Claude:

"List active Kaggle competitions about computer vision"

Claude will use the competitions_list tool to search and display relevant competitions.

Example 2: Downloading Datasets

Ask Claude:

"Download the Titanic dataset to my Downloads folder"

Claude will use dataset_download_files to fetch all dataset files.

Example 3: Submitting to Competitions

Ask Claude:

"Submit my predictions.csv to the Titanic competition with the message 'Initial baseline model'"

Claude will use competition_submit to upload your submission.

FAQ

Common questions

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.