
Kaggle MCP Server
Search and download Kaggle datasets and generate starter EDA prompts from your MCP client.
Add to your client
Copy the config for your MCP client and paste it into its config file.
uv syncPaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"kaggle-mcp-server": {
"command": "uv",
"args": [
"run",
"kaggle-mcp"
],
"env": {
"KAGGLE_USERNAME": "your_kaggle_username",
"KAGGLE_KEY": "your_kaggle_api_key"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Python 3.10+
- A Kaggle account and API token (KAGGLE_USERNAME and KAGGLE_KEY, or kaggle.json)
- An MCP-compatible client (e.g. Claude Desktop)
About Kaggle MCP Server
A Model Context Protocol server that wraps the Kaggle API so MCP clients can search Kaggle datasets, download and unzip them locally, and generate a starter EDA prompt for a chosen dataset. It authenticates with Kaggle via environment variables or a kaggle.json file and can run locally, in Docker, or through Smithery.
Tools & capabilities (3)
search_kaggle_datasetsSearches Kaggle for datasets matching the given query and returns up to 10 results as JSON, with fields including ref, title, subtitle, download_count, last_updated, and usability_rating.
download_kaggle_datasetDownloads and unzips a Kaggle dataset given a dataset_ref in owner/dataset-slug format (e.g. kaggle/titanic). An optional download_path sets the output location; otherwise files are saved to ./datasets/<dataset_slug>/.
generate_eda_notebookAn MCP prompt that creates a prompt for generating basic Python EDA code for a given dataset_ref, covering data loading, missing-value checks, visualizations, and summary statistics.
When to use it
- Search Kaggle for datasets on a topic (e.g. heart disease) directly from an AI chat.
- Download and unzip a chosen Kaggle dataset to your local machine for analysis.
- Generate a starter EDA notebook prompt to kick off exploratory analysis of a dataset.
- Combine search, download, and EDA prompting into an assistant-driven data-science workflow.
Security notes
Requires a Kaggle account and API token (KAGGLE_USERNAME and KAGGLE_KEY, or a kaggle.json file). On macOS/Linux, restrict the credentials file with `chmod 600 ~/.kaggle/kaggle.json`. Downloaded datasets are written to the local filesystem (default ./datasets/).
Kaggle MCP Server FAQ
How do I provide Kaggle credentials?
Either set KAGGLE_USERNAME and KAGGLE_KEY (e.g. in a .env file or the MCP client's env block), or place kaggle.json in the standard Kaggle location (~/.kaggle/kaggle.json on macOS/Linux). If you use kaggle.json you can omit the env block in the client config.
Where are downloaded datasets stored?
By default datasets are saved under ./datasets/<dataset_slug>/. You can override this with the download_path argument of download_kaggle_dataset.
How can I run the server?
Locally with `uv run kaggle-mcp` (or `python src/server.py`), via Docker (`docker run --rm -i --env-file .env kaggle-mcp`), or through Smithery, which starts it over stdio and passes kaggleUsername/kaggleKey as environment variables.
Alternatives to Kaggle MCP Server
Compare all alternatives →Official MCP server providing persistent, file-backed knowledge-graph memory across sessions.
Structured step-by-step reasoning tool for breaking problems into revisable thought sequences.
Fully managed remote server for AWS docs, blogs, What's-New and Well-Architected guidance — no key.
Compare Kaggle MCP Server with: