A side-by-side look at the Turk Hukuku Mevzuat MCP and Swiss Case Law MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Turk Hukuku Mevzuat MCP for legal work as a local process; choose Swiss Case Law for legal over a hosted endpoint. You can also run both side by side in one mcpServers block.
madde_getir, kanun_metni_getir, mevzuat_ara.search, fetch, search_decisions.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Legal | Legal |
| Quality signal | 64/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Remote HTTP/SSE |
| Auth | No auth required | Not declared |
| Pricing | Free | Not declared |
| Required env vars | None listed | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 4 | 72 |
| Directory activity | 5 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 4 | 42 |
| Full listing | View Turk Hukuku Mevzuat MCP | View Swiss Case Law |
madde_getirBir kanunun belirli maddesinin RESMÎ güncel metnini getirir.
Atıf yapmadan önce bunu çağır: dönen `metin` mevzuat.gov.tr'nin yürürlükteki
konsolide metnidir; `kaynak` doğrulama URL'sidir. `metin` None ise madde
bulunamamıştır (numara yanlış ya da mülga) — uydurma, `uyari`yı aktar.
kanun: kısaltma ("TBK"), numara ("6098") veya tam kimlik ("1.5.6098").
kanun_metni_getirBir kanunun RESMÎ güncel tam metnini getirir (mevzuat.gov.tr).
Büyük kanunlar uzundur; tek madde gerekiyorsa `madde_getir` tercih edilmeli.
Dönen: {kanun, mevzuat_id, kaynak, uzunluk, metin}.
kanun: kısaltma ("TMK"), numara ("4721") veya tam kimlik ("1.5.4721").
mevzuat_aramevzuat.gov.tr'de KANUN arar; eşleşen kanunları ve kimliklerini döndürür.
Kanunun numarasını bilmiyorsan önce bunu çağır: dönen her sonucun `mevzuat_id`
değeri doğrudan `madde_getir`/`kanun_metni_getir`'e verilebilir.
nerede: "Baslik" (kanun adında ara — kanunu bulmak için), "Icerik" (tam metinde
ara — bir kavramın hangi kanunlarda geçtiğini taramak için) ya da "Tumu".
adet: en çok kaç sonuç (1-50).
bilinen_kanunlarKayıtlı kanunları (kısaltma, no, ad, mevzuat_id) listeler.
Kayıtta olmayan kanunlar da numara/kimlikle çağrılabilir; bu yalnızca
yaygın kanunların hızlı dizinidir.
searchMinimal search tool following the deep-research search/fetch convention. Returns a ranked list of Swiss court decisions matching a query, each as {id, title, url, snippet}. Pair with `fetch` to retrieve a decision's full text by id. General (non-deep-research) clients should prefer `search_decisions`, which exposes filters (court, canton, date, language) and richer metadata.fetchMinimal fetch tool following the deep-research search/fetch convention. Fetches one Swiss decision's full text by id, returning {id, title, text, url, metadata}. The id comes from a `search` result (a decision_id like bger_6B_1234_2025; a docket number or BGE reference also resolves). General clients should prefer `get_decision`.search_decisionsUse this tool to find COURT DECISIONS (Rechtsprechung): 1,050,000+ Swiss federal and cantonal decisions plus ~2,800 ECtHR decisions concerning Switzerland. Full-text search with keywords, phrases (in quotes), Boolean operators (AND, OR, NOT), prefix matching (word*), docket lookup (6B_1234/2025) and column-scoped search (regeste:keyword). Filter by court, canton, language, date range, chamber. Results are relevance-ranked and enriched with citation counts, statute references and is_leading_case. Use offset to page. Most recent decisions: empty query + sort='date_desc' + court filter. Not for statutes (search_laws), commentary (search_scholarship), or administrative guidance (search_practice).get_decisionFetch a single court decision with full text. Look up by decision_id (e.g., bger_6B_1234_2025), docket number (e.g., 6B_1234/2025), or partial match. Full text is truncated at 200,000 characters for very long decisions. Set full_text=false to get only metadata and regeste.get_decisionsUse this tool to fetch SEVERAL decisions at once (1-10 ids) instead of calling get_decision repeatedly. Same data per decision — canonical citation strings, Markdown link, Regeste, metadata — in ONE call. Prefer this whenever you are about to read more than one decision from a search result: it is the difference between one tool call and ten, which matters because clients cap tool calls per turn. full_text defaults to FALSE here (unlike get_decision) because ten full judgments exceed connector response limits; set it true only for a short id list, and each text is excerpted with the cut disclosed. Ids not found are reported individually — the rest of the batch still returns.list_courtsList all available courts with decision counts, date ranges, and language coverage. Use this to discover what data is available.get_statisticsGet aggregate statistics about the dataset. Optionally filter by court, canton, or year.find_citationsGiven a decision_id, show what it cites and what cites it. Uses the reference graph database with 9.65M citation edges. Returns resolved citations with confidence scores and unresolved references.find_appeal_chainTrace the appeal chain (Instanzenzug) for a decision. Shows prior instances (lower courts) and subsequent instances (appeals to higher courts). Reconstructs the full procedural path, e.g. Bezirksgericht → Obergericht → Bundesgericht. Uses the is_prior_instance flag from decision headers.find_leading_casesFind the most-cited decisions for a topic or statute. Authority ranking based on citation graph; a free-text topic ranks decisions whose regeste carries the query terms first (`regeste_match`: share of terms found, null without a regeste). Filter by statute (law_code + article), topic query, court, and date range. Top-3 results auto-attach a `pinpoint` field {e_number, matched_sentence, confidence, url, score, source} anchoring the most-relevant Erwägung (surface it as 'E. <e_number>' when confidence is high or medium). Each result also carries citation_string_{de,fr,it} + canonical_url + is_leading_case + citation_count for ready-to-quote Swiss-format citations. A statute reference inside `query` ("Art. 29 BV") is used as the statute filter. When the query excludes every candidate, the page is relaxed to ranked OR and flagged `filters_relaxed: true` with a `note` — nearest neighbours, not on-point authority.analyze_legal_trendYear-by-year decision counts showing jurisprudence evolution. Use with a statute reference (law_code + article), a text query, or both. Returns yearly counts with visual bar chart.draft_mock_decisionBuild a research-only mock decision outline from user facts. Combines relevant Swiss case law retrieval with statute references. If possible, enriches statutes with Fedlex text excerpts. IMPORTANT: The tool may return clarification questions (high/medium priority). High-priority clarifications must be answered (via the clarifications parameter) before the tool will provide a conclusion. Call again with clarifications to get the full analysis.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"aydincan-turk-hukuku-mevzuat-mcp": {
"command": "uvx",
"args": [
"--from",
"turk-hukuku-mevzuat-mcp",
"turk-hukuku-mevzuat"
]
}
}
}
{
"mcpServers": {
"swiss-case-law": {
"url": "https://mcp.opencaselaw.ch"
}
}
}