kaggle-mcp

Integrations

  • Supports loading Kaggle API credentials from environment variables stored in a .env file.

  • Enables running the MCP server in a containerized environment with Docker, maintaining Kaggle API credentials through environment variables.

  • Provides tools for searching and downloading Kaggle datasets, and generating prompts for exploratory data analysis (EDA) notebooks on specific datasets.

Kaggle MCP-Server (Model Context Protocol)

Dieses Repository enthält einen MCP-Server (Model Context Protocol) ( server.py ), der mit der Bibliothek fastmcp erstellt wurde. Er interagiert mit der Kaggle-API und bietet Tools zum Suchen und Herunterladen von Datensätzen sowie eine Eingabeaufforderung zum Generieren von EDA-Notebooks.

Projektstruktur

  • server.py : Die FastMCP-Serveranwendung. Sie definiert Ressourcen, Tools und Eingabeaufforderungen für die Interaktion mit Kaggle.
  • .env.example : Eine Beispieldatei für Umgebungsvariablen (Kaggle-API-Anmeldeinformationen). Benennen Sie die Datei in .env um und geben Sie Ihre Daten ein.
  • requirements.txt : Listet die erforderlichen Python-Pakete auf.
  • pyproject.toml & uv.lock : Projektmetadaten und gesperrte Abhängigkeiten für uv Paketmanager.
  • datasets/ : Standardverzeichnis, in dem heruntergeladene Kaggle-Datensätze gespeichert werden.

Aufstellen

  1. Klonen Sie das Repository:
    git clone <repository-url> cd <repository-directory>
  2. Erstellen Sie eine virtuelle Umgebung (empfohlen):
    python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` # Or use uv: uv venv
  3. Abhängigkeiten installieren: Verwenden von pip:
    pip install -r requirements.txt
    Oder mit UV:
    uv sync
  4. Richten Sie die Kaggle-API-Anmeldeinformationen ein:
    • Methode 1 (empfohlen): Umgebungsvariablen
      • Erstellen Sie .env Datei
      • Öffnen Sie die .env Datei und fügen Sie Ihren Kaggle-Benutzernamen und API-Schlüssel hinzu:
        KAGGLE_USERNAME=your_kaggle_username KAGGLE_KEY=your_kaggle_api_key
      • Sie erhalten Ihren API-Schlüssel auf Ihrer Kaggle-Kontoseite ( Account > API > Create New API Token ). Dadurch wird eine kaggle.json Datei mit Ihrem Benutzernamen und Schlüssel heruntergeladen.
    • Methode 2: kaggle.json -Datei
      • Laden Sie Ihre kaggle.json Datei von Ihrem Kaggle-Konto herunter.
      • Platzieren Sie die Datei kaggle.json am erwarteten Speicherort (normalerweise ~/.kaggle/kaggle.json unter Linux/macOS oder C:\Users\<Your User Name>\.kaggle\kaggle.json unter Windows). Die kaggle Bibliothek erkennt diese Datei automatisch, wenn die Umgebungsvariablen nicht gesetzt sind.

Ausführen des Servers

  1. Stellen Sie sicher, dass Ihre virtuelle Umgebung aktiv ist.
  2. Führen Sie den MCP-Server aus:
    uv run kaggle-mcp
    Der Server wird gestartet und registriert seine Ressourcen, Tools und Eingabeaufforderungen. Sie können über einen MCP-Client oder kompatible Tools mit ihm interagieren.

Ausführen des Docker-Containers

1. Kaggle-API-Anmeldeinformationen einrichten

Für den Zugriff auf Kaggle-Datensätze sind für dieses Projekt Kaggle-API-Anmeldeinformationen erforderlich.

  • Gehen Sie zu https://www.kaggle.com/settings und klicken Sie auf „Neues API-Token erstellen“, um Ihre kaggle.json Datei herunterzuladen.
  • Öffnen Sie die Datei kaggle.json und kopieren Sie Ihren Benutzernamen und Schlüssel in eine neue .env Datei im Projektstamm:
KAGGLE_USERNAME=your_username KAGGLE_KEY=your_key

2. Erstellen Sie das Docker-Image

docker build -t kaggle-mcp-test .

3. Führen Sie den Docker-Container mit Ihrer .env-Datei aus

docker run --rm -it --env-file .env kaggle-mcp-test

Dadurch werden Ihre Kaggle-Anmeldeinformationen automatisch als Umgebungsvariablen in den Container geladen.


Serverfunktionen

Der Server stellt über das Model Context Protocol die folgenden Funktionen bereit:

Werkzeuge

  • search_kaggle_datasets(query: str) :
    • Sucht auf Kaggle nach Datensätzen, die der angegebenen Abfragezeichenfolge entsprechen.
    • Gibt eine JSON-Liste der 10 am besten übereinstimmenden Datensätze mit Details wie Referenz, Titel, Downloadanzahl und Datum der letzten Aktualisierung zurück.
  • download_kaggle_dataset(dataset_ref: str, download_path: str | None = None) :
    • Lädt Dateien für einen bestimmten Kaggle-Datensatz herunter und entpackt sie.
    • dataset_ref : Die Dataset-Kennung im Format username/dataset-slug (z. B. kaggle/titanic ).
    • download_path (optional): Gibt an, wohin der Datensatz heruntergeladen werden soll. Wenn dieser Pfad weggelassen wird, wird standardmäßig ./datasets/<dataset_slug>/ relativ zum Speicherort des Serverskripts verwendet.

Eingabeaufforderungen

  • generate_eda_notebook(dataset_ref: str) :
    • Generiert eine für ein KI-Modell (wie Gemini) geeignete Eingabeaufforderung, um ein grundlegendes EDA-Notebook (Exploratory Data Analysis) für die angegebene Kaggle-Datensatzreferenz zu erstellen.
    • Die Eingabeaufforderung verlangt Python-Code zum Laden von Daten, zur Überprüfung fehlender Werte, zu Visualisierungen und zu grundlegenden Statistiken.

Verbindung zu Claude Desktop herstellen

Gehen Sie zu Claude > Einstellungen > Entwickler > Konfiguration bearbeiten > claude_desktop_config.json, um Folgendes einzuschließen:

{ "mcpServers": { "kaggle-mcp": { "command": "kaggle-mcp", "cwd": "<path-to-their-cloned-repo>/kaggle-mcp" } } }

Anwendungsbeispiel

Ein KI-Agent oder MCP-Client könnte folgendermaßen mit diesem Server interagieren:

  1. Agent: „Durchsuchen Sie Kaggle nach Datensätzen zum Thema ‚Herzkrankheiten‘“
    • Der Server führt search_kaggle_datasets(query='heart disease') aus.
  2. Agent: „Laden Sie den Datensatz ‚user/heart-disease-dataset‘ herunter.“
    • Der Server führt download_kaggle_dataset(dataset_ref='user/heart-disease-dataset') aus.
  3. Agent: „Generieren Sie eine EDA-Notebook-Eingabeaufforderung für ‚user/heart-disease-dataset‘“
    • Der Server führt generate_eda_notebook(dataset_ref='user/heart-disease-dataset') aus.
    • Der Server gibt eine strukturierte Eingabeaufforderungsnachricht zurück.
  4. Agent: (Sendet die Eingabeaufforderung an ein Code generierendes Modell) -> Empfängt EDA-Python-Code.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

Es interagiert mit der Kaggle-API, um Tools zum Suchen und Herunterladen von Datensätzen sowie eine Eingabeaufforderung zum Generieren von EDA-Notebooks bereitzustellen.

  1. Projektstruktur
    1. Aufstellen
      1. Ausführen des Servers
        1. Ausführen des Docker-Containers
          1. 1. Kaggle-API-Anmeldeinformationen einrichten
          2. 2. Erstellen Sie das Docker-Image
          3. 3. Führen Sie den Docker-Container mit Ihrer .env-Datei aus
        2. Serverfunktionen
          1. Werkzeuge
          2. Eingabeaufforderungen
        3. Verbindung zu Claude Desktop herstellen
          1. Anwendungsbeispiel

            Related MCP Servers

            • -
              security
              A
              license
              -
              quality
              Allows you to explore and manipulate kintone data using AI tools such as Claude Desktop!
              Last updated -
              9
              Go
              MIT License
              • Apple
              • Linux
            • A
              security
              A
              license
              A
              quality
              Allows the use of Kagi's API for web searching and content enrichment through methods like fastgpt, enrich/web, and enrich/news.
              Last updated -
              3
              2
              Python
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              This server facilitates interaction with Keboola's Storage API, enabling users to browse and manage project buckets, tables, and components efficiently through Claude Desktop.
              Last updated -
              7
              13
              Python
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              Enables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.
              Last updated -
              3
              35
              4
              TypeScript
              MIT License
              • Apple
              • Linux

            View all related MCP servers

            ID: arwswog1el