AgentLegal
Server Details
Federal court opinion search via CourtListener. Search 10M+ opinions, docket records, and case history by keyword or company name.
- Status
- Healthy
- Uptime
- 17.8% over 66 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
TDQS
Scored across 3 tools
get_case (by docket ID/name), get_company_cases (by company), and search_cases (filtered browse) target distinct query intents. However, get_case's 'case name search' mode overlaps somewhat with search_cases, which could cause occasional misselection.
All names are snake_case verb_noun (get_case, get_company_cases, search_cases), which is predictable and readable. The verb shifts between get_ and search_, but this reflects real semantic differences rather than inconsistency.
Three tools is on the thin side for a legal research surface; opinion retrieval, docket entry detail, and citation lookups are plausible sub-operations that have no dedicated tool. It is scoped but borderline minimal.
Core search and retrieval paths are covered, but the surface is entirely read-only with no way to fetch full opinion text separately, list courts/jurisdictions, or look up citations. These are notable gaps an agent doing legal research would hit.
Available Tools
3 toolsget_caseBInspect
Get detailed information about a specific court case/docket by docket ID or case name search.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Court ID to narrow case name search | |
| case_name | No | Case name to search for (e.g. "Roe v Wade") | |
| docket_id | No | CourtListener docket ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get detailed information' implies a read, but nothing is said about authentication (CourtListener requires a token), rate limits, pagination, or what 'detailed information' contains. For a zero-annotation tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource and retrieval modes front-loaded and no filler. It is appropriately sized, though slightly terse given the lookup-mode ambiguity it leaves unresolved.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations exist to carry context, and the description omits an important behavioral detail: all three parameters are optional, yet the tool presumably requires either docket_id or case_name. It is adequate for a simple lookup but leaves that constraint and the return shape unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (court, case_name, docket_id) are documented in the schema itself. The description adds only the high-level framing of the two lookup modes and does not explain how court narrows case_name searches or how the params interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (retrieve detailed info on a court case/docket) and names the two lookup modes (docket ID or case-name search). It does not distinguish itself from sibling search_cases, which overlaps with the case-name search path, so an agent must still infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the two lookup modes; there is no explicit statement of when this should be preferred over search_cases or get_company_cases. Given that case_name search overlaps directly with a sibling tool, an explicit routing sentence is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_company_casesBInspect
Find all federal court cases involving a specific company. Returns opinions, dockets, and case summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Limit to specific court (e.g. ca9, scotus) | |
| limit | No | Number of results (max 20) | |
| company | Yes | Company name (e.g. "Apple Inc", "Goldman Sachs") | |
| date_after | No | Only cases filed after date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses the return payload ('opinions, dockets, and case summaries') and implies a read-only lookup, but says nothing about permissions, rate limits, result ordering, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both earning their place, with the purpose front-loaded before the return summary. Nothing is padded or redundant, though it is minimal rather than richly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple four-parameter read tool this covers the essentials, and the second sentence partially compensates for the absent output schema. It still leaves pagination, ordering, and result-size behavior unaddressed, with no annotations to fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 court, limit, company, and date_after with examples and defaults. The description adds no parameter-level detail beyond what the schema provides, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find all federal court cases involving a specific company'), making the company-scoped nature unambiguous. It does not name the sibling tools (search_cases, get_case), so differentiation from a general case search is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool's scope: it is the company-anchored lookup, as opposed to the broader search_cases or single-case get_case. There is no explicit when-to-use or when-not-to-use guidance and no named alternative, so an agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_casesBInspect
Search federal court opinions and cases via CourtListener / RECAP Archive. Filter by court, date, and case type.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query (case name, topic, parties, etc.) | |
| type | No | Result type: o=opinions (default) | o |
| court | No | Court ID (e.g. ca9, scotus, dcd, nyed) | |
| limit | No | Number of results (max 20) | |
| date_after | No | Filter cases filed after date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It reveals the data sources and the read-only nature implicitly, but says nothing about pagination, result ordering, rate limits, or coverage gaps between opinions and the RECAP archive. That is a thin behavioral disclosure for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the purpose and filter capabilities front-loaded and no wasted wording. It errs slightly toward being sparse rather than verbose, which is the right direction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a five-parameter search tool with no annotations and no output schema, the description covers the essentials but leaves the agent guessing about result shape and pagination, and its 'case type' phrasing may mislead about the `type` parameter. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description restates the court and date filters, but its mention of 'case type' does not correspond to any parameter (the `type` param is result type o=opinions), which adds a slight inaccuracy rather than new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (federal court opinions and cases) and names the underlying data sources, CourtListener / RECAP Archive. It does not explicitly differentiate itself from siblings like get_case or get_company_cases, but 'search' versus 'get' is a clear enough distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of filtering 'by court, date, and case type' implies the intended usage context, but there is no explicit when-to-use/when-not guidance and no alternatives are named. An agent must infer that this is the broad discovery tool and get_case is for retrieving a known case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_case - First observed
get_company_cases - First observed
search_cases
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npmMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.