Metadata-Version: 2.5
Name: turk-hukuku-ictihat-mcp
Version: 0.5.1
Summary: Türk yargı kararlarını (Yargıtay, Bölge Adliye, Danıştay, AYM) resmî kaynaklardan yapay zekâ araçlarına açan MCP sunucusu.
Project-URL: Homepage, https://turk-hukuku.com
Project-URL: Documentation, https://turk-hukuku.com/mcp/
Project-URL: Repository, https://github.com/aydincan/turk-hukuku-ictihat-mcp
Project-URL: Issues, https://github.com/aydincan/turk-hukuku-ictihat-mcp/issues
Author: Aydın Can Polatkan
License: MIT
License-File: LICENSE
Keywords: case-law,ictihat,llm,mcp,turkish-law,uyap,yargitay
Requires-Python: >=3.10
Requires-Dist: anyio>=4
Requires-Dist: httpx>=0.27
Requires-Dist: mcp<2,>=1.2.0
Description-Content-Type: text/markdown

# turk-hukuku-ictihat-mcp

Türk **yargı kararlarını** resmî kaynaktan yapay zekâ araçlarına açan bir **MCP sunucusu**:
**Yargıtay** ([Adalet Bakanlığı Mevzuat ve İçtihat](https://mevzuat.adalet.gov.tr)),
**Bölge Adliye ve ilk derece** ([UYAP Emsal](https://emsal.uyap.gov.tr)),
**idari yargı** ([Danıştay](https://karararama.danistay.gov.tr)) ve **anayasa yargısı**
([AYM Kararlar Bilgi Bankası](https://kararlarbilgibankasi.anayasa.gov.tr)).

Amaç tek cümle: model bir karara atıf yaparken künyeyi (**mahkeme, daire, esas/karar no,
tarih**) hafızasından değil **resmî kaynaktan** alsın. Künye yapısal döner ve her sonuç
kararın resmî sayfasına bağlantı (`kaynak`) taşır. Model yine de yanılabilir; her künyeyi
o bağlantıdan teyit edin.

> **Hukuki danışmanlık değildir.** Bu araç içtihada erişimi kolaylaştırır; kararın güncelliğini,
> kesinleşme durumunu ve somut olaya uygunluğunu siz değerlendirin. Bir kararın bağlayıcılığı
> ve emsal değeri ayrı bir hukuki analiz gerektirir.

Ayrıntı: [`SORUMLULUK-REDDI.md`](./SORUMLULUK-REDDI.md) · [`PRIVACY.md`](./PRIVACY.md) (veri toplama yok, telemetri yok; dış bağlantılar yalnızca resmî karar siteleri).

**Belgeler ve kurulum rehberi:** [turk-hukuku.com/mcp](https://turk-hukuku.com/mcp/) · Terminal kullanmıyorsanız [masaüstü uygulaması](https://turk-hukuku.com/uygulama/) bu sunucuyu kendisi kurup çalıştırır (Mac ve Windows).

---

## Ne yapar

| Tool | İşlev |
|------|-------|
| `ictihat_ara(ifade, mahkeme, adet, sayfa)` | Karar arar; künye + atıf + `id` döndürür |
| `karar_getir(karar_id, mahkeme)` | Bir kararın resmî **tam** metni (künye + gerekçe + hüküm) |

`mahkeme` şu değerleri alır:

| Değer | Kapsam | Kaynak |
|-------|--------|--------|
| **`adli`** (varsayılan) | Yargıtay + Bölge Adliye ve ilk derece, birlikte | Bedesten + UYAP Emsal |
| **`yargitay`** | Yargıtay daireleri ve kurulları | Bedesten (mevzuat.adalet.gov.tr) |
| **`emsal`** | Bölge Adliye hukuk daireleri ve ilk derece | UYAP Emsal |
| **`idari`** | Danıştay | karararama.danistay.gov.tr |
| **`anayasa`** | AYM bireysel başvuru | kararlarbilgibankasi.anayasa.gov.tr |
| **`norm`** | AYM norm denetimi (iptal/itiraz) | aynı kaynak |

`karar_getir`'e aramada kullandığın `mahkeme` değerini aynen geçir (`yargitay:` önekli id
her durumda Yargıtay'dan gelir). Sözcükler birlikte aranır, hepsi geçmeli; tam ifade için
çift tırnak kullan (`"ihtiyaç nedeniyle tahliye"`). Yargıtay, emsal ve AYM aramasında
başına eksi hariç tutar (`-ceza`), `OR` "veya" demektir. Kesme işaretinden sonraki ek
atılır ("TMK'nın" → "TMK"). `adli` aramada `adet` en az 2'dir.

Tipik akış: `ictihat_ara("ihtiyaç nedeniyle tahliye", mahkeme="yargitay")` → sonuçtan bir
`id` seç → `karar_getir(id, mahkeme="yargitay")` → kararın tam metni. Her sonuç hazır bir
`atif` taşır: *"Yargıtay 6. Hukuk Dairesi, E.2015/2565 K.2016/25, T.18.01.2016"* ·
*"Danıştay 6. Daire, E.2023/1084 K.2025/10046"* · *"AYM, B. No: 2020/36883, K.T. 16/12/2025"*.
Her sonuç ayrıca kararın herkese açık sayfasını (`kaynak`) verir; Yargıtay ve UYAP Emsal
kararları `mevzuat.adalet.gov.tr/ictihat/<id>` adresinde okunur biçimde açılır.

## Kapsam

- **Yargıtay** (`mahkeme="yargitay"`): hukuk ve ceza daireleri ile kurulların kararları;
  Adalet Bakanlığı'nın Mevzuat ve İçtihat Programı'nın arka ucu (bedesten.adalet.gov.tr).
  Her kararın herkese açık sayfası: `https://mevzuat.adalet.gov.tr/ictihat/<id>`.
- **Bölge Adliye ve ilk derece** (`mahkeme="emsal"`): Bölge Adliye Mahkemeleri hukuk
  daireleri ve bazı ilk derece mahkemeleri (asliye ticaret, fikrî ve sınaî haklar); UYAP
  Emsal. Herkese açık UYAP Emsal Yargıtay kararı içermez.
- **Adli yargı birlikte** (`mahkeme="adli"`, varsayılan): iki kaynağı aynı anda arar;
  Yargıtay sonuçlarının id'si `yargitay:` önekini taşır.
- **İdari yargı** (`mahkeme="idari"`): Danıştay kararları (karararama.danistay.gov.tr,
  390.000+ doküman).
- **Anayasa yargısı** (`mahkeme="anayasa"`): AYM bireysel başvuru kararları
  (kararlarbilgibankasi.anayasa.gov.tr).
- **Norm denetimi** (`mahkeme="norm"`): AYM iptal/itiraz kararları; künye E./K.
  numaraları ve Resmî Gazete bilgisiyle döner (aynı kaynak).

## Nasıl çalışır

Her kaynak bir arama + bir belge uç noktası sunar:

```
Bedesten   : POST /emsal-karar/searchDocuments       + POST /emsal-karar/getDocumentContent
UYAP Emsal : POST /aramalist (aranan)               + GET /getDokuman?id
Danıştay   : POST /aramalist (andKelimeler[])        + GET /getDokuman?id&arananKelime
AYM        : POST /api/core/public/search (JSON; arama da tam metin de aynı uçtan)
```

Sunucu aramayı yapar, künyeleri yapısal döndürür ve metni okunur düz metne çevirir
(Danıştay iç içe HTML kodlamasından, AYM Word-export gövdesinden arındırılır). Tamamen
yereldir; veri toplanmaz.

## Resmî sitelere saygı

- **Kendini tanıtır.** Her istekte kendi User-Agent'ını gönderir:
  `turk-hukuku-ictihat-mcp/<sürüm> (+https://turk-hukuku.com/mcp/)`. Tarayıcı ya da resmî web
  uygulaması gibi davranmaz; bu amaçla başlık eklemez.
- **Site başına sınırlı istek.** Aynı siteye aynı anda tek istek gider ve iki istek arasında
  en az bir saniye beklenir (site başına yaklaşık saniyede bir istek).
- **Oturum içi önbellek.** Getirilen kararlar (en çok 256 karar) yalnızca oturum boyunca
  bellekte tutulur; aynısı yeniden istenince siteye tekrar gidilmez. Diske bir şey yazılmaz.
- **Captcha çözmez, atlamaz; sınırda durur.** Site doğrulama (captcha) isterse, erişimi
  reddederse (HTTP 403), erişim sınırı bildirirse (HTTP 429), beklenen veri yerine başka bir
  sayfaya yönlendirirse ya da bir web sayfası döndürürse sunucu durur, isteği yinelemez ve
  sizi resmî siteye yönlendirir. O siteye bir süre (yaklaşık iki dakika ya da sitenin
  bildirdiği süre kadar) yeni istek göndermez. Doğrulama isteği yalnızca sayfadaki doğrulama
  kutusundan ya da sitenin doğrulama bayrağından anlaşılır; "ben robot değilim" sözünü
  aktaran bir karar sunucuyu durdurmaz.
- **Geçici hatalarda kısa bir ileti verir.** Sitede geçici bir arıza (HTTP 5xx), "bulunamadı"
  yanıtı (HTTP 404) ya da ağ hatası olursa sunucu bunu kısa bir Türkçe iletiyle bildirir ve
  isteği yinelemez; bu durumda bekleme süresi uygulanmaz.

## Kurulum

[PyPI](https://pypi.org/project/turk-hukuku-ictihat-mcp/)'de yayımlıdır; [`uv`](https://docs.astral.sh/uv/)
ile ayrı kurulum gerekmeden çalışır.

### Claude Code

```bash
claude mcp add turk-hukuku-ictihat -- uvx --from turk-hukuku-ictihat-mcp turk-hukuku-ictihat
```

### OpenAI Codex

`~/.codex/config.toml`:

```toml
[mcp_servers.turk-hukuku-ictihat]
command = "uvx"
args = ["--from", "turk-hukuku-ictihat-mcp", "turk-hukuku-ictihat"]
```

### Gemini CLI

`~/.gemini/settings.json` içindeki `mcpServers` altına:

```json
"turk-hukuku-ictihat": {
  "command": "uvx",
  "args": ["--from", "turk-hukuku-ictihat-mcp", "turk-hukuku-ictihat"]
}
```

### Alternatif: pip

```bash
pip install turk-hukuku-ictihat-mcp
# komut: turk-hukuku-ictihat   (ya da: python -m turk_hukuku_ictihat)
```

İlgili: kanun/mevzuat metni için [`turk-hukuku-mevzuat-mcp`](https://github.com/aydincan/turk-hukuku-mevzuat-mcp).

## Lisans

[MIT](./LICENSE) · © 2026 Aydın Can Polatkan

Veriler kaynak kurumlara aittir ([Adalet Bakanlığı](https://mevzuat.adalet.gov.tr),
[UYAP Emsal](https://emsal.uyap.gov.tr), Danıştay, Anayasa Mahkemesi); bu proje yalnızca kamuya
açık resmî karar metnine erişimi kolaylaştıran bağımsız bir istemcidir.

---

*Bu çalışma, ömrünü Türk yargısına adamış babam Hâkim Vahit Polatkan'ın ebedi anısına
ithaf edilmiştir.*

<!-- mcp-name: io.github.aydincan/turk-hukuku-ictihat-mcp -->
