Bu proje, Adalet Bakanlığı'na ait Mevzuat Bilgi Sistemi'ne (mevzuat.gov.tr) erişimi kolaylaştıran bir FastMCP sunucusu oluşturur. Bu sayede, Mevzuat Bilgi Sistemi'nden mevzuat arama ve tüm mevzuat içeriklerini Markdown formatında alma işlemleri, Model Context Protocol (MCP) destekleyen LLM (Büyük Dil Modeli) uygulamaları (örneğin Claude Desktop veya 5ire) ve diğer istemciler tarafından araç (tool) olarak kullanılabilir hale gelir.
🎯 Temel Özellikler
- Adalet Bakanlığı Mevzuat Bilgi Sistemi'ne programatik erişim için standart bir MCP arayüzü.
- 26 farklı tool ile kapsamlı mevzuat erişimi (iki farklı veri kaynağı):
- mevzuat.gov.tr üzerinden 21 araç (türe özel arama ve içerik)
- bedesten.adalet.gov.tr üzerinden 5 araç (birleşik arama, gerekçe, içindekiler)
- Desteklenen 12 mevzuat türü:
- Kanun - Türkiye Cumhuriyeti kanunları
- KHK - Kanun Hükmünde Kararnameler
- Tüzük - Tüzükler
- Kurum Yönetmeliği - Kurum ve kuruluş yönetmelikleri
- Üniversite Yönetmeliği - Üniversite yönetmelikleri
- Cumhurbaşkanlığı Kararnamesi - Cumhurbaşkanlığı kararnameleri
- Cumhurbaşkanı Kararı - Cumhurbaşkanı kararları
- CB Yönetmeliği - Cumhurbaşkanlığı ve Bakanlar Kurulu yönetmelikleri
- CB Genelgesi - Cumhurbaşkanlığı genelgeleri
- Bakanlar Kurulu Yönetmeliği - Bakanlar Kurulu yönetmelikleri
- Tebliğ - Tebliğler
- Mülga Mevzuat - Yürürlükten kaldırılmış mevzuat
- mevzuat.gov.tr araçları (21 tool): Her mevzuat türü için çift tool yapısı:
- Arama tool'u: Başlık ve içerikte arama, Boolean operatörler (AND, OR, NOT), tarih filtreleme
- İçinde arama tool'u: Madde bazında arama (keyword + semantik), alakalılık skoru ile sıralama
- bedesten.adalet.gov.tr araçları (5 tool): Tüm mevzuat türlerini tek araçla kapsar:
search_mevzuat: 12 türde birleşik arama (başlık, içerik, numara, RG tarihi/sayısı filtreleme)get_mevzuat_content: Tam metin getirmesearch_within_mevzuat: Madde bazında anahtar kelime aramasıget_mevzuat_gerekce: Kanun gerekçesi (amaç, komisyon raporları, madde gerekçeleri)get_mevzuat_madde_tree: İçindekiler / madde ağacı (bölüm-madde hiyerarşisi)
- Semantik Arama: Tüm 9
search_within_*aracındasemantic=Trueparametresi ile doğal dilde anlam tabanlı arama. OpenRouter API üzerinden embedding modelleri kullanır. - Gelişmiş özellikler:
- PDF'leri Mistral OCR ile metin çıkarma (CB Kararı ve CB Genelgesi için)
- HTML'den Markdown'a otomatik dönüştürme
- In-memory caching (1 saat TTL) ile hızlı erişim
- Boolean arama operatörleri (AND, OR, NOT)
- Tam cümle araması (exact phrase)
- Tarih aralığı filtreleme
- Claude Desktop ve 5ire gibi MCP istemcileri ile kolay entegrasyon
🌐 En Kolay Yol: Ücretsiz Remote MCP (Claude Desktop için)
Hiçbir kurulum gerektirmeyen, doğrudan kullanıma hazır MCP sunucusu:
- Claude Desktop'ı açın
- Settings > Connectors > Add custom connector
- Açılan pencerede:
- Name:
Mevzuat MCP - URL:
https://mevzuat.surucu.dev/mcp
- Name:
- Save butonuna basın
Hepsi bu kadar! Artık Mevzuat MCP ile konuşabilirsiniz.
Not: Bu ücretsiz sunucu topluluk için sağlanmaktadır. Yoğun kullanım için kendi sunucunuzu kurmanız önerilir.
🚀 Claude Haricindeki Modellerle Kullanmak İçin Çok Kolay Kurulum (Örnek: 5ire için)
Bu bölüm, Mevzuat MCP aracını 5ire gibi Claude Desktop dışındaki MCP istemcileriyle kullanmak isteyenler içindir.
- Python Kurulumu: Sisteminizde Python 3.11 veya üzeri kurulu olmalıdır. Kurulum sırasında "Add Python to PATH" (Python'ı PATH'e ekle) seçeneğini işaretlemeyi unutmayın. Buradan indirebilirsiniz.
- Git Kurulumu (Windows): Bilgisayarınıza git yazılımını indirip kurun. "Git for Windows/x64 Setup" seçeneğini indirmelisiniz.
uvKurulumu:- Windows Kullanıcıları (PowerShell): Bir CMD ekranı açın ve bu kodu çalıştırın:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" - Mac/Linux Kullanıcıları (Terminal): Bir Terminal ekranı açın ve bu kodu çalıştırın:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows Kullanıcıları (PowerShell): Bir CMD ekranı açın ve bu kodu çalıştırın:
- Microsoft Visual C++ Redistributable (Windows): Bazı Python paketlerinin doğru çalışması için gereklidir. Buradan indirip kurun.
- İşletim sisteminize uygun 5ire MCP istemcisini indirip kurun.
- 5ire'ı açın. Workspace -> Providers menüsünden kullanmak istediğiniz LLM servisinin API anahtarını girin.
- Tools menüsüne girin. +Local veya New yazan butona basın.
- Şimdi Tools altında Mevzuat MCP'yi görüyor olmalısınız. Üstüne geldiğinizde sağda çıkan butona tıklayıp etkinleştirin (yeşil ışık yanmalı).
- Artık Mevzuat MCP ile konuşabilirsiniz.
⚙️ Claude Desktop Manuel Kurulumu
-
Ön Gereksinimler: Python,
uv, (Windows için) Microsoft Visual C++ Redistributable'ın sisteminizde kurulu olduğundan emin olun. Detaylı bilgi için yukarıdaki "5ire için Kurulum" bölümündeki ilgili adımlara bakabilirsiniz. -
Claude Desktop Settings -> Developer -> Edit Config.
-
Açılan
claude_desktop_config.jsondosyasınamcpServersaltına ekleyin:{ "mcpServers": { // ... (varsa diğer sunucularınız) ... "Mevzuat MCP": { "command": "uvx", "args": [ "--from", "git+https://github.com/saidsurucu/mevzuat-mcp", "mevzuat-mcp" ] } } } -
Claude Desktop'ı kapatıp yeniden başlatın.
🔑 API Anahtarları (Opsiyonel)
Tüm search_within_* araçlarında semantic=True ile doğal dilde arama yapabilmek için:
- OpenRouter üzerinden API anahtarı alın
- Environment variable olarak ayarlayın:
OPENROUTER_API_KEY=your_api_key_here
- Varsayılan model:
google/gemini-embedding-001(3072 boyut). Alternatif olarak:EMBEDDING_MODEL=intfloat/multilingual-e5-large # 1024 boyut - API anahtarı olmadan da tüm araçlar çalışır, sadece
semantic=Truekullanılamaz
CB Kararı ve CB Genelgesi gibi PDF tabanlı mevzuatlar için Mistral OCR kullanılır:
- Mistral AI Console üzerinden API anahtarı alın
- Environment variable olarak ayarlayın:
MISTRAL_API_KEY=your_api_key_here
- API anahtarı olmadan da sistem çalışır, ancak PDF'ler markitdown ile işlenir (daha düşük kalite)
🛠️ Kullanılabilir Araçlar (MCP Tools)
Bu FastMCP sunucusu LLM modelleri için 26 araç sunar (iki farklı veri kaynağı).
Türe özel arama ve içerik araçları. Her mevzuat türü için ayrı tool'lar.
search_kanun: Kanun başlık ve içeriklerinde arama yaparsearch_within_kanun: Kanun maddelerinde anahtar kelime veya semantik arama yapar
search_khk: KHK başlık ve içeriklerinde arama yaparsearch_within_khk: KHK maddelerinde anahtar kelime veya semantik arama yapar
search_tuzuk: Tüzük başlık ve içeriklerinde arama yaparsearch_within_tuzuk: Tüzük maddelerinde anahtar kelime veya semantik arama yapar
search_kurum_yonetmelik: Kurum yönetmeliği başlık ve içeriklerinde arama yaparsearch_within_kurum_yonetmelik: Kurum yönetmeliği maddelerinde anahtar kelime veya semantik arama yapar
search_cbk: CB Kararnamesi başlık ve içeriklerinde arama yaparsearch_within_cbk: CB Kararnamesi maddelerinde anahtar kelime veya semantik arama yapar
search_cbbaskankarar: CB Kararı başlık ve içeriklerinde arama yaparget_cbbaskankarar_content: CB Kararı tam içeriğini getirir (PDF - OCR destekli)search_within_cbbaskankarar: CB Kararı içeriğinde anahtar kelime veya semantik arama yapar
search_cbyonetmelik: CB Yönetmeliği başlık ve içeriklerinde arama yaparsearch_within_cbyonetmelik: CB Yönetmeliği maddelerinde anahtar kelime veya semantik arama yapar
search_cbgenelge: CB Genelgesi başlıklarında arama yaparget_cbgenelge_content: CB Genelgesi tam içeriğini getirir (PDF - OCR destekli)search_within_cbgenelge: CB Genelgesi içeriğinde anahtar kelime veya semantik arama yapar
search_teblig: Tebliğ başlık ve içeriklerinde arama yaparget_teblig_content: Tebliğ tam içeriğini getirirsearch_within_teblig: Tebliğ maddelerinde anahtar kelime veya semantik arama yapar
Arama Tool'ları için:
aranacak_ifade: Aranacak kelime veya kelime grupları (AND, OR, NOT operatörleri desteklenir)tam_cumle: Tam cümle eşleşmesi (exact phrase)baslangic_tarihi/bitis_tarihi: Tarih aralığı filtrelemepage_number,page_size: Sayfalama
İçinde Arama Tool'ları için:
mevzuat_no: Mevzuat numarası (arama sonucundan alınır)keyword: Aranacak anahtar kelime veya doğal dilde sorgusemantic:Trueise semantik arama,Falseise anahtar kelime araması (varsayılan:False)case_sensitive: Büyük/küçük harf duyarlılığı (sadece keyword modunda)max_results: Maksimum sonuç sayısı
Tüm mevzuat türlerini tek araçla kapsayan birleşik araçlar. Gerekçe ve içindekiler gibi ek özellikler sunar.
Tüm 12 mevzuat türünde başlık ve içerik araması yapar.
phrase: İçerikte tam metin arama (Solr sözdizimi)mevzuat_adi: Mevzuat adı/başlığında aramamevzuat_no: Mevzuat numarası filtresimevzuat_tur: Mevzuat türü filtresi (KANUN, KHK, TUZUK, YONETMELIK, CB_KARARNAME, CB_KARAR, CB_YONETMELIK, CB_GENELGE, KKY, UY, TEBLIGLER, MULGA)basliktaAra: Sadece başlıkta ara (varsayılan: true)tamCumle: Tam cümle eşleşmesi (varsayılan: false)resmi_gazete_tarihi: Resmi Gazete tarihi filtresi (GG/AA/YYYY)resmi_gazete_sayisi: Resmi Gazete sayısı filtresipage,page_size: Sayfalama
Bir mevzuatın tam metnini Markdown formatında getirir.
mevzuat_id: Mevzuat ID'si (search_mevzuatsonucundan alınır, mevzuat numarası değildir)
Bir mevzuatın maddeleri içinde anahtar kelime araması yapar.
mevzuat_id: Mevzuat ID'si (search_mevzuatsonucundan alınır)keyword: Aranacak kelime veya Boolean ifade (AND, OR, NOT)case_sensitive: Büyük/küçük harf duyarlılığı (varsayılan: false)max_results: Maksimum sonuç sayısı (varsayılan: 25)
Bir kanunun gerekçesini getirir (amaç, komisyon raporları, madde gerekçeleri).
gerekce_id: Gerekçe ID'si (search_mevzuatsonucundan alınır)
Bir mevzuatın bölüm-madde hiyerarşisini getirir.
mevzuat_id: Mevzuat ID'si (search_mevzuatsonucundan alınır)
Keyword Modu (semantic=False, varsayılan):
keyword: "yatırımcı AND tazmin"
Boolean operatörler (AND, OR, NOT) ile kesin kelime eşleşmesi. Operatörler BÜYÜK HARF olmalıdır.
Semantik Mod (semantic=True, sadece mevzuat.gov.tr araçları):
keyword: "yatırımcının zararının tazmini"
Doğal dilde anlam tabanlı arama. Kelime eşleşmesi aramaz, kavramsal benzerlik ile sonuç döner. OPENROUTER_API_KEY gerektirir.
📜 Lisans
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına bakınız.

