Skip to content

Add arguman-legal external connector (Turkish/ECtHR/BGH multilingual case-law research)#45

Open
argumanai wants to merge 2 commits into
anthropics:mainfrom
argumanai:add/arguman-legal-tr
Open

Add arguman-legal external connector (Turkish/ECtHR/BGH multilingual case-law research)#45
argumanai wants to merge 2 commits into
anthropics:mainfrom
argumanai:add/arguman-legal-tr

Conversation

@argumanai
Copy link
Copy Markdown

@argumanai argumanai commented May 18, 2026

Summary

Adds arguman-legal, a partner-built MCP connector for Turkish, European, and German case-law research, to external_plugins/. First Turkish-jurisdiction plugin in the directory and the first multilingual cross-lingual search plugin (Turkish queries surface English/French ECtHR judgments and German BGH rulings in their original languages).

What's included

  • external_plugins/arguman-legal/
    • .claude-plugin/plugin.json — plugin manifest (arguman.ai, v0.1.0)
    • .mcp.json — HTTP MCP endpoint with OAuth 2.1 (PKCE + Dynamic Client Registration)
    • skills/caselaw-search/SKILL.md — multilingual case-law search workflow (collection mapping, doctrinal Turkish translation, drift detection)
    • skills/citation-network/SKILL.md — anchor → similar → citing-cases lineage traversal
    • skills/karsi-arguman/SKILL.md — counter-argument finder for litigation prep (5-level threat classification)
    • README.md — vendor docs (When to Use / Not / Examples / Known limitations / Links)
  • .claude-plugin/marketplace.json — registers arguman-legal, appended to the array per the I1 curated-order note
  • README.md — adds layout entry, "External / partner-built" table row, MCP Connectors table row, and a skill-listing section (matching the cocounsel-legal pattern)

What this fills

First Turkish-jurisdiction plugin in the directory. Partially closes #25 (jurisdiction-specific support) for Türkiye specifically.

Coverage spans the courts whose rulings shape Turkish law in practice — Yargıtay (Court of Cassation), Danıştay (Council of State), Anayasa Mahkemesi (Constitutional Court — norm review + individual application), Uyuşmazlık Mahkemesi (Conflicts Court) — plus the full multilingual HUDOC corpus of ECtHR and the German Bundesgerichtshof (criminal and civil). Nearly 15 million rulings indexed across 8 collections.

The cross-lingual differentiator: A Turkish lawyer researching Article 8 ECHR jurisprudence can query in Turkish ("özel hayata saygı — telefon dinleme") and the embeddings will surface relevant English/French Strasbourg judgments. Same for Turkish-to-German BGH comparative work (essential for academic and doctoral research, since Turkish private law and criminal law doctrine borrow heavily from the German tradition).

Connector quality vs. CONNECTORS.md criteria

Criterion This plugin
Remote MCP over HTTPS ✓ Cloud Run, europe-west3
OAuth or API-key auth ✓ OAuth 2.1 with Dynamic Client Registration (RFC 7591) + PKCE — no static client ID, no manual API key issuance
Read-heavy tools ✓ All 5 tools are read-only: case_lookup, get_full_text, find_similar, search, infaz_hesaplama (pure calculation, no side effects)
Provenance in results ✓ Each hit returns esas no + karar no + tarih + daire + collection ID + point_id (or Application No. / Beschwerde-Nr. for ECtHR/BGH)
No instruction-like content ✓ Tool descriptions tag metadata explicitly; results returned as structured JSON; no string-embedded instructions
Graceful errors ✓ HTTP 429 with Retry-After, structured {error: {code, message}} envelope
Discovery metadata .well-known/oauth-protected-resource and .well-known/oauth-authorization-server endpoints live and serving correctly

Test prompts a reviewer can run

After installing the plugin and authorizing via the OAuth flow:

  1. Turkish case-law search:
    "Cezada haksız tahrik indirimi — son Yargıtay 1. CD içtihatları"
    → triggers caselaw-search skill, runs search on ceza collection
  2. Cross-lingual ECtHR research:
    "Türkiye'deki gazetecilere yönelik ifade özgürlüğü ihlalleri — AİHM kararları"
    → triggers caselaw-search on aihm collection, surfaces EN/FR judgments via cross-lingual embeddings
  3. Citation network:
    "Esas 2023/14587 numaralı Yargıtay 1. CD kararının tam metnini getir, sonra bu karara atıf yapan diğer kararları listele"
    case_lookupget_full_textfind_citing_cases
  4. Counter-argument:
    "Müvekkilim haksız tahrik indirimi alacak. Karşı tarafın itiraz edebileceği Yargıtay kararları nelerdir?"
    → triggers karsi-arguman skill — negation search + element-attack search + threat classification
  5. Turkish criminal infaz calculation:
    "5275 sayılı Kanun kapsamında 8 yıl hapis cezası, sabıkasız, tek suç için infaz süresini hesapla"
    infaz_hesaplama tool

Companion documentation (public)

Known limitations (transparent disclosure)

  • AYM bireysel başvuru coverage starts from late 2012 (when the individual application procedure became operative); pre-2012 individual applications are not indexed. Earlier norm-control AYM decisions are covered.
  • BGH coverage is concentrated post-1990; older Bundesgerichtshof rulings are sparse.
  • HUDOC TR translations of ECtHR judgments are not separately indexed — the index uses the original-language corpus (primarily EN/FR) with cross-lingual semantic retrieval. Users needing verbatim Turkish text of an ECtHR judgment should use the official European Court translation services after locating the case here.
  • Reverse-citation graph traversal at scale is not yet exposed. find_citing_cases operates one hop at a time. Planned for a future release.

Notes for review

  • The marketplace.json array uses a curated display order per the I1 note in root CLAUDE.md; I appended at the end. Happy to re-sort if you prefer.
  • Auth: this MCP uses Dynamic Client Registration, so unlike cocounsel-legal/.mcp.json no static clientId is shipped — the Claude client registers itself per install.
  • Skill frontmatter uses the bare name: <skill> form (matching first-party convention) rather than the <plugin>:<skill> form CoCounsel chose; both resolve correctly in the slash-command runtime.
  • All 5 tools include title and readOnlyHint: true annotations.
  • Tested with claude plugin validate external_plugins/arguman-legal/ — passes clean.
  • No plugin-level CLAUDE.md is shipped (consistent with the vendor pattern: external plugins are vendor-maintained, the first-party CLAUDE.md convention is for repo-internal plugins).

How this fits alongside existing plugins

  • litigation-legal users practicing in Turkey or representing Turkish parties in international forums → case-law research and counter-argument layer
  • regulatory-legal users working on Turkish regulatory matters → AYM constitutional review jurisprudence
  • ip-legal users doing comparative patent/trademark analysis → BGH precedents (German doctrine is the primary comparative anchor for civil-law IP regimes)
  • Academic and doctoral researchers at Turkish law faculties → cross-lingual TR ↔ ECtHR ↔ BGH analysis in a single query

CLA

Will sign on PR open via the CLA Assistant bot comment.


🤖 Generated with Claude Code

…case-law)

Partner-built MCP plugin from arguman.ai bringing nearly 15 million
rulings from the Turkish high courts (Yargıtay, Danıştay, AYM,
Uyuşmazlık), the full multilingual HUDOC corpus of the European Court
of Human Rights, and the German Bundesgerichtshof (criminal and civil)
into Claude.

The differentiator is cross-lingual semantic search: a Turkish query
surfaces relevant English/French ECtHR judgments and German BGH
rulings in their original languages, which removes the manual
translation step that has historically blocked comparative work for
Turkish lawyers and academics.

Auth: OAuth 2.1 with Dynamic Client Registration (RFC 7591) and PKCE.
No static client ID, no manual API-key issuance.

Includes 5 tools (all read-only):
  - search           hybrid lexical+semantic search with neural rerank
  - get_full_text    paginated full opinion retrieval
  - case_lookup      docket-based lookup (esas/karar/ECLI)
  - find_similar     neighboring rulings on the same issue
  - infaz_hesaplama  Turkish criminal sentence-enforcement calculator

And 3 skills:
  - caselaw-search   collection mapping + doctrinal Turkish translation
                     + drift-detection workflow
  - citation-network anchor -> similar -> citing-cases lineage
                     traversal with HGK/CGK binding-status flagging
  - karsi-arguman    counter-argument finder for litigation prep,
                     with 5-level threat classification

Repo touchpoints:
  - external_plugins/arguman-legal/         (new — 6 files)
  - .claude-plugin/marketplace.json         (append entry, curated order)
  - README.md                               (4 spots: layout block,
                                             external/partner table,
                                             MCP Connectors table,
                                             skill listing section)

First Turkish-jurisdiction plugin in the directory; partially closes
issue anthropics#25 (jurisdiction-specific support) for Türkiye specifically.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 18, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@argumanai
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request May 18, 2026
@argumanai argumanai marked this pull request as ready for review May 18, 2026 16:20
Cloudflare Worker now fronts the Cloud Run service at mcp.arguman.ai
with native OAuth metadata. Cloud Run URL remains active as a
fallback (same backend), so any client that still has the old URL
keeps working — this commit just ensures new installations show the
cleaner branded URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@argumanai
Copy link
Copy Markdown
Author

URL update notice 📝

We've just added a branded URL — the connector is now available at:

🔗 https://mcp.arguman.ai/mcp (preferred)

Latest commit (f73d3ca) updates .mcp.json and README.md accordingly.

The original Cloud Run URL (https://arguman-mcp-915822535803.europe-west3.run.app/mcp) remains active as a fallback — both addresses serve the same backend, so any reviewer or existing client testing with the old URL continues to work without disruption. OAuth metadata (/.well-known/oauth-authorization-server) now advertises mcp.arguman.ai as the canonical issuer regardless of which URL is hit.

No behavioral changes; just a cleaner address for the public listing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Is there any support for jurisdiction specific work (eg: employment law at country X, contract law in EU, ...)

1 participant