Skip to main content
Glama
README.md
# ilac-mcp

[![test](https://github.com/dckaratas/ilac-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/dckaratas/ilac-mcp/actions/workflows/test.yml)

Türkiye'de ruhsatlı beşeri ilaçlar için [TİTCK](https://www.titck.gov.tr) verisini yapay zekâ asistanlarına
açan bir [Model Context Protocol](https://modelcontextprotocol.io) sunucusu.

*An MCP server exposing Turkish Medicines and Medical Devices Agency (TİTCK) drug lists: search,
generic equivalents, licence and e-prescription status.*

> ⚠️ **Tıbbi tavsiye değildir.** Veriler TİTCK'nın kamuya açık listelerinden derlenir. İlaç kullanımı
> veya değişikliği için hekim ya da eczacıya danışın.

## Neler yapabilir?

| Araç | Açıklama |
|---|---|
| `ilac_ara` | Ürün adı, etkin madde, barkod ya da ATC koduyla arama. Türkçe karakter ve büyük/küçük harf fark etmez. |
| `ilac_detay` | Barkodla tek ürün: ruhsat no/tarihi, askı durumu, reçete türü, temel ilaç listeleri. |
| `esdeger_bul` | Aynı ATC kodu, aynı doz ve aynı form grubundaki ürünler; diğer doz/formlar ayrıca listelenir. |
| `haftalik_degisiklikler` | Son e-reçete listesinde yeni eklenen ve değişen ürünler. |
| `veri_guncelle` | TİTCK'dan güncel listeleri indirip yerel veritabanını yeniden kurar. |
| `veri_durumu` | Yerel verinin hangi tarihli listelerden kurulduğu. |

Örnek sorular: *"Parol 500 mg tabletin eşdeğerleri neler?"*, *"8699522095650 barkodlu ilaç e-reçetede aktif mi?"*,
*"Bu hafta e-reçete listesine hangi ilaçlar eklendi?"*

## Kurulum

[uv](https://docs.astral.sh/uv/) gerekir.

```bash
git clone https://github.com/dckaratas/ilac-mcp
cd ilac-mcp
uv run ilac-mcp sync    # TİTCK listelerini indirir (~4 MB, ~20 sn)
```

### Claude Desktop / Cursor / VS Code

İstemcinin MCP yapılandırmasına ekleyin (yolu kendi klasörünüzle değiştirin):

```json
{
  "mcpServers": {
    "ilac": {
      "command": "uv",
      "args": ["run", "--directory", "C:\\Dev\\mcp\\ilac-mcp", "ilac-mcp"]
    }
  }
}
```

İlk çağrıda veri yoksa sunucu listeleri kendisi indirir.

### Komut satırı

```bash
uv run ilac-mcp ara "majezik"
uv run ilac-mcp sync
```

## Veri kaynakları

| Liste | Güncellenme | Kullanılan alanlar |
|---|---|---|
| [Ruhsatlı Beşeri Tıbbi Ürünler Listesi](https://www.titck.gov.tr/dinamikmodul/85) | Haftalık (cuma) | Barkod, ürün adı, etkin madde, ATC, ruhsat sahibi/no/tarihi, askı durumu |
| [SKRS E-Reçete İlaç Listesi](https://www.titck.gov.tr/dinamikmodul/43) | Haftalık (salı) | Aktif/pasif, reçete türü, ATC adı, temel ilaç listeleri, haftalık değişiklikler |

İki liste barkod üzerinden birleştirilir. Veri yerelde saklanır (Windows: `%LOCALAPPDATA%\ilac-mcp`);
konumu `ILAC_MCP_DATA_DIR` ortam değişkeniyle değiştirilebilir.

### Veri ve lisans

Bu repo **yalnızca kodu** içerir ve MIT lisanslıdır. TİTCK verisi repoda dağıtılmaz; her kullanıcının
makinesinde doğrudan titck.gov.tr'den indirilir. Yanıtlar kaynak ve liste tarihini içerir.

## Bilinen sınırlar

- **Eşdeğerlik sezgiseldir.** Doz ve form ürün adından çıkarılır; ürünlerin ~%28'inde doz, ~%19'unda form
  tespit edilemiyor. Bu ürünler `farkli_doz` altında görünür.
- **Fiyat yok.** TİTCK'nın güncel fiyat listesi giriş gerektiriyor; kamuya açık referans fiyat listesi
  düzensiz yayımlanıyor.
- **Prospektüs (KT/KÜB) henüz yok.** Yol haritasında.

## Yol haritası

- [ ] KT/KÜB metinlerinden bölüm getirme (endikasyon, doz, yan etki, uyarılar)
- [ ] Referans fiyat listesi ve fiyat geçmişi
- [ ] Ruhsat iptal listesi ve geri çekme duyuruları
- [ ] PyPI yayını (`uvx ilac-mcp`)

## Geliştirme

```bash
uv run pytest
git config core.hooksPath .githooks   # commit öncesi kontrolleri etkinleştirir (bir kez)
```

Commit öncesi kanca; anahtar/secret dosyalarını ve TİTCK verisini engeller, [gitleaks](https://github.com/gitleaks/gitleaks)
ile secret taraması yapar ve testleri çalıştırır. gitleaks'in `PATH`'te olması gerekir. CI aynı taramayı
tüm git geçmişi üzerinde tekrarlar.

Testler gerçek TİTCK dosyalarının başlık ve sayfa yapısını taklit eden küçük örnek dosyalar kullanır.

TDQS

A3.8/5.0

Scored across 6 tools

Disambiguation4/5

Each tool has a recognizable focus: free-text lookup (ilac_ara), single-record detail by barcode (ilac_detay), equivalence lookup (esdeger_bul), change feed, and data maintenance. The main soft overlap is that ilac_ara also accepts barcodes/ATC codes, which can make it a tempting substitute for ilac_detay or esdeger_bul, but the descriptions make the intended split clear.

Naming Consistency4/5

All names are lowercase snake_case with a noun-then-action/qualifier shape (ilac_ara, ilac_detay, veri_guncelle, veri_durumu), and the shared ilac_/veri_ prefixes group related tools. Two tools (esdeger_bul, haftalik_degisiklikler) break the prefix grouping, which is a minor deviation rather than an inconsistency.

Tool Count5/5

Six tools is a tight, purposeful set for a drug-lookup server: one search, one detail, one equivalence helper, one change feed, and two data-lifecycle tools. Nothing appears redundant and no obvious step of the workflow is missing a tool.

Completeness4/5

The surface covers the core lifecycle well: query, single-record inspection, equivalent-drug discovery, change tracking, and data freshness/refresh. Gaps are minor — there is no way to browse or filter lists (e.g. by prescription type, SGK reimbursement, or active-ingredient-only enumeration) other than free-text search.

Maintenance

ActivityMaintained
ResponsivenessNo issues