Skip to main content
Glama

Avokata: Lithuanian law & court practice

Search court practice

search_practice
Read-onlyIdempotent

Sign-in required: call connect(email) and connect_verify first (free, one email) unless this connection is already signed in. Find court practice (teismų praktika) on a legal question or a provision - rulings and judgments (nutartys ir sprendimai) as the courts published them. PASS THE QUERY IN THE LANGUAGE THE COURT WRITES IN, for the same measured reason as search_law: Lithuanian courts in Lithuanian (an English query returns unrelated results rather than none); a European court's judgments in Lithuanian where held, else the source language; every result says its lang. Use the terms the courts use - kasacinis skundas, apeliacinis skundas, ieškinys, nutartis. Filter by court or court_level (the top court for the question's case type leads: LAT for civil, labour and criminal, LVAT for administrative and tax), by the provision the rulings cite (cites, cites_none), by whose words (voice='court'), by decision date, by case type (civil, criminal, administrative, administrative_offence) or by the court's own category code, where 43.5 narrows to that branch of the taxonomy. No parameter filters by party: rulings are served as the courts published them, with people anonymised; a company's or an institution's name kept in the text matches as words of the query (UAB <name>), and a name not found is not proof of no case. Each result names its ruling under document (case_no, court, decided_at, url; cite_as says how to cite one without a case number); a compact answer keeps document.id and document.case_no on the row and the rest under documents[<document.id>]. At tight caps, secondary identifiers, links or explanations may be explicitly deferred; follow response_budget.recover. A question about the European Human Rights Court (EŽTT/ECHR) also gets echr_catalogue: the Court's case cards (metadata and the HUDOC link), never a judgment's text.

Input Schema

NameRequiredDescriptionDefault
alsoNoOther phrasings of the SAME question, each fused as its own ranking (up to 4): the term the courts use where the question uses an everyday word ('suėmimas' for 'suimtas'), or the holding's own words. Skip a mere rewording.
citesNoKeep only rulings that cite this provision (all of them, when a list), through the citation graph: `DK 58`, `DK 58 str. 2 d.`, `CK 3.192¹`. Anchors practice on a provision - `dėl darbuotojo kaltės` with cites=`DK 58` is dismissal for fault, not DK 57's without fault.
limitNoHow many passages to return, default 10. Passages, not judgments: one ruling can supply several, each with its own pinpoint.
queryYesThe legal question or the provision, in the language the courts write in: IN LITHUANIAN for Lithuanian courts, in the words they use - `kasacinis skundas`, `esminis pažeidimas`; for a European court's judgments, Lithuanian where a Lithuanian text exists, else the source language. No parameter filters by party: published rulings anonymise people, but a company's or an institution's name the court kept in the text matches as words of the query (`UAB <name>`); a name not found is not proof of no case.
topicNoNarrow to a branch of the courts' own case classifier: `labour` (disputes arising from employment relations). The accepted values come from the jurisdiction's configuration.
voiceNoWhose words to return. `court`: passages in which the court alone speaks (its interpretation, the facts it established, a statute or an earlier ruling it restates - each restatement names the ruling and its paragraph); a mixed paragraph with a party's words in it is left out. Ranked with the court's interpretation before a restated statute. `court_own` also leaves out restatements of earlier rulings, `court_interpretation` keeps only the court's interpretation. `voice_filter` says how many passages the filter removed, per voice. `party` the parties' arguments and the questions their appeals raise, `lower_court` a lower court's reasoning, `institution` the challenged decision of an authority, `opinion` a prosecutor's or Advocate General's opinion, or one voice name (`pretrial_body`, `mixed`, ...). Every passage carries `voice` either way, with how it was decided (`provenance`).
courtsNoFilter to named courts, written as the court names itself: `Lietuvos Aukščiausiasis Teismas`, `Lietuvos apeliacinis teismas`, `Lietuvos vyriausiasis administracinis teismas`.
detailNo`compact` (the default) returns each passage with its pinpoint and an excerpt of up to ~250 characters around your terms (narrower, never below a sentence piece of ~130, when many rows share max_chars), plus `text_chars`; read the whole text with read_paragraphs(document_id=<row id>). `full` returns the whole text of every row.compact
includeNoBring back what is left out by default: `cassation_admission` returns the Supreme Court's rulings on whether to accept a cassation appeal (eCIK, CIK, BIK, ATIK numbers), which answer an admission question rather than the legal one. The answer's `filters_applied` says what was left out.
outcomeNoKeep rulings whose operative part (nutaria / nusprendžia) decides this way: `granted`, `partly`, `dismissed`, `remanded`, `not_admitted`, `terminated`; for constitutional review `unconstitutional`, `partly_unconstitutional`, `constitutional` (one or several). Read from the ruling's own words, never a court-published field; on appeal and cassation it is the appeal's fate (`dismissed` = the decision under appeal left unchanged). With `cites` every cited ruling is judged before ranking; otherwise only the ranked passages' rulings, and `outcome_filter` says so. Each kept passage carries `outcome`.
sessionNoThe `session` value the sign-in returned. Pass it on every call in this conversation, so the sign-in survives however this client handles connections; omit it when the user connected with Sign in (OAuth) or a key.
categoryNoThe court's own category code, where a prefix narrows to a branch of its taxonomy - `43.5` is everything under 43.5.
cites_anyNoKeep rulings that cite at least one of these provisions: [`DK 58`, `DK 57`].
max_charsNoA hard cap on the answer's size in characters, default 15000. Every row is first narrowed (a ~150-character excerpt), then rows are dropped from the end (the lowest-ranked) to fit, and `truncated` says how many and how to get them; data_as_of, notes and caveats are never cut.
case_typesNoFilter by kind of case: `civil`, `criminal`, `administrative`, `administrative_offence`.
cites_noneNoLeave out rulings that cite any of these provisions: cites_none=`DK 57` drops dismissal-without-fault practice.
court_levelNoNarrow to a level of the court hierarchy, which depends on the case type: civil (incl. labour, family) and criminal - `supreme` (LAT) > `appeal` (LApT) > `regional` > `district`; administrative (incl. tax) - `supreme_administrative` (LVAT) > `regional_administrative`; `constitutional` above both. Without it, a question whose words name the branch ranks that branch's top court first; a question that names neither ranks both top courts first.
decided_afterNoOnly rulings decided on or after this date, `YYYY-MM-DD`. The usual reason to pass it is 'what has been said recently', not 'what governed then'.
jurisdictionsNoWhich jurisdictions to search, as codes (`LT`). Omit for the account's own.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"The legal question or the provision, in the language the courts write in: IN LITHUANIAN for Lithuanian courts, in the words they use - `kasacinis skundas`, `esminis pažeidimas`; for a European court's judgments, Lithuanian where a Lithuanian text exists, else the source language. There is NO way to search by the name of a party, and no parameter takes one."New value: +"The legal question or the provision, in the language the courts write in: IN LITHUANIAN for Lithuanian courts, in the words they use - `kasacinis skundas`, `esminis pažeidimas`; for a European court's judgments, Lithuanian where a Lithuanian text exists, else the source language. No parameter filters by party: published rulings anonymise people, but a company's or an institution's name the court kept in the text matches as words of the query (`UAB <name>`); a name not found is not proof of no case."
  2. Changed1 schema field changed
    • changedInput schema / properties / detail / description
      Previous value: -"`compact` (the default) returns each passage with its pinpoint and a ~250-character excerpt around your terms, plus `text_chars`; read the whole text with read_paragraphs(document_id=<row id>). `full` returns the whole text of every row."New value: +"`compact` (the default) returns each passage with its pinpoint and an excerpt of up to ~250 characters around your terms (narrower, never below a sentence piece of ~130, when many rows share max_chars), plus `text_chars`; read the whole text with read_paragraphs(document_id=<row id>). `full` returns the whole text of every row."
  3. Changed1 schema field changed
    • addedInput schema / properties / also
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Other phrasings of the SAME question, each fused as its own ranking (up to 4): the term the courts use where the question uses an everyday word ('suėmimas' for 'suimtas'), or the holding's own words. Skip a mere rewording.",
      +  "title": "Also"
      +}
  4. Changed1 schema field changed
    • changedInput schema / properties / outcome / description
      Previous value: -"Keep rulings whose operative part (nutaria / nusprendžia) decides this way: `granted`, `partly`, `dismissed`, `remanded`, `not_admitted`, `terminated` (one or several). Read from the ruling's own words, never a court-published field; on appeal and cassation it is the appeal's fate (`dismissed` = the decision under appeal left unchanged). With `cites` every cited ruling is judged before ranking; otherwise only the ranked passages' rulings, and `outcome_filter` says so. Each kept passage carries `outcome`."New value: +"Keep rulings whose operative part (nutaria / nusprendžia) decides this way: `granted`, `partly`, `dismissed`, `remanded`, `not_admitted`, `terminated`; for constitutional review `unconstitutional`, `partly_unconstitutional`, `constitutional` (one or several). Read from the ruling's own words, never a court-published field; on appeal and cassation it is the appeal's fate (`dismissed` = the decision under appeal left unchanged). With `cites` every cited ruling is judged before ranking; otherwise only the ranked passages' rulings, and `outcome_filter` says so. Each kept passage carries `outcome`."
  5. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"The legal question or the provision, IN LITHUANIAN, in the words the courts use - `kasacinis skundas`, `esminis pažeidimas`. There is NO way to search by the name of a party, and no parameter takes one."New value: +"The legal question or the provision, in the language the courts write in: IN LITHUANIAN for Lithuanian courts, in the words they use - `kasacinis skundas`, `esminis pažeidimas`; for a European court's judgments, Lithuanian where a Lithuanian text exists, else the source language. There is NO way to search by the name of a party, and no parameter takes one."
  6. Changed1 schema field changed
    • addedInput schema / properties / outcome
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Keep rulings whose operative part (nutaria / nusprendžia) decides this way: `granted`, `partly`, `dismissed`, `remanded`, `not_admitted`, `terminated` (one or several). Read from the ruling's own words, never a court-published field; on appeal and cassation it is the appeal's fate (`dismissed` = the decision under appeal left unchanged). With `cites` every cited ruling is judged before ranking; otherwise only the ranked passages' rulings, and `outcome_filter` says so. Each kept passage carries `outcome`.",
      +  "title": "Outcome"
      +}
  7. Changed1 schema field changed
    • changedInput schema / properties / voice / description
      Previous value: -"Whose words to return. `court` is STRICT: only passages in which the court alone speaks (its interpretation, the facts it established, a statute it restates) - a passage restating an earlier ruling is left out (ask `court_all`, or add `quoted_precedent`), and so is a mixed paragraph with a party's words in it. `party` the parties' arguments and the questions their appeals raise, `lower_court` a lower court's reasoning, `institution` the challenged decision of an authority, `opinion` a prosecutor's or Advocate General's opinion, or one voice name (`pretrial_body`, `mixed`, ...). Every passage carries `voice` either way, with how it was decided (`provenance`)."New value: +"Whose words to return. `court`: passages in which the court alone speaks (its interpretation, the facts it established, a statute or an earlier ruling it restates - each restatement names the ruling and its paragraph); a mixed paragraph with a party's words in it is left out. Ranked with the court's interpretation before a restated statute. `court_own` also leaves out restatements of earlier rulings, `court_interpretation` keeps only the court's interpretation. `voice_filter` says how many passages the filter removed, per voice. `party` the parties' arguments and the questions their appeals raise, `lower_court` a lower court's reasoning, `institution` the challenged decision of an authority, `opinion` a prosecutor's or Advocate General's opinion, or one voice name (`pretrial_body`, `mixed`, ...). Every passage carries `voice` either way, with how it was decided (`provenance`)."
  8. Changed1 schema field changed
    • changedInput schema / properties / max_chars / description
      Previous value: -"A hard cap on the answer's size in characters, default 12000. Every row is first narrowed (a ~150-character excerpt), then rows are dropped from the end (the lowest-ranked) to fit, and `truncated` says how many and how to get them; data_as_of, notes and caveats are never cut."New value: +"A hard cap on the answer's size in characters, default 15000. Every row is first narrowed (a ~150-character excerpt), then rows are dropped from the end (the lowest-ranked) to fit, and `truncated` says how many and how to get them; data_as_of, notes and caveats are never cut."
  9. Changed2 schema fields changed
    • changedInput schema / properties / detail / description
      Previous value: -"`compact` (the default) returns each passage with its pinpoint and a ~400-character excerpt around your terms, plus `text_chars`; read the whole text with read_paragraphs(document_id=<row id>). `full` returns the whole text of every row."New value: +"`compact` (the default) returns each passage with its pinpoint and a ~250-character excerpt around your terms, plus `text_chars`; read the whole text with read_paragraphs(document_id=<row id>). `full` returns the whole text of every row."
    • changedInput schema / properties / max_chars / description
      Previous value: -"A hard cap on the answer's size in characters, default 8000. Rows are dropped from the end (the lowest-ranked) to fit, and `truncated` says how many and how to get them; data_as_of, notes and caveats are never cut."New value: +"A hard cap on the answer's size in characters, default 12000. Every row is first narrowed (a ~150-character excerpt), then rows are dropped from the end (the lowest-ranked) to fit, and `truncated` says how many and how to get them; data_as_of, notes and caveats are never cut."
  10. Changed5 schema fields changed
    • addedInput schema / properties / cites
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Keep only rulings that cite this provision (all of them, when a list), through the citation graph: `DK 58`, `DK 58 str. 2 d.`, `CK 3.192¹`. Anchors practice on a provision - `dėl darbuotojo kaltės` with cites=`DK 58` is dismissal for fault, not DK 57's without fault.",
      +  "title": "Cites"
      +}
    • addedInput schema / properties / cites_any
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Keep rulings that cite at least one of these provisions: [`DK 58`, `DK 57`].",
      +  "title": "Cites Any"
      +}
    • addedInput schema / properties / cites_none
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Leave out rulings that cite any of these provisions: cites_none=`DK 57` drops dismissal-without-fault practice.",
      +  "title": "Cites None"
      +}
    • changedInput schema / properties / court_level / description
      Previous value: -"Narrow to a level of the court hierarchy: `supreme` (Lietuvos Aukščiausiasis Teismas), `appeal`, `regional`, `district`, `supreme_administrative` (LVAT), `regional_administrative`. Without it, a civil, labour or commercial question ranks Supreme Court practice first and administrative-court rulings below it; an administrative question the other way round."New value: +"Narrow to a level of the court hierarchy, which depends on the case type: civil (incl. labour, family) and criminal - `supreme` (LAT) > `appeal` (LApT) > `regional` > `district`; administrative (incl. tax) - `supreme_administrative` (LVAT) > `regional_administrative`; `constitutional` above both. Without it, a question whose words name the branch ranks that branch's top court first; a question that names neither ranks both top courts first."
    • changedInput schema / properties / voice / description
      Previous value: -"Whose words to return: `court` keeps only the court's own words (its interpretation, the facts it established, a statute or earlier ruling it restates), `party` only the parties' arguments it recounts, `lower_court` a lower court's reasoning. Every passage carries `voice` either way, with the cue that decided it."New value: +"Whose words to return. `court` is STRICT: only passages in which the court alone speaks (its interpretation, the facts it established, a statute it restates) - a passage restating an earlier ruling is left out (ask `court_all`, or add `quoted_precedent`), and so is a mixed paragraph with a party's words in it. `party` the parties' arguments and the questions their appeals raise, `lower_court` a lower court's reasoning, `institution` the challenged decision of an authority, `opinion` a prosecutor's or Advocate General's opinion, or one voice name (`pretrial_body`, `mixed`, ...). Every passage carries `voice` either way, with how it was decided (`provenance`)."
  11. Changed4 schema fields changed
    • changedInput schema / properties / court_level / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / include
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Bring back what is left out by default: `cassation_admission` returns the Supreme Court's rulings on whether to accept a cassation appeal (eCIK, CIK, BIK, ATIK numbers), which answer an admission question rather than the legal one. The answer's `filters_applied` says what was left out.",
      +  "title": "Include"
      +}
    • addedInput schema / properties / topic
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Narrow to a branch of the courts' own case classifier: `labour` (disputes arising from employment relations). The accepted values come from the jurisdiction's configuration.",
      +  "title": "Topic"
      +}
    • addedInput schema / properties / voice
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Whose words to return: `court` keeps only the court's own words (its interpretation, the facts it established, a statute or earlier ruling it restates), `party` only the parties' arguments it recounts, `lower_court` a lower court's reasoning. Every passage carries `voice` either way, with the cue that decided it.",
      +  "title": "Voice"
      +}
  12. Changed1 schema field changed
    • addedInput schema / properties / court_level
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Narrow to a level of the court hierarchy: `supreme` (Lietuvos Aukščiausiasis Teismas), `appeal`, `regional`, `district`, `supreme_administrative` (LVAT), `regional_administrative`. Without it, a civil, labour or commercial question ranks Supreme Court practice first and administrative-court rulings below it; an administrative question the other way round.",
      +  "title": "Court Level"
      +}
  13. Changed3 schema fields changed
    • addedInput schema / properties / detail
      Added value: +{
      +  "default": "compact",
      +  "description": "`compact` (the default) returns each passage with its pinpoint and a ~400-character excerpt around your terms, plus `text_chars`; read the whole text with read_paragraphs(document_id=<row id>). `full` returns the whole text of every row.",
      +  "enum": [
      +    "compact",
      +    "full"
      +  ],
      +  "title": "Detail",
      +  "type": "string"
      +}
    • addedInput schema / properties / max_chars
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "A hard cap on the answer's size in characters, default 8000. Rows are dropped from the end (the lowest-ranked) to fit, and `truncated` says how many and how to get them; data_as_of, notes and caveats are never cut.",
      +  "title": "Max Chars"
      +}
    • changedInput schema / properties / session / description
      Previous value: -"The `session` value connect returned, when this client keeps no connection session. Pass it on every Avokata call in this conversation; omit it when the client sends a key."New value: +"The `session` value the sign-in returned. Pass it on every call in this conversation, so the sign-in survives however this client handles connections; omit it when the user connected with Sign in (OAuth) or a key."
  14. First observed

TDQS

A4.2/5.0
Behavior5/5

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

With annotations already declaring readOnly/idempotent/non-destructive, the description still adds substantial behavior: a sign-in precondition with named tools, anonymisation of parties, how compact vs full rows are shaped, deferral under max_chars with response_budget.recover, the echr_catalogue side output, and the fact that outcome is read from the ruling's own words rather than a court-published field. None of this contradicts the read-only annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The sign-in precondition is correctly front-loaded, but the remainder is a dense single block of roughly 500 words covering a dozen independent behaviors with no structure. Much of it (language rule, party-name caveat) duplicates parameter descriptions in the schema, so not every sentence earns fresh 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?

For a 19-parameter tool with no output schema, the definition still conveys result shape (`document` with case_no/court/decided_at/url, `cite_as`, `documents[<id>]` compaction, `echr_catalogue`), truncation behavior, and the sign-in requirement. An agent has enough to call correctly and interpret the response.

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 coverage is 100%, so the baseline is 3 and the schema already explains nearly every parameter. The description adds genuine cross-parameter insight the schema cannot — 'No parameter filters by party' and how a party name behaves as query words, plus the fusion-vs-filter distinction between query/also and cites/cites_any/cites_none — which pushes it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource up front — 'Find court practice (teismų praktika) on a legal question or a provision - rulings and judgments' — which is unambiguous. It references search_law, but only as an analogy for the language rule rather than to distinguish the two tools, and it never addresses list_practice or get_document, so sibling differentiation is incomplete.

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?

Offers concrete routing guidance: which language to pass the query in and why, which terms the courts use, when to filter by court_level (LAT for civil/labour/criminal, LVAT for administrative/tax), when decided_after is appropriate ('recently', not 'what governed then'), and an explicit exclusion — no parameter filters by party. It never states when to prefer this over list_practice or search_law wholesale, so it stops short of 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources