Türk Hukuku İçtihat MCP
This server lets AI tools search and retrieve official Turkish court decisions from public sources, returning structured citations and full texts so models don't invent case numbers.
Search decisions with
ictihat_araby free-text expression (ifade), court type (mahkeme), result count (adet, 1–50), and pagination (sayfa).Choose from four court/jurisdiction types:
adli(Yargıtay, regional appellate, first instance via UYAP Emsal),idari(Danıştay),anayasa(AYM individual application), andnorm(AYM norm/annulment review).Get structured case citations: each result includes court, case number (
esas_no), decision number (karar_no), decision date, and a ready-to-useatif(citation string).Retrieve official full text with
karar_getirusing the returnedkarar_idand the samemahkemevalue; the text includes case header, reasoning, and holding.Prevent fabricated legal citations: models are instructed to use the returned künye/atıf exactly rather than remembering or inventing case numbers.
Access large official corpora: 800,000+ UYAP Emsal decisions, 390,000+ Danıştay documents, and AYM decisions.
Works locally as an MCP server with no data collection/telemetry; installable via
uvxorpipfor Claude Code, OpenAI Codex, and Gemini CLI.
OpenAI Codex can search and retrieve Turkish court decisions (adli, idari, anayasa) using MCP tools.
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 |
| Karar arar; künye + atıf + |
| Bir kararın resmî tam metni (künye + gerekçe + hüküm) |
mahkeme dört değer alır: adli (Yargıtay + Bölge Adliye + ilk derece — UYAP Emsal,
varsayılan), idari (Danıştay), anayasa (AYM bireysel başvuru) ya da
norm (AYM norm denetimi: iptal/itiraz).
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).Norm denetimi (
mahkeme="norm"): AYM iptal/itiraz kararları; künye E./K. numaraları ve Resmî Gazete bilgisiyle döner (aynı kaynak).
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 : POST /api/core/public/search (JSON) — arama da tam metin de aynı uçtanSunucu 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-ictihatOpenAI 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 toolsictihat_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).
| Name | Required | Description | Default |
|---|---|---|---|
| adet | No | ||
| ifade | Yes | ||
| sayfa | No | ||
| mahkeme | No | adli |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| mahkeme | No | adli | |
| karar_id | Yes |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
ictihat_ara - First observed
karar_getir
TDQS
Scored across 2 tools
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.
Both tool names follow a consistent Turkish pattern of noun_verb ('karar_getir' and 'ictihat_ara'), using underscores and clear, descriptive terms.
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.
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
Related MCP Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Search Indonesian laws, resolve citations, read articles, and find Constitutional Court decisions.
Case law search, court decisions and súmulas, across indexed public sources (STF, STJ, TST, state co
Semantic search over Polish law and case law, citing the exact in-force article.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides 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
- AlicenseNot gradedqualityNot gradedmaintenanceProvides 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.1MIT
- AlicenseAqualityBmaintenanceStatute & article text (mevzuat.gov.tr) and court decisions (UYAP Emsal, Council of State, Constitutional Court), with their citation, source, live. It works as long as the official sources remain reachable.453 PyPI2MIT
- -licenseNot gradedqualityNot gradedmaintenanceEnables programmatic access to Turkish legislation from mevzuat.gov.tr, allowing search, full-text retrieval, and Boolean search within articles.-