
Dayanak
io.github.afsozerv2.0.0更新于 Oct 9, 2026
Citation-safe Turkish legal research: court decisions and legislation from official sources.
概览
让助手检索来自官方来源的土耳其法院判决和法规,提供可安全引用的结果并支持文书起草。
- 功能
- Dayanak 提供用于研究土耳其判例法和法规的 MCP 工具。核心工具可检索实时官方来源(Bedesten/Yargıtay、AYM、Danıştay、mevzuat.gov.tr 等)、获取单份文书、以全文和语义方式检索包含 1100 万份判决的本地语料库、获取法规条文、构建研究包、导出文书并检查来源健康状况。扩展类别增加引文核查、诉状起草、隐私扫描、法庭分析以及论证评分。
- 适用场景
- 适用于引文必须可核验的土耳其法律研究:查找先例判决、核查法规及其修订、准备诉状或研究包,以及确认引用的文本确实存在于来源文书中。
- 运行要求
- 通过 uvx 或 pipx 以 stdio 在本地运行,需要 Python 3.11 或更高版本。本地语料库可选——没有它时检索会实时访问官方来源,需要网络访问。可选环境变量用于配置缓存路径、嵌入提供方、传输方式、工具配置文件和超时;批量语义检索需要 faiss-cpu。
安装
在 SourceWeft 中
- 打开 控制台中的 Dayanak,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Dayanak
v2.0.0 — 11 core + 36 extended MCP tools (47 total) · 152 CLI commands · 80 test files · 48 source modules
Proje sayfası: avfatihsozer.com/projeler/dayanak · 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.
Projenin eski adı emsal-mcp'dir; 2.0.0 sürümüyle Dayanak oldu. Eski emsal-mcp
paketi artık dayanak'ı kurar, eski EMSAL_* ortam değişkenleri ve ~/.emsal_mcp
veri dizini okunmaya devam eder.
İ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)
Dayanak, 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 DAYANAK_TOOL_PROFILE=full
ortam değişkenini verin. Çekilen belgeler ~/.dayanak/cache.sqlite3 dosyasında
önbelleğe alınır (DAYANAK_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%\dayanak\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\dayanak-env.cmd aynı değişkenleri
kurar (call .\scripts\dayanak-env.cmd && .venv\Scripts\dayanak ...).
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). dayanak-env.cmd,
crawl_incremental.ps1 ve Python betikleri (scripts/_yollar.py) bu dosyayı
okur; boş bırakılan her yol ~/.dayanak 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
DAYANAK_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~/.dayanak/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/dayanak/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
DAYANAK_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,提交 566ef84
工具
0版本历史
1- v2.0.0最新Oct 9, 2026


