Kaggle MCP Server
by Dishant27
README.md
# <img src="https://www.kaggle.com/static/images/site-logo.svg" alt="Kaggle Logo" width="80" height="24"> Kaggle MCP Server
A Model Context Protocol (MCP) server for interacting with Kaggle competitions through Claude or other compatible AI assistants.
## 📖 Learn More
Want to understand the full potential of this server? Check out the detailed article:
[AI-Powered Data Science Revolution: How Kaggle MCP Server Transforms AI Capabilities](https://www.linkedin.com/pulse/ai-powered-data-science-revolution-how-kaggle-mcp-server-kumar-zn7sc/)
## Prerequisites
- Node.js 16 or higher
- TypeScript
- Kaggle CLI installed (`pip install kaggle`)
- Kaggle API credentials configured
## Authentication Setup
There are two ways to authenticate with the Kaggle API:
### Option 1: Using a kaggle.json file (Standard approach)
1. Install the Kaggle CLI:
```bash
pip install kaggle
```
2. Go to https://www.kaggle.com/account and click "Create New API Token"
3. This will download a `kaggle.json` file with your credentials
4. Create a `.kaggle` directory in your home folder (if it doesn't exist)
```bash
# On Linux/Mac
mkdir -p ~/.kaggle
# On Windows (PowerShell)
New-Item -ItemType Directory -Force -Path "$HOME\.kaggle"
```
5. Move the downloaded `kaggle.json` file to the `.kaggle` directory:
```bash
# On Linux/Mac
mv ~/Downloads/kaggle.json ~/.kaggle/
chmod 600 ~/.kaggle/kaggle.json # Set permissions
# On Windows (PowerShell)
Move-Item -Path "$HOME\Downloads\kaggle.json" -Destination "$HOME\.kaggle\kaggle.json"
```
### Option 2: Using Claude for Desktop Configuration (Simpler)
You can directly add your Kaggle credentials to your `claude_desktop_config.json` file:
```json
{
"mcpServers": {
"kaggle": {
"command": "node",
"args": ["/path/to/build/index.js"],
"env": {
"KAGGLE_USERNAME": "your-kaggle-username",
"KAGGLE_KEY": "your-kaggle-api-key"
}
}
}
}
```
Replace `your-kaggle-username` and `your-kaggle-api-key` with your actual Kaggle credentials.
## Installation
1. Clone this repository
2. Install dependencies:
```bash
npm install
```
3. Build the project:
```bash
npm run build
```
## Usage
### Running the server
```bash
npm start
```
Or directly:
```bash
node build/index.js
```
### Connecting with Claude for Desktop
Add the following configuration to your `claude_desktop_config.json` file.
## Example Queries
Once connected to Claude, you can ask questions like:
- "Show me the active Kaggle competitions"
- "Search for image classification competitions"
- "Download the files for the Titanic competition"
- "Submit my predictions.csv file to the housing-prices competition with the message 'Random forest model'"
- "Show me my submissions for the digit-recognizer competition"
## Troubleshooting
### Authentication Issues
If you encounter authentication errors:
1. Verify your credentials are correctly set:
- If using `kaggle.json`, check it's in the correct location:
- Linux/Mac: `~/.kaggle/kaggle.json`
- Windows: `C:\Users\<USERNAME>\.kaggle\kaggle.json`
- If using environment variables, check the `env` section in your `claude_desktop_config.json`
2. For `kaggle.json`, check if the file has the correct permissions:
- On Linux/Mac, run: `chmod 600 ~/.kaggle/kaggle.json`
3. Make sure your API token is still valid. If needed, generate a new one from your Kaggle account page.
### Installation Issues
If the Kaggle CLI is not found:
1. Make sure you have installed it with: `pip install kaggle`
2. Verify that the Kaggle command is in your PATH by running: `kaggle --version`
## Current Capabilities
The server currently provides the following operations for Kaggle competitions:
### 🔍 List Competitions
- List all active Kaggle competitions
- Search competitions by keyword
- Support for pagination to browse through results
- Display competition details including name, category, deadline, and prize
### 📥 Download Competition Files
- Download files for any competition
- Specify custom download path
- Force re-download of existing files
- Works with all public competition datasets
### 📤 Submit to Competitions
- Submit prediction files to competitions
- Add custom submission messages
- Get immediate feedback on submission status
- Requires prior acceptance of competition rules on Kaggle website
### 📋 List Submissions
- View submission history for a specific competition
- See submission status and scores
- Track multiple submissions over time
## All Features Now Available
All the features previously listed as "Coming Soon" are now available in the `feature-complete` branch of this repository. This includes:
- **Dataset Operations**: Browse, search, download, and analyze datasets from Kaggle
- **Notebook Integration**: Work with Kaggle notebooks directly from your AI assistant
- **User Management**: Check profile information and competition standings
- **Competition Analysis**: Get detailed competition metrics and leaderboard insights
Check out the `feature-complete` branch for the most up-to-date and comprehensive implementation of the Kaggle MCP server.
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues