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üruv
Paketmanager.datasets/
: Standardverzeichnis, in dem heruntergeladene Kaggle-Datensätze gespeichert werden.
Aufstellen
- Klonen Sie das Repository:Copy
- Erstellen Sie eine virtuelle Umgebung (empfohlen):Copy
- Abhängigkeiten installieren: Verwenden von pip:Oder mit UV:CopyCopy
- 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:Copy - Sie 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.
- Erstellen Sie
- 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 oderC:\Users\<Your User Name>\.kaggle\kaggle.json
unter Windows). Diekaggle
Bibliothek erkennt diese Datei automatisch, wenn die Umgebungsvariablen nicht gesetzt sind.
- Laden Sie Ihre
- Methode 1 (empfohlen): Umgebungsvariablen
Ausführen des Servers
- Stellen Sie sicher, dass Ihre virtuelle Umgebung aktiv ist.
- Führen Sie den MCP-Server aus:Der Server wird gestartet und registriert seine Ressourcen, Tools und Eingabeaufforderungen. Sie können über einen MCP-Client oder kompatible Tools mit ihm interagieren.Copy
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
search_kaggle_datasets(query='heart disease')
aus.
- Der Server führt
- Agent: „Laden Sie den Datensatz ‚user/heart-disease-dataset‘ herunter.“
- Der Server führt
download_kaggle_dataset(dataset_ref='user/heart-disease-dataset')
aus.
- Der Server führt
- 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.
- Der Server führt
- Agent: (Sendet die Eingabeaufforderung an ein Code generierendes Modell) -> Empfängt EDA-Python-Code.
You must be authenticated.
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
- -securityAlicense-qualityAllows you to explore and manipulate kintone data using AI tools such as Claude Desktop!Last updated -9GoMIT License
- AsecurityAlicenseAqualityAllows the use of Kagi's API for web searching and content enrichment through methods like fastgpt, enrich/web, and enrich/news.Last updated -32PythonMIT License
- AsecurityAlicenseAqualityThis 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 -713PythonMIT License
- AsecurityAlicenseAqualityEnables integration with Kibela API for searching and retrieving notes, allowing LLMs to interact with Kibela content seamlessly.Last updated -3354TypeScriptMIT License