Skip to main content
Glama

Server Details

Search US court opinions, federal dockets, judges, citations, and oral arguments via CourtListener.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/courtlistener-mcp-server
GitHub Stars
1

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 13 of 13 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct resource and action: citations, dockets, judges, opinions, oral arguments, parties, courts, financial disclosures. No two tools have overlapping purposes; verb-noun pairs are clearly differentiated.

Naming Consistency5/5

All tool names follow a consistent 'courtlistener_<verb>_<noun>' pattern in snake_case. Verbs are limited to 'get', 'lookup', and 'search', and nouns match the resource type. Singular vs plural usage correctly reflects single vs batch operations.

Tool Count5/5

13 tools cover the core legal research workflows: searching and retrieving opinions, dockets, judges, oral arguments, financial disclosures, plus citation resolution and court lookup. The count feels well-scoped without unnecessary bloat or missing essentials.

Completeness5/5

The tool surface provides full CRUD-lite coverage for the domain: search across all major resources, retrieve detailed records, and resolve citations. No obvious gaps—financial disclosures lack a dedicated 'get' but search returns sufficient detail and a PDF link. Workflows can proceed without dead ends.

Available Tools

13 tools
courtlistener_get_citationsGet Citation NetworkA
Read-only
Inspect

Retrieve the citation network for an opinion cluster. Supports two directions: "cited_by" (opinions that cite this one — measures precedential influence) and "citing" (opinions this one cites — reveals the authority chain relied on). This is the primary tool for tracing legal precedent chains. Note: the free tier (125 req/day) supports shallow traversal — following 1–2 hops of a single case is practical; deep multi-hop analysis burns through the daily budget quickly.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtNoFilter results to a specific court (e.g., "scotus", "ca9"). Applies to both directions.
cursorNoPagination cursor from a previous response's next_cursor field.
directionNo"cited_by" (default): opinions that cite this one — measures precedential influence and downstream adoption. "citing": opinions this one cites — reveals the authority chain the court relied on.cited_by
page_sizeNoNumber of results (1–20). Each citation tool call costs one request against the rate limit — keep page_size low for multi-hop traversal.
cluster_idYesOpinion cluster ID to retrieve citations for. Obtain from courtlistener_search_opinions or courtlistener_lookup_citation.
filed_afterNoLimit to citations filed after this date (ISO 8601). For "cited_by", useful for "how has this precedent been applied recently?"

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when no citations are found — echoes direction and filters, suggests alternatives.
resultsYesRelated opinions in the citation network.
directionYesDirection of the citation relationship returned.
totalCountYesTotal citations in the requested direction.
next_cursorYesPagination cursor for the next page; null when no more results.
source_case_nameYesCase name for the source cluster.
source_cluster_idYesThe cluster ID this citation network is for.
Behavior5/5

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

The description adds significant context beyond annotations: it explains the two directional behaviors, warns about free tier limits (125 req/day), and advises on shallow vs. deep traversal. This compensates for the lack of idempotency hint (which is fine for a read operation).

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

Conciseness5/5

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

The description is a single, well-structured paragraph that front-loads the core purpose and quickly covers usage tips. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (which likely documents return fields), the description adequately covers the input semantics and rate-limit context. It could mention pagination cursor usage, but the schema already describes that.

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 baseline is 3. The description adds value by explaining the meaning of direction values, giving use cases for filed_after, and warning about page_size's cost. This goes beyond the schema's labels.

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

Purpose5/5

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

The description clearly states the tool retrieves the citation network for an opinion cluster, specifying two directions ('cited_by' and 'citing'). It distinguishes itself from sibling tools like courtlistener_lookup_citation, which is likely for finding a specific citation rather than traversing networks.

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?

The description identifies this as the primary tool for tracing legal precedent chains and provides practical guidance on rate limits and traversal depth. However, it does not explicitly state when to use alternatives like courtlistener_search_opinions for broader searches or courtlistener_lookup_citation for direct lookups.

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

courtlistener_get_docketGet DocketA
Read-onlyIdempotent
Inspect

Fetch full docket metadata and entry list for a single federal case by docket ID. Returns all available docket entries with document availability status. Documents with is_available=true have a RECAP-stored copy; others require a PACER account. Obtain docket IDs from courtlistener_search_dockets or from opinion results.

ParametersJSON Schema
NameRequiredDescriptionDefault
docket_idYesDocket ID from a search result's docket_id field or from an opinion cluster result.
entries_page_sizeNoNumber of docket entries to return (1–50). Large cases can have hundreds of entries.

Output Schema

ParametersJSON Schema
NameRequiredDescription
causeYesLegal cause of action.
courtYesCourt display name for major federal courts; the court identifier otherwise.
entriesYesDocket entries up to entries_page_size.
court_idYesCourt identifier — the stable value for filtering.
case_nameYesShort case name.
docket_idYesDocket ID.
date_filedYesDate the case was filed.
assigned_toYesAssigned judge name; null if not recorded.
jury_demandYesJury demand status.
referred_toYesReferred judge name; null if not recorded.
docket_numberYesDocket number.
pacer_case_idYesPACER case ID; null if not in RECAP.
total_entriesYesTotal number of docket entries available — may exceed the returned entries list.
case_name_fullYesFull case name.
date_terminatedYesDate the case was terminated; null if active.
jurisdiction_typeYesJurisdiction type.
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds value by explaining document availability status and PACER requirements, which are behavioral traits beyond the annotations.

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

Conciseness5/5

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

The description is very concise, with three sentences that front-load the primary purpose and include essential details without any fluff.

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?

Given the tool's simplicity (2 parameters, output schema exists), the description covers what the tool returns, how to get the docket ID, and data availability implications. It feels complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description mainly reinforces that docket_id comes from search results, adding minimal extra semantics.

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

Purpose5/5

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

The description clearly states the action ('Fetch full docket metadata and entry list') and the specific resource ('single federal case by docket ID'), which distinguishes it from sibling tools that handle citations, judges, opinions, etc.

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?

The description provides context on when to use the tool (to get docket details by ID) and how to obtain docket IDs from other tools. It does not explicitly state when not to use it or list alternatives, but the guidance is clear enough.

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

courtlistener_get_judgeGet Judge ProfileA
Read-onlyIdempotent
Inspect

Fetch full biographical profile for a single judge: appointment history across all courts, education, political affiliations, and ABA ratings. Obtain person IDs from courtlistener_search_judges results.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYesJudge person ID from a search result's person_id field. Identifies a specific judge across all courts they have served on.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dobYesDate of birth; null if not recorded.
dodYesDate of death; null if living or not recorded.
nameYesFull name.
fjc_idYesFederal Judicial Center ID for cross-referencing with FJC data; null if not available.
genderYesGender.
dob_cityYesCity of birth; null if not recorded.
dob_stateYesState of birth; null if not recorded.
educationYesEducational history.
person_idYesPerson ID.
positionsYesAll judicial positions held, across all courts.
aba_ratingsYesABA qualification ratings, expanded to readable labels (e.g., "Well Qualified").
political_affiliationsYesPolitical affiliation history.
Behavior4/5

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

Annotations already indicate read-only and idempotent operations. The description adds concrete details about the biographical content returned, enhancing transparency without contradicting annotations.

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

Conciseness5/5

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

Two concise sentences front-load the core action and content, then provide necessary context for obtaining the ID. No wasted words.

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?

Given the complex biographical data, the description covers the key elements. The presence of an output schema means return values are documented elsewhere, so no further details are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, so the description adds minimal value beyond restating the parameter's origin. It correctly explains how to obtain the person_id, but the schema already describes it well.

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

Purpose5/5

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

The description clearly states the tool fetches a full biographical profile for a single judge, listing specific content (appointment history, education, etc.) and links to the sibling search tool for obtaining person IDs, effectively distinguishing it from other tools.

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?

Explicitly instructs to obtain person IDs from courtlistener_search_judges, providing clear context for when to use this tool. Does not mention when not to use, but the connection to search is sufficient.

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

courtlistener_get_opinionGet Court OpinionA
Read-onlyIdempotent
Inspect

Fetch the full text and metadata for a single opinion cluster by cluster ID. A cluster groups all opinions filed in a case — majority, concurrence, dissent, and per curiam. Returns all opinion variants with HTML and plain text. Obtain cluster IDs from courtlistener_search_opinions, courtlistener_lookup_citation, or docket results.

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYesOpinion cluster ID — identifies a case decision and groups all opinion variants (majority, concurrence, dissent). Obtain from courtlistener_search_opinions, courtlistener_lookup_citation, or from docket results that link to opinions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
courtYesCourt display name.
judgesYesJudge names.
postureYesProcedural posture (may be empty).
court_idYesCourt identifier.
opinionsYesAll opinion variants within this cluster.
syllabusYesSyllabus text (may be empty).
case_nameYesShort case name.
citationsYesAll known citation strings for this case.
docket_idYesAssociated docket ID.
cite_countYesTotal number of citations from other opinions.
cluster_idYesOpinion cluster ID.
date_filedYesDate the opinion was filed.
docket_numberYesDocket number.
case_name_fullYesFull case name with parties.
precedential_statusYesPublication/precedential status.
Behavior5/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true, but the description adds behavioral context: 'Returns all opinion variants with HTML and plain text.' There is no contradiction with annotations. The description fully discloses the output scope without repeating annotation data.

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

Conciseness5/5

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

Two sentences, no filler. Key information is front-loaded: the action, resource, and identifier. Every sentence serves a purpose.

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?

With an output schema present, the description need not detail return values. It explains what is returned (full text, metadata, all variants, HTML/plain text) and the concept of a cluster. For a simple single-parameter tool, this is complete.

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 has 100% coverage with a good description for the single parameter. The tool description adds value by explaining the concept of a cluster and advising where to obtain the ID, going beyond the schema's description. Given high schema coverage, the baseline is 3, and the added context justifies a 4.

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

Purpose5/5

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

The description clearly states the verb ('Fetch'), resource ('full text and metadata for a single opinion cluster'), and identifies the key identifier ('cluster ID'). It distinguishes from sibling tools by explicitly naming the tools used to obtain cluster IDs (courtlistener_search_opinions, courtlistener_lookup_citation, docket results).

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?

The description tells the agent how to obtain the required cluster ID by referencing sibling tools. It implies when to use this tool (when you need full text and metadata for a specific cluster). However, it does not explicitly state when not to use it or mention alternatives for similar tasks (e.g., getting citations or docket info). The guidance is clear but could be more comprehensive.

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

courtlistener_get_oral_argumentGet Oral ArgumentA
Read-onlyIdempotent
Inspect

Fetch the full detail record for a single oral argument audio recording by its ID (the audio_id from courtlistener_search_oral_arguments). Returns the case name, panel judge IDs, duration, MP3 download URL, linked docket, and the speech-to-text transcript when transcription has completed. The argument date is not on this record — it comes from the search result or the linked docket.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAudio recording ID — the audio_id field from a courtlistener_search_oral_arguments result.

Output Schema

ParametersJSON Schema
NameRequiredDescription
judgesYesFree-text judge names; often empty on this endpoint.
case_nameYesCase name.
docket_idYesAssociated docket ID; 0 if not linked.
panel_idsYesPerson IDs of panel judges — pass to courtlistener_get_judge.
transcriptYesSpeech-to-text transcript; empty string if transcription has not completed.
download_urlYesDirect MP3 download URL; null if not available.
case_name_fullYesFull case name with parties.
has_transcriptYesTrue if a speech-to-text transcript is available.
duration_secondsYesRecording duration in seconds.
oral_argument_idYesAudio recording ID.
Behavior5/5

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

Beyond readOnlyHint and idempotentHint annotations, description details return fields (case name, panel judge IDs, duration, MP3 URL, linked docket, transcript when completed) and notes missing argument date.

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

Conciseness5/5

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

Three concise sentences, front-loaded with primary action, no filler. Every sentence adds essential context.

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?

Given single-parameter input and output schema existence, description lists return fields and clarifies data source, making it fully sufficient for agent invocation.

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 baseline 3. Description adds context by specifying parameter is audio_id from search results, enhancing schema's numeric range description.

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

Purpose5/5

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

Explicitly states it fetches full detail record for a single oral argument by ID. Distinguishes from sibling search tool by specifying input source (audio_id from search results) and outputs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells agent to use audio_id from courtlistener_search_oral_arguments, and clarifies what is not included (argument date) and where to find it (search result or linked docket).

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

courtlistener_get_partiesGet PartiesA
Read-onlyIdempotent
Inspect

Fetch all parties and attorneys of record for a RECAP federal docket by docket ID. Returns each party's name, role (Plaintiff, Defendant, Petitioner, Respondent, etc.), and their attorneys with contact information. Requires two upstream calls per page (parties + attorney batch); keep page_size low to stay within the free-tier rate limit (5 req/min, 125/day). Obtain docket IDs from courtlistener_search_dockets or courtlistener_get_docket.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number (1-indexed). Use with page_size to paginate large party lists.
docket_idYesDocket ID from a courtlistener_search_dockets or courtlistener_get_docket result's docket_id field.
page_sizeNoNumber of parties per page (1–10). Each call makes two upstream requests (parties + attorney batch) — keep low to stay within the free-tier rate limit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pageYesCurrent page number.
partiesYesParties on this page.
docket_idYesDocket ID these parties belong to.
totalCountYesTotal parties on this docket across all pages.
next_cursorYesOpaque cursor for the next page; null when this is the last page.
total_partiesYesTotal number of parties on this docket across all pages.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the agent knows it is safe. The description adds critical context: two upstream calls per page and rate limit exposure. However, it does not mention error handling or response format beyond the brief listing.

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

Conciseness5/5

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

Three sentences, front-loaded with the main purpose, followed by rate limit warning and source hint. No redundant or filler content. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description adequately explains return fields (name, role, attorneys, contact info) and the operational constraint (two upstream calls). It could briefly mention pagination behavior, but the parameter descriptions cover that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all three parameters with 100% coverage. The description reinforces the page_size rate limit advice and the source of docket_id, but adds modest new semantic value beyond the schema.

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

Purpose5/5

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

The description explicitly states the action ('Fetch all parties and attorneys'), the resource ('RECAP federal docket by docket ID'), and the output structure. It also differentiates from sibling tools by noting that docket IDs come from courtlistener_search_dockets or courtlistener_get_docket.

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?

The description provides clear guidance on obtaining docket IDs and recommends keeping page_size low to respect rate limits. While it does not explicitly exclude alternative tools for related tasks, the context of siblings implies specific use case. It could be improved by stating when not to use this tool.

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

courtlistener_lookup_citationLookup Legal CitationA
Read-onlyIdempotent
Inspect

Resolve a formatted legal citation string (e.g., "410 U.S. 113", "93 S. Ct. 705") to a cluster ID and case metadata. Enables workflows that start from a known citation rather than a search query. Supports standard US reporter formats. Requires authentication — uses the CourtListener /citation-lookup/ endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYesLegal citation string to resolve (e.g., "410 U.S. 113", "347 U.S. 483", "93 S. Ct. 705"). Supports standard reporter formats.

Output Schema

ParametersJSON Schema
NameRequiredDescription
courtYesCourt display name; null if not found.
noticeNoRecovery hint when the citation is not in the database — suggests alternative lookup strategies.
case_nameYesCase name; null if not found.
citationsYesAll known citation strings for this case.
cluster_idYesOpinion cluster ID — null if the citation is not in the CourtListener database.
date_filedYesDate the opinion was filed; null if not found.
queriedCitationYesThe citation string that was looked up.
normalized_citationYesCanonical citation form used by CourtListener; null if not resolved.
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. The description adds that it uses the CourtListener /citation-lookup/ endpoint, requires authentication, and supports standard US reporter formats, providing useful context beyond the structured annotations.

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

Conciseness5/5

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

Three concise sentences: first states purpose, second provides use case, third offers format and endpoint details. Every sentence adds value without redundancy.

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?

Given the tool's simplicity (single parameter, no enums, output schema exists) and rich annotations, the description covers what the tool does, when to use it, authentication requirements, and input format. No gaps remain.

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% and the description reinforces the single parameter with examples and format support, adding value by clarifying the expected input format (e.g., '410 U.S. 113').

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

Purpose5/5

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

The description states the tool resolves a legal citation string to a cluster ID and case metadata, with a specific verb 'resolve' and resource 'formatted legal citation string'. It distinguishes from sibling search tools by emphasizing it works from a known citation, not a search query.

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?

The description explicitly says 'Enables workflows that start from a known citation rather than a search query', guiding when to use it. It also mentions authentication and standard reporter formats, but does not explicitly list alternatives or when not to use.

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

courtlistener_lookup_courtsLookup CourtsA
Read-only
Inspect

List courts with optional filtering by jurisdiction type and scraper status. Primarily used to discover court IDs for use in search and filter parameters across all other courtlistener tools. Returns court IDs, full names, citation strings, and scraper status.

ParametersJSON Schema
NameRequiredDescriptionDefault
in_useNoWhen true (default), only return courts currently scraped by CourtListener. Set to false to include historical or inactive courts.
jurisdictionNoJurisdiction type. F=Federal Appellate (circuit courts, SCOTUS), FD=Federal District, FB=Federal Bankruptcy, FBP=Federal Bankruptcy Panel, FS=Federal Special (USITC, FISC, etc.), C=Circuit (historical), I=International, T=Territory, ST=State Trial, SS=State Supreme, SAG=State Attorney General, SAL=State Legislature, SA=State Appellate, S=State (other), TT=Tribal/Territory. Omit to list all.
has_opinion_scraperNoFilter to courts with active opinion scraping. Useful when planning search queries — courts without scrapers have sparse coverage.

Output Schema

ParametersJSON Schema
NameRequiredDescription
courtsYesMatching courts.
noticeNoRecovery hint when no courts match the applied filters.
totalCountYesTotal courts returned.
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true, so the description adds value by specifying return fields (court IDs, full names, citation strings, scraper status) and the filtering options. It does not mention pagination or rate limits, but for a listing tool, the additional context is helpful and consistent with annotations.

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

Conciseness5/5

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

The description is two sentences: the first states the action and filtering, the second explains the primary use and return fields. Every word adds value with no redundancy. Information is front-loaded and efficiently structured.

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 simple lookup tool with three optional parameters and a stated output of specific fields (court IDs, names, citation strings, scraper status), the description covers all necessary aspects. The existence of an output schema (as indicated by context signals) further reduces the burden, and the description provides enough context for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage, so baseline is 3. The description summarizes filtering by 'jurisdiction type and scraper status' but does not add significant new meaning beyond the schema's own descriptions for each parameter. The schema already explains the in_use default and jurisdiction enum values.

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

Purpose5/5

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

The description clearly states the tool 'List courts with optional filtering by jurisdiction type and scraper status.' It identifies the specific verb (List) and resource (courts), and distinguishes it from siblings by noting it is used to discover court IDs for use across other CourtListener tools, which no other sibling tool does.

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?

The description explicitly says 'Primarily used to discover court IDs for use in search and filter parameters across all other courtlistener tools,' providing clear context on when to use this tool. However, it does not explicitly state when not to use it or mention alternatives, but given the sibling tools are all specific lookups, the use case is well-defined.

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

courtlistener_search_docketsSearch Federal Court DocketsA
Read-only
Inspect

Search RECAP federal court dockets with party name, attorney, court, and date filters. RECAP is a crowd-sourced mirror of PACER (the federal court filing system) — coverage varies by court and date. Returns docket metadata with up to 3 sample document entries per docket. Use courtlistener_lookup_courts to find court IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesQuery terms matched against case name, docket number, party names, and attorney names. Example: "Apple Inc patent infringement".
courtNoFilter to a specific federal court ID (e.g., "dnd", "cacd", "deb" for Delaware Bankruptcy). Use courtlistener_lookup_courts to find court IDs.
cursorNoPagination cursor from a previous response's next_cursor field.
page_sizeNoNumber of results to request (default 20). CourtListener search enforces a minimum of 20 results per page regardless of the value passed — you will always receive at least 20 results.
party_nameNoFilter to dockets listing a specific party by name — applied in addition to (AND with) the q query. More precise than including party names in q when the party name is known.
filed_afterNoEarliest case filing date (ISO 8601).
filed_beforeNoLatest case filing date (ISO 8601).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when results are empty — echoes filters and suggests how to broaden.
resultsYesMatching docket records.
totalCountYesTotal matching dockets.
next_cursorYesPagination cursor for the next page; null when no more results.
coverage_noteYesNote about RECAP coverage limitations.
Behavior4/5

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

Annotations indicate readOnlyHint and openWorldHint. The description adds context about RECAP being a crowd-sourced mirror of PACER with variable coverage, and that it returns up to 3 sample document entries per docket, which provides transparency beyond annotations.

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

Conciseness5/5

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

The description is concise (three sentences), front-loaded with purpose, and each sentence adds essential information. No redundant or irrelevant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, output schema exists), the description adequately covers data source caveats, return structure (metadata with sample documents), and provides a cross-reference to another tool. Minor: doesn't explicitly mention date filter parameters, but overall sufficient.

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%, but the description adds value beyond schema by noting that page_size enforces a minimum of 20 results, and that party_name is more precise than including names in q. This aides parameter understanding.

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

Purpose5/5

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

The description clearly states the tool searches RECAP federal court dockets with specific filters (party name, attorney, court, date). It distinguishes itself from sibling tools like courtlistener_search_opinions by focusing on dockets.

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?

The description explicitly mentions using courtlistener_lookup_courts to find court IDs, which is helpful guidance. It also notes coverage varies by court and date, but does not specify when not to use this tool versus alternatives.

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

courtlistener_search_financial_disclosuresSearch Financial DisclosuresA
Read-only
Inspect

Search federal judicial financial disclosure filings — the annual reports judges file on investments, gifts, debts, outside positions, and income. Filter by judge (person ID from courtlistener_search_judges) and/or filing year. Returns per-filing metadata, category counts, itemized gifts, and a link to the source PDF. Line-item investments (often hundreds per filing, with coded values) are summarized as counts; the linked PDF carries the full itemization. Use this for judicial-ethics and recusal research after identifying a judge's person ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearNoFiling year to filter by (e.g., 2022). Filters the fetched filings — pair with judge_id for complete per-judge results. Omit to return all available years.
cursorNoPagination cursor from a previous response's next_cursor field.
judge_idNoPerson ID of the judge whose disclosures to return — obtain from courtlistener_search_judges (the person_id field). Omit to browse across all filers.
page_sizeNoNumber of filings to return (1–20).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when no filings are found — echoes filters and suggests next steps.
resultsYesMatching financial disclosure filings.
totalCountNoTotal matching disclosure filings — present only when the API reports a numeric count (this endpoint returns it as a URL by default, so it is usually absent).
next_cursorYesPagination cursor for the next page; null when no more results.
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds important behavioral context: line-item investments are summarized as counts and the full itemization is only in the linked PDF. This clarifies what the response contains and what it omits.

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

Conciseness5/5

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

The description is concise (3 sentences) and front-loaded with the main purpose. Each sentence provides necessary detail without redundancy. It efficiently conveys the tool's function, filtering options, return data, and use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 4 optional parameters and existing output schema, the description sufficiently covers the tool's operation, return format, and limitations (summarized investments). It could mention pagination via cursor, but that is clear from the schema. Overall, it provides adequate context for an AI agent to decide when and how to use this tool.

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 baseline is 3. The description adds value by explicitly linking judge_id to courtlistener_search_judges and summarizing how the parameters (year, judge_id) are used together. It also mentions the default page_size, though that is in the schema.

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

Purpose5/5

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

The description clearly states the tool searches federal judicial financial disclosure filings and lists the types of data included (investments, gifts, debts, etc.). It distinguishes itself from siblings by focusing specifically on financial disclosures and references the related tool courtlistener_search_judges for obtaining judge IDs.

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?

The description explicitly recommends using this tool for judicial-ethics and recusal research after identifying a judge's person ID. It mentions the prerequisite of using courtlistener_search_judges, but does not explicitly state when to avoid this tool or list alternatives.

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

courtlistener_search_judgesSearch JudgesA
Read-only
Inspect

Search judge/person records by name, appointing president, court, political affiliation, or demographic. Returns biographical data, current position, and appointment summary. Use courtlistener_get_judge for full appointment history and education records.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query — judge name, court, city, or relevant keywords.
courtNoFilter to judges who have held a position at this court (e.g., "scotus", "ca9"). Use court_id strings from courtlistener_lookup_courts.
cursorNoPagination cursor from a previous response's next_cursor field.
appointerNoFilter by appointing president's last name (e.g., "Obama", "Trump", "Biden"). Matches against the appointer field in position records.
page_sizeNoNumber of results to request (default 20). CourtListener search enforces a minimum of 20 results per page regardless of the value passed.
political_affiliationNoFilter by political affiliation: d=Democrat, r=Republican, i=Independent, l=Libertarian, g=Green Party, u=Unknown/unconfirmed. Based on party of the appointing president or election affiliation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when results are empty — echoes filters and suggests how to broaden.
resultsYesMatching judge records.
totalCountYesTotal matching judge records.
next_cursorYesPagination cursor for the next page; null when no more results.
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds context about return data (biographical, current position, appointment summary) but does not elaborate on pagination or other behavioral traits. With annotations covering safety, the description adds moderate value.

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

Conciseness5/5

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

Three concise sentences with no redundancy. Front-loaded with purpose and key search attributes, followed by return data and alternative tool reference.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values are covered elsewhere. Description covers purpose, searchable fields, and suggests an alternative. For a search tool with 6 parameters, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents each parameter. The tool description does not add additional semantics beyond what is in the schema, meeting the baseline.

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

Purpose5/5

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

Description clearly states the tool searches judge/person records with specific attributes (name, appointing president, court, etc.) and explicitly differentiates from sibling courtlistener_get_judge by noting that tool provides full appointment history and education records.

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?

Explicitly states when to use this tool (search) and suggests courtlistener_get_judge for full history. Does not explicitly state when not to use, but context is clear enough.

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

courtlistener_search_opinionsSearch Court OpinionsA
Read-only
Inspect

Full-text search across 9M+ written US court opinions with field-level filtering. Returns opinion cluster summaries with case metadata, citations, and matched text snippets. Supports CourtListener field syntax (caseName:"roe v wade", court_id:scotus, judge:"Alito") and boolean operators (AND, OR, NOT). Use courtlistener_lookup_courts to find court IDs. Rate limit: 5 req/min, 50/hr, 125/day on the free tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesFull-text query. Supports field syntax (caseName:"roe v wade", court_id:scotus, judge:"Alito") and boolean operators (AND, OR, NOT). Use plain English for semantic-style queries or legal citations.
courtNoFilter to a specific court by court ID (e.g., "scotus", "ca9", "nyed"). Use courtlistener_lookup_courts to find court IDs.
cursorNoPagination cursor from a previous response's next_cursor field. Omit for the first page.
statusNoOpinion publication status. "Published": precedential. "Unpublished": not citable as precedent in most jurisdictions. "Errata": corrections. "Separate": separate opinion filed outside main cluster. "In-chambers": single-justice order. "Relating-to": companion or related-case order. Omit to search all statuses.
order_byNoResult ordering. "score desc" (default) ranks by relevance. "citeCount desc" surfaces most-cited opinions first.score desc
page_sizeNoNumber of results to request (default 20). CourtListener search enforces a minimum of 20 results per page regardless of the value passed — you will always receive at least 20 results. Each search costs one request against the rate limit.
filed_afterNoEarliest filing date (ISO 8601, e.g., "2020-01-01"). Narrows search to opinions filed on or after this date.
filed_beforeNoLatest filing date (ISO 8601). Narrows search to opinions filed before or on this date.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when results are empty — echoes filters and suggests how to broaden.
resultsYesMatching opinion cluster summaries.
totalCountYesTotal matching opinions in the corpus.
next_cursorYesPagination cursor for the next page; null when no more results.
effectiveQueryYesQuery terms sent to CourtListener.
Behavior4/5

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

Annotations already indicate readOnlyHint=true (safe read). Description adds critical behavioral details: rate limits (5/min, 50/hr, 125/day), minimum page size enforcement (always at least 20 results), and cost per request. No contradictions.

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

Conciseness5/5

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

Extremely concise (under 50 words), front-loaded with main purpose, no superfluous sentences. Every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 8 parameters, output schema present, and many sibling tools, the description covers all critical aspects: query syntax, filtering, pagination, ordering, rate limits, and cross-reference to another tool. Minor omission: no mention of error cases or empty results.

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%, but description adds significant value: explains field syntax and boolean operators, gives extra context for status values (e.g., 'Unpublished: not citable as precedent'), and clarifies page_size behavior beyond schema.

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

Purpose5/5

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

Clearly states verb (search), resource (US court opinions), scope (9M+, full-text with field-level filtering), and output (opinion cluster summaries). Distinguishes from sibling tools like courtlistener_get_opinion or courtlistener_search_dockets.

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?

Explicitly advises using courtlistener_lookup_courts for court IDs and notes rate limits. Mentions omitting cursor for first page. Does not fully compare with all sibling tools, but provides actionable guidance.

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

courtlistener_search_oral_argumentsSearch Oral ArgumentsA
Read-only
Inspect

Search appellate oral argument audio recordings — the largest public collection of oral argument audio. Returns recording metadata with download URLs, panel judge IDs, and transcript snippets where available. Download URLs are direct MP3 links. Panel judge IDs can be passed to courtlistener_get_judge for biographical context.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesQuery terms matched against case name and transcribed argument text (where available).
courtNoFilter to a specific court (e.g., "scotus", "ca9").
cursorNoPagination cursor from a previous response's next_cursor field.
page_sizeNoNumber of results to request (default 20). CourtListener search enforces a minimum of 20 results per page regardless of the value passed.
argued_afterNoEarliest date the case was argued (ISO 8601) — filters by argument date, not publication date.
argued_beforeNoLatest date the case was argued (ISO 8601).

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeNoRecovery hint when results are empty — echoes filters and suggests how to broaden.
resultsYesMatching oral argument recordings.
totalCountYesTotal matching oral argument recordings.
next_cursorYesPagination cursor for the next page; null when no more results.
Behavior5/5

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

Annotations indicate readOnlyHint: true, and the description adds behavioral details beyond annotations: download URLs are direct MP3 links, page_size is enforced at minimum 20 regardless of input, and panel judge IDs can be used for biographical context. No contradictions.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the main purpose, and each sentence adds value without wasted words. It is well-structured and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 6 parameters, an output schema, and 12 sibling tools, the description covers the core functionality and adds behavioral notes (page_size enforcement, direct MP3 links). It mentions transcript snippets but does not detail the meaning of panel judge IDs beyond the chaining hint. Slightly more detail could be given about the response structure, but the output schema presumably provides that.

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 covers all 6 parameters (100% coverage), so the description does not need to explain parameter basics, but it adds contextual value: it notes that download URLs are direct MP3 links and panel judge IDs can be passed to courtlistener_get_judge. This exceeds the baseline of 3.

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

Purpose5/5

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

The description clearly states it searches appellate oral argument audio recordings and lists what is returned (metadata, download URLs, panel judge IDs, transcript snippets). It distinguishes from sibling tools like courtlistener_get_oral_argument which likely retrieves a single recording.

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?

The description says 'Search appellate oral argument audio recordings' and provides details about the output, including a chaining hint to courtlistener_get_judge. However, it does not explicitly state when to use this tool versus alternative search or retrieval tools, nor when not to use it.

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

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.