MCP Directory

How to add Kaggle MCP Server to Windsurf

Search and download Kaggle datasets and generate starter EDA prompts from your MCP client. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.

Last updated June 14, 2026 · 38 · stdio · apikey

Windsurf config for Kaggle MCP Server

uv sync
{
  "mcpServers": {
    "kaggle-mcp-server": {
      "command": "uv",
      "args": [
        "run",
        "kaggle-mcp"
      ],
      "env": {
        "KAGGLE_USERNAME": "your_kaggle_username",
        "KAGGLE_KEY": "your_kaggle_api_key"
      }
    }
  }
}

Setup steps

  1. 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
  2. 2Paste the Kaggle MCP Server config below.
  3. 3Fill in placeholder secrets, then save.
  4. 4Click Refresh in the MCP panel.
  5. 5Kaggle MCP Server's tools become available to Cascade.

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)

What Kaggle MCP Server can do in Windsurf

search_kaggle_datasets

Searches 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_dataset

Downloads 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_notebook

An 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.

Security

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 + Windsurf FAQ

Where is the Windsurf config file?

Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Kaggle MCP Server config there under the "mcpServers" key and restart the client.

Is Kaggle MCP Server safe to use with Windsurf?

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/).

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.

View repo Full Kaggle MCP Server page