Skip to main content
Glama
muzaffer-svg

Kaggle MCP Server

by muzaffer-svg
README.md
# 🚀 Kaggle MCP Server (Zero-Config AI Assistant)

<div align="center">

![Node.js](https://img.shields.io/badge/Node.js-18%2B-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)
![MCP Protocol](https://img.shields.io/badge/MCP-Model%20Context%20Protocol-8A2BE2?style=for-the-badge)
![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)
![Bundle](https://img.shields.io/badge/Install-Drag%20%26%20Drop%20(.mcpb)-success?style=for-the-badge)

**Claude Desktop ve yapay zeka istemcilerini Kaggle veri setleriyle buluşturan, sıfır konfigürasyonlu ve token dostu köprü sunucusu.**

</div>

---

## 🌟 Proje Hakkında

**Kaggle MCP Server**, veri bilimcilerin ve geliştiricilerin yapay zeka ile veri seti analizini en hızlı şekilde yapabilmesi için tasarlanmıştır. Geleneksel terminal ayarları, environment dosyaları (`.env`) veya karmaşık JSON konfigürasyonlarıyla uğraşmadan, doğrudan **`.mcpb` (Model Context Protocol Bundle)** mimarisi üzerinden tak-çalıştır bir deneyim sunar.

Arka planda doğrudan **Kaggle REST API** ile haberleşir; Python veya harici bir CLI kurulumuna gereksinim duymaz.

---

## 🏗️ Mimari ve Mühendislik Gücü

Bu proje sıradan bir API köprüsü değil, büyük veri setlerinin yapay zekanın sınırlı bağlam penceresiyle (context window) verimli bir şekilde çalışabilmesi için özel olarak optimize edilmiştir.

### 1. Akıllı Token Budama (Smart Context Trimming)
Kaggle üzerindeki 500 MB'lık bir CSV dosyasının tamamını yapay zekaya beslemek sistemi kilitler ve token limitini anında tüketir. 
* **Çözümümüz:** `preview_data` aracı, veri setini indirdiğinde tüm dosyayı belleğe yüklemek yerine sadece **ilk 15 satırı (head)** ve sütun adlarını dinamik olarak kesip alır.
* **Sonuç:** %95'e varan token tasarrufu ve saniyeler içinde mükemmel tablo yapısı analizi.

### 2. Sıfır Konfigürasyon (.mcpb Paketi)
* Kullanıcılar paketi indirdiklerinde hiçbir dosya yolunu düzenlemez; Claude Desktop arayüzü kimlik doğrulaması için özel bir arayüz açar.

### 3. Modüler Katman Mimarisi
* **`index.js` (İletişim Katmanı):** Standart IO (stdio) üzerinden JSON-RPC protokolüyle LLM ile haberleşir.
* **`tools.js` (Mantık Katmanı):** Araç şemalarını ve yönlendirme (routing) mantığını barındırır.
* **`kaggleService.js` (Ağ Katmanı):** Basic Auth şifrelemesi ve Kaggle REST API çağrılarını saf Node.js `fetch` API ile gerçekleştirir.

---

## 🧰 İçerideki Araçlar (Tools)

| Araç Adı | Açıklama | Anahtar Parametreler |
|---|---|---|
| **`search_kaggle`** | Kaggle üzerinde anahtar kelimelere göre güncel veri seti araması yapar. | `query` (Aranacak kelime)<br>`sortBy` (relevance, hottest, votes, updated) |
| **`preview_data`** | Veri setindeki dosyaları listeler ve seçilen dosyanın ilk satırlarını getirir. | `datasetRef` (Örn: `kazanova/sentiment140`)<br>`fileName` (Opsiyonel - Örn: `train.csv`) |

---

## ⚡ Kurulum ve Kullanım

### Yöntem 1: Tak-Çalıştır (.mcpb Paketi) - *Önerilen*

En hızlı kullanım yöntemi için terminal açmanıza gerek yoktur:

1. Bu deponun sağ tarafındaki **[Releases](../../releases)** bölümünden güncel **`kaggle-veri-asistani.mcpb`** dosyasını indirin.
2. İndirdiğiniz dosyayı doğrudan **Claude Desktop** uygulamasına sürükleyip bırakın (veya üzerine çift tıklayın).
3. Açılan konfigürasyon ekranında Kaggle **Kullanıcı Adınızı (`username`)** ve hesap ayarlarınızdan aldığınız **API Anahtarınızı (`key`)** girin.
4. **Install / Kur** butonuna basın.

> **Not:** Kaggle API anahtarınızı almak için [Kaggle Ayarlar](https://www.kaggle.com/settings) sayfasından *Create New Token* butonuna tıklayabilirsiniz.

---

### Yöntem 2: Geliştirici / Manuel Kurulum

Kodlar üzerinde değişiklik yapmak veya kendi sunucunuzda çalıştırmak isterseniz:

```bash
# 1. Repoyu klonlayın
git clone [https://github.com/muzaffer-svg/kaggle-mcp-server.git](https://github.com/muzaffer-svg/kaggle-mcp-server.git)
cd kaggle-mcp-server

# 2. Bağımlılıkları yükleyin
npm install

# 3. Ortam değişkenlerinizi tanımlayın (.env dosyası oluşturarak)
# KAGGLE_USERNAME=senin_kullanici_adin
# KAGGLE_KEY=senin_api_anahtarin

# 4. Sunucuyu test edin
node index.js