Skip to main content
Glama

CourtListener MCP Server

A Model Context Protocol server that gives AI assistants access to the CourtListener legal database (US federal + state court opinions, dockets, RECAP filings, PACER data, oral arguments, judges) and the Electronic Code of Federal Regulations via the official CourtListener API v4.

Use it with Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, ChatGPT Desktop, or any MCP-compatible client.

Forked from Travis-Prall/court-listener-mcp. This fork adds a hosted endpoint, bring-your-own-key (BYOK) auth, a /health route, Dockerfile hardening, a full eCFR (federal regulations) tool suite, cursor pagination, per-client rate limiting, and read-only tool annotations. See the changelog for details.

When to use this vs. the official server

Free Law Project (who run CourtListener) host an official MCP at https://mcp.courtlistener.com/ (OAuth, free with any CourtListener account) - see their announcement. Prefer it if you want OAuth and the broadest CourtListener coverage. Use this server if you want: eCFR federal-regulations tools (the official server has none), simple BYOK header auth (no OAuth dance), or a self-hosted/embeddable Python server. The two are complementary.

Discord

Use the hosted endpoint (no install)

The Vaquill team runs a public instance for the community:

https://courtlistener-mcp.vaquill.ai/mcp/

You bring your own free CourtListener token from courtlistener.com/help/api/rest/, the server forwards it. We never see or store your key.

Claude Desktop / Claude Code

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": {
        "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN"
      }
    }
  }
}

Cursor

.cursor/mcp.json:

{
  "mcpServers": {
    "courtlistener": {
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
    }
  }
}

VS Code (GitHub Copilot Chat)

.vscode/mcp.json:

{
  "servers": {
    "courtlistener": {
      "type": "http",
      "url": "https://courtlistener-mcp.vaquill.ai/mcp/",
      "headers": { "X-CourtListener-Token": "YOUR_COURTLISTENER_TOKEN" }
    }
  }
}

Claude Web (custom connector)

Settings → Connectors → Add custom connector → paste the URL and add X-CourtListener-Token as a header. Workspace owners only.

Windsurf, Continue, etc.

Any client that supports MCP streamable HTTP with custom headers works. For stdio-only clients, run the server locally (see below) or proxy with mcp-remote.

Related MCP server: courtlistener-mcp

Tools

34 tools across 4 groups (each group is namespaced). All are read-only.

Group

Tools

Search (CourtListener)

search_opinions, search_dockets, search_dockets_with_documents, search_recap_documents, search_audio, search_people

Get (CourtListener)

get_opinion, get_docket, get_audio, get_court, get_person, get_cluster

Citation

citation_lookup_citation, citation_batch_lookup_citations, citation_verify_citation_format, citation_parse_citation_with_citeurl, citation_extract_citations_from_text, citation_enhanced_citation_lookup

eCFR (federal regulations)

ecfr_list_titles, ecfr_get_title_versions, ecfr_get_title_structure, ecfr_get_ancestry, ecfr_get_source_xml, ecfr_list_agencies, ecfr_list_all_corrections, ecfr_list_corrections_by_title, ecfr_search_regulations, ecfr_get_search_count, ecfr_get_search_summary, ecfr_get_title_search_counts, ecfr_get_daily_search_counts, ecfr_get_hierarchy_search_counts, ecfr_get_search_suggestions

System

status

Search tools accept a cursor param and return a next_cursor for pagination. See app/README.md for full parameter details.

Authentication

Two modes, in priority order:

  1. Per-request header (BYOK) — preferred for hosted / shared deployments. Send the user's CourtListener key on every MCP request:

    • X-CourtListener-Token: <key> (preferred), or

    • Authorization: Token <key> (CourtListener's native scheme — only works if the MCP server itself isn't already gated by Authorization).

  2. Server env fallback — set COURT_LISTENER_API_KEY on the server. Used when no per-request header is supplied. Leave unset on public instances to force BYOK and avoid burning the operator's quota.

If neither is provided, tools return a ValueError with a clear message.

Self-host

Docker

git clone https://github.com/Vaquill-AI/courtlistener-mcp.git
cd courtlistener-mcp
cp .env.example .env  # optionally set COURT_LISTENER_API_KEY for single-tenant
docker compose up -d
# server at http://localhost:8000/mcp/

Python (uv)

uv sync
uv run python -m app --transport http

Stdio (local CLI integration)

uv run python -m app --transport stdio

Add to Claude Desktop:

{
  "mcpServers": {
    "courtlistener-local": {
      "command": "uv",
      "args": ["run", "--directory", "/abs/path/to/courtlistener-mcp", "python", "-m", "app", "--transport", "stdio"],
      "env": { "COURT_LISTENER_API_KEY": "your_token" }
    }
  }
}

Configuration

Var

Required

Default

Notes

COURT_LISTENER_API_KEY

Optional*

Fallback when no per-request header. Leave unset on public servers.

COURTLISTENER_BASE_URL

No

https://www.courtlistener.com/api/rest/v4/

COURTLISTENER_TIMEOUT

No

30

seconds

MCP_TRANSPORT

No

stdio

stdio | http | sse

MCP_PORT

No

8000

http/sse only

HOST

No

0.0.0.0

http/sse only

ECFR_BASE_URL

No

https://www.ecfr.gov

eCFR API base (no key required)

RATE_LIMIT_ENABLED

No

true

Per-client MCP rate limiting

RATE_LIMIT_RPS

No

15

Max requests/sec per client

RATE_LIMIT_BURST

No

40

Burst capacity per client

* Required only if running in single-tenant mode without BYOK.

Health check

curl https://courtlistener-mcp.vaquill.ai/health
# {"status":"healthy","service":"courtlistener-mcp","version":"..."}

Development

uv sync --dev
uv run pytest
uv run ruff format . && uv run ruff check .
uv run mypy app/

Changelog

0.2.0

  • Added a full eCFR (federal regulations) tool suite (15 tools): titles, structure, versions, ancestry, source XML, agencies, corrections, and full-text regulation search + analytics. This is the differentiator over CourtListener-only servers.

  • Fixed a validation crash: optional search filters are now nullable (str | None), so clients that send explicit JSON null no longer get a ValidationError (previously broke search_dockets / search_recap_documents).

  • Real pagination: removed the no-op hit param; search tools now honor limit and expose a next_cursor token plus an input cursor.

  • Read-only tool annotations on all tools (better client UX, no write prompts).

  • Per-client rate limiting middleware (configurable, on by default).

  • Migrated import_servermount (FastMCP 3), fixed the API-key env-var alias, refreshed project metadata, and got the test suite green (unit tests mocked; live-API tests gated behind RUN_INTEGRATION=1).

Credits & License

CourtListener data is provided by the Free Law Project under their respective terms. eCFR data is from ecfr.gov.

Community

Questions, ideas, or want to contribute? Join the Vaquill community on Discord.

Available Tools

34 tools
citation_batch_lookup_citationsA
Read-only
Inspect

Look up multiple legal citations in a single request.

This is more efficient than making individual requests for each citation. Accepts up to 100 citations at once.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationsYesList of citations to look up (max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations declare readOnlyHint and openWorldHint, so the description adds batch size limit and efficiency context but no additional behavioral traits beyond that.

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 purpose and advantage, with no wasted words.

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 an output schema and low complexity, the description covers core usage and batch size, though it omits error handling for invalid citations.

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 coverage is 100%, and the description merely restates the maxItems constraint, adding no new semantic information beyond what the schema already provides.

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 looks up multiple legal citations in one request, which is specific and distinguishes it from the sibling single-citation tool.

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 notes efficiency and a 100-citation limit, implying it's for batch operations, but does not explicitly advise against using it for single citations or mention the single-citation alternative.

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

citation_enhanced_citation_lookupA
Read-only
Inspect

Enhanced citation lookup combining citeurl parsing with CourtListener data.

This tool first uses citeurl to parse and validate the citation format, then optionally queries the CourtListener API for additional case information.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYesThe citation to look up and analyze
include_courtlistenerNoWhether to also perform CourtListener API lookup

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint and openWorldHint. The description adds behavioral context by detailing the two-step process (citeurl parsing then CourtListener query). It does not contradict annotations and provides useful process-level transparency beyond what annotations offer.

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 consists of two concise sentences, each adding unique value. No redundant information. Structure is front-loaded with purpose and then process.

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 does not need to detail return values. It covers the two-step process adequately for a read-only lookup tool. Could mention limitations or prerequisites but overall 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 coverage is 100% with descriptions for both parameters. The description adds value by explaining that citeurl first parses the citation and that include_courtlistener controls the optional CourtListener step, providing order and purpose beyond the schema's standalone descriptions.

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 performs an enhanced citation lookup combining citeurl parsing with CourtListener data. It distinguishes itself from siblings like citation_parse_citation_with_citeurl and citation_lookup_citation by explicitly combining both functionalities.

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 explains the two-step process (citeurl parsing then optional CourtListener lookup), which implies usage context. However, it does not explicitly state when to use this tool versus the simpler individual tools, nor does it provide any exclusions.

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

citation_extract_citations_from_textA
Read-only
Inspect

Extract all legal citations from a block of text using citeurl.

This tool finds and parses all legal citations within a given text, including both long-form and short-form citations (like 'id.' references).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText containing legal citations to extract

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, and the description adds value by specifying the inclusion of short-form citations and the citeurl parsing method, providing behavioral context 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 two concise sentences, front-loaded with the main verb and resource, and 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 the tool has one parameter, readOnlyHint annotation, and an output schema (not shown), the description adequately covers what the tool does and its scope. Minor omission: does not mention the output format, but that is likely provided by the output schema.

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 coverage is 100% for the single parameter 'text' with a clear description. The tool description repeats similar information ('Text containing legal citations') without adding significant new details about parameter 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 uses a specific verb ('Extract') and resource ('legal citations'), clearly states the scope ('all legal citations' including short-form like 'id.'), and is distinct from siblings that focus on lookup or verification.

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

Usage Guidelines3/5

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

Usage context is implied but not explicit. The description indicates it extracts citations from text but does not state when to use it versus alternatives such as citation_lookup_citation or citation_verify_citation_format.

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

citation_lookup_citationA
Read-only
Inspect

Look up a legal citation to find the opinion it references in CourtListener.

This tool accepts various citation formats including:

  • U.S. Reporter citations (e.g., "410 U.S. 113")

  • Federal Reporter citations (e.g., "123 F.3d 456")

  • WestLaw citations (e.g., "2023 WL 12345")

  • State reporter citations

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYesThe citation to look up (e.g., '410 U.S. 113', '2023 WL 12345')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already state readOnlyHint=true and openWorldHint=true, so the agent knows it's a safe, read-only operation with potentially unpredictable results. The description adds context about accepted citation formats but does not disclose behavior for invalid citations or return structure beyond what annotations indicate.

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 extremely concise: two sentences (purpose then list of formats). No extraneous words; front-loaded with the main action. 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 an output schema exists, the description does not need to explain return values. It covers the input format comprehensively. However, it omits behavior for invalid citations or multiple matches, which is a minor gap. Overall adequate for a simple lookup 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?

The single parameter 'citation' has schema coverage 100% with a basic description. The tool description adds value by listing specific format examples (U.S. Reporter, Federal Reporter, WestLaw, state), helping the agent construct valid input beyond the schema's generic 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?

The description clearly states the verb 'look up' and the resource 'legal citation' to find an opinion in CourtListener. It distinguishes from siblings by implying it handles single citations, while batch lookup exists as a sibling. The list of accepted formats adds specificity.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs. alternatives like citation_batch_lookup_citations, citation_enhanced_citation_lookup, or citation_parse_citation_with_citeurl. The description implies it's for standard citations but lacks when-not or exclusion criteria.

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

citation_parse_citation_with_citeurlA
Read-only
Inspect

Parse a legal citation using citeurl's advanced citation recognition.

This tool uses the citeurl library to parse legal citations and extract structured information including tokens, normalized format, and URL generation.

Returns detailed information about the citation including:

  • Recognized citation format and source

  • Extracted tokens (volume, reporter, page, etc.)

  • Generated URL if available

  • Normalized citation text

ParametersJSON Schema
NameRequiredDescriptionDefault
broadNoUse broad matching for more flexible parsing
citationYesThe citation to parse (e.g., '410 U.S. 113', '42 USC § 1988')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true. Description adds return value details (tokens, normalized format, URL), but doesn't disclose behavioral traits beyond that. Acceptable but not enriched.

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

Conciseness4/5

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

The description is moderately concise with a clear structure: one introductory sentence followed by bullet-like points. Could be slightly shorter but effective.

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 output schema exists, description adequately covers return values and parsing purpose. Completeness is high for a parsing tool with structured output.

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% with descriptions for both parameters. Description adds context by listing extracted elements (volume, reporter, page) beyond schema, enhancing 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 parses legal citations using citeurl, with specific verb 'parse' and resource 'legal citation'. It differentiates from siblings like citation_lookup_citation by mentioning tokens, normalized format, and URL generation.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like citation_lookup_citation or citation_verify_citation_format. The description lacks context or conditions for preferred usage.

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

citation_verify_citation_formatA
Read-only
Inspect

Verify if a citation string is in a valid format using citeurl's advanced parsing.

This tool performs validation using citeurl's comprehensive citation templates to check if a citation appears to be in a recognized legal citation format. This is much more accurate than simple regex matching.

Returns information about the citation format and any detected issues.

ParametersJSON Schema
NameRequiredDescriptionDefault
citationYesThe citation to verify

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds context about using citeurl's advanced parsing and accuracy, which enhances transparency without contradiction.

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

Conciseness4/5

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

The description is concise, with two short paragraphs, front-loading the purpose. It is appropriately sized without unnecessary words.

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

Completeness3/5

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

The description mentions return information about format and issues, but since an output schema exists, it is adequate. However, it could be more specific about the nature of detected issues.

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?

The single parameter 'citation' is described as 'The citation to verify' in the schema, and the tool's description reinforces its purpose, providing sufficient semantic meaning.

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 that the tool verifies if a citation string is in a valid format using citeurl parsing, which distinguishes it from siblings that parse or look up citations.

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

Usage Guidelines3/5

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

The description implies usage for format validation but does not explicitly state when to use or avoid this tool relative to alternatives like citation_parse_citation_with_citeurl.

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

ecfr_get_ancestryB
Read-only
Inspect

Get the ancestry chain (title -> ... -> node) for a CFR node on a date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesSnapshot date (YYYY-MM-DD)
partNoRestrict to a part, e.g. '75'
titleYesCFR title number (1-50)
sectionNoRestrict to a section, e.g. '75.1'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, so the description does not need to reiterate safety. However, it adds no extra behavioral context (e.g., how ancestry is computed, whether it spans multiple sections, or response structure). With annotations, bar is lower but description still lacks useful detail.

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

Conciseness4/5

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

Single sentence that directly states purpose. No wasted words. Could be slightly more informative but remains concise.

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

Completeness3/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 presumably documented. However, the description lacks explanation of what an ancestry chain is or how parameters like part and section constrain the result. Adequate for a straightforward get operation but not fully 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 all parameters (date, part, title, section). The description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.

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 retrieves the ancestry chain for a CFR node on a date. Specific verb 'get' and resource 'ancestry chain' with context (title to node). Distinguishes from sibling tools like ecfr_get_title_structure or ecfr_get_hierarchy_search_counts.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Among many ecfr siblings, there is no mention of use cases, prerequisites, or comparisons. Agent must infer purpose from name alone.

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

ecfr_get_daily_search_countsA
Read-only
Inspect

Get search result counts broken down by date (daily histogram).

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoAs-of date (YYYY-MM-DD)
queryYesFull-text search query over the CFR

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint and openWorldHint. The description adds that results are grouped by date, which is a minimal behavioral detail. No mention of pagination, rate limits, or output specifics.

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, clear sentence with no wasted words. It efficiently conveys the core purpose.

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 and simple parameter set, the description is largely adequate. It could mention date range handling, but overall completeness is good for a retrieval tool.

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 coverage is 100%, and the description does not add any additional meaning beyond what the schema already provides for the query and date parameters.

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 returns search result counts broken down by date as a daily histogram. This distinguishes it from sibling tools like ecfr_get_search_counts (total count) and ecfr_get_title_search_counts (counts by title).

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. The name implies daily breakdown, but no when-to-use or when-not-to-use context is given.

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

ecfr_get_hierarchy_search_countsB
Read-only
Inspect

Get search result counts distributed across the CFR hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoAs-of date (YYYY-MM-DD)
queryYesFull-text search query over the CFR

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, signaling a safe read operation with varying results. The description adds that counts are 'distributed across the hierarchy', which hints at a multi-level breakdown but does not detail what hierarchy nodes are included or how results are structured.

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, concise sentence that conveys the core function without any extraneous words. It is well-structured for quick comprehension.

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

Completeness3/5

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

An output schema exists, so the description need not explain return values. However, the description does not clarify what 'distributed across the CFR hierarchy' means in practice (e.g., which hierarchy levels are included, whether counts are per title/part/subpart). Given the complexity of the CFR hierarchy, more context would be beneficial.

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 coverage is 100% with descriptions for both parameters ('query' and 'date'). The description does not add any additional meaning beyond what the schema provides, so it meets the baseline but does not exceed it.

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 clearly states the verb 'Get' and the resource 'search result counts distributed across the CFR hierarchy'. However, it does not explicitly differentiate from sibling tools like 'ecfr_get_search_count' (total count) or 'ecfr_get_title_search_counts' (counts per title), leaving room for ambiguity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as 'ecfr_get_search_count' for total counts or 'ecfr_get_title_search_counts' for per-title counts. The agent is left to infer context from the tool name alone.

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

ecfr_get_search_countA
Read-only
Inspect

Get the total number of CFR sections matching a search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoAs-of date (YYYY-MM-DD)
queryYesFull-text search query over the CFR
titleNoRestrict to a title
agency_slugsNoRestrict to agency slugs

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true; description adds no further behavioral context (e.g., aggregation details, limits). No contradiction.

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

Conciseness4/5

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

Single sentence, short and direct; lacks extra structure but is appropriately concise.

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 simplicity (count retrieval) and existence of output schema, the description provides sufficient context for an agent to understand its basic function.

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 coverage is 100% with descriptions; description restates the query parameter's purpose but adds minimal 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?

Description clearly states it returns a count of CFR sections matching a search query, effectively distinguishing it from sibling tools like ecfr_get_search_suggestions and ecfr_get_search_summary.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool over alternatives; the name implies a count, but lacks when-not or sibling comparisons.

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

ecfr_get_search_suggestionsA
Read-only
Inspect

Get search-term suggestions for a partial CFR query.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesPartial query to get suggestions for

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating safe, non-destructive behavior. The description adds that it returns suggestions, but does not disclose additional traits like rate limits, pagination, or error handling. It does not contradict 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 a single, front-loaded sentence that efficiently conveys the core purpose with no extraneous words.

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 simplicity of the tool (one parameter, read-only, output schema exists), the description is adequate. It does not explain the output format, but the presence of an output schema likely covers 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?

Schema coverage is 100% and the description for the 'query' parameter is already provided in the input schema ('Partial query to get suggestions for'). The tool description adds no extra meaning beyond what the schema provides, so baseline 3 applies.

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's function: 'Get search-term suggestions for a partial CFR query.' It identifies the verb 'Get', the resource 'search-term suggestions', and the context 'partial CFR query', distinguishing it from sibling tools like ecfr_search_regulations.

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 implicitly suggests use when an agent needs auto-complete suggestions for a partial query. However, it does not explicitly state when not to use it or mention alternatives, though the sibling list provides context.

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

ecfr_get_search_summaryB
Read-only
Inspect

Get summary details (counts + metadata) for a CFR search query.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoAs-of date (YYYY-MM-DD)
queryYesFull-text search query over the CFR
titleNoRestrict to a title
agency_slugsNoRestrict to agency slugs

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare `readOnlyHint` and `openWorldHint`. The description adds the detail 'counts + metadata' but does not elaborate on behavioral traits such as pagination, performance, or what 'metadata' includes. It adds minimal value 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 a single sentence that is front-loaded with the core action. It contains no fluff and is efficiently structured.

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

Completeness3/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. However, given 4 parameters and many siblings, the description could be more complete by hinting at filtering behavior or typical use cases. It is adequate but not enriched.

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 all parameters. The description does not add any parameter-specific meaning beyond what the schema provides. Baseline 3 is appropriate.

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 clearly states the tool returns 'summary details (counts + metadata) for a CFR search query.' The verb 'Get' and resource 'summary details' are specific. However, it does not differentiate from siblings like `ecfr_get_search_count` or `ecfr_get_title_search_counts`, which have overlapping purposes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention any context, prerequisites, or exclusions. Given many similar siblings, this omission reduces clarity.

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

ecfr_get_source_xmlA
Read-only
Inspect

Fetch the source regulation TEXT (XML) for a CFR node on a snapshot date.

Pass a part or section to scope the request. Fetching an entire large title at once can time out on the eCFR side, so narrowing is strongly recommended. Returns the raw XML under content_xml.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesSnapshot date (YYYY-MM-DD)
partNoPart to fetch, e.g. '75'. STRONGLY recommended: whole-title fetches can time out.
titleYesCFR title number (1-50)
chapterNoChapter, e.g. 'I'
sectionNoSection, e.g. '75.1'
subpartNoSubpart, e.g. 'C'
appendixNoAppendix identifier
subtitleNoSubtitle, e.g. 'A'
subchapterNoSubchapter, e.g. 'B'

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint and openWorldHint. Description adds critical timeout risk and states return format (raw XML under content_xml), enhancing 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?

Three sentences, front-loaded with purpose, followed by guideline and output format. No extraneous text.

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 complexity (9 params, output schema exists), description covers key points: timeout risk, scoping, output field. Slight gap: no mention of date being required, but schema covers it.

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 baseline is 3. Description reiterates narrowing advice but does not add substantial new meaning 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 the verb 'fetch', resource 'source regulation TEXT (XML)', scope 'CFR node on a snapshot date'. Distinguishes from siblings by focusing on raw XML retrieval.

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 warns against fetching entire large titles due to timeout, recommending narrowing by part or section. Lacks explicit alternatives or when-not-to-use scenarios.

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

ecfr_get_title_search_countsA
Read-only
Inspect

Get search result counts broken down by CFR title.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoAs-of date (YYYY-MM-DD)
queryYesFull-text search query over the CFR

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description does not need to restate them. It adds that counts are broken down by title, but no additional behavioral details (e.g., pagination, rate limits). Adequate but not exceptional.

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?

A single sentence that is maximally concise and front-loaded. Every word is meaningful; no fluff or redundancies.

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 an output schema present, the description does not need to detail return values. For a simple count-by-title tool, the description is nearly complete. However, it could briefly mention that counts are per title to aid in sibling differentiation.

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 coverage is 100%, so descriptions for both parameters already exist. The tool description adds no extra meaning beyond what the schema provides. Baseline score of 3 is appropriate.

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 uses a specific verb ('Get'), resource ('search result counts'), and a clear breakdown ('by CFR title'). It distinguishes from sibling tools like ecfr_get_search_count (total count) and ecfr_get_hierarchy_search_counts (hierarchical breakdown).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not specify that it returns per-title counts or that for total counts, ecfr_get_search_count should be used. Missing context about prerequisites or typical use cases.

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

ecfr_get_title_structureB
Read-only
Inspect

Get the full hierarchical structure (title -> section) of a CFR title on a date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesSnapshot date (YYYY-MM-DD)
titleYesCFR title number (1-50)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=true and openWorldHint=true, but the description adds no further behavioral context. It does not mention pagination, potential size of the structure, or behavior for invalid dates, which would be valuable 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.

Conciseness4/5

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

The description is a single, concise sentence that gets straight to the point. However, a bit more context (e.g., what 'hierarchical structure' includes) could improve it without adding excessive length.

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

Completeness3/5

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

The tool is relatively simple, and an output schema exists, so the description doesn't need to explain return values. However, it lacks usage guidance and behavioral details, leaving some gaps for the agent.

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%, with clear descriptions for both parameters ('Snapshot date (YYYY-MM-DD)' and 'CFR title number (1-50)'). The tool description adds nothing to parameter meaning beyond reiterating the tool's purpose, so baseline 3 is appropriate.

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 uses a specific verb 'Get' and clearly identifies the resource as the full hierarchical structure (title -> section) of a CFR title on a date. This distinguishes it from sibling tools like ecfr_get_title_versions or ecfr_list_titles.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as ecfr_get_hierarchy_search_counts or ecfr_get_ancestry. The description does not mention prerequisites, limitations, or 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.

ecfr_get_title_versionsA
Read-only
Inspect

List the available content versions (issue dates) for one CFR title.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesCFR title number (1-50)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds no new behavioral context beyond what annotations provide, which is acceptable but not additive.

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?

A single, front-loaded sentence that efficiently conveys the tool's action and scope with no wasted words.

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 presence of an output schema, low parameter count, and annotations covering behavior, the description is sufficient. It could mention that versions are date-ordered or include links, but the output schema likely covers structure.

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 single parameter 'title' is fully described in the schema (CFR title number 1-50). The description merely restates 'one CFR title', adding no new semantic meaning.

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 'List the available content versions (issue dates) for one CFR title' uses a specific verb ('list') and resource ('content versions for one CFR title'), clearly distinguishing it from sibling tools like ecfr_list_titles (which lists all titles) or ecfr_get_title_structure.

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

Usage Guidelines3/5

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

The description implies usage when versions for a specific title are needed, but it does not provide explicit guidance on when to use this tool vs alternatives, nor does it mention exclusion or preferred scenarios.

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

ecfr_list_agenciesA
Read-only
Inspect

List all agencies that appear in the CFR, with their title/chapter references.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. Description adds context about returned data (title/chapter references) but no further behavioral traits.

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?

Single sentence, front-loaded with action and resource, no unnecessary 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?

Simple tool with no parameters and output schema present. Description fully covers what the tool does.

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?

No parameters; baseline 4 due to 100% schema coverage. Description does not need to add parameter info.

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 action (list), resource (agencies in CFR), and what is included (title/chapter references). It distinguishes from sibling tools like ecfr_list_titles.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternative guidance, but the purpose is clear and it's a simple listing. Usage is implied but not explicit.

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

ecfr_list_all_correctionsC
Read-only
Inspect

List CFR corrections, optionally filtered by title and/or effective date.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoCorrections in effect on this date (YYYY-MM-DD)
titleNoRestrict to a CFR title number

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description adds no extra behavioral context such as rate limits, data volume, pagination, or what 'corrections' entails. It fails to add value 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.

Conciseness4/5

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

The description is a single concise sentence that efficiently conveys the core function. While succinct, it misses opportunities to include sibling differentiation or usage context, which would improve value without adding length.

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

Completeness3/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 optional params, annotations present, output schema exists), the description is adequate but lacks explanation of what corrections are, the output format, or how date filtering works. It leaves gaps for an agent to infer.

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 coverage is 100%, so the description only echoes the schema's filtering capability. It does not add detailed meaning about how parameters interact (e.g., date format or behavior when both are provided). Baseline 3 is appropriate.

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 clearly states the tool lists CFR corrections with optional filters, using a specific verb and resource. However, it does not differentiate from the sibling tool 'ecfr_list_corrections_by_title', which likely has overlapping functionality.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., ecfr_list_corrections_by_title), nor does it mention prerequisites or exclusions. The word 'optionally' implies filtering is available but does not clarify context.

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

ecfr_list_corrections_by_titleA
Read-only
Inspect

List all corrections for a single CFR title.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesCFR title number (1-50)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds no new behavioral traits beyond confirming it's a listing 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?

One sentence of 9 words, no wasted words, directly states the tool's purpose.

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?

For a simple one-parameter tool with an output schema, the description is adequate. It does not provide usage guidance but is sufficient for basic understanding.

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 coverage is 100% with a description for the title parameter. The tool description does not add additional meaning beyond reinforcing the context.

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 'list' and the resource 'corrections for a single CFR title', distinguishing it from siblings like 'ecfr_list_all_corrections' which covers all titles.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives like 'ecfr_list_all_corrections'. Usage is implied by the name and parameter but not stated.

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

ecfr_list_titlesA
Read-only
Inspect

List all 50 CFR titles with their latest amended/issue dates and status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint and openWorldHint annotations by specifying the exact returned data (latest dates and status). While annotations cover safety and completeness, the description enriches behavioral understanding without contradiction.

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 sentence that immediately conveys the tool's action, scope, and output. Every word earns its place with no 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 has no parameters, a clear purpose, and an existing output schema, the description fully covers what an agent needs to know: that it lists all titles with their dates and status. 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?

With zero parameters and complete schema coverage, the description does not need to add parameter details. The baseline score of 4 applies as there is no missing information.

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 lists all 50 CFR titles with specific fields (latest amended/issue dates and status). The verb 'list', resource 'CFR titles', and scope 'all 50' precisely define its purpose, distinguishing it from sibling tools that operate on specific titles or provide different data.

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

Usage Guidelines3/5

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

The description implies usage for obtaining an overview of all titles, but it lacks explicit guidance on when to use this tool versus alternatives like ecfr_get_title_versions. No exclusions or context triggers are provided, making it minimally adequate.

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

ecfr_search_regulationsA
Read-only
Inspect

Full-text search over federal regulations, returning matching sections with hierarchy.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoSearch the CFR as of this date (YYYY-MM-DD)
pageNoPage number
orderNoSort order: 'relevance', 'hierarchy', 'newest_first', 'oldest_first'
queryYesFull-text search query over the CFR
titleNoRestrict to a CFR title number
per_pageNoResults per page (max 20)
agency_slugsNoRestrict to one or more agency slugs (from list_agencies)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, signaling safe, potentially incomplete results. The description adds 'returning matching sections with hierarchy' but does not elaborate on pagination, rate limits, or result structure beyond what the output schema provides. 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 a single, clear sentence that front-loads the core action and result. Every word is meaningful, no fluff.

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, full-text search) and the presence of an output schema, the description adequately covers the primary purpose and output. It could optionally mention supported sort orders or agency filters, but the schema handles those specifics.

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 coverage is 100% with all parameters well-described in the input schema. The tool description does not add any additional parameter information, so it meets but does not exceed the baseline for comprehensive schema coverage.

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 'Full-text search over federal regulations, returning matching sections with hierarchy,' clearly identifying the verb (search), resource (federal regulations), and output (sections with hierarchy). This distinguishes it from sibling tools like search_opinions or ecfr_get_title_structure.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives (e.g., ecfr_get_hierarchy_search_counts for counts or citation_lookup_citation for citations). Agents must infer usage from the tool name alone.

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

get_audioA
Read-only
Inspect

Get oral argument audio information by ID from CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
audio_idYesThe audio recording ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. Description adds minimal behavioral context beyond 'get' and 'by ID'; does not describe return format, size, or access restrictions.

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?

Single, well-structured sentence with no redundant information. Every word serves a purpose.

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?

For a simple retrieval tool with output schema and one parameter, the description is sufficient. However, slight improvement could mention that it retrieves metadata, not the audio file itself.

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% for the single parameter audio_id. Description adds no additional meaning beyond what schema provides, so baseline of 3 applies.

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 action (Get), resource (oral argument audio information), identifier method (by ID), and source (CourtListener). Differentiates from sibling search_audio which searches multiple records.

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

Usage Guidelines3/5

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

Implied usage for retrieving a single audio recording by ID, but no explicit guidance on when to use this vs alternatives (e.g., search_audio) or exclusions.

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

get_clusterC
Read-only
Inspect

Get an opinion cluster by ID from CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYesThe opinion cluster ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds no additional behavioral traits such as side effects, authentication requirements, or return format details.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. It contains no extraneous information, but could potentially be slightly more informative without losing conciseness.

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

Completeness3/5

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

Given the output schema exists (not shown), the description is adequate for a simple retrieval tool. However, it could benefit from clarifying what an opinion cluster is, such as grouping related opinions.

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 covers 100% of parameters and includes a description for 'cluster_id'. The tool description does not add extra meaning beyond the schema, so a baseline score of 3 is appropriate.

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 clearly states the action (Get), the resource (opinion cluster), and the source (CourtListener). While it distinguishes from siblings like 'get_opinion' by the resource type, it does not explicitly differentiate from similar tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. It does not provide context for ideal use cases or mention when to avoid using this tool.

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

get_courtA
Read-only
Inspect

Get court information by ID from CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
court_idYesThe court ID to retrieve (e.g., 'scotus', 'ca9')

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds no behavioral details beyond these annotations. It does not contradict annotations, but also does not add 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?

The description is a single sentence that is front-loaded and contains no unnecessary words. Every word is purposeful, making it highly efficient.

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 (1 required parameter, no nested objects, and an output schema present), the description fully covers the necessary context. Return values are documented in the output schema, so the description does not need to elaborate.

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% for the single parameter, which is well-described with examples. The description adds no additional parameter information beyond 'by ID', so it meets the baseline without enhancement.

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 'Get', the resource 'court information', and the method 'by ID'. It also specifies the source 'from CourtListener', making it distinct from sibling tools like 'get_docket' or 'get_opinion'.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., search tools). The description implies straightforward retrieval, but lacks context or exclusion criteria. For a simple get-by-ID tool, this is minimally adequate.

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

get_docketA
Read-only
Inspect

Get a specific court docket by ID from CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
docket_idYesThe docket ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true and openWorldHint=true, so the description adds limited behavioral context. It does not disclose any additional traits, but also does not contradict annotations. Given the annotation coverage, a score of 3 is appropriate.

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 sentence with 10 words, providing all necessary information without unnecessary verbosity. Every word is functional.

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?

The tool has an output schema, so return values are fully documented. The input schema covers the parameter. Given the simplicity of the tool (single ID lookup, read-only, open-world), the description is complete enough for an AI agent to use correctly.

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% for the single parameter docket_id, which is described as 'The docket ID to retrieve'. The tool description adds no further meaning beyond the schema, so baseline 3 applies.

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 ("Get"), the resource ("specific court docket"), and the source ("from CourtListener"). It distinguishes itself from sibling tools like search_dockets by indicating retrieval by a specific ID.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool vs alternatives. The description implies it is for retrieving a known docket by ID, but does not mention when to use search tools instead. For a simple ID lookup, this is acceptable but minimal.

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

get_opinionA
Read-only
Inspect

Get a specific court opinion by ID from CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
opinion_idYesThe opinion ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds the specific behavior of retrieving by ID but does not disclose error handling or what happens for invalid IDs. This is adequate for a simple read tool.

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, efficient sentence that front-loads the core action and resource without any unnecessary words.

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 simplicity (one parameter, output schema exists), the description covers the essential retrieval action. It could mention error cases or cite the downstream behavior for missing IDs, but it is largely complete for a basic lookup tool.

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 coverage is 100% with a clear parameter description. The tool description adds 'by ID' which aligns but provides no additional semantic context 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 clearly specifies the verb 'Get' and the resource 'specific court opinion by ID', explicitly naming the source 'from CourtListener'. This distinguishes it from sibling tools like 'search_opinions' which search for opinions rather than retrieving by ID.

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

Usage Guidelines3/5

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

The description implies usage when you already have an opinion ID but does not explicitly state when to use this versus alternatives like search_opinions for finding opinions. No exclusions or preconditions are mentioned.

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

get_personA
Read-only
Inspect

Get judge or legal professional information by ID from CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
person_idYesThe person (judge) ID to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds no new behavioral details beyond stating it retrieves information. No mention of rate limits, permissions, or other side effects.

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?

Single sentence of 10 words, no redundancy. Clear and front-loaded with verb and resource.

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 output schema present and a single parameter, the description sufficiently covers the tool's purpose. No need to explain return values or further context.

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% with a description for person_id. The parameter description clarifies it's a judge ID, adding specificity. The tool description also reinforces this by mentioning 'judge or legal professional'.

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 verb 'get', resource 'judge or legal professional information', and source 'CourtListener'. It distinguishes from sibling tools like search_people (searching) and get_court (different resource).

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

Usage Guidelines3/5

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

Description implies using this tool when you have a person ID, but does not explicitly provide when-to-use or alternatives. Sibling tools like search_people are not mentioned, leaving the agent to infer context.

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

search_audioC
Read-only
Inspect

Search oral argument audio recordings in CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query for oral argument audio
courtNoCourt ID filter (e.g., 'scotus', 'ca9')
judgeNoFilter by judge name
limitNoMax results from this page (upper bound; CL pages ~20)
cursorNoPagination cursor from a prior response's next_cursor
order_byNoSort by 'score desc', 'dateArgued desc', or 'dateArgued asc'score desc
case_nameNoFilter by case name
argued_afterNoFilter arguments after this date (YYYY-MM-DD)
argued_beforeNoFilter arguments before this date (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds no extra behavioral details (e.g., pagination behavior, result format) beyond what the schema and output schema provide.

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

Conciseness4/5

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

Single sentence, front-loaded with purpose. Efficient but could benefit from a brief overview of what the tool returns.

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

Completeness3/5

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

Given the presence of an output schema and full parameter descriptions, the description is adequate but lacks a high-level summary of search behavior, pagination, or result structure.

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 baseline is 3. The description does not add any parameter-specific meaning or usage hints beyond the schema.

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?

Description clearly states it searches oral argument audio recordings, distinguishing from sibling search tools that target opinions, dockets, etc. However, it lacks any additional context about scope or features.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus other search tools like search_opinions or search_dockets. The agent receives no context about selection criteria.

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

search_docketsB
Read-only
Inspect

Search federal cases (dockets) from PACER in CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query for docket text
courtNoCourt ID filter (e.g., 'scotus', 'ca9')
limitNoMax results from this page (upper bound; CL pages ~20)
cursorNoPagination cursor from a prior response's next_cursor
order_byNoSort by 'score desc', 'dateFiled desc', or 'dateFiled asc'score desc
case_nameNoFilter by case name
party_nameNoFilter by party name
docket_numberNoSpecific docket number to search for
date_filed_afterNoFilter dockets filed after this date (YYYY-MM-DD)
date_filed_beforeNoFilter dockets filed before this date (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description does not expand on these, nor does it mention pagination behavior, rate limits, or any side effects. It adds little value 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 a single, clear sentence that is front-loaded and contains no filler. Every word serves a purpose.

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

Completeness2/5

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

Given the tool's complexity (10 parameters, extensive filtering, output schema exists), the description is too brief. It does not explain effective use of filters, pagination via cursor, or how openWorldHint affects results.

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 all parameters. The description does not add any extra meaning or context about how parameters interact or their semantics beyond what's 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 action (search), resource (federal cases/dockets), and source (PACER in CourtListener), distinguishing it from sibling tools like search_opinions or search_recap_documents.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It does not mention when not to use it or compare to other search tools.

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

search_dockets_with_documentsA
Read-only
Inspect

Search federal cases (dockets) with up to three nested documents.

If there are more than three matching documents, the more_docs field will be true.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query for federal cases
courtNoCourt ID filter (e.g., 'scotus', 'ca9')
limitNoMax results from this page (upper bound; CL pages ~20)
cursorNoPagination cursor from a prior response's next_cursor
order_byNoSort by 'score desc', 'dateFiled desc', or 'dateFiled asc'score desc
case_nameNoFilter by case name
party_nameNoFilter by party name
docket_numberNoSpecific docket number to search for
date_filed_afterNoFilter dockets filed after this date (YYYY-MM-DD)
date_filed_beforeNoFilter dockets filed before this date (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds critical behavioral details: it returns up to three nested documents and provides a 'more_docs' field to signal truncation. This goes beyond the annotations and helps the agent understand the tool's output behavior. However, it does not mention other aspects like pagination limits (covered in schema) or potential rate limits.

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

Conciseness4/5

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

The description is very concise: two sentences that are front-loaded with the core purpose and a follow-up on the 'more_docs' field. It has no filler or repetition, though it could be slightly more structured (e.g., bullet points for the two key behaviors). Still, it earns its place without waste.

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 (10 parameters, nested documents, output schema exists), the description covers the most important aspect: the limit of three nested documents and the truncation signal. It does not explain the relationship between dockets and documents or the exact shape of the response, but the output schema is expected to fill that gap. It is sufficiently complete for a search tool with good schema coverage.

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 coverage is 100%, so the baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema already provides. It does not explain how parameters like 'court' or 'date_filed_after' interact with the document nesting or the 'more_docs' field. No extra value is added.

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 verb 'Search', the resource 'federal cases (dockets)', and the key feature 'with up to three nested documents'. This clearly distinguishes it from sibling tools like search_dockets (which likely returns dockets without documents) and search_recap_documents (which focuses on documents directly). The purpose is specific and unambiguous.

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

Usage Guidelines3/5

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

The description implies that this tool is for searching dockets that have associated documents, but it does not explicitly state when to use it over alternatives (e.g., 'use search_dockets for dockets without documents') or when not to use it (e.g., if more than three documents are needed per docket). It provides some context but lacks explicit guidance or exclusions.

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

search_opinionsA
Read-only
Inspect

Search case law opinion clusters with nested Opinion documents in CourtListener.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query for full text of opinions
courtNoCourt ID filter (e.g., 'scotus', 'ca9')
judgeNoFilter by judge name
limitNoMax results from this page (upper bound; CL pages ~20)
cursorNoPagination cursor from a prior response's next_cursor
cited_gtNoMinimum number of times opinion has been cited
cited_ltNoMaximum number of times opinion has been cited
order_byNoSort by 'score desc', 'dateFiled desc', or 'dateFiled asc'score desc
case_nameNoFilter by case name
filed_afterNoOnly show opinions filed after this date (YYYY-MM-DD)
filed_beforeNoOnly show opinions filed before this date (YYYY-MM-DD)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already provide readOnlyHint: true and openWorldHint: true, covering safety and scope. The description adds no additional behavioral context (e.g., rate limits, pagination behavior beyond schema). It is adequate but does not go 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 a single concise sentence that includes the key purpose and context. It is front-loaded with no extraneous information, making it easy to parse quickly.

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

Completeness3/5

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

Given the complexity (11 parameters, output schema present), the description is minimal. It hints at the return structure ('opinion clusters with nested Opinion documents') but lacks details on pagination, typical filtering patterns, or the meaning of clusters. However, the high schema coverage and output schema reduce the burden, making it adequate but not thorough.

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 description adds no additional meaning beyond what is already in the schema, resulting in a baseline score 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 the action 'Search' and the resource 'case law opinion clusters with nested Opinion documents in CourtListener'. It is specific and distinguishes from sibling tools like search_dockets or search_audio.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor any exclusions or context about when not to use it. The agent receives no help in tool selection.

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

search_peopleB
Read-only
Inspect

Search judges and legal professionals in the CourtListener database.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query for judges and legal professionals
nameNoFilter by person's name
limitNoMax results from this page (upper bound; CL pages ~20)
cursorNoPagination cursor from a prior response's next_cursor
schoolNoFilter by school attended
order_byNoSort by 'score desc' or 'name asc'score desc
appointed_byNoFilter by appointing authority
position_typeNoFilter by position type (e.g., 'jud' for judge)
selection_methodNoFilter by selection method
political_affiliationNoFilter by political affiliation

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the tool is safe; the description adds no extra behavioral details about pagination, data freshness, or scope beyond 'CourtListener database'.

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

Conciseness4/5

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

Single sentence is concise and front-loaded, but lacks any structuring; could benefit from a secondary sentence about scope or filtering.

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

Completeness3/5

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

Given the complexity (10 params, output schema exists), the description is minimal. No mention of search behavior or common use cases, but annotations and schema fill some gaps.

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 covers all 10 parameters with descriptions, so the description adds no new semantic information 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 clearly states it searches judges and legal professionals in CourtListener, uses a specific verb and resource, and distinguishes from sibling tools like search_opinions or 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 Guidelines2/5

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

No guidance on when to use this vs alternatives, no exclusions or context about when it is appropriate, despite having many sibling search tools.

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

search_recap_documentsA
Read-only
Inspect

Search federal filing documents from PACER in the RECAP archive.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesSearch query for RECAP filing documents
courtNoCourt ID filter (e.g., 'scotus', 'ca9')
limitNoMax results from this page (upper bound; CL pages ~20)
cursorNoPagination cursor from a prior response's next_cursor
order_byNoSort by 'score desc', 'dateFiled desc', or 'dateFiled asc'score desc
case_nameNoFilter by case name
party_nameNoFilter by party name
filed_afterNoFilter documents filed after this date (YYYY-MM-DD)
filed_beforeNoFilter documents filed before this date (YYYY-MM-DD)
docket_numberNoSpecific docket number to search for
document_numberNoSpecific document number to search for
attachment_numberNoSpecific attachment number to search for

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, which the description does not contradict. The description adds no behavioral details beyond the safe read-only nature implied by 'Search', so transparency is adequate but minimal.

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, clear sentence with no redundant information. It is perfectly concise and front-loaded with the key purpose.

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 presence of an output schema and comprehensive parameter descriptions in the input schema, the description need not detail return values or complex behavior. It sufficiently establishes the tool's core purpose for a search operation.

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?

With 100% schema description coverage, the schema already explains all parameter meanings. The description contributes no additional context for parameters, so baseline score of 3 is appropriate.

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 ('Search') and the specific resource ('federal filing documents from PACER in the RECAP archive'), distinguishing it from sibling tools like search_opinions or 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 Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided, nor are alternative tools mentioned. However, the resource specificity (RECAP archive) implies its domain, leaving usage implicit rather than explicit.

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

statusAInspect

Check the status of the CourtListener MCP server.

Returns: A dictionary containing server status, system metrics, and service information.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It adequately describes the tool as a read-only status check returning a dictionary with server status, metrics, and service info. It does not mention rate limits or auth, but for a simple health endpoint, this is sufficient.

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, front-loaded with purpose and return type. No wasted words. Every sentence adds 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?

Given zero parameters and existence of an output schema, the description is complete. It states the return value clearly. No additional context is necessary.

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?

Input schema has zero parameters, so baseline is 4. The description adds no parameter info because none is needed. Schema coverage is 100%, fulfilling the requirement.

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 'Check the status of the CourtListener MCP server', which is a specific verb and resource. It distinguishes itself from all sibling tools that perform data operations (citation, search, etc.) by being a general server health check.

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?

While not explicitly stating when not to use, the description makes it obvious that this tool is for server status checks. The context of sibling tools further clarifies that status is for health/readiness, not data queries. Slight lack of explicit exclusions but clear enough.

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. Dates show when Glama detected each change.

  1. 34 tool updatesv0.2.0
    • First observedcitation_batch_lookup_citations
    • First observedcitation_enhanced_citation_lookup
    • First observedcitation_extract_citations_from_text
    • First observedcitation_lookup_citation
    • First observedcitation_parse_citation_with_citeurl
    • First observedcitation_verify_citation_format
    • First observedecfr_get_ancestry
    • First observedecfr_get_daily_search_counts
    • First observedecfr_get_hierarchy_search_counts
    • First observedecfr_get_search_count
    • First observedecfr_get_search_suggestions
    • First observedecfr_get_search_summary
    • First observedecfr_get_source_xml
    • First observedecfr_get_title_search_counts
    • First observedecfr_get_title_structure
    • First observedecfr_get_title_versions
    • First observedecfr_list_agencies
    • First observedecfr_list_all_corrections
    • First observedecfr_list_corrections_by_title
    • First observedecfr_list_titles
    • First observedecfr_search_regulations
    • First observedget_audio
    • First observedget_cluster
    • First observedget_court
    • First observedget_docket
    • First observedget_opinion
    • First observedget_person
    • First observedsearch_audio
    • First observedsearch_dockets
    • First observedsearch_dockets_with_documents
    • First observedsearch_opinions
    • First observedsearch_people
    • First observedsearch_recap_documents
    • First observedstatus

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a distinct and well-described purpose. Citation tools cover different operations (lookup, batch, verify, parse, extract, enhanced lookup). eCFR tools each handle a separate task (list titles, get versions, structure, ancestry, search, counts, etc.). General CourtListener tools are clearly separated by resource and action (search vs get, opinions vs dockets vs audio vs people). No two tools appear to overlap in functionality.

Naming Consistency4/5

Tools are grouped with clear prefixes: 'citation_' for citation tools, 'ecfr_' for eCFR tools, and unprefixed verb+noun for general tools (e.g., get_court, search_opinions). Within each group, naming follows a consistent verb_noun pattern. The only minor inconsistency is the lack of a common prefix for general tools, but this is acceptable given the distinct functional areas.

Tool Count2/5

With 34 tools, the count exceeds the recommended range for a well-scoped server (3-15). While the server covers three broad legal domains (citations, eCFR, CourtListener), the tool surface is quite large and could potentially be split into separate servers for better focus. Many tools are very granular, especially for eCFR search counts and hierarchies.

Completeness4/5

The tool set covers the major operations for legal research: citation handling (lookup, batch, parsing, validation, extraction), eCFR retrieval and search (titles, versions, structure, ancestry, corrections, full-text search with counts), and CourtListener data access (search and get for opinions, dockets, audio, people, courts, RECAP documents). Minor gaps might include advanced filtering or sorting options, but overall the surface is comprehensive for the intended use.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol (MCP) server for accessing CourtListener's legal database. Provides Claude Desktop with powerful legal research capabilities including court opinions, case dockets, judge profiles, and comprehensive legal analysis.
    1
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A remotely callable MCP server for US legal research that provides tools to search, retrieve, and analyze US case law from the CourtListener API, enabling agents to build evidence packs from primary sources without generating legal content.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vaquill-AI/courtlistener-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server