Skip to main content
Glama

# Hukuk MCP

Yerel MCP sunucusu: kamu Türk mevzuatı ve mahkeme/kurul kararlarını AI istemcilerine bağlar; dilekçe taslağı ve UYAP UDF üretir.

UYAP avukat girişi, abonelik ve web sitesi yoktur. Kişisel dava dosyası indirmez. Üretilen metin hukuki tavsiye değildir.

Ön koşul

uv kurulu olsun (Python 3.11+ otomatik gelir).

powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"

Related MCP server: Türk Hukuk AI MCP

Tek satır kurulum (uvx)

GitHub’dan doğrudan çalışır; klasör kopyalamaya gerek yok.

uvx --from git+https://github.com/berkebeydag/hukuk-mcp.git hukuk-mcp

Cursor

Settings → MCP veya proje .cursor/mcp.json:

{
  "mcpServers": {
    "hukuk": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/berkebeydag/hukuk-mcp.git",
        "hukuk-mcp"
      ]
    }
  }
}

Codex (CLI / IDE)

~/.codex/config.toml (Windows: %USERPROFILE%\.codex\config.toml):

[mcp_servers.hukuk]
command = "uvx"
args = [
  "--from",
  "git+https://github.com/berkebeydag/hukuk-mcp.git",
  "hukuk-mcp"
]
startup_timeout_sec = 45

veya:

codex mcp add hukuk -- uvx --from git+https://github.com/berkebeydag/hukuk-mcp.git hukuk-mcp

Claude Desktop / Claude Code

Claude Desktop: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "hukuk": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/berkebeydag/hukuk-mcp.git",
        "hukuk-mcp"
      ]
    }
  }
}

OpenCode

opencode.json / ~/.config/opencode/opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "hukuk": {
      "type": "local",
      "command": [
        "uvx",
        "--from",
        "git+https://github.com/berkebeydag/hukuk-mcp.git",
        "hukuk-mcp"
      ],
      "enabled": true
    }
  }
}

Hazır kopyalar: examples/.

Geliştirici kurulumu

git clone https://github.com/berkebeydag/hukuk-mcp.git
cd hukuk-mcp
uv sync
uv run hukuk-mcp

Yerel klasörle Cursor:

{
  "mcpServers": {
    "hukuk": {
      "command": "uv",
      "args": ["run", "--directory", "C:\\\\path\\\\to\\\\hukuk-mcp", "hukuk-mcp"]
    }
  }
}

Örnek sorular

  • TMK 166 madde metnini getir

  • 4721 sayılı kanunu bul

  • Yargıtay boşanma kararlarından son örnekleri ara, esas ve karar no ile yaz

  • KİK 2025/UH.II-1801 kararını getir

  • Bu cevap dilekçesini UDF olarak kaydet

Araçlar

Araç

İş

search_mevzuat

Kanun / yönetmelik ara

get_mevzuat_content

Tam metin (sayfalı)

search_within_mevzuat

Madde içi AND/OR/NOT

get_mevzuat_madde_tree

İçindekiler

get_mevzuat_gerekce

Kanun gerekçesi

search_karar / get_karar

Yargıtay, Danıştay, BAM… (kaynak: bedesten / resmi / hepsi)

search_aym / get_aym

Anayasa Mahkemesi

search_emsal / get_emsal

UYAP Emsal (kamu)

search_kurum / get_kurum

KİK, Rekabet, Sayıştay, KVKK, BDDK, BTK, GİB, Sigorta Tahkim, Uyuşmazlık

check_kaynaklar

Kaynak sağlık

dilekce_taslagi

Tür bazlı iskelet; arastir=true ile madde/karar otomatik slot

uslup_kaydet / uslup_liste

Yerel üslup

udf_yaz / udf_oku / docx_to_udf

UDF

Karar numarası uydurulmaz: önce search_*, sonra get_*. UDF imzasızdır.

Semantik sıralama (isteğe bağlı — OpenCode Go)

Anahtar yoksa eski haliyle çalışır: kamu API + kelime (lexical) sıralama. Codex/Claude zaten listedeki sonuçları anlamca seçebilir.

OPENCODE_API_KEY varsa ekstra: sonuçlar chat’e gitmeden önce Muse Spark 1.3 Contributor ile yeniden sıralanır; dolu/hata olursa DeepSeek V4.1 Flash. Yerel model gerekmez.

Cursor MCP örneği (env ekleyerek):

"env": {
  "OPENCODE_API_KEY": "sk-...",
  "OPENCODE_BASE_URL": "https://opencode.ai/zen/go/v1",
  "RERANK_MODEL": "muse-spark-1.3-contributor",
  "RERANK_FALLBACK_MODEL": "deepseek-v4.1-flash"
}

Codex config.toml:

[mcp_servers.hukuk.env]
OPENCODE_API_KEY = "sk-..."
OPENCODE_BASE_URL = "https://opencode.ai/zen/go/v1"
RERANK_MODEL = "muse-spark-1.3-contributor"
RERANK_FALLBACK_MODEL = "deepseek-v4.1-flash"

Muse Contributor, OpenCode koşullarına göre prompt’ları eğitimde kullanabilir. Bu, milyonlarca kararlık özel indeksin yerine geçmez.

Sınırlar

Kamu sitelerinin hız limitine uyulur. Özel indeks yoktur. KİK ekapv2 AES anahtarı kopyalanmaz (kamu EKAP formu). Sayıştay HTTPS bazı ağlarda TLS reset verir; tarayıcı linki döner.

Test

uv sync --group dev
uv run pytest tests/test_local.py

Lisans

MIT

Available Tools

20 tools
check_kaynaklarCheck KaynaklarB
Read-onlyIdempotent

Bedesten, AYM, Emsal, resmi karararama ve kurum JSON API sağlık kontrolü.

Inputs: no named parameters. Returns: result

dilekce_taslagiDilekce TaslagiA

Dilekçe iskeleti döner (dava, cevap, islah, istinaf, temyiz, icra_itiraz). uslup=true ise kayıtlı örneklerin üslubu eklenir. Asıl metni sen yaz; udf_yaz ile kaydet.

Inputs: tur (required), konu, uslup, davaci, +4 more. Returns: result

docx_to_udfDocx To UdfA

Word (.docx) dosyasını yerel .udf dosyasına çevirir; kalın, italik, tablo ve girinti korunur.

Inputs: docx_path (required), filename, output_dir. Returns: result

get_aymGet AymB
Read-only

AYM karar tam metni. search_aym'den gelen document_url.

Inputs: document_url (required), page. Returns: result

get_emsalGet EmsalC
Read-only

Emsal karar tam metni. search_emsal id alanı.

Inputs: decision_id (required), page. Returns: result

get_kararGet KararB
Read-only

Karar tam metni. search_karar document_id (bedesten veya yargitay:/danistay: önekli resmi id).

Inputs: document_id (required), page. Returns: result

get_kurumGet KurumB
Read-only

Kurum kararı tam metni. search_kurum document_id (kurum:id veya URL).

Inputs: kurum (required), document_id (required), page. Returns: result

get_mevzuat_contentGet Mevzuat ContentA
Read-only

search_mevzuat'tan gelen mevzuat_id ile tam metin (sayfalı Markdown). Kanun numarası değil.

Inputs: mevzuat_id (required), page. Returns: result

get_mevzuat_gerekceGet Mevzuat GerekceC
Read-only

Kanun gerekçesi. search_mevzuat sonucundaki gerekce_id gerekir.

Inputs: gerekce_id (required), page. Returns: result

get_mevzuat_madde_treeGet Mevzuat Madde TreeC
Read-only

Mevzuat içindekiler / madde ağacı.

Inputs: mevzuat_id (required). Returns: result

search_aymSearch AymB
Read-only

AYM ara. decision_type: bireysel_basvuru veya norm_denetimi. Sonuçtaki document_url ile get_aym.

Inputs: keywords (required), page, semantik, decision_type. Returns: result

search_emsalSearch EmsalB
Read-only

UYAP Emsal kamu emsal kararı ara (kişisel UYAP dosyası değil).

Inputs: keyword (required), page, end_date, esas_yil, +3 more. Returns: result

search_kararSearch KararB
Read-only

Yargıtay, Danıştay, yerel hukuk, istinaf (BAM), KYB kararı ara. kaynak: bedesten | resmi | hepsi. Tam cümle için tırnak. Sonra get_karar.

Inputs: phrase (required), page, madde, kaynak, +11 more. Returns: result

search_kurumSearch KurumA
Read-only

Kurum kararı ara. kurum: kik, rekabet, sayistay, kvkk, bddk, btk, gib, sigorta_tahkim, uyusmazlik. KİK: karar_no=2025/UH.II-1801 veya phrase'e aynı numarayı / Karar Metni ifadesini yaz. Sonra get_kurum.

Inputs: kurum (required), phrase (required), page, extra, +3 more. Returns: result

search_mevzuatSearch MevzuatA
Read-only

Mevzuat ara (kanun no, ad veya metin). Sonra mevzuat_id ile get_mevzuat_content kullan.

Inputs: page, phrase, semantik, tam_cumle, +6 more. Returns: result

search_within_mevzuatSearch Within MevzuatA
Read-only

Bir mevzuat içinde madde bazında AND/OR/NOT araması. Büyük kanunlar için tam metin yerine bunu kullan.

Inputs: keyword (required), mevzuat_id (required), max_results, case_sensitive. Returns: result

udf_okuUdf OkuA
Read-only

Yerel .udf dosyasını Markdown olarak okur (eski dilekçeyi modele göstermek için).

Inputs: path (required). Returns: result

udf_yazUdf YazA

Markdown metni yerel .udf dosyasına yazar (UYAP Editor'de açılır, imzasız). Kalın/italik/tablo korunur.

Inputs: markdown (required), filename, output_dir. Returns: result

uslup_kaydetUslup KaydetC

Yerel UDF/DOCX/MD dilekçeyi üslup örneği olarak kaydeder (./uslup).

Inputs: path (required), etiket, klasor. Returns: result

uslup_listeUslup ListeC
Read-only

Kayıtlı üslup örneklerini listeler.

Inputs: klasor. Returns: result

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 20 tools

    Disambiguation4/5

    Each tool targets a distinct legal source or document operation (search_kurum vs search_aym vs search_emsal vs search_karar, etc.), but the overlapping case-law search tools (search_emsal, search_karar, search_kurum) could occasionally be confused without domain knowledge. Descriptions clarify sources like Yargıtay/Danıştay vs UYAP Emsal vs administrative institutions.

    Naming Consistency4/5

    Most tools follow a consistent search_X/get_X pattern in snake_case, but utility tools mix English verbs (check_kaynaklar) with Turkish noun-verb order (udf_yaz, uslup_kaydet) and noun-noun forms (dilekce_taslagi), creating minor inconsistency. Still readable and mostly predictable.

    Tool Count4/5

    20 tools is slightly above the ideal 3-15 range, but the breadth of legal sources (5 research families) and document operations justifies each tool's presence; no redundant tools. It feels comprehensive rather than bloated.

    Completeness4/5

    The surface covers search and full-text retrieval for all major Turkish legal sources, plus document conversion, petition drafting, and style management. Minor gaps: no delete/update for saved style samples, and no within-decision search for case law (only for legislation). These are workable.

    Maintenance

    ActivitySlowing
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables MCP-compatible AI clients to research official Turkish legal sources locally by searching judicial decisions, legislation, and Constitutional Court decisions, and by retrieving legal documents, individual articles, and legislation structures.
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables local, privacy-conscious research across Turkish case law and legislation by searching precedent and statutes, retrieving decisions and article trees/content, and assembling sourced research drafts with verified quotations.
      -
    • A
      license
      B
      quality
      B
      maintenance
      Enables citation-safe legal research and document drafting over official Turkish case law and legislation, searching a local 11-million-decision corpus with full-text and semantic retrieval or querying live sources like Bedesten, AYM, Danıştay and mevzuat.gov.tr. It also supports citation verification, petition and bundle preparation, change reports, privacy redaction, and source health checks through core and loadable extended tool sets.
      11
      36 PyPI
      4
      AGPL 3.0
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI assistants to search Turkish judicial decisions, legislation, and regulatory rulings from sources including Yargıtay, Danıştay, UYAP Emsal, Anayasa Mahkemesi, Sayıştay, AİHM, Resmî Gazete, and various regulatory authorities, and to retrieve decision texts as Markdown.
      MIT