Metadata-Version: 2.4
Name: emko-mcp
Version: 1.11.0
Summary: Emko Elektronik ürün manuellerini (PDF) arayıp okuyan MCP sunucusu
Author: Oğuzhan Coşkun
License: MIT
Keywords: claude,datasheet,emko,manual,mcp,pdf
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Documentation
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: mcp>=1.2.0
Requires-Dist: pdfplumber>=0.11
Requires-Dist: pypdf>=4.0
Requires-Dist: youtube-transcript-api>=0.6
Requires-Dist: yt-dlp>=2025.1.1
Description-Content-Type: text/markdown

# emko-mcp

Emko Elektronik (emkoelektronik.com.tr) ürün manuellerini arayıp okuyan MCP sunucusu.

## Özellikler (1.0.0)

- **3 tool:** `emko_search_manuals` (ara), `emko_get_manual` (indir + metin/tablo çıkar), `emko_crawl_category` (kategori tara ve indeksle)
- **Tablo çıkarımı:** Register tabloları `[Sayfa N tabloları]` başlıklarıyla markdown olarak verilir (pdfplumber)
- **Akıllı dosya seçimi:** `.pdf` adlı dosyalar öncelikli; indirilen içerik PDF değilse (config/DATA.TXT) sıradaki aday otomatik denenir
- **Türkçe duyarsız arama:** "Universal" araması "Üniversal"i de bulur
- **Çoklu indeks arama:** Yükleme Merkezi + oturumdaki tüm kategori taramalarında birden arar

## YouTube (1.1.0)

- `emko_list_videos` — EMKO YouTube kanalındaki videoları listeler (başlık filtresi desteklenir)
- `emko_video_transcript` — bir videonun transkriptini zaman damgalı bloklar halinde getirir (TR/EN, otomatik altyazı dahil)

## Büyük belgelerde sayfalama (1.2.0)

Çok büyük kılavuzlar (ör. IDE kılavuzu, ~800 bin karakter) tek yanıta sığmaz.
`emko_get_manual` böyle bir belgede ilk parçayı verir ve sonuna "devamı için
`start_char=N`" bilgisi ekler. Aynı sorguyu o `start_char` ile tekrar
çağırarak sonraki parçayı alırsınız. Küçük belgelerde bu gerekmez; davranış
öncekiyle aynıdır (`start_char` varsayılanı 0).

## Tam video listesi (1.3.0)

`emko_list_videos` artık kanalın **tüm** videolarını listeler (önceki
sürümlerde yalnızca en son ~15 video gelebiliyordu). Liste öncelikle
yt-dlp ile çekilir ve oturum boyunca önbelleğe alınır; böylece yt-dlp
yalnızca bir kez çalışır, sonraki çağrılar anında yanıtlanır. yt-dlp
`pip install` ile otomatik gelir, ayrıca bir kurulum gerektirmez.
Herhangi bir nedenle yt-dlp kullanılamazsa daha sınırlı yedeklere
(kanal sayfası, ardından son ~15 videoyu veren RSS) düşülür ve bu
durumda listenin eksik olabileceği yanıtta belirtilir.

## Çok dilli manuel desteği (1.6.0)

Emko'nun İngilizce "Download Center"ı (`/en/e-support/download-center`) ve
İngilizce ürün sayfaları (`/en/products/...`) ayrı İngilizce manueller barındırır
(`IPERTU_`, `ENG_`, `EN_`, `Multi-Languages` önekli). MCP artık hem Türkçe hem
İngilizce kaynakları — hem indirme merkezini hem ürün sayfalarını — tarayabilir.

`emko_search_manuals` ve `emko_get_manual` `language` parametresi alır; varsayılan
`"auto"`:

* Sorgunun dili metinden otomatik sezilir — bu istemciden bağımsızdır (Claude,
  Codex, ChatGPT ya da başka bir MCP istemcisi fark etmez; ek işlem gerekmez).
* Türkçe sorgu (Türkçe harf/kelime) → Türkçe kaynak önce.
* İngilizce sorgu → İngilizce kaynak önce.
* Türkçe **dışındaki** diller (Almanca, Fransızca, Arapça...) Türkçe işareti
  taşımadığından İngilizce kaynağa yönlenir.
* Dil belirsizse (ürün kodu/ortak terim, ör. `ESM-3721`, `loadcell`) her iki
  kaynak da taranır; sezilen dilde sonuç çıkmazsa diğer dile düşülür (dengeli).

Elle sabitlemek için `language="tr"` veya `language="en"` verilebilir. Belirli bir
`index_url` verildiğinde bu parametre yok sayılır.

**Akıllı ürün sayfası yedeği:** Otomatik arama hız için önce indirme merkezlerini
(Türkçe Yükleme Merkezi + İngilizce Download Center) ve önceden taranmış sayfaları
tarar. Yalnızca burada **hiç sonuç çıkmazsa**, ürün ana sayfalarından
(`/tr/urunler`, `/en/products`) başlayıp ürün sayfalarına dalarak yeniden arar —
böylece sadece ürün sayfasında bulunan dosyalar da yakalanır, ama normal aramalar
yavaşlamaz. (`index_url` verildiğinde yedek devreye girmez.)

## Otomatik kurulum (1.5.0)

`pip install emko-mcp` sonrası tek komutla config'e ekleyin:

```
emko-mcp-setup
```

Bu komut, makinede kurulu olan tüm desteklenen hedeflere emko'yu ekler:
Claude Desktop (config dosyasını doğrudan düzenler), Codex (`codex mcp add`)
ve VS Code / Claude Code (`claude mcp add`). Kurulu olmayan hedefler atlanır.

* Config yoksa oluşturulur; varsa mevcut sunucular **bozulmadan** korunur.
* emko zaten ekliyse yalnızca yolu güncellenir (çift kayıt olmaz).
* Her değişiklikten önce `.bak` yedeği alınır.

Seçenekler:

```
emko-mcp-setup --dry-run          # hiçbir şeye dokunma, ne yapılacağını göster
emko-mcp-setup --only claude      # yalnızca Claude Desktop
emko-mcp-setup --only codex       # yalnızca Codex
emko-mcp-setup --only vscode      # yalnızca VS Code (Claude Code)
emko-mcp-setup --command <yol>    # emko-mcp yolu otomatik bulunamazsa elle ver
```

Kurulumdan sonra ilgili uygulamayı (Claude Desktop / VS Code) yeniden başlatın.

## Okunabilir kopya seçimi (1.4.0)

Emko sitesinde aynı kılavuz bazen iki kopya halinde bulunur: biri gerçek
metin katmanlı, diğeri görüntü-tabanlı (metin çıkmaz). `emko_get_manual`
artık bir kopyadan metin çıkaramazsa (görüntü-tabanlı çıkarsa) otomatik
olarak sıradaki kopyayı dener; böylece hangi kaynaktan (ürün sayfası ya da
Yükleme Merkezi) çekilirse çekilsin okunabilir sürüm bulunur. Yalnızca
görüntü-tabanlı kopya varsa, durum yanıtta belirtilir.

## Kurulum

```
pip install emko-mcp
```

## Claude Desktop config

```json
{
  "mcpServers": {
    "emko": { "command": "emko-mcp" }
  }
}
```

`emko-mcp` komutu PATH'te değilse tam yol kullanın (pip kurulum çıktısındaki Scripts klasörü):

```json
"emko": { "command": "C:\\...\\Scripts\\emko-mcp.exe" }
```

## Kullanım örnekleri

- "EtherCAT gateway kılavuzunu getir"
- "I/O genişleme modülleri kategorisini tara" → sonra "SMR1P1 modülünün register tablosunu göster"
