Skip to main content
Glama
aydincan

Türk Hukuku İçtihat MCP

by aydincan

turk-hukuku-ictihat-mcp

Türk yargı kararlarını resmî kaynaktan yapay zekâ araçlarına açan bir MCP sunucusu: adli yargı (UYAP Emsal — Yargıtay/Bölge Adliye/ilk derece), idari yargı (Danıştay) ve anayasa yargısı (AYM Bireysel Başvuru).

Amaç tek cümle: model bir karara atıf yaparken künyeyi (mahkeme, daire, esas/karar no, tarih) hafızasından değil resmî kaynaktan alsın. UYAP Emsal künyeyi yapısal döndürür; böylece model künye uydurmaz, sahte karar numarası üretmez.

Hukuki danışmanlık değildir. Bu araç içtihada erişimi kolaylaştırır; kararın güncelliğini, kesinleşme durumunu ve somut olaya uygunluğunu siz değerlendirin. Bir kararın bağlayıcılığı ve emsal değeri ayrı bir hukuki analiz gerektirir.

Ayrıntı: SORUMLULUK-REDDI.md · PRIVACY.md (veri toplama yok, telemetri yok; dış bağlantılar yalnızca resmî karar siteleri).


Ne yapar

Tool

İşlev

ictihat_ara(ifade, mahkeme, adet, sayfa)

Karar arar; künye + atıf + id döndürür

karar_getir(karar_id, mahkeme)

Bir kararın resmî tam metni (künye + gerekçe + hüküm)

mahkeme üç değer alır: adli (Yargıtay + Bölge Adliye + ilk derece — UYAP Emsal, varsayılan), idari (Danıştay) ya da anayasa (AYM bireysel başvuru). karar_getir'e aramada kullandığın mahkeme değerini aynen geçir.

Tipik akış: ictihat_ara("imar planı iptal", mahkeme="idari") → sonuçtan bir id seç → karar_getir(id, mahkeme="idari") → kararın tam metni. Her sonuç hazır bir atif taşır: "Danıştay 6. Daire, E.2023/1084 K.2025/10046" · "AYM, B. No: 2020/36883, K.T. 16/12/2025".

Related MCP server: Mevzuat MCP

Kapsam

  • Adli yargı (mahkeme="adli"): Yargıtay, Bölge Adliye Mahkemeleri ve ilk derece mahkeme kararları (UYAP Emsal — 800.000+ karar).

  • İdari yargı (mahkeme="idari"): Danıştay kararları (karararama.danistay.gov.tr — 390.000+ doküman).

  • Anayasa yargısı (mahkeme="anayasa"): AYM bireysel başvuru kararları (kararlarbilgibankasi.anayasa.gov.tr).

  • Planlanan: AYM norm denetimi (iptal/itiraz) kararları.

Nasıl çalışır

Her kaynak bir arama + bir belge uç noktası sunar:

UYAP Emsal : POST /aramalist (aranan)               + GET /getDokuman?id
Danıştay   : POST /aramalist (andKelimeler[])        + GET /getDokuman?id&arananKelime
AYM        : GET  /Ara?KelimeAra[]= (HTML)           + GET /BB/<yıl>/<no> (HTML)

Sunucu aramayı yapar, künyeleri yapısal döndürür ve metni okunur düz metne çevirir (Danıştay iç içe HTML kodlamasından, AYM Word-export gövdesinden arındırılır). Tamamen yereldir; veri toplanmaz.

Kurulum

PyPI'de yayımlıdır; uv ile ayrı kurulum gerekmeden çalışır.

Claude Code

claude mcp add turk-hukuku-ictihat -- uvx --from turk-hukuku-ictihat-mcp turk-hukuku-ictihat

OpenAI Codex

~/.codex/config.toml:

[mcp_servers.turk-hukuku-ictihat]
command = "uvx"
args = ["--from", "turk-hukuku-ictihat-mcp", "turk-hukuku-ictihat"]

Gemini CLI

~/.gemini/settings.json içindeki mcpServers altına:

"turk-hukuku-ictihat": {
  "command": "uvx",
  "args": ["--from", "turk-hukuku-ictihat-mcp", "turk-hukuku-ictihat"]
}

Alternatif: pip

pip install turk-hukuku-ictihat-mcp
# komut: turk-hukuku-ictihat   (ya da: python -m turk_hukuku_ictihat)

İlgili: kanun/mevzuat metni için turk-hukuku-mevzuat-mcp.

Lisans

MIT · © 2026 Aydın Can Polatkan

Veri kaynağı UYAP Emsal'a (Adalet Bakanlığı) aittir; bu proje yalnızca kamuya açık resmî karar metnine erişimi kolaylaştıran bağımsız bir istemcidir.


Bu çalışma, ömrünü Türk yargısına adamış babam Hâkim Vahit Polatkan'ın ebedi anısına ithaf edilmiştir.

Available Tools

2 tools
ictihat_araA

Türk yargı kararı arar; künye + atıf + id döndürür.

Bir karara atıf yapmadan ÖNCE bunu çağır. Dönen her sonuç yapısal künye taşır (mahkeme, esas_no, karar_no, karar_tarihi) ve hazır bir atif dizesi verir — bunları aynen kullan, uydurma. Tam metin için sonuçtaki id ile aynı mahkeme değerini karar_getir'e geçir.

mahkeme: "adli" (Yargıtay + Bölge Adliye + ilk derece, UYAP Emsal — varsayılan), "idari" (Danıştay) ya da "anayasa" (AYM bireysel başvuru). adet: en çok kaç sonuç (1-50). sayfa: sayfalama (1'den başlar).

ParametersJSON Schema
NameRequiredDescriptionDefault
adetNo
ifadeYes
sayfaNo
mahkemeNoadli

TDQS

A4.7/5.0
Behavior4/5

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

No annotations, but the description discloses that the tool returns structured data (künye, atıf, id) and explains the mahkeme parameter options and defaults. It does not mention limitations or error conditions, but for a search tool 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?

Three concise sentences that front-load purpose and provide essential usage details without redundancy. Every sentence adds value.

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 no output schema, the description explains the return structure (künye, atıf, id) and how to use them. It covers all parameters and usage context. Complete for a search tool with one sibling.

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 provides no descriptions (0% coverage). The description explains the meaning of mahkeme (three court types), adet (max results 1-50), sayfa (pagination starting at 1), and implicitly ifade (search term). It adds value beyond the bare 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 states it searches for Turkish court decisions and returns structural citation details and an ID. It differentiates from sibling tool karar_getir by specifying its role (search vs full text).

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 instructions: call before citing a decision, use the returned atif string exactly, and pass the id and mahkeme to karar_getir for full text. This provides clear when-to-use and how-to-use guidance.

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

karar_getirA

Bir kararın resmî TAM metnini getirir (id + mahkeme, ictihat_ara sonucundan).

Dönen metin kararın künyesi + gerekçesi + hükmüdür. Metni ve künyeyi aynen aktar; esas/karar numarasını ve tarihi değiştirme. mahkeme, aramada kullandığın değerle aynı olmalı ("adli" → UYAP Emsal, "idari" → Danıştay, "anayasa" → AYM).

ParametersJSON Schema
NameRequiredDescriptionDefault
mahkemeNoadli
karar_idYes

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 fully discloses the return content (summary, reasoning, verdict) and warns against modifying data. No side effects discussed but for a read-only tool this is sufficient.

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?

Two concise sentences: first defines purpose, second explains return and constraints. Every sentence adds value without redundancy.

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?

Without output schema or annotations, the description adequately covers purpose, parameters, and behavior. Lacks error handling but acceptable for a retrieval tool.

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?

Given 0% schema description coverage, the description adds meaning by explaining that mahkeme must match the search value and provides mapping to data sources, and karar_id comes from search results.

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 retrieves the official full text of a decision using id and court, and distinguishes from the sibling tool 'ictihat_ara' which is for searching.

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?

It specifies when to use (after ictihat_ara result) and provides constraints (do not modify case numbers, court must match). It lacks explicit when-not-to-use instructions.

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

TDQS

A4.6/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: 'ictihat_ara' searches for precedents and returns identifiers, while 'karar_getir' retrieves the full text using those identifiers. There is no overlap or ambiguity.

Naming Consistency5/5

Both tool names follow a consistent Turkish pattern of noun_verb ('karar_getir' and 'ictihat_ara'), using underscores and clear, descriptive terms.

Tool Count4/5

With only two tools, the set is minimal but appropriately scoped for the core functionality of searching and retrieving full-text decisions. It is slightly below the typical range but still reasonable.

Completeness5/5

The tools cover the essential lifecycle of legal precedent retrieval: search with filtering and pagination, then get full text. There are no obvious gaps for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server for accessing Turkish legislation (laws, regulations, decrees) via the Adalet Bakanligi API, providing search, full-text retrieval, and structured citations.
    5
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aydincan/turk-hukuku-ictihat-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server