kaggle-mcp
MCP server for Kaggle
Documentation
Kaggle MCP Server
A Model Context Protocol (MCP) server that exposes Kaggle dataset search, download, and EDA prompt generation to MCP clients such as Claude Desktop.
Features
- Search Kaggle datasets by keyword.
- Download and unzip Kaggle datasets locally.
- Generate a starter Exploratory Data Analysis (EDA) prompt for a Kaggle dataset.
- Supports Kaggle credentials via environment variables or the standard `kaggle.json` file.
- Runs locally, in Docker, or through Smithery.
Available MCP Capabilities
Tools
`search_kaggle_datasets(query: str)`
Searches Kaggle for datasets matching `query` and returns up to 10 results as JSON.
Returned fields include:
- `ref`
- `title`
- `subtitle`
- `download_count`
- `last_updated`
- `usability_rating`
`download_kaggle_dataset(dataset_ref: str, download_path: str | None = None)`
Downloads and unzips a Kaggle dataset.
- `dataset_ref`: Kaggle dataset reference in `owner/dataset-slug` format, for example `kaggle/titanic`.
- `download_path`: Optional local output path. If omitted, files are saved to `./datasets//`.
Prompts
`generate_eda_notebook(dataset_ref: str)`
Creates a prompt for generating basic Python EDA code for the provided Kaggle dataset reference. The prompt asks for data loading, missing-value checks, visualizations, and summary statistics.
Requirements
- Python 3.10+
- Kaggle account and API token
- An MCP-compatible client
Kaggle Credentials
Create a Kaggle API token from your Kaggle account settings:
1. Go to .
2. Select Create New API Token.
3. Download `kaggle.json`.
Use either environment variables or the standard Kaggle config file.
Option 1: Environment variables
Create a `.env` file in the project root:
KAGGLE_USERNAME=your_kaggle_username
KAGGLE_KEY=your_kaggle_api_keyOption 2: `kaggle.json`
Place `kaggle.json` in the standard Kaggle location:
- macOS/Linux: `~/.kaggle/kaggle.json`
- Windows: `C:\Users\\.kaggle\kaggle.json`
On macOS/Linux, make sure the file is not world-readable:
chmod 600 ~/.kaggle/kaggle.jsonInstallation
git clone
cd kaggle-mcpCreate and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activateInstall dependencies with one of the following methods.
Using uv
uv syncUsing pip
pip install -r requirements.txtRunning Locally
With `uv`:
uv run kaggle-mcpOr run the server module directly:
python src/server.pyThe server communicates over MCP stdio and is intended to be launched by an MCP client.
Claude Desktop Configuration
Open Claude Desktop settings, then go to Developer > Edit Config and add this server to `claude_desktop_config.json`.
If installed in the project environment:
{
"mcpServers": {
"kaggle-mcp": {
"command": "uv",
"args": ["run", "kaggle-mcp"],
"cwd": "/absolute/path/to/kaggle-mcp",
"env": {
"KAGGLE_USERNAME": "your_kaggle_username",
"KAGGLE_KEY": "your_kaggle_api_key"
}
}
}
}If using `kaggle.json`, you can omit the `env` block.
Docker
Build the image:
docker build -t kaggle-mcp .Run with credentials from `.env`:
docker run --rm -i --env-file .env kaggle-mcpSmithery
This repository includes `smithery.yaml`. Smithery starts the server over stdio and passes these configuration values as environment variables:
- `kaggleUsername` -> `KAGGLE_USERNAME`
- `kaggleKey` -> `KAGGLE_KEY`
Example Workflow
1. Ask your MCP client: "Search Kaggle for heart disease datasets."
2. The client calls `search_kaggle_datasets`.
3. Choose a dataset reference from the results, for example `user/heart-disease-dataset`.
4. Ask: "Download `user/heart-disease-dataset`."
5. Ask: "Generate an EDA notebook prompt for `user/heart-disease-dataset`."
Project Structure
.
├── Dockerfile
├── README.md
├── pyproject.toml
├── requirements.txt
├── smithery.yaml
├── src/
│ ├── __init__.py
│ └── server.py
└── uv.lockDownloaded datasets are saved under `datasets/` by default. This directory is created at runtime when downloads are requested.
Frequently asked questions
What is kaggle-mcp?
kaggle-mcp is MCP server for Kaggle
How do I install kaggle-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is kaggle-mcp open source?
Yes — it is hosted on GitHub at https://github.com/arrismo/kaggle-mcp and has 27 stars.
Related MCP tools
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
An LLM agent that conducts deep research (local and web) on any given topic and generates a long report with citations. Built for the Model Context Protocol to
🔥 MaxKB is an open-source platform for building enterprise-grade agents. MaxKB 是强大易用的开源企业级智能体平台。 for the Model Context Protocol. Enhance AI assistants with po
A powerful coding agent toolkit providing semantic retrieval and editing capabilities (MCP server & other integrations) Python-based implementation.
Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! Python-based implementation. Trusted by 11000+ developers.
AWS MCP Servers — helping you get the most out of AWS, wherever you use MCP. Python-based implementation. Trusted by 6900+ developers.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP