Skip to main content
Glama

Read a case

get_case
Read-onlyIdempotent

Fetch one case: metadata, parallel citations, treatment flag, and full opinion text (paginated via offset/max_chars). cited_by is CourtListener's citation count; for a decision filed as several twin clusters it is summed over them (cited_by_note says so), and a duplicate or stub twin id is answered with its survivor (note says so). Citations inside the returned text are checked against the reporter index (embedded_citations); citation_warnings names any the court itself got wrong. Identify the case by cluster_id (from search_cases results) or by reporter citation. find_text returns passages: up to 5 sentence-bounded windows holding a phrase (or its closest match) with star_page and offset, so a long opinion need not be paged (pass include_text=false to get only those); quotable=true adds quotable_passages, the passages of this opinion other courts quote. Quotation marks mean pasted from a tool result (opinion text, passage, best_match). If you typed a quote from memory, run verify_quote and use best_match. Run check_brief on the finished draft and apply its corrections. Copy cite_as for the citation (first page, then pin). focus = a question or proposition in plain words (no brief sentence needed): returns focus_passages, the 4 (focus_n, at most 8) passages of about 2,000 characters that bear on it most, each with page, offset, lexical score and part (majority / concurrence / dissent / syllabus ...), instead of reading from the opening; opinion text is then left out unless include_text=true. focus_miss=true means no passage matched (nothing else is returned). With pin, the first passage is the pinned page's own best window.

Input Schema

NameRequiredDescriptionDefault
pinNoWith focus: the page you cite ("1250" or "1250-51"); the first focus passage is then that page's best window (source: pin) and the ranked passages follow
focusNoA question or proposition in plain words, e.g. "whether a FOIA fee waiver requires a public-interest showing": returns focus_passages (placed by word overlap, ranked; the rest of the opinion is not returned)
offsetNoCharacter offset for paging long opinions (use next_offset from a prior call)
focus_nNoWith focus: passages to return (default 4, at most 8)
citationNoReporter citation, e.g. "819 So. 2d 732" (used if cluster_id absent)
quotableNoWith include_text, also return quotable_passages: the passages of this opinion other courts quote, with star_page
case_nameNoCase name; used only when the citation is not in the reporter index (newer than it): resolves by name + decision-date window and returns candidates if several cases share the name
find_textNoA phrase to locate in the opinion: returns passages (exact, or the closest match) with star_page and offset
max_charsNoMax characters of opinion text to return (default 40000, max 150000)
cluster_idNoCluster id from search results
include_textNoInclude opinion text (default true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / pin
      Added value: +{
      +  "description": "With focus: the page you cite (\"1250\" or \"1250-51\"); the first focus passage is then that page's best window (source: pin) and the ranked passages follow",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / focus
      Added value: +{
      +  "description": "A question or proposition in plain words, e.g. \"whether a FOIA fee waiver requires a public-interest showing\": returns focus_passages (placed by word overlap, ranked; the rest of the opinion is not returned)",
      +  "type": "string"
      +}
    • addedInput schema / properties / focus_n
      Added value: +{
      +  "description": "With focus: passages to return (default 4, at most 8)",
      +  "type": "integer"
      +}
  3. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already establish readOnly, idempotent, non-destructive behavior, and the description adds substantial extra disclosure: pagination defaults (40000/150000), cited_by aggregation across twin clusters with a survivor response for duplicate/stub ids, embedded citation warnings, focus_miss semantics, and pin making the pinned page the first passage. These are behavioral traits the agent could not infer from annotations or schema.

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?

It is front-loaded with the core fetch and has almost no filler, but it is a single dense paragraph of roughly 300 words with many parenthetical asides, making it hard to scan. The content earns its place; the structure does not.

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?

There is no output schema, so the description must carry return-shape disclosure, and it does: metadata, parallel citations, treatment flag, embedded_citations, citation_warnings, focus_passages with page/offset/score/part, focus_miss, and quotable_passages. An agent can predict the response and choose the right parameter combination without further documentation.

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 per-parameter baseline is 3, but the description adds cross-parameter meaning the schema does not: citation is used only when cluster_id is absent, focus suppresses opinion text unless include_text=true, pin alters the first focus passage's source, and find_text can run with include_text=false. That interaction logic is genuine value beyond the field-level descriptions.

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 opening sentence gives a specific verb and enumerates the record's contents ('metadata, parallel citations, treatment flag, and full opinion text'), so the agent knows exactly what a call returns. It implicitly contrasts with search_cases by scoping to 'one case' and sourcing cluster_id there, but never explicitly distinguishes get_case from the sibling find_case, which also resolves by name/citation.

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 for several branches: use find_text instead of paging a long opinion, pass include_text=false when only passages are wanted, run verify_quote for memory-typed quotes, and run check_brief on the finished draft. It still gives no explicit statement of when to use get_case over find_case, and the alternatives it names are for adjacent tasks rather than for the fetch itself.

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