
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 等),也可以使用可选的本地语料库,其中包含约 1100 万份判决,支持全文与语义检索。扩展工具还提供引文校验、诉状起草、论证评分、变更报告、监控列表、隐私扫描与健康检查。
- 适用场景
- 当助手需要查询土耳其判例或法规、进行可安全引用的摘录,或协助准备诉状与法律研究包时适用。它面向单机单用户场景,本地语料库是可选的:不安装时检索会实时访问官方来源。
- 运行要求
- 以 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
