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üruv
Paketmanager.datasets/
: Standardverzeichnis, in dem heruntergeladene Kaggle-Datensätze gespeichert werden.
Aufstellen
Klonen Sie das Repository:
git clone <repository-url> cd <repository-directory>Erstellen Sie eine virtuelle Umgebung (empfohlen):
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate` # Or use uv: uv venvAbhängigkeiten installieren: Verwenden von pip:
pip install -r requirements.txtOder mit UV:
uv syncRichten 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_keySie erhalten Ihren API-Schlüssel auf Ihrer Kaggle-Kontoseite (
Account
>API
>Create New API Token
). Dadurch wird einekaggle.json
Datei mit Ihrem Benutzernamen und Schlüssel heruntergeladen.
Methode 2:
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 oderC:\Users\<Your User Name>\.kaggle\kaggle.json
unter Windows). Diekaggle
Bibliothek erkennt diese Datei automatisch, wenn die Umgebungsvariablen nicht gesetzt sind.
Ausführen des Servers
Stellen Sie sicher, dass Ihre virtuelle Umgebung aktiv ist.
Führen Sie den MCP-Server aus:
uv run kaggle-mcpDer 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:
2. Erstellen Sie das Docker-Image
3. Führen Sie den Docker-Container mit Ihrer .env-Datei aus
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 Formatusername/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:
Anwendungsbeispiel
Ein KI-Agent oder MCP-Client könnte folgendermaßen mit diesem Server interagieren:
Agent: „Durchsuchen Sie Kaggle nach Datensätzen zum Thema ‚Herzkrankheiten‘“
Der Server führt
Agent: „Laden Sie den Datensatz ‚user/heart-disease-dataset‘ herunter.“
Der Server führt
Agent: „Generieren Sie eine EDA-Notebook-Eingabeaufforderung für ‚user/heart-disease-dataset‘“
Der Server führt
Der Server gibt eine strukturierte Eingabeaufforderungsnachricht zurück.
Agent: (Sendet die Eingabeaufforderung an ein Code generierendes Modell) -> Empfängt EDA-Python-Code.
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.
Related MCP Servers
- AsecurityAlicenseAqualityAllows the use of Kagi's API for web searching and content enrichment through methods like fastgpt, enrich/web, and enrich/news.Last updated -2MIT License
- -securityAlicense-qualityConnects Claude AI to the Kaggle API through the Model Context Protocol, enabling competition, dataset, and kernel operations through the AI interface.Last updated -16MIT License
Dumpling AI MCP Serverofficial
AsecurityAlicenseAqualityIntegrates with Dumpling AI to provide data scraping, content processing, knowledge management, and code execution capabilities through tools for web interactions, document handling, and AI services.Last updated -271727MIT License- AsecurityAlicenseAqualityProvides tools to interact with the Dash documentation browser API, allowing users to list installed docsets, search across documentation, and enable full-text search.Last updated -346MIT License