Skip to main content

A Model Context Protocol (MCP) server for the Kaggle API

Project description

Kaggle MCP Server

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 Source

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

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": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/Kaggle-mcp",
        "run",
        "kaggle_mcp/server.py"
      ],
      "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:

kaggle-mcp

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.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_kaggle-0.1.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_kaggle-0.1.1-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_kaggle-0.1.1.tar.gz.

File metadata

  • Download URL: mcp_server_kaggle-0.1.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for mcp_server_kaggle-0.1.1.tar.gz
Algorithm Hash digest
SHA256 2485f02476fede5be414c7a006ce06e50988f2ec639343e605c278dbea5ac4ad
MD5 d9307d3ed7bb7ed92c8665438c77b57a
BLAKE2b-256 10b39bee1b9cd1567d701f4ab51276fa86dae62af8e762f53536673a18b5c1fb

See more details on using hashes here.

File details

Details for the file mcp_server_kaggle-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_server_kaggle-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 327e937b7e36652d4b410b630c4b5abe361f74f6928c4f933ff030f72bd99aa1
MD5 909da859aff2c3bf322b680e93c6688c
BLAKE2b-256 a24cb5956658e8ac295acb080035d36923dae471cb7da69a61c4e9a498b083e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page