Projeler · 01

Emsal MCP

Yapay zekâ asistanlarının Türk hukukunda karar ve madde uydurmadan çalışması için geliştirdiğim araştırma sunucusu. Asistan bir kararı hafızasından yazmaz: büronun kendi sunucusundaki 11,1 milyon yargı kararı ve 305 bin mevzuat maddesi içinden bulur, tam metnini okur, atfı metinle karşılaştırır.

Sürüm 1.1.0 · Python · GitHub'da açık kaynak (AGPL-3.0) · English

Kısaca. Emsal MCP, Claude gibi yapay zekâ asistanlarını Yargıtay, Danıştay, Anayasa Mahkemesi ve bölge adliye mahkemesi kararlarıyla mevzuattan oluşan yerel bir korpusa bağlar. Asistan atıf yaparken kararın tam metnine dayanmak zorundadır; tam metni bulunamayan karar alıntıya ve dilekçeye girmez. Büronun günlük hukuki araştırması bu altyapıyla yürüyor.

Ne
MCP sunucusuModel Context Protocol: yapay zekâ asistanlarının dış araçlara ve veri kaynaklarına bağlanması için açık bir standart
Korpus
11.111.190 yargı kararı, 304.906 mevzuat maddesi7 Ekim 2026 ölçümü
Kullanım
Büro içi, tek kullanıcıHerkese açık bir hizmet değil
Kaynak kod
github.com/afsozer/emsal-mcpAçık kaynak, AGPL-3.0 lisansı
Paket
pypi.org/project/emsal-mcppip, pipx ya da uvx ile kurulur

Neden yazdım?

Genel amaçlı yapay zekâ asistanları Türk hukukunda sık sık kendinden emin biçimde yanılıyor: var olmayan bir esas numarası, yanlış daireye atfedilen bir karar, değişiklikten önceki hâliyle aktarılan bir madde. Bu hatalar bir dilekçeye girdiğinde fark edilmesi zordur ve bedeli müvekkile çıkar.

Çözüm, asistanı kaynağa bağlamak: kararı kendi bilgisinden yazmasına izin vermemek ve her atfı resmî kaynaktan alınmış tam metinle karşılaştırmak. Emsal MCP bunu yapan araç takımı.

Korpusta ne var?

KatmanÖlçüGüncelleme
Yargı kararları11.111.190 karar, 1962'den bugüneHer gece
Mevzuat14.351 belge, 304.906 madde: kanun, KHK, Cumhurbaşkanlığı kararnamesi, yönetmelik, tebliğHer hafta
Değişiklik kayıtları96.229 madde değişikliğiHer hafta
Anlam araması dizini29,6 milyon metin parçasıYeni kararlarla birlikte

Korpus nereden geliyor?

Kararların tabanı Türk İçtihat Korpusu: Hamza Bağırsakçı'nın 2026'da Hugging Face'te CC0 (kamu malına adama) lisansıyla yayımladığı veri seti. Set, Yargıtay, Danıştay, UYAP Emsal ve Anayasa Mahkemesinin kamuya açık karar arama sistemlerinden derlenmiş 11.045.085 tekil karardan oluşur:

  • Yargıtay: 9.820.145 karar (1997–2026)
  • UYAP Emsal, bölge adliye ve ilk derece mahkemeleri: 815.702 karar (2017–2026)
  • Danıştay: 386.608 karar (1965–2026)
  • Anayasa Mahkemesi bireysel başvuru: 17.067 karar (2012–2026)
  • Anayasa Mahkemesi norm denetimi: 5.563 karar (1962–2026)

Kararlar veri setinde kaynağındaki anonimleştirilmiş hâlleriyle yer alıyor; metinde kalan T.C. kimlik numarası, IBAN, kart, telefon ve e-posta gibi tanımlayıcılar ayrıca maskelenmiş.

Veri setinin kesim tarihinden sonra verilen kararlar, her gece Adalet Bakanlığının karar arama sistemi Bedesten'den (mevzuat.adalet.gov.tr) artımlı olarak çekilir. Son üç ay her gece yeniden tarandığı için sisteme geç yüklenen kararlar da sonradan yakalanır.

Mevzuat mevzuat.gov.tr'den alınır ve her hafta değişen metinler için yenilenir; belgelerin eski sürümleri arşivde tutulur. Resmî Gazete'nin 2000'den bu yana başlık dizini her sabah güncellenir.

Kararları bu şekilde derleyip işlemek serbesttir: resmen yayımlanan veya ilan olunan mevzuat ile kazai kararların “çoğaltılması, yayılması, işlenmesi veya her hangi bir suretle bunlardan faydalanma serbesttir” (FSEK m. 31).

Nasıl çalışır?

  1. Soru. Asistan bir hukuki soru için karar ya da madde arar; aramayı Emsal MCP'nin araçlarıyla yapar.
  2. Arama. İki arama birlikte çalışır: kelimeye dayalı tam metin araması ve anlam araması. Anlam araması, aynı meseleyi farklı kelimelerle anlatan kararları da bulur. Sonuçlar tek listede birleştirilir. Yerel korpusta henüz olmayan güncel kararlar için canlı resmî kaynaklara da gidilebilir.
  3. Tam metin. Aday kararın tam metni getirilir. Daire, esas ve karar numarası, tarih gibi künye bilgisi asistanın hafızasından değil, bu metinden alınır.
  4. Atıf denetimi. Taslaktaki atıflar korpustaki ve gerektiğinde canlı kaynaktaki metinle karşılaştırılır; eşleşmeyen atıf işaretlenir.
  5. Çıktı. Taslak Word (DOCX) ya da UYAP'ın UDF biçiminde dışa aktarılır.

Kırmızı çizgiler

  • Karar, tarih, esas ve karar numarası, daire ya da madde metni uydurulmaz.
  • Tam metni olmayan bir belge alıntıya ve dilekçe taslağına giremez; sistem bunu her belge için ayrıca işaretler.
  • Aranan kaynak bulunamazsa bu açıkça söylenir; boşluk tahminle doldurulmaz.
  • Mevzuat maddesi, değişiklik kayıtlarıyla birlikte getirilir.

Ne yapmaz?

  • Hukuki görüş vermez. Kaynağı bulur ve doğrular; o kaynağın somut dosyaya uygulanıp uygulanmayacağına avukat karar verir.
  • Kesinleşmeyi bilmez. Kararın kesinleşip kesinleşmediği korpusta tutulmuyor. Sitedeki karar notlarında Daire bozmalarını “yerel mahkemenin uyup uymadığı bilinmiyor” notuyla anmamın sebebi bu.
  • Gerçek zamanlı değildir. Yeni kararlar gece çekilir; bugün sisteme yüklenen karar en erken ertesi sabah korpusa girer.
  • Herkese açık bir hizmet değildir. Büronun kendi sunucusunda, tek kullanıcı için çalışır; dışarıya açık bir arayüzü yok.

Bu sitede nasıl kullanılıyor?

Sitedeki yazılarda anılan kararlar bu altyapıyla bulunup tam metinlerinden okundu; alan sayfalarındaki süreler ve madde atıfları mevzuat korpusuyla karşılaştırıldı. Yazıların sonundaki kararlarda mevzuat.adalet.gov.tr'deki resmî metnin bağlantısı var; okuyan kişi kararı kendisi açıp kontrol edebilir. Örnek: Taşeron işçisinin gerçek işvereni kim?

Teknik ayrıntı

Dil
Python 3.11+MCP sunucusu stdio ve streamable HTTP üzerinden çalışır
Arama
SQLite FTS5 tam metin araması; FAISS ile anlam aramasıIVF16384, PQ64 indeks ve fp16 yeniden puanlama; gömme modeli intfloat/multilingual-e5-small (384 boyut)
Araçlar
47 MCP aracı: 11 temel, 36 genişletilmişKarar ve mevzuat arama, atıf denetimi, dilekçe taslağı, DOCX ve UDF dışa aktarma, kişisel veri tarama ve maskeleme, daire profili
Canlı kaynaklar
Bedesten (Yargıtay ve bölge adliye), Anayasa Mahkemesi, Danıştay, Uyuşmazlık Mahkemesi, Rekabet Kurumu, Sayıştay, GİB, mevzuat.gov.tr, Resmî Gazete, KVKK, AİHM
Geliştirme
Tasarım ve ürün kararları bendeKodlama yapay zekâ destekli araçlarla (Claude Code)

Kurulum

Emsal MCP, PyPI'de emsal-mcp paketi olarak yayımlanıyor ve 11 milyon kararlık yerel korpus olmadan da çalışıyor; bu durumda karar ve mevzuat aramaları resmî kaynaklarda canlı yapılıyor, kararların tam metni de canlı getiriliyor. Claude Code'a eklemek için (bilgisayarda uv kurulu olmalı):

claude mcp add emsal -- uvx --from emsal-mcp emsal-mcp-server

Kalıcı kurulum için pipx install emsal-mcp yeterli; Python 3.11 ya da üstü gerekiyor. Claude Desktop yapılandırması ve ortam değişkenleri depodaki README'de anlatılıyor.

pypi.org/project/emsal-mcp

Kaynak kod

Kaynak kod GitHub'da açık ve GNU Affero Genel Kamu Lisansı sürüm 3 (AGPL-3.0) ile lisanslı. Kodu kullanabilir, değiştirebilir ve dağıtabilirsiniz; değiştirdiğiniz bir sürümü ağ üzerinden başkalarına hizmet olarak sunarsanız, değiştirdiğiniz kaynak kodu da o kullanıcılara aynı lisansla açmanız gerekir. Güvenlik açıkları, depodaki SECURITY.md dosyasında anlatılan yolla gizli olarak bildirilebilir.

github.com/afsozer/emsal-mcp

Sayılar 7 Ekim 2026 ölçümüdür; korpus her gece büyüyor.

Av. Alpaslan Fatih Sözer hakkında