Skip to main content
Glama

Kaggle MCP Server (Cloud & Koyeb Ready) 🚀

A full-featured Model Context Protocol (MCP) server for Kaggle, adapted to run on Koyeb (and any container or serverless cloud) over Server-Sent Events (SSE).

Supports remote execution on Kaggle Jupyter Servers (GPU/TPU), Kaggle Competitions, Datasets, Kernels, and Discussions.


⚡ Deployment on Koyeb

You can deploy this repository to Koyeb without Docker using Koyeb's native Buildpack, or with Docker.

  1. Fork or push this repository to your GitHub account: https://github.com/Ragu-123/kaggle-mcp

  2. Log in to Koyeb Console.

  3. Click Create Service → Select GitHub.

  4. Select repository Ragu-123/kaggle-mcp and branch main.

  5. Under Builder, select Buildpack (Koyeb will automatically detect requirements.txt and Procfile).

  6. Under Environment Variables & Secrets, add:

    • KAGGLE_USERNAME: Your Kaggle username

    • KAGGLE_KEY: Your Kaggle API key (from https://www.kaggle.com/settings -> API)

    • MCP_TRANSPORT: sse (default)

    • PORT: 8000 (default)

  7. Under Ports, expose port 8000 as HTTP with path /.

  8. Click Deploy.

Koyeb will assign your service a public URL, for example: https://<service-name>-<org>.koyeb.app.

Option 2: Docker Deployment

If you prefer building from Dockerfile:

  • Under Builder, select Dockerfile.

  • Add the same environment secrets (KAGGLE_USERNAME, KAGGLE_KEY).

  • Click Deploy.


Related MCP server: kaggle-mcp

🔌 Connecting Remote AI Agents

Once deployed, connect your AI agents (Claude, ChatGPT, LibreChat, Cursor, Antigravity, OpenCode, etc.) using the SSE URL:

https://<your-koyeb-subdomain>.koyeb.app/sse

Health Check

You can test the server anytime in your browser or with curl:

curl https://<your-koyeb-subdomain>.koyeb.app/health

Response:

{
  "status": "healthy",
  "service": "kaggle-agent-mcp",
  "transport": "sse",
  "sse_endpoint": "/sse",
  "messages_endpoint": "/messages/"
}

🛠️ Key Capabilities & Flexible Paths

1. Kaggle Remote Kernel Execution (GPU/TPU)

  • kaggle_remote_kernel_set_url(url): Connect to a Kaggle Jupyter notebook server.

  • kaggle_remote_kernel_execute(code, file_path, timeout): Execute code or scripts directly on the remote Kaggle GPU/TPU kernel.

  • kaggle_remote_kernel_job_status(job_id): Check execution status (running, completed, failed).

  • kaggle_remote_kernel_job_logs(job_id): Retrieve stdout and stderr logs.

  • kaggle_remote_kernel_wait_for_job(job_id): Wait until execution completes.

  • kaggle_remote_kernel_job_cancel(job_id): Interrupt and abort kernel execution.

2. Flexible Download Directories

Every tool that downloads files supports an optional path parameter so agents can specify their own local or workspace directories:

  • competition_download(competition, file_name, path): Download competition data directly into path.

  • competition_leaderboard_download(competition, path): Download leaderboard CSV into path.

  • dataset_download(owner, dataset_slug, file_name, path, unzip): Download and unpack datasets into path.

  • dataset_download_file(owner, dataset_slug, file_name, path): Download single dataset file into path.

  • kernel_pull(kernel, path, competition_slug): Pull notebook and metadata directly into path.

  • kernel_output(kernel, path): Pull kernel execution outputs into path.


🔒 Security Best Practice

Do NOT commit your Kaggle API key or username to GitHub. Always configure them as Koyeb Secrets / Environment Variables in the Koyeb web dashboard.

Related MCP Connectors

Related MCP Servers