io.github.Seif-Sameh/Kaggle-mcp
A Model Context Protocol (MCP) server that provides seamless integration with the Kaggle API, enabling interaction with competitions, datasets, kernels, and models through MCP-compatible clients.
README
Kaggle MCP Server
<!-- mcp-name: io.github.Seif-Sameh/Kaggle-mcp -->
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
- Go to https://www.kaggle.com/account
- Scroll to the "API" section
- Click "Create New Token"
- This downloads
kaggle.jsonwith 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.
-
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
- macOS:
-
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"
}
}
}
}
<details> <summary>Running from a local source clone (alternative)</summary>
{
"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"
}
}
}
}
</details>
-
Restart Claude Desktop
-
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.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.