
Emsal
io.github.afsozerv1.1.1更新於 Oct 7, 2026
Citation-safe Turkish legal research: court decisions and legislation from official sources.
概覽
讓助理檢索土耳其法院判決與官方法規,並產出附引文檢核的法律草稿。
- 功能
- Emsal 提供用於土耳其法律研究的 MCP 工具:檢索法院判決與法規、取得單一文件或單一法規條文,並產生附品質面板的主題研究包。它可對接官方即時來源(Bedesten/Yargıtay、AYM、Danıştay、mevzuat.gov.tr、Resmî Gazete 等),也可使用選用的本機語料庫,內含約 1,100 萬份判決,支援全文與語意檢索。擴充工具另提供引文檢核、書狀撰擬、論證評分、變更報告、監控清單、隱私掃描與健康檢查。
- 適用情境
- 當助理需要查詢土耳其判例或法規、進行可安全引用的摘錄,或協助準備書狀與法律研究包時適用。它鎖定單機單一使用者情境,本機語料庫為選用:未安裝時檢索會即時連線官方來源。
- 執行需求
- 以 PyPI 套件形式透過 stdio 在本機執行(uvx --from emsal-mcp emsal-mcp-server,或 pipx install emsal-mcp),需要 Python 3.11 以上版本。未宣告任何帳號、API 金鑰或標頭。選用環境變數可設定語料庫快取路徑、嵌入模型供應者與快取、傳輸方式、主機與連接埠、工具設定檔、執行緒集區與逾時。完整本機語料庫是很大的 SQLite 檔案(約 72 GB),語意檢索需要 faiss-cpu;連線即時來源需要網路。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Emsal,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Emsal-mcp
v1.1.1 — 11 core + 36 extended MCP tools (47 total) · 152 CLI commands · 78 test files · 48 source modules
Proje sayfası: avfatihsozer.com/projeler/emsal-mcp · English: README.en.md
Resmî ve kamuya açık Türk hukuk kaynaklarında (emsal kararlar ve mevzuat) citation-safe arama, araştırma ve belge hazırlık için MCP sunucusu.
İki şekilde çalışır:
- Yerel korpus — 11,1 milyon karar ve güncel mevzuatın tamamı tek bir SQLite dosyasında; FTS5 tam metin + FAISS anlamsal arama. Ağ gerekmez.
- Canlı kaynaklar — Bedesten/Yargıtay, AYM, Danıştay, Uyuşmazlık, Rekabet, Sayıştay, GİB, mevzuat.gov.tr, Resmî Gazete, KVKK adaptörleri.
Kırmızı çizgiler
- Karar, metadata, tarih, esas/karar no, daire, atıf veya kanun maddesi uydurulmaz.
full_text/html_markdowniçeriği olmayan belgeler quote/draft için kullanılmaz.quoteUsablevedraftUsablesadece tam metin/HTML markdown varsatrueolur.- Rate-limit bilinçli olarak muhafazakâr değildir; tek kullanıcı/tek bilgisayar hedeflenmiştir.
Korpus
Ölçüm tarihi 16 Eylül 2026, canlı korpus (cache.sqlite3, 72 GB).
Ayrıntı ve ölçümler: docs/BULK_INDEX.md.
Kurulum
Hızlı kurulum (korpussuz)
Emsal MCP, 11 milyon kararlık yerel korpus olmadan da çalışır. Bu durumda karar ve
mevzuat aramaları resmî kaynaklardan (Bedesten, mevzuat.gov.tr, AYM, Danıştay ve
diğerleri) canlı yapılır, kararın tam metni de canlı getirilir. Yalnız yerel korpusta
arayan araçlar (search_local_corpus, mevzuat_korpus_ara, mevzuat_madde_getir)
boş sonuç döndürür ve canlı araca yönlendirir. Python 3.11 ya da üstü gerekir.
Claude Code'a eklemek için:
Claude Desktop ya da başka bir MCP istemcisi için yapılandırma:
Varsayılan araç profili 11 temel araçtır; tamamı için EMSAL_TOOL_PROFILE=full
ortam değişkenini verin. Çekilen belgeler ~/.emsal_mcp/cache.sqlite3 dosyasında
önbelleğe alınır (EMSAL_CACHE_PATH ile değişir).
Geliştirme kurulumu (korpusla)
Anlamsal aramanın toplu FAISS indeksini kullanabilmesi için ayrıca
pip install faiss-cpu gerekir. Ayrıntılı kurulum: INSTALL.md.
Çalıştırma
HTTP (streamable-http) sunucusu
Canlı kurulumda sunucu scripts\mcp_http_sunucu.cmd ile başlar; bu betik
ortam değişkenlerini kendi içinde kurar ve logu
%LOCALAPPDATA%\emsal-mcp\mcp_http.log dosyasına yazar.
Windows'ta EmsalMcpHttp zamanlanmış görevi aynı betiği oturum açılışında
çalıştırır. Uç nokta: http://<host>:<port>/mcp.
stdio sunucusu
Ortam değişkenleri
Tek seferlik CLI çağrıları için scripts\emsal-env.cmd aynı değişkenleri
kurar (call .\scripts\emsal-env.cmd && .venv\Scripts\emsal-mcp ...).
Makineye özel değerler (veri dizini, dinleme adresi, yedek hedefi) repoda
tutulmaz: scripts\yerel-ayar.ornek.cmd dosyasını scripts\yerel-ayar.cmd
adıyla kopyalayıp doldurun (.gitignore'dadır). emsal-env.cmd,
crawl_incremental.ps1 ve Python betikleri (scripts/_yollar.py) bu dosyayı
okur; boş bırakılan her yol ~/.emsal_mcp altından türetilir.
MCP araçları
Varsayılan profil core — 11 araç kayıtlı gelir. Geri kalanı çalışan sunucuya
load_extended_tools ile kategori kategori eklenir. Sözleşmeler:
docs/MCP_CONTRACTS.md.
Core (11):
Extended (36), kategori bazında:
Core profilin docstring bütçesi (20.000 karakter) dolduğu için
citation_check,prepare_petition,read_legal_file,list_sourcesvelegal_research_guide6 Eylül 2026'da extended'a alındı;load_extended_toolsile geri gelirler.
CLI örnekleri
Korpus crawl + panel
Uzun soluklu korpus taraması (Bedesten'den yıl yıl karar indirme) bir master script ile yürür, durumu tarayıcıdan izlenir.
Notlar:
- Rate limit
EMSAL_RATE_LIMIT_MAX=12. Ölçüldü: 12'de 429 yok (~2.800 belge/saat), 15'te 429 cooldown döngüsüne girip hız sıfırlanıyor. - Panel,
cache.sqlite3üzerinde yıl sayımı yapmaz — tek bir yıl sorgusu tam tablo taraması yüzünden ~60 sn sürüyor. Sayımlar~/.emsal-mcp/panel_stats.sqlite3içinde artımlı (yalnız yenirowid'ler) tutulur, günde bir kez tam sayım yapılır. - Yıl hedefleri Bedesten'in
totalalanından ölçülür (crawl_logs\hedefler.json), tahmin edilmez.
İşletim
Zamanlanmış işler (Windows Görev Zamanlayıcı, korpus sunucusu):
health_check aracı bu işlerin son koşusunu scheduled_jobs bloğunda
raporlar: schtasks çağırmaz, işlerin kendi log dosyalarına yazdığı bitiş
işaretini ve dosya zaman damgasını okur. Bir iş gecikmişse ya da rc != 0
ile bitmişse overall "degraded" döner (src/emsal_mcp/ops_status.py).
Aynı çıktıda tool_runtime bloğu thread havuzu / zaman aşımı sayaçlarını
verir; runaway > 0 ise sunucu yeniden başlatılmalıdır.
Belgeler
Test
Canlı kaynağa giden testler varsayılan olarak atlanır; açmak için
EMSAL_LIVE_TESTS=1.
Lisans
GNU Affero Genel Kamu Lisansı sürüm 3 ile lisanslanmıştır (AGPL-3.0-only); tam
metin LICENSE dosyasındadır. Yazılımı değiştirip ağ üzerinden başkalarına
hizmet olarak sunarsanız, değiştirdiğiniz kaynak kodu da o kullanıcılara aynı lisansla
sunmanız gerekir. Güvenlik açıklarının nasıl bildirileceği SECURITY.md
dosyasında anlatılıyor.
Telif hakkı © 2026 Alpaslan Fatih Sözer
來源:README.md,提交 611a634
工具
0版本歷史
1- v1.1.1最新Oct 7, 2026
