Kaggle MCP Server: Competitions, Datasets, Models
Access Kaggle competitions, datasets, kernels, and models via an MCP server with seamless Kaggle API integration for MCP-compatible clients like Claude Desktop
npx -y @Seif-Sameh/Kaggle-mcp.gitOverview
The Kaggle MCP Server wraps the Kaggle API behind a Model Context Protocol (MCP)–compatible HTTP server so MCP-enabled clients (for example, Claude Desktop) can discover and interact with Kaggle competitions, datasets, kernels (notebooks), and models as first‑class tools. Instead of manually switching between a web browser and an LLM interface, the server exposes Kaggle resources programmatically through lightweight endpoints that return tool definitions and resource payloads usable by MCP clients.
This server is useful when you want to integrate Kaggle content into automated workflows, research assistants, or LLM-based development environments. It handles authentication against Kaggle, surfaces commonly used queries (search competitions, list datasets, fetch kernels), and serves file download links or metadata without forcing each client to implement the Kaggle API itself.
Features
- Exposes Kaggle Competitions, Datasets, Kernels (notebooks), and Models as MCP-compatible tools
- Seamless Kaggle API authentication using standard Kaggle credentials (kaggle.json or env vars)
- Endpoints to search, list, inspect, and download Kaggle resources
- Lightweight HTTP server suitable for local use, CI jobs, or as a private service
- Intended for integration with MCP-capable clients such as Claude Desktop
Installation / Configuration
Clone the repository and choose an installation method (Docker or local runtime). The server requires valid Kaggle credentials.
Clone the repo:
Obtain credentials
- Visit your Kaggle account -> “Create API Token” to download kaggle.json
- Either place kaggle.json at ~/.kaggle/kaggle.json or export environment variables KAGGLE_USERNAME and KAGGLE_KEY
Example: set credentials with environment variables
Run with Docker (recommended for isolation)
# build
# run (exposes service on 3000)
Run locally (Node.js example)
# install dependencies
# configure env and start
If the repository uses Python, the equivalent steps are:
Quick test (after server starts)
# or list tools
Common environment variables
| Variable | Purpose | Default |
|---|---|---|
| KAGGLE_USERNAME | Kaggle username or use kaggle.json | required |
| KAGGLE_KEY | Kaggle API key | required |
| PORT | HTTP port to listen on | 3000 |
| LOG_LEVEL | Server log verbosity | info |
Available Resources
The server exposes a set of MCP-compatible tools that map to Kaggle concepts. Each tool usually supports query/list/get operations and returns metadata, preview text, and download links.
- Competitions: search competitions, retrieve description, leaderboard info, and data files
- Datasets: search datasets, list files, download dataset archives or individual files
- Kernels (notebooks): list kernels for a dataset/competition, fetch kernel metadata and source
- Models: list Kaggle models, fetch model metadata and artifacts
- Files: download raw files (CSV, images, notebooks, model weights) through proxied links
Example endpoint mapping (typical)
| Endpoint | Purpose |
|---|---|
| GET /tools | List available MCP tools |
| GET /tools/competitions | Search or list competitions |
| GET /tools/datasets | Search or list datasets |
| GET /tools/kernels | Fetch kernels for given dataset/competition |
| GET /download?path=… | Proxy/download a specific Kaggle file |
Note: exact endpoint paths may vary; consult the server’s /tools or /openapi endpoint after startup to discover its live API.