Search court decisions
search_casesFull-text search for German court cases via Elasticsearch.
Returns matching cases with highlighted snippets. Does NOT return
full case text - use get_case to retrieve complete content.
The citation filters compose with ``query`` so you can answer
"cases citing § 823 BGB that mention 'Mietrecht'" in one call —
pass ``query="Mietrecht"`` together with ``cited_law_book="bgb"``
and ``cited_law_section="823"``. For "give me ALL citing cases"
without keyword refinement, prefer the dedicated
``get_cases_for_law`` / ``get_citing_cases`` tools.
``cited_case_id`` is mutually exclusive with the law citation
filter — if both are supplied, the law filter wins.
Args:
query: Search query text (supports Lucene syntax).
court_code: Filter by court code (e.g. "BGH", "BVerfG").
start_date: Filter cases from this date (YYYY-MM-DD).
end_date: Filter cases up to this date (YYYY-MM-DD).
decision_type: Filter by decision type (e.g. "Urteil", "Beschluss").
cited_law_book: Restrict to cases citing a law from this
book slug (e.g. "bgb"). Requires ``cited_law_section``.
cited_law_section: Restrict to cases citing this law section
slug (e.g. "823"). Requires ``cited_law_book``.
cited_case_id: Restrict to cases citing the case with this id.
sort: Result order — "relevance" (default), "date" (newest
first), or "most_cited" (most-cited first, for finding
landmark precedent). The response echoes the applied
``sort``; any other value returns an error. Each result
carries ``citing_cases_count`` so you can see how often it
is cited. With relevance sort each result also carries
``match_quality`` ("high"/"medium"/"low" relative to the
top hit) so you can tell where relevance drops off; it is
left out for "date" and "most_cited", where the score is
not the ranking signal.
limit: Maximum results (default 10, max 50). Values above 50 are
clamped; the response then includes ``limit_clamped: true``
and the original ``requested_limit``.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"query": "<query>"
},
"name": "search_cases"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| limit | No | ||
| query | Yes | ||
| end_date | No | ||
| court_code | No | ||
| start_date | No | ||
| cited_case_id | No | ||
| decision_type | No | ||
| cited_law_book | No | ||
| cited_law_section | No |