Skip to main content
Glama
saidsurucu

Mevzuat MCP

by saidsurucu

Mevzuat MCP: Adalet Bakanlığı Mevzuat Bilgi Sistemi için MCP Sunucusu

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.

örnek

🎯 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 getirme

    • search_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ında semantic=True parametresi 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:

  1. Claude Desktop'ı açın

  2. Settings > Connectors > Add custom connector

  3. Açılan pencerede:

    • Name: Mevzuat MCP

    • URL: https://mevzuat.surucu.dev/mcp

  4. 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.


🪐 Google Antigravity ile Kullanım

  1. Agent session açın ve editörün yan panelindeki "…" dropdown menüsüne tıklayın

  2. MCP Servers seçeneğini seçin - MCP Store açılacak

  3. Üstteki Manage MCP Servers butonuna tıklayın

  4. View raw config seçeneğine tıklayın

  5. mcp_config.json dosyasına aşağıdaki yapılandırmayı ekleyin:

{
  "mcpServers": {
    "mevzuat-mcp": {
      "serverUrl": "https://mevzuat.surucu.dev/mcp/",
      "headers": {
        "Content-Type": "application/json"
      }
    }
  }
}

💡 İpucu: Remote MCP sayesinde Python, uv veya herhangi bir kurulum yapmadan doğrudan Google Antigravity üzerinden Mevzuat Bilgi Sistemi'ne erişebilirsiniz!

Lokal uv Kurulumu — Kopyala-Yapıştır

Ön Gereksinimler: Bilgisayarınızda Python, uv (kurulum) ve Node.js (indir) kurulu olmalı. (Node.js yalnızca aşağıdaki kurulum komutunu çalıştırmak için gerekir; MCP'yi uvx çalıştırır.)

Aşağıdaki bloğun tamamını terminale yapıştırın. Komut, Antigravity'nin okuduğu ~/.gemini/config/mcp_config.json dosyasını sizin yerinize oluşturur/günceller (varsa diğer sunucularınız korunur):

macOS / Linux (Terminal):

node - <<'MEVZUAT'
const fs=require("fs"),os=require("os"),path=require("path");
const dir=path.join(os.homedir(),".gemini","config"),file=path.join(dir,"mcp_config.json");
fs.mkdirSync(dir,{recursive:true});
let cfg={};try{cfg=JSON.parse(fs.readFileSync(file,"utf8"))}catch{}
if(typeof cfg!=="object"||cfg===null||Array.isArray(cfg))cfg={};
if(typeof cfg.mcpServers!=="object"||cfg.mcpServers===null)cfg.mcpServers={};
cfg.mcpServers["mevzuat-mcp"]={command:"uvx",args:["--from","git+https://github.com/saidsurucu/mevzuat-mcp","mevzuat-mcp"]};
fs.writeFileSync(file,JSON.stringify(cfg,null,2)+"\n");
console.log("mevzuat-mcp eklendi -> "+file);
MEVZUAT

Windows (PowerShell):

@'
const fs=require("fs"),os=require("os"),path=require("path");
const dir=path.join(os.homedir(),".gemini","config"),file=path.join(dir,"mcp_config.json");
fs.mkdirSync(dir,{recursive:true});
let cfg={};try{cfg=JSON.parse(fs.readFileSync(file,"utf8"))}catch{}
if(typeof cfg!=="object"||cfg===null||Array.isArray(cfg))cfg={};
if(typeof cfg.mcpServers!=="object"||cfg.mcpServers===null)cfg.mcpServers={};
cfg.mcpServers["mevzuat-mcp"]={command:"uvx",args:["--from","git+https://github.com/saidsurucu/mevzuat-mcp","mevzuat-mcp"]};
fs.writeFileSync(file,JSON.stringify(cfg,null,2)+"\n");
console.log("mevzuat-mcp eklendi -> "+file);
'@ | node -

Komut mevzuat-mcp eklendi -> ... çıktısını verdiğinde kurulum tamamlanmıştır. Antigravity'yi (açıksa kapatıp) yeniden başlatın; mevzuat-mcp araçları otomatik yüklenir.

💡 İpucu: Lokal kurulumda mevzuat kaynaklarına erişim doğrudan bilgisayarınızda uvx ile çalışır; uzaktan sunucuya ihtiyaç duymaz.


🚀 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.

  • uv Kurulumu:

    • 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

  • 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.

    • Tool Key: mevzuatmcp

    • Name: Mevzuat MCP

    • Command:

      uvx --from git+https://github.com/saidsurucu/mevzuat-mcp mevzuat-mcp
    • Save butonuna basarak kaydedin. 5ire ayarları

  • Ş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

  1. Ö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.

  2. Claude Desktop Settings -> Developer -> Edit Config.

  3. Açılan claude_desktop_config.json dosyasına mcpServers altına ekleyin:

    {
      "mcpServers": {
        // ... (varsa diğer sunucularınız) ...
        "Mevzuat MCP": {
          "command": "uvx",
          "args": [
            "--from",
            "git+https://github.com/saidsurucu/mevzuat-mcp",
            "mevzuat-mcp"
          ]
        }
      }
    }
  4. Claude Desktop'ı kapatıp yeniden başlatın.


🔑 API Anahtarları (Opsiyonel)

Semantik Arama - OpenRouter API

Tüm search_within_* araçlarında semantic=True ile doğal dilde arama yapabilmek için:

  1. OpenRouter üzerinden API anahtarı alın

  2. Environment variable olarak ayarlayın:

    OPENROUTER_API_KEY=your_api_key_here
  3. Varsayılan model: google/gemini-embedding-001 (3072 boyut). Alternatif olarak:

    EMBEDDING_MODEL=intfloat/multilingual-e5-large  # 1024 boyut
  4. API anahtarı olmadan da tüm araçlar çalışır, sadece semantic=True kullanılamaz

Mistral OCR

CB Kararı ve CB Genelgesi gibi PDF tabanlı mevzuatlar için Mistral OCR kullanılır:

  1. Mistral AI Console üzerinden API anahtarı alın

  2. Environment variable olarak ayarlayın:

    MISTRAL_API_KEY=your_api_key_here
  3. 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ğı).

A. mevzuat.gov.tr Araçları (21 araç)

Türe özel arama ve içerik araçları. Her mevzuat türü için ayrı tool'lar.

Kanun (Laws)

  • search_kanun: Kanun başlık ve içeriklerinde arama yapar

  • search_within_kanun: Kanun maddelerinde anahtar kelime veya semantik arama yapar

KHK (Decree Laws)

  • search_khk: KHK başlık ve içeriklerinde arama yapar

  • search_within_khk: KHK maddelerinde anahtar kelime veya semantik arama yapar

Tüzük (Statutes)

  • search_tuzuk: Tüzük başlık ve içeriklerinde arama yapar

  • search_within_tuzuk: Tüzük maddelerinde anahtar kelime veya semantik arama yapar

Kurum Yönetmeliği (Institutional Regulations)

  • search_kurum_yonetmelik: Kurum yönetmeliği başlık ve içeriklerinde arama yapar

  • search_within_kurum_yonetmelik: Kurum yönetmeliği maddelerinde anahtar kelime veya semantik arama yapar

Cumhurbaşkanlığı Kararnamesi (Presidential Decrees)

  • search_cbk: CB Kararnamesi başlık ve içeriklerinde arama yapar

  • search_within_cbk: CB Kararnamesi maddelerinde anahtar kelime veya semantik arama yapar

Cumhurbaşkanı Kararı (Presidential Decisions)

  • search_cbbaskankarar: CB Kararı başlık ve içeriklerinde arama yapar

  • get_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

CB Yönetmeliği (Presidential Regulations)

  • search_cbyonetmelik: CB Yönetmeliği başlık ve içeriklerinde arama yapar

  • search_within_cbyonetmelik: CB Yönetmeliği maddelerinde anahtar kelime veya semantik arama yapar

CB Genelgesi (Presidential Circulars)

  • search_cbgenelge: CB Genelgesi başlıklarında arama yapar

  • get_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

Tebliğ (Communiqués)

  • search_teblig: Tebliğ başlık ve içeriklerinde arama yapar

  • get_teblig_content: Tebliğ tam içeriğini getirir

  • search_within_teblig: Tebliğ maddelerinde anahtar kelime veya semantik arama yapar

mevzuat.gov.tr Ortak Parametreler

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ığı filtreleme

  • page_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 sorgu

  • semantic: True ise semantik arama, False ise 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ı

B. bedesten.adalet.gov.tr Araçları (5 araç)

Tüm mevzuat türlerini tek araçla kapsayan birleşik araçlar. Gerekçe ve içindekiler gibi ek özellikler sunar.

search_mevzuat - Birleşik Mevzuat Arama

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 arama

  • mevzuat_no: Mevzuat numarası filtresi

  • mevzuat_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ı filtresi

  • page, page_size: Sayfalama

get_mevzuat_content - Tam Metin Getirme

Bir mevzuatın tam metnini Markdown formatında getirir.

  • mevzuat_id: Mevzuat ID'si (search_mevzuat sonucundan alınır, mevzuat numarası değildir)

search_within_mevzuat - Madde Bazında Arama

Bir mevzuatın maddeleri içinde anahtar kelime araması yapar.

  • mevzuat_id: Mevzuat ID'si (search_mevzuat sonucundan 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)

get_mevzuat_gerekce - Kanun Gerekçesi

Bir kanunun gerekçesini getirir (amaç, komisyon raporları, madde gerekçeleri).

  • gerekce_id: Gerekçe ID'si (search_mevzuat sonucundan alınır)

get_mevzuat_madde_tree - İçindekiler / Madde Ağacı

Bir mevzuatın bölüm-madde hiyerarşisini getirir.

  • mevzuat_id: Mevzuat ID'si (search_mevzuat sonucundan alınır)

Arama Modları

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.

Available Tools

26 tools
get_cbbaskankarar_contentA

Retrieve the full content of a Turkish Presidential Decision (Cumhurbaşkanı Kararı) in Markdown format.

This tool fetches the PDF document and converts it to Markdown. Presidential Decisions are available only as PDF files. Use 'search_cbbaskankarar' first to find the decision number and series.

Returns:

  • Full decision content formatted as Markdown (converted from PDF)

  • Ready for analysis, summarization, or question answering

Example usage:

  1. Search for decisions: search_cbbaskankarar(baslangic_tarihi="2023", bitis_tarihi="2024")

  2. Get full content: get_cbbaskankarar_content(mevzuat_no="10452", mevzuat_tertip="5")

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe Presidential Decision number from search results (e.g., '10452')
mevzuat_tertipNoDecision series from search results (e.g., '5')5

Output Schema

ParametersJSON Schema
NameRequiredDescription
madde_idYes
mevzuat_idYes
markdown_contentYes
error_messageNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that the tool 'fetches the PDF document and converts it to Markdown' and notes that decisions are only available as PDF. This adds useful behavioral context beyond the schema, though it omits potential error conditions or conversion limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-structured with a purpose sentence, follow-up details, bullet points for returns, and an explicit example. Every sentence contributes value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately covers the return format (Markdown), prerequisite workflow (search first), and provides a usage example. No significant gaps for this straightforward retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, baseline is 3. The description repeats the parameter purposes from the schema ('number from search results', 'series from search results') without adding new semantic value. No additional formatting or constraints are described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Retrieve') and resource ('full content of a Turkish Presidential Decision') and specifies the output format (Markdown). It distinguishes itself from sibling search tools like search_cbbaskankarar and other content tools via the document type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to 'Use search_cbbaskankarar first to find the decision number and series', providing a clear prerequisite. It implicitly defines the tool's role as a retrieval step after search, but does not list when to avoid using it or compare to other content tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cbgenelge_contentA

Retrieve the full content of a Turkish Presidential Circular (Cumhurbaşkanlığı Genelgesi) in Markdown format.

This tool fetches the PDF document and converts it to Markdown. Presidential Circulars are available only as PDF files. Use 'search_cbgenelge' first to find the circular number and Official Gazette date.

IMPORTANT: You must provide the 'resmi_gazete_tarihi' (Official Gazette date) from the search results. This is required to construct the correct PDF URL.

Returns:

  • Full circular content formatted as Markdown (converted from PDF)

  • Ready for analysis, summarization, or question answering

Example usage:

  1. Search for circulars: search_cbgenelge(baslangic_tarihi="2025")

  2. Get full content: get_cbgenelge_content(mevzuat_no="16", resmi_gazete_tarihi="20/09/2025", mevzuat_tertip="5")

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe Presidential Circular number from search results (e.g., '16', '15')
resmi_gazete_tarihiYesOfficial Gazette date from search results in DD/MM/YYYY format (e.g., '20/09/2025')
mevzuat_tertipNoCircular series from search results (e.g., '5')5

Output Schema

ParametersJSON Schema
NameRequiredDescription
madde_idYes
mevzuat_idYes
markdown_contentYes
error_messageNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses the PDF-to-Markdown conversion and that circulars are only available as PDF. However, it does not mention potential errors if PDF is inaccessible or any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections and an example, but slightly verbose. Every sentence contributes meaning without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, the description fully explains the workflow, parameter sources, and output format. The presence of an output schema lowers the burden, and the description covers all necessary details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds significant value by explaining how to derive parameters from search results, with an example and explicit format requirements for the date parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves full content of a Turkish Presidential Circular in Markdown format from PDF. It distinguishes from sibling tools by specifying it's for circulars and directing to use search_cbgenelge first.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use 'search_cbgenelge' first to obtain the circular number and Official Gazette date, and provides a complete example workflow. The importance of the date parameter is emphasized.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mevzuat_contentA

Retrieve the full content of a Turkish legislation document from bedesten.adalet.gov.tr.

Returns the complete text in plain format (HTML tags stripped). Use mevzuatId from search_mevzuat results (not the law number).

WARNING: Large legislation (e.g., TCK 5237, TTK 6102) can be 100K+ characters. For large documents, prefer search_within_mevzuat to find specific articles instead of loading the entire text.

Workflow: search_mevzuat → get mevzuatId → get_mevzuat_content

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_idYesLegislation ID from search_mevzuat results (mevzuatId field). This is a string ID (e.g., '345097'), NOT the law number. First call search_mevzuat to get the mevzuatId.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description discloses return format (plain text, stripped HTML), warns about large documents, and outlines correct ID usage. Could mention network dependency but is overall transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose, format, warning, workflow, and instructions. Well-structured with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all key aspects: input, output format, warnings, workflow, and alternative tool usage. Complete for a tool with output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds value by specifying ID format, giving an example, and clarifying it is not a law number. Exceeds baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves full content of Turkish legislation, specifies source and output format, and distinguishes from siblings by referencing mevzuatId from search_mevzuat and warning about large documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow, warns when to use search_within_mevzuat instead for large documents, and clarifies that mevzuatId comes from search_mevzuat, not law numbers.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mevzuat_gerekceA

Retrieve the law rationale (gerekçe / kanun gerekçesi) from bedesten.adalet.gov.tr.

The gerekçe contains:

  • Purpose and reasoning behind the law (kanunun amacı ve gerekçesi)

  • Parliamentary committee reports (komisyon raporları)

  • Article-by-article justifications (madde gerekçeleri)

Only available for KANUN type legislation that has a published rationale. Not all laws have a gerekçe — check if gerekceId is present in search_mevzuat results.

Workflow: search_mevzuat → check gerekceId in results → get_mevzuat_gerekce(gerekceId)

ParametersJSON Schema
NameRequiredDescriptionDefault
gerekce_idYesGerekçe ID from search_mevzuat results (gerekceId field, e.g., '2049'). Only available for laws (KANUN) that have a published rationale. Check if gerekceId exists in search_mevzuat results before calling.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses the data source (bedesten.adalet.gov.tr), the content structure, and the condition that not all laws have a gerekçe. However, it does not mention network dependency, authentication needs, or read-only nature. Still, the provided information is useful and honest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a clear action line, bullet points for content, and two lines for constraints. It front-loads the core purpose and uses efficient formatting without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter and the presence of an output schema, the description covers all necessary context: what the tool does, what content it returns, prerequisite conditions, and the workflow. It is fully adequate for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with a detailed description for gerekce_id. The tool description reiterates the prerequisite but does not add new semantic information beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves law rationale (gerekçe) and lists specific content types (purpose, committee reports, article justifications). It distinguishes from siblings by limiting to KANUN type legislation and referencing search_mevzuat as a prerequisite.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is only for KANUN laws with published rationale, advises checking gerekceId in search_mevzuat results, and provides a clear workflow: search → check → call. This gives excellent when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mevzuat_madde_treeA

Get the article tree (table of contents / içindekiler) of a Turkish legislation from bedesten.adalet.gov.tr.

Returns a hierarchical structure showing:

  • Bölüm/Kısım (chapters/parts) as parent nodes

  • Madde (articles) as leaf nodes with maddeId, number, and title

  • Each node may have a gerekceId for article-level rationale

Works well with: KANUN, CB_KARARNAME, KHK, TUZUK, MULGA. May return empty for: CB_KARAR, CB_GENELGE, TEBLIGLER (these often lack structured articles).

Use this to understand the structure of a large law before diving into specific articles with search_within_mevzuat or get_mevzuat_content.

Workflow: search_mevzuat → get mevzuatId → get_mevzuat_madde_tree(mevzuatId)

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_idYesLegislation ID from search_mevzuat results (mevzuatId field). This is a string ID (e.g., '345097'), NOT the law number. First call search_mevzuat to get the mevzuatId.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but description fully explains the hierarchical return structure and mentions the source domain. It does not disclose any potential side effects or rate limits, but for a read operation with no destructive actions, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points and a clear workflow. Every sentence adds value—no fluff. It is front-loaded with the main purpose and efficiently conveys all necessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of Turkish legislation and the number of sibling tools, this description is complete. It explains the return structure (with output schema present), provides compatibility notes, and offers a workflow. No gaps remain for an AI agent to understand how and when to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter mevzuat_id is fully documented in the input schema, and the description adds critical workflow context: that it must come from search_mevzuat results, is a string ID not a law number, and provides an example. This goes beyond what the schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the article tree (table of contents) of Turkish legislation from a specific source. It distinguishes itself from siblings by listing compatible legislation types and noting tools that return empty, providing clear differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use (with specific legislation types like KANUN, CB_KARARNAME) and when not to (CB_KARAR, CB_GENELGE, TEBLIGLER). Provides a workflow: search_mevzuat → get mevzuatId → use this tool, and suggests it as a precursor to other tools like search_within_mevzuat or get_mevzuat_content.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_teblig_contentA

Retrieve the full content of a Turkish communiqué (Tebliğ) in Markdown format.

This tool fetches the complete text of a communiqué identified by its number. Use 'search_teblig' first to find the communiqué number and series.

Returns:

  • Full communiqué content formatted as Markdown

  • Ready for analysis, summarization, or question answering

Example usage:

  1. Search for communiqués: search_teblig(aranacak_ifade="katma değer vergisi")

  2. Get full content: get_teblig_content(mevzuat_no="42331", mevzuat_tertip="5")

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe communiqué number from search results (e.g., '42331')
mevzuat_tertipNoCommuniqué series from search results (e.g., '5')5

Output Schema

ParametersJSON Schema
NameRequiredDescription
madde_idYes
mevzuat_idYes
markdown_contentYes
error_messageNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool returns Markdown content and is ready for analysis, implying read-only behavior, but does not explicitly mention no side effects or any authentication/rate limits. A simple fetch tool, but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences plus example) and front-loaded with the purpose. Every sentence adds value, and the example usage clarifies the workflow. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (though not detailed), so the description need not explain return format. It mentions Markdown and readiness for analysis. Given the simple retrieval nature and sibling context, it is fairly complete, though error handling or availability info is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description's parameter guidance ('The communiqué number from search results (e.g., '42331')') mirrors the schema descriptions exactly, adding no new semantic value beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves full content of a Turkish communiqué in Markdown format, with a specific verb ('Retrieve') and resource ('Turkish communiqué (Tebliğ)'). It distinguishes itself from sibling tools that handle other document types (e.g., get_cbgenelge_content, get_mevzuat_content) or search functions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use 'search_teblig' first to find the communiqué number and series, providing a clear usage workflow (search then get content). It does not list exclusions or when not to use, but the context is clear given siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cbbaskankararA

Search for Turkish Presidential Decisions (Cumhurbaşkanı Kararı) in both titles and content.

IMPORTANT: Search is keyword-based, NOT by decision number. Use descriptive Turkish terms. Presidential Decisions are executive decisions (different from Presidential Decrees/Kararnamesi). Note: Bakanlar Kurulu Kararı (BKK) is NOT a separate type - older BKKs may appear here or in Kanun.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "atama" - Find decisions about appointments

  • "ihracat AND rejim" - Export regime decisions

  • "vergi" or "gümrük" - Tax or customs decisions

  • Leave empty with dates to list all decisions from a period

Returns: Decision number, title, publication date, Official Gazette info. PDF format only.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeNoSearch query with optional Boolean operators: simple word (organize), AND (organize AND suç), OR (suç OR ceza), NOT (organize NOT terör), + for required (+term), grouping with (), exact phrase with quotes ("organize suç"). Leave empty to list all decrees.
tam_cumleNoExact phrase match (true) or any word match (false, default). Set to true when searching for exact phrases.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2018')
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2024')
page_numberNoPage number for pagination (starts at 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It describes return fields (decision number, title, publication date, Official Gazette info), PDF format, and search behavior. It lacks details on rate limits or authentication but is transparent about results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections for important notes, query syntax, examples, and returns. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given multiple sibling search tools, this description fully covers how to use the tool, what it returns, and how it differs from others. Output schema exists but is supplemented by clear return description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by providing example queries and syntax, reinforcing parameter usage beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for Turkish Presidential Decisions in titles and content, differentiating from other sibling tools like search_cbgenelge and explicitly contrasting with Presidential Decrees and BKKs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides crucial guidelines: keyword-based search (not by decision number), use of descriptive Turkish terms, clarification of decision types, and query syntax examples. While it doesn't explicitly list when to avoid this tool, the context of sibling tools makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cbgenelgeA

Search for Turkish Presidential Circulars (Cumhurbaşkanlığı Genelgesi / CB Genelgesi) in titles and content.

IMPORTANT: Search is keyword-based, NOT by circular number. Use descriptive Turkish terms. Use 'get_cbgenelge_content' with mevzuat_no and resmi_gazete_tarihi to retrieve full PDF content.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "koordinasyon" - Coordination circulars

  • Leave empty with dates to list all circulars from a period

Returns: Circular number, title, publication date, Official Gazette info. PDF format only.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeNoSearch query with optional Boolean operators: simple word (organize), AND (organize AND suç), OR (suç OR ceza), NOT (organize NOT terör), + for required (+term), grouping with (), exact phrase with quotes ("organize suç"). Leave empty to list all circulars.
tam_cumleNoExact phrase match (true) or any word match (false, default). Set to true when searching for exact phrases.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2018')
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2024')
page_numberNoPage number (1-indexed)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses search is keyword-based and returns specific fields, but does not explicitly state it is a read-only operation, any limitations, authentication needs, or rate limits. Behavioral transparency is inadequate given no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with key purpose, followed by important notes, query syntax, examples, and return info. Every sentence adds value. Could be slightly more structured, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no required, 100% schema coverage, and output schema, the description covers purpose, usage, query syntax, and return fields. Does not explain pagination details or error conditions, but is reasonably complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by explaining overall purpose and providing example queries, but parameter details are already well-covered in the schema. Does not significantly enhance parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: searching for Turkish Presidential Circulars (CB Genelgesi) by keyword in titles and content. It distinguishes itself from siblings by explicitly naming the document type and contrasting with 'search_cbgenelge' for full text retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidelines: search is keyword-based, not by circular number; recommends using 'get_cbgenelge_content' for full PDF; explains query syntax and suggests leaving empty to list all circulars. Could explicitly mention when not to use this tool versus siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cbkA

Search for Turkish Presidential Decrees (Cumhurbaşkanlığı Kararnamesi) in both titles and content.

IMPORTANT: Search is keyword-based, NOT by decree number. Use descriptive Turkish terms. Presidential Decrees are executive orders issued by the President of Turkey (post-2017).

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "organize suç" - Find decrees about organized crime

  • "kamu OR devlet" - Decrees about public or state matters

  • "bakanlık AND teşkilat" - Ministry organization decrees

Returns: Decree number, title, publication date, Official Gazette info.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeYesSearch query with optional Boolean operators: simple word (organize), AND (organize AND suç), OR (suç OR ceza), NOT (organize NOT terör), + for required (+term), grouping with (), exact phrase with quotes ("organize suç")
tam_cumleNoExact phrase match (true) or any word match (false, default). Set to true when searching for exact phrases.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2018')
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2024')
page_numberNoPage number for pagination (starts at 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. It describes what is returned (decree number, title, publication date, Official Gazette info) and mentions pagination. It does not disclose potential rate limits, permissions, or side effects, but as a search tool, it is reasonably transparent. The description adds value beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections (explanation, important note, query syntax, example queries, returns). It is front-loaded with purpose. While it is longer than minimal, each section contributes useful information. A slightly more condensed version could achieve a 5, but it remains effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (mentioned in context signals), the description does not need to detail return values. It covers all essential aspects: purpose, query syntax, scope (title/content/both), pagination, and date filtering. It is complete for a search tool with good parameter coverage and sibling differentiation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds value by providing query syntax examples and clarifying the keyword-based nature, which enhances understanding of the 'aranacak_ifade' parameter. It also explains the 'aranacak_yer' options more clearly. Thus, it goes beyond simple schema repetition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for Turkish Presidential Decrees (Cumhurbaşkanlığı Kararnamesi) in both titles and content. It explains the resource and action, and the return fields specify what is output. Sibling tools like search_cbbaskankarar and search_within_cbk suggest different scopes, and the description implicitly differentiates by focusing on keyword search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is keyword-based and NOT by decree number, which guides usage. It provides query syntax and example queries. However, it does not explicitly state when to use this tool over siblings (e.g., search_cbbaskankarar for other decree types) or give exclusion criteria, which would elevate to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cbyonetmelikA

Search for Turkish Presidential Regulations (Cumhurbaşkanlığı Yönetmeliği / CB Yönetmeliği) in both titles and content.

IMPORTANT: Search is keyword-based, NOT by number. Use descriptive Turkish terms. These are regulations issued directly by the Presidency. For institutional regulations (Kurum Yönetmeliği), use 'search_kurum_yonetmelik' instead.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "ihale" - Procurement regulations

  • "taşınır AND mal" - Movable property regulations

  • "kamu ihale" - Public procurement regulations

  • Leave empty to list all, use date filters for period

Returns: Regulation number, title, publication date, Official Gazette info.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeNoSearch query with optional Boolean operators: simple word (yatırımcı), AND (yatırımcı AND tazmin), OR (vergi OR ücret), NOT (yatırımcı NOT kurum), + for required (+term), grouping with (), exact phrase with quotes ("mali sıkıntı"). Leave empty to list all regulations.
tam_cumleNoExact phrase match (true) or any word match (false, default). Set to true when searching for exact phrases.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2018')
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2024')
page_numberNoPage number (1-indexed)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries full burden. It explains the tool is keyword-based (not by number), details query syntax, and lists return fields. Though it omits potential limits like query length or character restrictions, it is transparent about core behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and key notes. It is logically structured but slightly verbose with query syntax examples that extend beyond essential guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, many siblings, output schema present), the description covers regulation type, search behavior, syntax, and return data. It is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptive parameter descriptions. The description adds example queries but does not provide significant new meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for Turkish Presidential Regulations (Cumhurbaşkanlığı Yönetmeliği) in both titles and content. It distinguishes from sibling tools by specifying that institutional regulations should use 'search_kurum_yonetmelik' instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use context (regulations issued by Presidency) and an alternative for institutional regulations. It includes query syntax and examples, but lacks explicit exclusions beyond the one sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_kanunA

Search for Turkish laws (Kanun) in both titles and content on mevzuat.gov.tr.

IMPORTANT: Search is keyword-based, NOT by law number. Use descriptive Turkish terms.

  • WRONG: "3065" or "6362" (numbers won't find laws reliably)

  • RIGHT: "katma değer vergisi" (finds KDV Kanunu No. 3065)

  • RIGHT: "sermaye piyasası" (finds Sermaye Piyasası Kanunu No. 6362)

  • RIGHT: "gümrük kanunu" (finds Gümrük Kanunu No. 4458)

  • RIGHT: "gelir vergisi" (finds Gelir Vergisi Kanunu No. 193)

  • RIGHT: "ceza muhakemesi" (finds CMK No. 5271)

  • RIGHT: "vergi usul" (finds VUK No. 213)

Use 'search_within_kanun' to search within a specific law's articles after finding its number.

Query Syntax:

  • Simple keyword: yatırımcı

  • Boolean AND: yatırımcı AND tazmin (both terms required)

  • Boolean OR: yatırımcı OR müşteri (at least one term)

  • Boolean NOT: yatırımcı NOT kurum (first yes, second no)

  • Required term: +yatırımcı +tazmin (similar to AND)

  • Grouping: (yatırımcı OR müşteri) AND tazmin

  • Exact phrase: "mali sıkıntı" (or use tam_cumle=true)

Returns: Law number, title, acceptance date, Official Gazette date and issue number.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeYesSearch query with optional Boolean operators: simple word (yatırımcı), AND (yatırımcı AND tazmin), OR (vergi OR ücret), NOT (yatırımcı NOT kurum), + for required (+term), grouping with (), exact phrase with quotes ("mali sıkıntı")
tam_cumleNoExact phrase match (true) or any word match (false, default). Set to true when searching for exact phrases like 'mali sıkıntı'.
baslangic_tarihiNoStart date for filtering results (format: DD.MM.YYYY, e.g., '01.01.2020')
bitis_tarihiNoEnd date for filtering results (format: DD.MM.YYYY, e.g., '31.12.2024')
page_numberNoPage number for pagination (starts at 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description fully carries the behavioral disclosure burden. It explains the search behavior (keyword-based), query syntax, and what is returned. While it covers most aspects well, it could mention pagination or result limits more explicitly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections and bullet points, front-loading the purpose. While somewhat lengthy, every sentence contributes value. Minor redundancy in query syntax examples could be tightened, but overall good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (though not shown), the description adequately covers all necessary aspects: purpose, usage, parameters, query syntax, and return fields. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds significant value beyond schema definitions by explaining search philosophy, providing usage examples, and clarifying parameter meanings (e.g., aranacak_yer values). This goes beyond simply restating schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches for Turkish laws (Kanun) in titles and content on mevzuat.gov.tr, with a specific verb and resource. It distinguishes from sibling tools like search_within_kanun, which is used to search within a specific law after finding its number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance that search is keyword-based, not by law number, with examples of correct and incorrect queries. Directs users to use search_within_kanun after obtaining the law number, clearly differentiating when to use this tool vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_khkA

Search for Turkish Decree Laws (Kanun Hükmünde Kararname / KHK) in titles and content.

IMPORTANT: Search is keyword-based, NOT by KHK number. Use descriptive Turkish terms. KHKs were abolished after the 2017 constitutional referendum (last issued 2018). Previously enacted KHKs remain in force unless repealed.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "sağlık AND düzenleme" - Health-related KHKs

  • "anayasa" - Constitutional KHKs

  • Leave empty with dates (e.g., 2010-2018) to list all KHKs from a period

Returns: KHK number, title, dates, Official Gazette info.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeNoSearch query with Boolean operators and wildcards. Examples: "değişiklik" (simple), "sağlık AND düzenleme" (AND), "bakanlık OR kurum" (OR), "kanun NOT yürürlük" (NOT), "değişiklik*" (wildcard), "güvenlik sistemi" (exact phrase with quotes). Leave empty to list all KHKs in date range.
tam_cumleNoIf True, searches for exact phrase match. If False (default), searches for any word match with Boolean operators.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2010'). Use with bitis_tarihi to define a date range.
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2018'). Use with baslangic_tarihi to define a date range.
page_numberNoPage number of results to retrieve (starts from 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100, default: 25)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses important behavioral traits: KHKs were abolished after 2017 but remain in force, and returns include KHK number, title, dates, and Official Gazette info. It does not cover pagination or error handling, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a brief intro, important notes, query syntax, examples, and return info. Every sentence serves a purpose; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description mentions return fields. Parameter descriptions in schema cover pagination. The description could elaborate more on pagination behavior, but it is adequate for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 7 parameters have descriptions in the schema (100% coverage). The description adds value by providing query syntax examples, explaining the tam_cumle and aranacak_yer parameters, and showing how to use date range parameters with examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches Turkish Decree Laws (KHK) in titles and content, distinguishing it from sibling tools for other legal documents. It specifies keyword-based search and provides context on KHK abolition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Search is keyword-based, NOT by KHK number' and advises using descriptive Turkish terms. It includes example queries and mentions leaving the query empty to list all KHKs, but does not explicitly state when to avoid this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_kurum_yonetmelikA

Search for Institutional/Organizational Regulations (Kurum ve Kuruluş Yönetmeliği) in titles and content.

IMPORTANT: Search is keyword-based, NOT by regulation number. Use descriptive Turkish terms. These are regulations issued by governmental institutions (ministries, agencies, boards). This is the largest dataset with 8686+ regulations. Use for: Gümrük Yönetmeliği, İthalat/İhracat Yönetmeliği, and similar institutional regulations.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "gümrük" - Customs regulations (e.g., Gümrük Yönetmeliği)

  • "ithalat" or "ihracat" - Import/export regulations

  • "nükleer" - Nuclear regulations

  • "adalet AND akademi" - Justice academy regulations

  • Leave empty with dates to list all regulations from a period

Returns: Regulation number, title, dates, Official Gazette info.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeNoSearch query with Boolean operators and wildcards. Examples: "nükleer" (simple), "ihracat AND kontrol" (AND), "denetim OR teftiş" (OR), "mali NOT ceza" (NOT), "kontrol*" (wildcard), "ithalat ihracat" (exact phrase with quotes). Leave empty to list all regulations in date range.
tam_cumleNoIf True, searches for exact phrase match. If False (default), searches for any word match with Boolean operators.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2020'). Use with bitis_tarihi to define a date range.
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2025'). Use with baslangic_tarihi to define a date range.
page_numberNoPage number of results to retrieve (starts from 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100, default: 25)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that search is keyword-based, explains query syntax with Boolean operators and examples, and states return fields. It does not mention whether it is read-only or any rate limits, but the read-only nature is implied by the search operation. Overall, it provides sufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear first sentence, an 'IMPORTANT' callout, query syntax, examples, and return values. Every sentence is informative and earns its place. It is concise yet comprehensive, with no redundant or vague statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no required fields, no output schema details), the description covers all essential aspects: the type of regulations, how to query, date range, location, pagination, and what is returned. It provides enough context for an agent to use the tool effectively without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds significant value beyond schema by explaining query syntax with practical examples, clarifying the 'tam_cumle' parameter, and showing how to use date filters and search location. This extra guidance helps the agent form correct queries.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it searches for institutional regulations ('Kurum ve Kuruluş Yönetmeliği') in titles and content. It specifies the dataset size (8686+ regulations) and gives concrete examples like Gümrük Yönetmeliği, İthalat/İhracat Yönetmeliği, distinguishing it from siblings that search other regulation types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says search is keyword-based, not by regulation number, and recommends descriptive Turkish terms. It provides a clear usage context: 'Use for: Gümrük Yönetmeliği, İthalat/İhracat Yönetmeliği, and similar institutional regulations.' The 'IMPORTANT' alert further guides correct usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_mevzuatA

Search or browse all Turkish legislation on bedesten.adalet.gov.tr.

Covers 12 legislation types: Kanunlar, Cumhurbaşkanı Kararnameleri, Bakanlar Kurulu Yönetmelikleri, CB Yönetmelikleri, CB Kararları, CB Genelgeleri, KHK'lar, Tüzükler, Kurum/Kuruluş Yönetmelikleri, Üniversite Yönetmelikleri, Tebliğler, Mülga Mevzuat.

Search modes:

  • mevzuat_adi: Title/keyword search (recommended, searches legislation name)

  • phrase: Full-text content search (Solr syntax, searches inside document body)

  • mevzuat_no: Direct number lookup (e.g., '5237' for TCK)

  • Browse: Leave all empty to list by type

Date range filtering:

  • Use resmi_gazete_tarihi_start and/or resmi_gazete_tarihi_end (DD/MM/YYYY)

  • Single date: set both start and end to the same date

  • Year range: '01/01/2024' to '31/12/2024'

Workflow: Use this tool first to find legislation → then use mevzuatId from results with:

  • get_mevzuat_content: Full document text

  • search_within_mevzuat: Search articles within a document

  • get_mevzuat_madde_tree: Table of contents / article tree

  • get_mevzuat_gerekce: Law rationale (if gerekceId is present in results)

ParametersJSON Schema
NameRequiredDescriptionDefault
phraseNoFull-text search in document content (Solr/Lucene syntax). Searches inside the legislation text, not just the title. Leave empty to browse/list or use mevzuat_adi for title search. Solr operators: "exact phrase", +required -prohibited, wildcard*, single?, fuzzy~, fuzzy~N, "proximity"~N, boost^N. NOTE: AND/OR/NOT do NOT work here - use +term1 +term2 instead of term1 AND term2, use -term instead of NOT term, use 'term1 term2' (space) instead of term1 OR term2. Examples: 'ticaret' (simple), '"katma değer vergisi"' (exact phrase), '+yatırımcı +tazmin' (both required), 'yatırımcı -kurum' (exclude), 'yatırım*' (wildcard), '*ımcı' (leading wildcard), 'yatırımc?' (single char wildcard), 'yatırımcı~' (fuzzy), 'yatırımcı~2' (fuzzy with distance), '"yatırımcı tazmin"~5' (proximity within 5 words), 'yatırımcı^2 tazmin' (boost first term)
mevzuat_adiNoTitle/keyword search (Aranacak Kavram). Searches in legislation title/name. Use Turkish keywords, not law numbers. Multiple words are AND-matched (all must appear in title). Supports only: simple keywords, trailing wildcard (ticar*), single char wildcard (ticare?). For exact phrase match use tamCumle=True instead of quotes. Do NOT use quotes, +, -, ~, ^, or other Solr operators here (they break the search). Examples: 'ticaret kanunu', 'ceza', 'gümrük', 'sermaye piyasası', 'gelir vergisi', 'ticar*'. Can be used alone or together with phrase for combined filtering.
mevzuat_noNoLegislation number filter. Directly filters by the official number. E.g., '5237' for Türk Ceza Kanunu, '6102' for Türk Ticaret Kanunu, '6362' for Sermaye Piyasası Kanunu.
mevzuat_turNoFilter by legislation type. Leave empty to search all types. Single type or comma-separated for multiple types. Types: KANUN (Kanunlar), CB_KARARNAME (Cumhurbaşkanı Kararnameleri), YONETMELIK (Bakanlar Kurulu Yönetmelikleri), CB_YONETMELIK (Cumhurbaşkanlığı Yönetmelikleri), CB_KARAR (Cumhurbaşkanı Kararları), CB_GENELGE (Cumhurbaşkanlığı Genelgeleri), KHK (Kanun Hükmünde Kararnameler), TUZUK (Tüzükler), KKY (Kurum ve Kuruluş Yönetmelikleri), UY (Üniversite Yönetmelikleri), TEBLIGLER (Tebliğler), MULGA (Mülga Mevzuat). Examples: 'KANUN', 'KANUN,KHK', 'TEBLIGLER,KKY'
basliktaAraNoWhen True (default), mevzuat_adi searches only in legislation titles. When False, mevzuat_adi searches in both title and content.
tamCumleNoExact phrase match for mevzuat_adi. When True, the entire mevzuat_adi text must appear as an exact phrase. When False (default), individual words are matched. Example: 'katma değer vergisi' with tamCumle=True finds only exact matches.
resmi_gazete_tarihi_startNoStart date filter for Official Gazette date range (DD/MM/YYYY format). Filters legislation published on or after this date. E.g., '01/01/2024' to find legislation from 2024 onwards. Use with resmi_gazete_tarihi_end for a specific date range.
resmi_gazete_tarihi_endNoEnd date filter for Official Gazette date range (DD/MM/YYYY format). Filters legislation published on or before this date. E.g., '31/12/2024' to find legislation up to end of 2024. Use with resmi_gazete_tarihi_start for a specific date range.
resmi_gazete_sayisiNoOfficial Gazette issue number filter. E.g., '28513'.
pageNoPage number (1-based, default: 1)
page_sizeNoResults per page (1-100, default: 25)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries full burden. It explains search modes, date range formatting, pagination, and Solr syntax. Lacks auth/rate limit info but is otherwise transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is long and detailed with structured sections, but some parts like Solr syntax examples are verbose. Could be more concise while retaining clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all major aspects: search modes, date filtering, workflow. Mentions mevzuatId in results hinting at output. Given complexity, it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%. Description adds significant context beyond schema, including Solr syntax examples, date usage, and operator explanations for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches/browses Turkish legislation on a specific site, lists 12 legislation types, and distinguishes from sibling tools by being a general search across all types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow: use this tool first, then use specific tools with mevzuatId. Recommends search modes but does not explicitly exclude use when sibling tools are more appropriate for specific types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tebligA

Search for Turkish communiqués (Tebliğ) in both titles and content on mevzuat.gov.tr.

IMPORTANT: Search is keyword-based, NOT by number. Use descriptive Turkish terms. Communiqués are regulatory documents issued by various government institutions.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "katma değer vergisi" - Find VAT-related communiqués

  • "muafiyet OR istisna" - Communiqués about exemptions

  • "gümrük" - Customs-related communiqués

  • "ithalat" or "ihracat" - Import/export communiqués

Returns: Communiqué number, title, publication date, Official Gazette info.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeYesSearch query with optional Boolean operators: simple word (vergi), AND (vergi AND muafiyet), OR (muafiyet OR istisna), NOT (vergi NOT gelir), + for required (+term), grouping with (), exact phrase with quotes ("katma değer vergisi")
tam_cumleNoExact phrase match (true) or any word match (false, default). Set to true when searching for exact phrases.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2020')
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2024')
page_numberNoPage number for pagination (starts at 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It explains search behavior (keyword-based, exact phrase option) and return fields, but omits details on pagination limits, result ordering, or whether the operation is read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured: purpose, important note, syntax, examples, returns. Examples are helpful but add length; still concise and front-loaded with critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description appropriately states return fields. All parameters are documented. Missing details on potential errors or data volume, but sufficient for a search tool with clear purpose and good annotation coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover all 7 parameters (100% coverage). Description adds value by explaining the query syntax and providing examples, which go beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool searches for Turkish communiqués (Tebliğ) in titles and content on mevzuat.gov.tr, with specific verb 'search' and resource 'Tebliğ'. It distinguishes from sibling tools like search_kanun or search_khk by targeting a specific document type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly notes that search is keyword-based, not by number, guiding users to use descriptive Turkish terms. Provides query syntax and examples, but does not explicitly mention alternative tools like get_teblig_content for number-based lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_tuzukA

Search for Turkish Statutes/Regulations (Tüzük) in titles and content.

IMPORTANT: Search is keyword-based, NOT by statute number. Use descriptive Turkish terms. Tüzük are regulatory statutes that implement and detail the provisions of laws.

Query Syntax: Simple keyword, AND, OR, NOT, +required, (grouping), "exact phrase"

Example queries:

  • "tapu" - Land registry related statutes

  • "vakıf AND tescil" - Foundation registration statutes

  • Leave empty with dates to list all statutes from a period

Returns: Statute number, title, dates, Official Gazette info.

ParametersJSON Schema
NameRequiredDescriptionDefault
aranacak_ifadeNoSearch query with Boolean operators and wildcards. Examples: "tapu" (simple), "sicil AND kayıt" (AND), "tescil OR ilan" (OR), "vakıf NOT kurul" (NOT), "tescil*" (wildcard), "medeni kanun" (exact phrase with quotes). Leave empty to list all statutes in date range.
tam_cumleNoIf True, searches for exact phrase match. If False (default), searches for any word match with Boolean operators.
baslangic_tarihiNoStart year for filtering results (format: YYYY, e.g., '2008'). Use with bitis_tarihi to define a date range.
bitis_tarihiNoEnd year for filtering results (format: YYYY, e.g., '2013'). Use with baslangic_tarihi to define a date range.
page_numberNoPage number of results to retrieve (starts from 1)
aranacak_yerNoWhere to search: 1=Title only, 2=Content only, 3=Both title and content (default)
page_sizeNoNumber of results per page (1-100, default: 25)

Output Schema

ParametersJSON Schema
NameRequiredDescription
documentsYes
total_resultsYes
current_pageYes
page_sizeYes
total_pagesYes
query_usedYes
error_messageNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the search scope (title/content), query syntax, return fields (statute number, title, dates, Official Gazette info), and the ability to list all statutes with dates. This adequately covers behavior for a read-only search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words. It uses clear formatting (IMPORTANT note, example queries, returns list) and front-loads the key point about keyword-based search. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the tool's purpose, input syntax, and output shape (aided by output schema existence). It lacks mention of sibling search_within_tuzuk for in-document searching, but overall it provides sufficient context for an agent to select and use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and schema descriptions are detailed, but the description adds value by explaining query syntax and providing examples that clarify how Boolean operators and exact phrases work. This reduces ambiguity beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for Turkish Statutes/Regulations (Tüzük) in titles and content. It specifies that search is keyword-based, not by statute number, and provides examples. This distinctly identifies the resource and action, differentiating it from siblings that search other regulation types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when not to use this tool (not for statute number searches) and gives query syntax and examples. However, it does not mention alternative tools like search_kanun or search_within_tuzuk for related but different searches, leaving the agent to infer from the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_cbbaskankararA

Search within a specific Presidential Decision's (CB Kararı) content using keyword or semantic search.

Presidential Decisions are PDF-based and use chunk-based splitting (no article structure).

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "atama AND görev", '"ihracat rejimi"', "vergi OR gümrük" Semantic examples: "kamu personeli atama kararları", "ihracat rejimi düzenlemeleri"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe Presidential Decision number to search within (e.g., '1733', '10452')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoDecision series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching segments to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It mentions chunk-based splitting (no article structure), Boolean operator requirements, and provides examples. Missing details on pagination or error handling, but sufficient for behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with sections for modes and examples. Every sentence adds value, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, description needn't explain return values. It covers search behavior, modes, and query syntax. Could mention result ordering or limitations like max results cap, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). The description adds value by explaining semantic mode, Boolean operators, and providing example queries for both modes, going beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches within a specific Presidential Decision's content using keyword or semantic search, distinguishing it from siblings like search_cbbaskankarar (cross-decision) and get_cbbaskankarar_content (retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two modes (keyword vs semantic) with examples and notes when to use each, including the requirement for OPENROUTER_API_KEY in semantic mode. However, it does not explicitly state when not to use this tool vs alternatives for cross-decision search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_cbgenelgeA

Search within a specific Presidential Circular's (CB Genelgesi) content using keyword or semantic search.

Presidential Circulars are PDF-based and use chunk-based splitting (no article structure). IMPORTANT: resmi_gazete_tarihi is required (from search_cbgenelge results).

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "koordinasyon AND toplantı", '"kamu yönetimi"' Semantic examples: "bakanlıklar arası koordinasyon düzeni", "tasarruf tedbirleri"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe Presidential Circular number to search within (e.g., '16', '15')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
resmi_gazete_tarihiYesOfficial Gazette date from search results in DD/MM/YYYY format (e.g., '20/09/2025') - REQUIRED for PDF retrieval
mevzuat_tertipNoCircular series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching segments to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden: it discloses the two search modes, API key requirement for semantic mode, boolean operator usage, and chunk-based splitting. No destructive or side effects are implied, and the behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections, examples, and important notes front-loaded. It is slightly verbose but every sentence adds meaning; no wasted words. It could be more succinct, but the clarity justifies the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, an output schema, and no annotations, the description covers all essential aspects: search modes, prerequisites, parameter constraints, and mode-specific behavior. It is complete for an agent to correctly invoke the tool without confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds value by providing examples for keyword and semantic queries, explaining the case sensitivity relevance, and clarifying that 'resmi_gazete_tarihi' is required from prior search results, which goes beyond bare schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches within a specific Presidential Circular using keyword or semantic search, differentiating it from sibling tools like 'search_cbgenelge' which finds circulars themselves. It also specifies the chunk-based document structure, making the purpose concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states that 'resmi_gazete_tarihi' is required and should come from 'search_cbgenelge' results, providing a clear prerequisite. It also explains the two modes (keyword vs semantic) and gives examples, leaving no ambiguity about when to use each.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_cbkA

Search within a specific Presidential Decree's articles using keyword or semantic search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "organize AND suç", '"organize suç"', "devlet OR kamu" Semantic examples: "organize suç örgütleri ile mücadele", "bakanlık teşkilat yapısı"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe Presidential Decree number to search within (e.g., '1', '32')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoDecree series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching articles to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It clearly describes two search modes, Boolean operator usage, and the API key dependency. It could mention rate limits or result handling, but the core behaviors are transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-structured with a clear overview, mode breakdown, and examples. Every sentence adds value, and the formatting improves readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two search modes, 6 parameters), the description covers modes, constraints, and examples. An output schema exists (not shown), so return values need not be explained. Minor missing details like error handling are acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage, but the description adds value by explaining mode-specific behavior (e.g., case_sensitive only in keyword mode, semantic mode requiring API key) and providing examples. This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches within a specific Presidential Decree's articles using keyword or semantic search. It includes specific verbs ('search within') and explicitly distinguishes from sibling tools by focusing on a single decree vs. broad search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains two modes with examples and notes the OPENROUTER_API_KEY requirement for semantic mode. However, it does not explicitly state when to prefer this tool over siblings like 'search_cbk', though the naming and context imply it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_cbyonetmelikA

Search within a specific Presidential Regulation's articles using keyword or semantic search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "taşınır AND mal", '"ihale kanunu"', "kamu OR devlet" Semantic examples: "taşınır mal yönetimi ve zimmet işlemleri", "kamu ihale süreçleri"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe Presidential Regulation number to search within (e.g., '10453', '9014')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoRegulation series from search results (typically '5')5
case_sensitiveNoWhether to match case (false = case-insensitive, default). Only used in keyword mode.
max_resultsNoMaximum number of matching articles to return (1-50)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses behavioral traits such as the two search modes, requirement for OPENROUTER_API_KEY in semantic mode, uppercase Boolean operators, case sensitivity only in keyword mode, and result limits (1-50). Minor omission: no mention of error behavior if API key is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: two opening sentences define purpose, followed by a clear bullet-style listing of modes with examples. Every sentence adds value, and the structure is front-loaded with essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (6 params, output schema), the description covers the core functionality well. It explains modes and parameter usage, but does not address error scenarios (e.g., invalid mevzuat_no, missing API key) or specify that output schema details exist. Minor gaps prevent a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by clarifying that Boolean operators must be uppercase, providing concrete examples for both modes, and specifying that case_sensitive only applies in keyword mode. This enhances the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: search within a specific Presidential Regulation's articles using keyword or semantic search. It specifies the resource (Presidential Regulation articles) and distinguishes from siblings like search_within_cbgenelge or search_within_kanun by naming the regulation type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use keyword vs semantic modes, but does not explicitly guide when to choose this tool over sibling tools for different regulation types. It assumes the agent knows that this tool is for 'cbyonetmelik'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_kanunA

Search within a specific law's articles using keyword or semantic search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "yatırımcı AND tazmin", '"mali sıkıntı"', "vergi OR ücret" Semantic examples: "yatırımcının zararının tazmini", "sermaye piyasası düzenlemeleri"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe legislation number to search within (e.g., '6362', '5237')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoLegislation series from search results (e.g., '3', '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching articles to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Describes two search modes and their behavior, including Boolean operators and semantic embeddings. Lacks details on potential side effects, auth needs beyond API key, or rate limits, but adds value beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Structured into clear sections (modes, examples) with no redundant text. Every sentence adds value: two sentences covering core purpose, then bulleted lists for modes and examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers both search modes, required parameters, optional parameters with defaults, and output schema exists. The description is complete given the tool's complexity and richness of schema and output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with good descriptions. The description adds context by explaining modes and providing examples, which enhances understanding beyond the schema. However, the schema already handles parameter semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it searches within a specific law's articles using keyword or semantic search. Distinguishes from sibling tools like 'search_within_kanun' vs general 'search_kanun' by specifying 'within a specific law' and providing two distinct search modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance for both keyword and semantic modes, including examples and noting the OPENROUTER_API_KEY requirement for semantic search. However, does not explicitly state when to choose this tool over siblings or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_khkA

Search within a specific Decree Law's (KHK) articles using keyword or semantic search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "kanun AND değişiklik", '"kanun hükmünde"', "bakanlık OR kurum" Semantic examples: "sağlık alanında yapılan düzenlemeler", "anayasa değişikliği"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe KHK number to search within (e.g., '703', '700', '665')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoKHK series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching articles to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses mode behavior, operator support, case sensitivity, max results limit, and environment variable dependency. No annotations provided, so description compensates well. Could mention authentication or rate limits, but overall transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise two-paragraph structure with clear separation of modes, examples, and parameters. No unnecessary words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given sibling richness and presence of output schema, description is nearly complete. Could briefly state that it returns matching articles from the specified KHK, but context is sufficient for usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, but description adds value by explaining modes with examples, clarifying that case_sensitive only applies to keyword mode, and providing defaults and ranges. Adds meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool searches within a specific KHK's articles using keyword or semantic search. However, it does not explicitly differentiate from the sibling tool 'search_khk', which likely searches across multiple KHKs. The description implies but does not contrast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes two modes and their requirements (e.g., OPENROUTER_API_KEY for semantic), but does not explicitly state when to use this tool vs. alternatives like 'search_khk' or other 'search_within_*' tools. Usage is implied but not directly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_kurum_yonetmelikA

Search within a specific Institutional Regulation's articles using keyword or semantic search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "nükleer AND ihracat", '"ihracat kontrol"', "denetim OR teftiş" Semantic examples: "nükleer madde ihracat kontrol düzenlemeleri", "disiplin cezaları"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe regulation number to search within (e.g., '42641', '42638', '42613')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoRegulation series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching articles to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that semantic mode requires an API key, keyword mode supports Boolean operators, and gives examples. However, it lacks details on error handling, rate limits, or limitations (e.g., what if mevzuat_no not found). The output schema exists but description doesn't mention return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with bullet points for modes and examples. It front-loads the main purpose and avoids unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description need not explain return values. It covers mode selection, parameters, and examples adequately for a search tool. However, it could be slightly more complete by stating that it returns a list of matching articles, though not critical.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description adds meaningful value by explaining modes, providing usage examples, and clarifying the semantic parameter's requirement. It goes beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it searches within a specific Institutional Regulation's articles using keyword or semantic search. The verb 'search' and resource 'Institutional Regulation' (kurum yonetmelik) are specific and distinguish from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains two modes with examples and requirements for semantic mode, but does not explicitly differentiate when to use this tool versus other search_within_* siblings or search_kurum_yonetmelik. No exclusion or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_mevzuatA

Search within a specific legislation's articles on bedesten.adalet.gov.tr.

Ideal for large legislation where get_mevzuat_content would return too much text. Fetches the full document, splits into individual articles (MADDE), and applies keyword search with Boolean operators. Returns only matching articles sorted by relevance score (match frequency).

Each result includes: article number (madde no), match count, and full article text.

Workflow: search_mevzuat → get mevzuatId → search_within_mevzuat(mevzuatId, keyword)

Example: To find investor compensation articles in Capital Markets Law:

  1. search_mevzuat(mevzuat_adi='sermaye piyasası', mevzuat_tur='KANUN') → mevzuatId

  2. search_within_mevzuat(mevzuat_id='...', keyword='yatırımcı AND tazmin')

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_idYesLegislation ID from search_mevzuat results (mevzuatId field). This is a string ID (e.g., '345097'), NOT the law number. First call search_mevzuat to get the mevzuatId.
keywordYesSearch query with Boolean operators (operators MUST be uppercase). Simple keyword: 'yatırımcı'. AND (both required): 'yatırımcı AND tazmin'. OR (at least one): 'yatırımcı OR müşteri'. NOT (exclude): 'yatırımcı NOT kurum'. Exact phrase: '"mali sıkıntı"'. Combined: '"mali sıkıntı" AND yatırımcı NOT kurum'.
case_sensitiveNoCase-sensitive matching (default: false)
max_resultsNoMaximum number of matching articles to return (1-50, default: 25)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description details the internal process: fetches full document, splits into articles, applies Boolean keyword search, sorts by relevance, and specifies result fields. It does not mention rate limits or potential large data usage, but it is sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured and concise: opens with purpose, then usage context, behavioral details, result format, workflow, and example. No extraneous information; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, existing output schema) and good annotations, the description covers all necessary aspects: input requirements, processing logic, output structure, and usage workflow. It is fully complete for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds substantial value beyond the schema: explains how to obtain mevzuat_id, provides detailed Boolean operator syntax with examples for keyword, and clarifies defaults and constraints for case_sensitive and max_results. With 100% schema coverage, the description still enriches understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search within a specific legislation's articles'. It distinguishes from siblings like get_mevzuat_content by noting it is ideal for large legislation, and from other search_within_* tools by specifying the source domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'Ideal for large legislation where get_mevzuat_content would return too much text.' Provides a step-by-step workflow and a concrete example, guiding the agent on correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_tebligA

Search within a specific communiqué's (Tebliğ) content using keyword or semantic search.

Tries article-based splitting first; if no articles found, falls back to chunk-based search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "vergi AND muafiyet", '"katma değer"', "istisna OR muafiyet" Semantic examples: "vergi muafiyeti koşulları", "KDV iade işlemleri"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe communiqué number to search within (e.g., '42331')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoCommuniqué series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching segments to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description discloses fallback behavior (article-based then chunk-based), mode differences, and API key requirement. Lacks mention of cost or rate limits for semantic mode, but overall transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections (purpose, fallback, modes, examples). No redundant sentences; every part contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (two modes, fallback, 6 params), the description covers key aspects. Output schema exists, so return values are not needed. Could mention pagination but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds significant value with examples, mode explanations, and fallback details. Goes beyond the schema to clarify usage patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it searches within a specific Tebliğ communiqué using keyword or semantic search. The verb 'search within' and resource 'teblig' are unambiguous, and the description distinguishes from sibling tools that search other document types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains two modes (keyword vs. semantic) with examples and the requirement of OPENROUTER_API_KEY for semantic mode. Provides fallback logic but does not explicitly differentiate from sibling tools like search_teblig, though the name indicates scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_within_tuzukA

Search within a specific Statute's (Tüzük) articles using keyword or semantic search.

Modes:

  • semantic=False (default): Keyword search with Boolean operators (AND/OR/NOT, uppercase required)

  • semantic=True: Natural language semantic search using AI embeddings (requires OPENROUTER_API_KEY)

Keyword examples: "tapu AND sicil", '"sicil kayıt"', "tescil OR ilan" Semantic examples: "tapu sicil kayıt işlemleri", "vakıf tescil süreci"

ParametersJSON Schema
NameRequiredDescriptionDefault
mevzuat_noYesThe statute number to search within (e.g., '20135150', '20134513', '200814001')
keywordYesSearch query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language.
mevzuat_tertipNoStatute series from search results (e.g., '5')5
case_sensitiveNoWhether to match case when searching (default: False). Only used in keyword mode.
max_resultsNoMaximum number of matching articles to return (1-50, default: 25)
semanticNoTrue: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully covers behavior: two search modes, Boolean operators, case sensitivity, max results, API key requirement. Examples clarify usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, front-loaded, uses headings for modes. Every sentence adds value. Examples are well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects: required inputs, mode selection, parameter details, examples. With 6 parameters and no annotations, description is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes all parameters (100% coverage). Description adds value with usage examples, operator uppercase requirement, and API key condition for semantic mode.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool searches within a specific statute's articles using keyword or semantic search. Distinguishes from siblings by specifying 'Tüzük' and requiring a statute number.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains two modes and gives examples. Implicitly requires statute number (mevzuat_no). Does not explicitly compare to other tools like search_tuzuk, but provides context on mode selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 23 tool updates
    • Addedget_mevzuat_content
    • Addedget_mevzuat_gerekce
    • Addedget_mevzuat_madde_tree
    • Changedsearch_cbbaskankarar1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_cbgenelge1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_cbk1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_cbyonetmelik1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_kanun1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_khk1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_kurum_yonetmelik1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Addedsearch_mevzuat
    • Changedsearch_teblig1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Changedsearch_tuzuk1 field changed
      • addedInput schema / properties / aranacak_yer
        Added value: +{
        +  "default": 3,
        +  "description": "Where to search: 1=Title only, 2=Content only, 3=Both title and content (default)",
        +  "maximum": 3,
        +  "minimum": 1,
        +  "title": "Aranacak Yer",
        +  "type": "integer"
        +}
    • Addedsearch_within_cbbaskankarar
    • Addedsearch_within_cbgenelge
    • Changedsearch_within_cbk3 fields changed
      • changedInput schema / properties / case_sensitive / description
        Previous value: -"Whether to match case when searching (default: False)"New value: +"Whether to match case when searching (default: False). Only used in keyword mode."
      • changedInput schema / properties / keyword / description
        Previous value: -"Search query supporting advanced operators: simple keyword (\"organize\"), exact phrase (\"organize suç\"), AND/OR/NOT operators (organize AND suç, suç OR ceza, organize NOT terör). Operators must be uppercase."New value: +"Search query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language."
      • addedInput schema / properties / semantic
        Added value: +{
        +  "default": false,
        +  "description": "True: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).",
        +  "title": "Semantic",
        +  "type": "boolean"
        +}
    • Changedsearch_within_cbyonetmelik3 fields changed
      • changedInput schema / properties / case_sensitive / description
        Previous value: -"Whether to match case (false = case-insensitive, default)"New value: +"Whether to match case (false = case-insensitive, default). Only used in keyword mode."
      • changedInput schema / properties / keyword / description
        Previous value: -"Search query supporting advanced operators: simple word (yatırımcı), AND (yatırımcı AND tazmin), OR (vergi OR ücret), NOT (yatırımcı NOT kurum), exact phrase with quotes (\"mali sıkıntı\")"New value: +"Search query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language."
      • addedInput schema / properties / semantic
        Added value: +{
        +  "default": false,
        +  "description": "True: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).",
        +  "title": "Semantic",
        +  "type": "boolean"
        +}
    • Changedsearch_within_kanun3 fields changed
      • changedInput schema / properties / case_sensitive / description
        Previous value: -"Whether to match case when searching (default: False)"New value: +"Whether to match case when searching (default: False). Only used in keyword mode."
      • changedInput schema / properties / keyword / description
        Previous value: -"Search query supporting advanced operators: simple keyword (\"yatırımcı\"), exact phrase (\"mali sıkıntı\"), AND/OR/NOT operators (yatırımcı AND tazmin, yatırımcı OR müşteri, yatırımcı NOT kurum). Operators must be uppercase."New value: +"Search query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language."
      • addedInput schema / properties / semantic
        Added value: +{
        +  "default": false,
        +  "description": "True: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).",
        +  "title": "Semantic",
        +  "type": "boolean"
        +}
    • Changedsearch_within_khk3 fields changed
      • changedInput schema / properties / case_sensitive / description
        Previous value: -"Whether to match case when searching (default: False)"New value: +"Whether to match case when searching (default: False). Only used in keyword mode."
      • changedInput schema / properties / keyword / description
        Previous value: -"Search query supporting advanced operators: simple keyword (\"değişiklik\"), exact phrase (\"kanun hükmünde\"), AND/OR/NOT operators (kanun AND değişiklik, madde OR fıkra, değişiklik NOT yürürlük). Operators must be uppercase."New value: +"Search query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language."
      • addedInput schema / properties / semantic
        Added value: +{
        +  "default": false,
        +  "description": "True: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).",
        +  "title": "Semantic",
        +  "type": "boolean"
        +}
    • Changedsearch_within_kurum_yonetmelik3 fields changed
      • changedInput schema / properties / case_sensitive / description
        Previous value: -"Whether to match case when searching (default: False)"New value: +"Whether to match case when searching (default: False). Only used in keyword mode."
      • changedInput schema / properties / keyword / description
        Previous value: -"Search query supporting advanced operators: simple keyword (\"kontrol\"), exact phrase (\"ihracat kontrol\"), AND/OR/NOT operators (nükleer AND ihracat, denetim OR teftiş, kontrol NOT iptal). Operators must be uppercase."New value: +"Search query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language."
      • addedInput schema / properties / semantic
        Added value: +{
        +  "default": false,
        +  "description": "True: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).",
        +  "title": "Semantic",
        +  "type": "boolean"
        +}
    • Addedsearch_within_mevzuat
    • Addedsearch_within_teblig
    • Changedsearch_within_tuzuk3 fields changed
      • changedInput schema / properties / case_sensitive / description
        Previous value: -"Whether to match case when searching (default: False)"New value: +"Whether to match case when searching (default: False). Only used in keyword mode."
      • changedInput schema / properties / keyword / description
        Previous value: -"Search query supporting advanced operators: simple keyword (\"kayıt\"), exact phrase (\"sicil kayıt\"), AND/OR/NOT operators (tapu AND sicil, tescil OR ilan, kayıt NOT iptal). Operators must be uppercase."New value: +"Search query. For keyword mode: supports AND/OR/NOT operators (uppercase). For semantic mode: use natural language."
      • addedInput schema / properties / semantic
        Added value: +{
        +  "default": false,
        +  "description": "True: semantic search (natural language query, requires OPENROUTER_API_KEY). False: keyword search (Boolean operators AND/OR/NOT).",
        +  "title": "Semantic",
        +  "type": "boolean"
        +}
  2. 21 tool updatesv1.0.0
    • Addedget_cbbaskankarar_content
    • Addedget_cbgenelge_content
    • Removedget_mevzuat_article_content
    • Removedget_mevzuat_article_tree
    • Addedget_teblig_content
    • Addedsearch_cbbaskankarar
    • Addedsearch_cbgenelge
    • Addedsearch_cbk
    • Addedsearch_cbyonetmelik
    • Addedsearch_kanun
    • Addedsearch_khk
    • Addedsearch_kurum_yonetmelik
    • Removedsearch_mevzuat
    • Addedsearch_teblig
    • Addedsearch_tuzuk
    • Addedsearch_within_cbk
    • Addedsearch_within_cbyonetmelik
    • Addedsearch_within_kanun
    • Addedsearch_within_khk
    • Addedsearch_within_kurum_yonetmelik
    • Addedsearch_within_tuzuk
  3. 3 tool updates
    • First observedget_mevzuat_article_content
    • First observedget_mevzuat_article_tree
    • First observedsearch_mevzuat

TDQS

A3.8/5.0

Scored across 26 tools

Disambiguation2/5

Several tools have overlapping boundaries: search_kanun/search_within_kanun overlap with search_mevzuat/search_within_mevzuat, and search_cbk/search_cbbaskankarar are easy to confuse despite the detailed descriptions. An agent is likely to misselect between the generic mevzuat workflow and the type-specific search tools because the intended source difference is not obvious.

Naming Consistency4/5

Tool names generally follow a predictable search_<type>, search_within_<type>, and get_<type>_content pattern in snake_case. Minor inconsistencies like the abbreviated 'cbk' vs 'cbbaskankarar' and generic get_mevzuat_gerekce/get_mevzuat_madde_tree prevent a perfect score.

Tool Count2/5

With 26 tools, the server exceeds the 25+ threshold and feels overly large. Much of the type-specific search/search_within surface duplicates the generic mevzuat workflow, so the count is inflated despite the broad legal document taxonomy.

Completeness4/5

The server covers the main read-only legal research lifecycle: searching by type, browsing by date, retrieving full content, searching within documents, getting article trees, and fetching law rationale. Minor gaps exist, such as no direct content getter for every document type and no semantic mode on generic search_within_mevzuat, but the generic workflow mostly compensates.

Maintenance

ActivityStale
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A FastMCP server providing access to various Turkish legal databases including Supreme Court, Council of State, Constitutional Court, and Public Procurement Authority decisions through a standardized MCP interface for LLM applications.
    28
    220 PyPI
    1,112
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides programmatic access to Turkey's Ministry of Justice Legislation Information System (mevzuat.gov.tr), enabling users to search legislation, retrieve article hierarchies, and fetch article contents in Markdown format through natural language.
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides programmatic access to the Turkish Ministry of Justice Legislation Information System (mevzuat.gov.tr). It enables searching for legislation, navigating hierarchical article structures, and retrieving article content in Markdown format.
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server that exposes Austrian federal law (Bundesrecht) to LLMs, enabling full-text search, paragraph retrieval, historical versions, statute lookup, BGBl lookups, amendment timelines, and citation searches via the public RIS OGD API.
    -