Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_casesA

Search Oyez for U.S. Supreme Court cases by case name, party, or docket number.

This mirrors the search box on oyez.org: it matches case names, party names, and docket numbers - not free-form topics. "citizens united", "brown v board of education", and "14-556" all work well; a bare topic like "abortion" only finds cases with that word in the title. Every result lists the Term and docket number you pass to get_case, get_oral_argument, or list_term_cases.

Oyez's search index runs well behind its case data, so this tool also scans the four most recent Terms' case lists and lists those matches first. There it matches the one-line holding and the question presented as well as the name and docket, so a topic ("birthright citizenship", "universal injunction") does find a recent case; such a row shows the line it matched. Older cases still need a name, party, or docket number.

Args: query: Case name, party name, or docket number (e.g. "Obergefell", "new york times v sullivan", "14-556"). An original-jurisdiction docket can be written "156-orig", "No. 156, Orig.", or "22O156". limit: Maximum number of cases to return, 1-50 (default 10). include_people: Also include matching Justices/advocates (default False).

get_caseA

Full details for one Supreme Court case: parties, citation, key dates, facts, the question presented, the holding/conclusion, the decision with its vote breakdown and opinion authors, the advocates, and a list of the available oral-argument and opinion-announcement audio.

"Written opinions" links each opinion's text on Justia: the syllabus, the opinion of the Court, and every concurrence and dissent, by author.

The "Links" line is the address to cite or open. Take it as printed rather than building one from the Term and docket: oyez.org serves the same single-page shell for every path under /cases/, so a composed address that is wrong still answers 200 and renders an empty page.

Args: term: The Term year, e.g. "2014" (from search_cases). docket: The docket number, e.g. "14-556" (from search_cases). Older cases sit in bucketed Terms (1789-1850, 1850-1900, 1900-1940, 1940-1955) where Oyez addresses a case by volume-us-page instead, e.g. term "1940-1955", docket "347us483" for Brown. The docket number search_cases printed is tried first and usually works; when two cases share one, the error names both addresses.

list_term_casesA

List the Supreme Court cases from a given Term, in order of argument.

Each line gives the docket number to pass to get_case. Where cases in the Term share one (Brown I and Brown II are both "No. 1"), the line gives the get_case call that reaches that case instead.

Args: term: The Term year - the year the Term began, e.g. "2014" for OT2014 (October 2014 through June/July 2015). limit: Maximum cases to list, 1-400 (default 60). include_summary: Also give each case's stage and date (decided, argued, or granted) and its one-line holding, or its question presented before a decision. About 300 characters more per case; the way to browse a Term by topic.

get_oral_argumentA

Fetch the oral-argument transcript for a case, optionally filtered by speaker, by text, or from a point in time.

The transcript is returned as "Speaker: text" turns. Use the filters to zero in on, for example, one Justice's questions ("only Justice Scalia's questions" -> speaker="Scalia") or every turn that mentions a word (find="personhood"). A full argument is far longer than the default cap; to read one straight through, follow the note at the end of a truncated transcript, which names the part and start to continue from.

Args: term: The Term year, e.g. "2014". docket: The docket number, e.g. "14-556". speaker: Case-insensitive substring of a speaker's name; include only their turns (e.g. "Scalia", "Verrilli", "Roberts"). speaker_type: "justice" or "advocate" to include only that group. Someone who argued the case before joining the Court (Kagan as Solicitor General, say) counts as an advocate. find: Case-insensitive text; include only the turns that contain it (e.g. "corporate", "personhood"). Combine with speaker_type for what one side said about it. start: Resume at this point in the recording, as "H:MM:SS", "M:SS", or seconds. Turns before it in the first selected session are skipped; give part as well when there are several sessions. part: For arguments split into sessions, the 1-based session index; default is all sessions. include_timestamps: Prefix each turn with its start time (H:MM:SS). max_chars: Soft cap on transcript length, 1000-200000 (default 18000). When hit, output is truncated with a note that says where to continue from.

get_opinion_announcementA

Fetch the opinion-announcement transcript(s) for a case - the Justices announcing the decision (and any dissents read from the bench).

Args: term: The Term year, e.g. "2014". docket: The docket number, e.g. "14-556". speaker: Case-insensitive substring of a speaker's name to include only their turns. find: Case-insensitive text; include only the turns that contain it. start: Resume at this point, as "H:MM:SS", "M:SS", or seconds; turns before it in the first selected announcement are skipped. A truncated transcript ends by naming the part and start to continue from. part: 1-based index when several announcements exist (e.g. the majority announcement and a separate dissent); default is all. include_timestamps: Prefix each turn with its start time. max_chars: Soft cap on length, 1000-200000 (default 18000).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.4/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct resource or action: search by query, list by Term, fetch case details, fetch oral argument transcript, and fetch opinion announcement transcript. The only mild overlap is between search_cases and list_term_cases (both return case lists), but their descriptions clearly differentiate query-based search from Term browsing.

Naming Consistency5/5

All tool names use consistent snake_case with a clear verb_noun pattern: get_oral_argument, search_cases, get_case, list_term_cases, get_opinion_announcement. The verbs (get, search, list) are used appropriately and unambiguously.

Tool Count5/5

Five tools is well-scoped for a read-only legal data server, covering search, browse, case details, and two transcript types. Each tool has a clear, non-redundant purpose, and the count is comfortably within the ideal range.

Completeness4/5

The surface covers the core workflows: finding cases, listing Terms, retrieving case details, and fetching both oral argument and opinion announcement transcripts. Minor gaps exist—no direct retrieval of opinion text (only links) or audio recordings—but these are workable through the provided details.

Maintenance

ActivityMaintained
ResponsivenessNo issues