# MCP Emre Kalem Server

🔐 **Microsoft hesabı ile giriş zorunlu** MCP server. Örnek veri listesi üzerinde arama ve filtreleme işlemleri yapar.

## 🚀 Hızlı Kurulum

### 1. Global Yükleme
```bash
npm install -g mcp-emre-kalem
```

### 2. Azure OAuth Kurulumu

1. [Azure Portal](https://portal.azure.com) → **App registrations** → **New registration**
2. **Single tenant** seç
3. **Redirect URI:** `https://localhost:3000/callback`
4. **Client ID** ve **Client Secret** oluştur

### 3. Environment Variables

**ÖNEMLİ:** Server'ı çalıştıracağınız dizinde `.env` dosyası oluşturun:

```bash
# Çalışma dizininizde (VS Code workspace vs.)
# Template kopyala:
cp env.example .env

# Veya manuel oluştur:
echo "MICROSOFT_CLIENT_ID=your-azure-client-id" > .env
echo "MICROSOFT_CLIENT_SECRET=your-azure-client-secret" >> .env
```

### 4. Çalıştır
```bash
# .env dosyasının olduğu dizinde çalıştırın
mcp-emre-kalem
```

⚠️ **Not:** Server `.env` dosyasını mevcut working directory'de arar.

## 🔧 Özellikler

Bu MCP server aşağıdaki araçları sağlar:

- **search_items**: Liste içinde metin arama yapar
- **get_item_by_id**: ID'ye göre öğe getirir  
- **list_all_items**: Tüm öğeleri listeler
- **get_categories**: Mevcut kategorileri gösterir
- **filter_by_tags**: Etiketlere göre filtreler
- **auth_status**: Microsoft giriş durumunu kontrol eder

## Örnek Veri

Server, programlama dilleri, framework'ler ve araçlar hakkında örnek veriler içerir:
- JavaScript, Python, TypeScript
- React, Vue.js
- Node.js, Docker
- Git, MySQL, MongoDB

## Kullanım

Server MCP protokolü üzerinden STDIO transport kullanır. MCP istemcisi ile bağlantı kurulduktan sonra araçları kullanabilirsiniz.

### Örnek Arama Sorguları:
- "javascript" - JavaScript ile ilgili öğeler
- "database" - Veritabanı araçları  
- "frontend" - Frontend teknolojileri
- "kolay" - Kolay seviyedeki öğeler

### Kategoriler:
- Programlama Dili
- Framework
- Runtime
- DevOps
- Versiyon Kontrol
- Veritabanı

## Geliştirme

Geliştirme modunda çalıştırmak için:
```bash
npm run dev
```

Bu mod dosya değişikliklerini otomatik algılar ve server'ı yeniden başlatır. 