LegalMCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LegalMCPSearch for Supreme Court cases on Fourth Amendment and cell phone location data"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LegalMCP
The first comprehensive US legal MCP server for AI assistants.
Connect Claude, GPT, Cursor, or any MCP-compatible AI to 4M+ US court opinions, Clio practice management, and PACER federal filings. Research in seconds, not hours.
30-Second Demo
You: Find Supreme Court cases about Fourth Amendment and cell phone location data
LegalMCP: Found 52 results. Top case:
Carpenter v. United States, 585 U.S. 296 (2018)
The Court held that accessing historical cell-site location
information constitutes a search under the Fourth Amendment,
requiring a warrant supported by probable cause.
→ 127 cases cite this opinion
→ Full text: courtlistener.com/opinion/4578834Related MCP server: Legal Court MCP Server
Why LegalMCP?
Traditional Research | AI + LegalMCP | |
Find relevant cases | 45-90 min | < 30 sec |
Trace citation history | Open Westlaw, click around | "Who cited this case?" |
Pull client billing | Log into Clio, navigate menus | "Total hours on Henderson?" |
Monthly cost | $200-400 (Westlaw/Lexis) | Free |
Quick Start
Install
We recommend using a virtual environment to avoid conflicts with other packages:
# Create and activate a virtual environment
python -m venv legal-mcp-env
# Windows
legal-mcp-env\Scripts\activate
# Mac/Linux
source legal-mcp-env/bin/activate
# Install
pip install legal-mcpOr install from GitHub:
pip install git+https://github.com/Mahender22/legal-mcp.gitRun
Want to try it without API keys? Enable demo mode first (optional):
# Mac/Linux
export LEGAL_MCP_DEMO=true
# Windows
set LEGAL_MCP_DEMO=trueThen start the server:
legal-mcpConnect to Claude Desktop
Add to your claude_desktop_config.json:
Windows (%APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"legal-mcp": {
"command": "C:/path/to/legal-mcp-env/Scripts/legal-mcp.exe",
"env": {
"LEGAL_MCP_DEMO": "true"
}
}
}
}Mac/Linux (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"legal-mcp": {
"command": "/path/to/legal-mcp-env/bin/legal-mcp",
"env": {
"LEGAL_MCP_DEMO": "true"
}
}
}
}Note: Use the full path to
legal-mcpinside your virtual environment. Remove theLEGAL_MCP_DEMOline and add your API keys for real data (see SETUP.md).
Connect to Claude Code
Run this command to add LegalMCP globally (available in every session):
Mac/Linux:
claude mcp add legal-mcp /path/to/legal-mcp-env/bin/legal-mcpWindows:
claude mcp add legal-mcp C:\path\to\legal-mcp-env\Scripts\legal-mcp.exeTo enable demo mode, add the env flag:
Mac/Linux:
claude mcp add legal-mcp -e LEGAL_MCP_DEMO=true -- /path/to/legal-mcp-env/bin/legal-mcpWindows:
claude mcp add legal-mcp -e LEGAL_MCP_DEMO=true -- C:\path\to\legal-mcp-env\Scripts\legal-mcp.exeTip: To add it to a specific project only, add
-s projectflag or create a.mcp.jsonfile in your project root.
Connect to Cursor / Windsurf
LegalMCP works with any MCP-compatible client. Add the legal-mcp command to your AI tool's MCP server configuration.
Configuration
Set environment variables for API access. See SETUP.md for step-by-step instructions.
Variable | Required | Description |
| Optional | Higher rate limits for case law search |
| For Clio tools | OAuth token for practice management |
| For PACER tools | PACER account username |
| For PACER tools | PACER account password |
| Optional | Set |
All 18 Tools
Case Law
Tool | What It Does |
| Search 4M+ US court opinions by topic, court, date range |
| Get full opinion text for a specific case |
| Get docket — parties, judges, procedural history |
| Find cases that cite a specific opinion |
| Find cases that an opinion relies on |
| Parse Bluebook citations from any text |
| List all 400+ courts and their codes |
| Decode reporter abbreviations (U.S., F.3d, etc.) |
Practice Management — Clio
Tool | What It Does |
| Search contacts by name, email, phone |
| Search matters by number, description, status |
| Full matter info — client, billing, deadlines |
| Billable hours by matter, attorney, date range |
| Tasks and to-dos for a matter |
| Documents attached to a matter |
| Hearings, deadlines, and meetings |
Court Filings — PACER
Tool | What It Does |
| Search PACER for federal court cases |
| Get case details from PACER |
| Get docket entries and filings |
Note: PACER charges $0.10/page for document downloads. LegalMCP searches and lists for free — it does not auto-download paid documents.
Pricing
Free and open source. All 18 tools, MIT license, no paywall. Just install and go.
Docker
# Copy and configure environment
cp .env.example .env
# Edit .env with your API keys
# Run
docker-compose upThis starts the MCP server on port 8000 and the waitlist API on port 8080.
How It Works
LegalMCP is a Model Context Protocol server. MCP is an open standard that lets AI assistants call external tools — like searching case law or querying your Clio data.
┌──────────────┐ MCP ┌──────────────┐ API ┌──────────────┐
│ │ ──────────► │ │ ──────────► │ │
│ Claude / │ Tool calls │ LegalMCP │ HTTP │ CourtListener│
│ GPT / │ ◄────────── │ Server │ ◄────────── │ Clio / PACER │
│ Cursor │ Results │ (your PC) │ JSON │ │
└──────────────┘ └──────────────┘ └──────────────┘Your data stays on your machine. LegalMCP runs locally and connects directly to the APIs.
Development
# Clone and install
git clone https://github.com/Mahender22/legal-mcp.git
cd legal-mcp
pip install -e ".[dev,waitlist]"
# Run tests
pytest legal_mcp/tests/ -v
# Run server locally
python -m legal_mcp.src.serverLicense
MIT — use it however you want.
Available Tools
18 toolsfind_cited_casesA
Find cases that a specific opinion cites (what cases did this ruling rely on?).
Use this to understand the legal foundation of a decision.
| Name | Required | Description | Default |
|---|---|---|---|
| opinion_id | Yes | The opinion ID to find cited cases for |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, but it only states the function without disclosing behavioral traits. It doesn't mention that this is a read-only operation, error handling, or any prerequisites, leaving a transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that front-load the core function and then provide a practical use case. No unnecessary words or duplication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema, the description is adequate. It explains what the tool does and its purpose, while the output schema covers return structure. It could have added more about prerequisite data, but it's not necessary for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter 'opinion_id' is well-described in the schema. The tool description adds minimal extra meaning beyond reinforcing that it's about a specific opinion, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find cases that a specific opinion cites') and the resource, with the parenthetical clarifying the direction ('what cases did this ruling rely on?'). This distinguishes it from the sibling tool find_citing_cases, which would find cases citing the opinion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear usage context with 'Use this to understand the legal foundation of a decision,' which tells the agent when to apply the tool. It doesn't explicitly mention alternatives or exclusions, but the tool's purpose is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_citing_casesA
Find cases that cite a specific opinion (who cited this case later?).
Use this to trace how a case has been used in subsequent rulings.
| Name | Required | Description | Default |
|---|---|---|---|
| opinion_id | Yes | The opinion ID to find citing cases for |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavioral disclosure. It adds temporal direction ('later', 'subsequent rulings'), but does not discuss potential empty results, scope limitations, or any other edge-case behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and resource, with no wasted words. The parenthetical clarification and use-case sentence are both valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and has an output schema, but the description lacks explicit scoping against the sibling 'find_cited_cases' and does not state any limitations regarding case database coverage or result granularity. It is adequate but not complete on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the only parameter 'opinion_id' is already well-described in the schema. The description does not add additional semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and clearly identifies the resource ('cases that cite a specific opinion'). The parenthetical 'who cited this case later?' adds temporal scope and distinguishes it from the sibling tool 'find_cited_cases'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit use case: 'Use this to trace how a case has been used in subsequent rulings.' It is clear when to use the tool, though it does not explicitly mention alternatives or exclusions relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendarA
Get calendar entries (hearings, deadlines, meetings) from Clio.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | End date (YYYY-MM-DD) | |
| date_from | No | Start date (YYYY-MM-DD) | |
| matter_id | No | Filter by matter/case ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'Get' implies a read-only operation, but the description does not elaborate on pagination, date range semantics, authentication, or other behavioral traits. It adds minimal context beyond the tool name, but no contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that clearly communicates the tool's purpose without extraneous wording. It efficiently states the resource and source (Clio) and enumerates example entry types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and fully documented parameters, so return values and parameter details are covered structurally. However, the description lacks usage guidance and any behavioral caveats, making it adequate but not fully complete for an agent unfamiliar with the system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (date_to, date_from, matter_id) already have descriptions in the schema. The tool description adds no additional parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get calendar entries' from Clio, and specifies entry types (hearings, deadlines, meetings). This is a specific verb+resource combination, but it does not explicitly distinguish from sibling tools like get_time_entries or get_matter_tasks, though no other calendar-specific tool exists in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when calendar data is needed, but provides no explicit guidance on when to prefer this tool over alternatives or any exclusions. Since there is no competing calendar tool, the lack of explicit differentiation is less impactful, but the description does not offer any contextual hints beyond the basic purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_case_detailsA
Get full details of a specific court opinion by its ID.
Use this after search_case_law to get the full text and details of a case.
| Name | Required | Description | Default |
|---|---|---|---|
| opinion_id | Yes | The opinion ID from a search result |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what the tool does, not any behavioral traits such as authentication requirements, response size, pagination, or error conditions. It does mention returning 'full text and details,' but that is more about purpose than behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences, front-loaded with the core purpose, and no fluff. Every sentence contributes meaningful guidance for selecting and invoking the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter) and the presence of an output schema, the description covers the essential context. It explains the relationship to search_case_law and indicates the return includes full text, though it doesn't detail return fields—which is acceptable because an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters, with the opinion_id described as 'The opinion ID from a search result.' The description adds slightly by reinforcing that the ID is from a search and that the tool gives 'full details of a specific... opinion,' but it doesn't add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get full details of a specific court opinion by its ID.' It specifies the resource (court opinion) and the operation (get full details), and it distinguishes itself from siblings by explicitly mentioning search_case_law as a preceding step and emphasizing 'full text and details.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Use this after search_case_law to get the full text and details of a case.' This tells the agent when to use it relative to another tool, though it doesn't mention alternative tools like get_case_record or get_federal_case. Still, the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_case_recordB
Get the full docket (case record) for a case.
Includes parties, attorneys, judges, and procedural history.
| Name | Required | Description | Default |
|---|---|---|---|
| docket_id | Yes | The docket ID from a case search result |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the burden of behavioral disclosure. It adds helpful context about the contents of the docket but does not state that the operation is read-only, whether any permissions are required, or how results are paginated. It is not misleading but provides only moderate transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first states the core purpose and the second elaborates the docket contents without redundancy. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one parameter and an output schema, the description is largely complete: it states what the tool returns and the key included components. The lack of relationship to sibling case tools (e.g., get_case_details) is a minor gap but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter docket_id is fully described in the schema (100% coverage), so the description adds no new parameter details. With full schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Get the full docket (case record) for a case' uses a specific verb and resource, and the second sentence clarifies scope (parties, attorneys, judges, procedural history). However, it does not explicitly distinguish this from sibling tools like get_case_details or get_federal_case, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The schema's parameter description mentions 'docket ID from a case search result,' but the description itself offers no usage context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_court_filingsA
Get docket entries (individual filings) for a federal case from PACER.
Shows motions, orders, briefs, and other documents filed in the case.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | The PACER case ID | |
| date_to | No | End date filter (YYYY-MM-DD) | |
| court_id | Yes | The court code (e.g., 'nysd') | |
| date_from | No | Start date filter (YYYY-MM-DD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for disclosing behavior. It mentions that it shows motions, orders, briefs, and other documents, but does not disclose potential pagination, rate limits, authentication needs, or any edge-case behavior. This is a minimal disclosure for a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, and no wasted words. The second sentence adds useful context about the types of filings included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear parameter schema, the description sufficiently covers purpose and basic content. It could benefit from alternative tool guidance, but for a straightforward read tool, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all parameters (case_id, court_id, date_from, date_to). The description adds no additional parameter meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (Get), the resource (docket entries/individual filings), and the domain (federal case from PACER). It distinguishes itself from sibling tools by specifying 'individual filings' rather than case details or search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use: for a federal case from PACER, to retrieve docket entries. It does not explicitly name alternatives or provide exclusionary guidance, but the phrase 'individual filings' implies differentiation from case-level tools like get_federal_case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_federal_caseB
Get details of a specific federal case from PACER.
| Name | Required | Description | Default |
|---|---|---|---|
| case_id | Yes | The PACER case ID | |
| court_id | Yes | The court code (e.g., 'nysd') |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only states 'Get details', which implies read-only, but does not mention PACER access requirements, potential fees, error behavior, or whether the tool guarantees current data. No additional behavioral context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that immediately conveys the core purpose. It is front-loaded and contains no filler, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with two parameters and an existing output schema, the description provides enough context to complete the task, including the PACER source. However, it lacks usage guidance and behavior details, which are handled in other dimensions, so it is not fully complete on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (case_id and court_id) with clear descriptions. The tool description adds no extra parameter semantics, thus meeting the baseline without enhancing it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and the resource ('specific federal case') with a distinct source ('from PACER'), which differentiates it from sibling tools like search_federal_cases (searching) and get_case_details (generic case details). The verb and resource are 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as search_federal_cases, get_court_filings, or get_case_details. There is no mention of prerequisites (e.g., having a PACER case ID) or exclusions, leaving the selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_matter_detailsA
Get full details of a specific matter (case) from Clio.
Includes client info, practice area, responsible attorney, billing method, deadlines.
| Name | Required | Description | Default |
|---|---|---|---|
| matter_id | Yes | The Clio matter ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It indicates a read operation ('Get') and specifies the types of included data, but it does not disclose any permissions, failure behavior, or side effects. Given the simple retrieval nature, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first states the primary function, second lists included content. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter get-by-ID tool with an output schema present, the description provides sufficient context about what details are returned. It could mention prerequisites like using search_matters first, but overall it is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the only parameter (matter_id) with a clear description, and the tool description adds no additional parameter semantics. Since schema coverage is 100%, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves full details for a specific matter (case) from Clio, with a specific verb and resource. It distinguishes from sibling tools that search (search_matters) or retrieve subresources (get_matter_tasks, get_matter_documents) by emphasizing 'full details' for a known matter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage when you need comprehensive matter information and have a matter ID, which is clear in context. However, it does not explicitly mention alternatives or when not to use it (e.g., use search_matters to find the ID first), so it falls short of fully explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_matter_documentsA
Search documents in Clio, optionally filtered by matter.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search by document name | |
| matter_id | No | Filter by matter/case ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of disclosing behavior. It only states the search/filter action and omits details about return format, pagination, permissions, or whether it is read-only, which is a significant gap for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, front-loaded with the primary action. It is optimally concise and every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with only two optional parameters and an output schema, the description covers the core capability and is sufficient for basic usage. It lacks deeper behavioral context like pagination or scope, but the output schema fills the return-value gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already includes descriptions for both parameters (query and matter_id), giving 100% coverage. The description's 'optionally filtered by matter' is just a restatement of the matter_id parameter, adding no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Search' and a clear resource 'documents in Clio' with an optional filter, making its purpose immediately obvious. It distinguishes itself from all sibling tools, which handle clients, matters, time entries, and case law rather than documents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers clear usage context by mentioning the optional matter filter, implying two modes: global search or matter-specific search. It does not name alternatives or exclusions, but the domain is clear enough for an agent to infer when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_matter_tasksB
Get tasks associated with a matter in Clio.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | 'Complete' or 'Incomplete' | |
| matter_id | No | Filter by matter/case ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden of disclosing behavior. It only states 'Get tasks' without explicitly noting read-only behavior, pagination, permissions, or limitations. It does not contradict structured data but adds minimal behavioral context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single succinct sentence with no wasted words. It is appropriately front-loaded and immediately conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal but adequate for a simple task-listing tool. However, it does not clarify that both parameters are optional or explain the status filter behavior, which could be ambiguous. The presence of an output schema mitigates return-format concerns, but behavioral context remains thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage with descriptions for both parameters ('status' and 'matter_id'). The tool description adds no parameter-level information, so the baseline score of 3 applies when schema handles the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'tasks', and the scope 'associated with a matter in Clio'. This distinguishes it from sibling tools like get_matter_details or get_time_entries by targeting tasks specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison with sibling tools like search_matters or get_matter_details. The usage context is only implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_time_entriesA
Get time entries (billable hours) from Clio.
Use this to review time spent on a case or by an attorney.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | End date (YYYY-MM-DD) | |
| date_from | No | Start date (YYYY-MM-DD) | |
| matter_id | No | Filter by matter/case ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It mentions the source (Clio) and billable hours, but does not disclose pagination, default filter behavior, or authentication requirements. The read-only nature is implied by 'Get' but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. The first sentence states the core action, and the second gives a usage context. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with 3 optional parameters, the description is adequate but not thorough. It doesn't explain what happens when no filters are provided, or mention any limitations. The output schema covers return values, but behavioral gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with descriptions, so the baseline is 3. The description's mention of 'case' aligns with matter_id, but 'attorney' is not a filterable parameter, which could slightly confuse. No additional parameter detail is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get time entries (billable hours) from Clio' – a specific verb and resource. It also distinguishes from sibling tools like get_matter_tasks by emphasizing 'review time spent on a case or by an attorney.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The sentence 'Use this to review time spent on a case or by an attorney' provides a direct usage context. It doesn't explicitly mention alternatives or exclusions, but the guidance is clear and sufficient for basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_courtsA
List all available US courts and their short codes.
Use this to find the correct court code for filtering searches.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It clearly states the read-only behavior ('List all available US courts and their short codes'), which is transparent for a simple lookup tool. It does not mention any side effects or limitations, but none are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and every word earns its place. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an output schema present, the description is complete: it states what the tool returns (courts and short codes) and when to use it. There is nothing missing for successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the baseline for 0 params is 4. The description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and clearly identifies the resource ('all available US courts') plus the output content ('their short codes'). This distinguishes it from sibling tools, which handle searches and case lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: 'Use this to find the correct court code for filtering searches.' It tells the agent when to invoke the tool, though it does not mention alternatives or exclusions. Since no sibling tool serves this purpose, clear usage context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_reporter_abbreviationsA
List common legal reporter abbreviations and which courts they cover.
Useful for understanding citations like '347 U.S. 483' or '42 F.3d 1421'.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists 'common' abbreviations, implying a curated, non-exhaustive scope, but it does not disclose output format, whether the list is static or generated, or any potential edge cases. Since this is a read-only list operation, the lack of mutation risk lowers the severity, but the description remains minimal in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core function, the second provides a concrete example of when to use it. Every sentence earns its place, and the structure is front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless list tool, the description is largely complete: it states what is listed and why it is useful. The presence of an output schema offsets the need to explain return values. The only minor gap is not clarifying whether 'common' means limited to U.S. federal reporters or includes state/other reporters, but this is not critical given the example citations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema description coverage is 100%, so the baseline is 4. The description adds no parameter-specific details because there are none to document. This is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and clearly identifies the resource ('common legal reporter abbreviations') and what it provides ('which courts they cover'). This distinguishes it from sibling tools like parse_legal_citations, which focuses on parsing citation strings, and list_available_courts, which lists courts rather than abbreviations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The second sentence gives a concrete use case: 'Useful for understanding citations like...' This provides clear context for when an agent would want to call this tool. However, it does not explicitly mention alternatives or exclusions, such as suggesting parse_legal_citations for more detailed citation analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_legal_citationsA
Parse legal citations from text and identify the cases referenced.
Handles Bluebook-format citations like "347 U.S. 483 (1954)" or "42 F.3d 1421".
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Text containing legal citations to parse |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only specifies the input format and core behavior without mentioning edge cases (e.g., no citations found, multiple citations) or side effects; however, it adds useful context about supported Bluebook formats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two highly informative sentences, front-loaded with the action, and every phrase earns its place with examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers purpose and format sufficiently; the output schema handles return values, and the tool's behavior is straightforward, though it could mention error handling or multi-citation support.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already fully describes the `text` parameter (100% coverage), and the description adds concrete citation examples that clarify expected input format, going beyond the schema's simple description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function (parse legal citations and identify referenced cases) with concrete Bluebook format examples, distinguishing it from sibling tools that search or retrieve cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus the many case-search siblings; usage context is only implied by the stated purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_case_lawA
Search US case law for court opinions matching a query.
Use this to find cases about specific legal topics, statutes, or concepts.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional court filter. Examples: 'scotus' (Supreme Court), 'ca9' (9th Circuit), 'nysd' (Southern District of New York) | |
| query | Yes | Legal search terms (e.g., "duty to mitigate breach of contract", "Fourth Amendment reasonable expectation of privacy") | |
| date_after | No | Only show cases filed after this date (YYYY-MM-DD) | |
| date_before | No | Only show cases filed before this date (YYYY-MM-DD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the tool searches US case law and returns court opinions, but it does not mention whether it is read-only, whether results include full text or summaries, pagination behavior, or any limitations. The description adds little beyond what the tool name implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes a brief usage note. Every sentence contributes without redundancy or verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides adequate purpose and usage context, and an output schema exists to explain return values. However, with a closely related sibling (search_federal_cases), the description would benefit from explicitly noting what it covers (e.g., all US courts, including state) and any limitations. The absence of disambiguation from similar tools leaves a completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so all parameters have meaningful descriptions. The tool description itself does not elaborate on parameter semantics. Baseline 3 is appropriate since the schema does the heavy lifting and the description adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search US case law for court opinions matching a query.' This clearly states the tool's function and scope, distinguishing it from sibling tools like search_federal_cases (which implies a narrower federal focus) and search_clients/search_matters (which are unrelated domains).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit guidance: 'Use this to find cases about specific legal topics, statutes, or concepts.' This tells the agent when to use the tool. However, it does not explicitly contrast with similar siblings like search_federal_cases, so some potential confusion remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_clientsA
Search for clients/contacts in Clio practice management.
Requires Clio API token. Use this to look up client info, phone numbers, emails.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search by name, email, or phone number | |
| contact_type | No | Filter by 'Person' or 'Company' |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It does mention the API token requirement and implies a read-only operation via 'look up.' Yet it does not explicitly state read-only/non-destructive behavior, pagination, result format, or any limitations, leaving meaningful gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: purpose first, then prerequisite, then intended use cases. Every sentence adds value and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter search tool with an output schema, the description covers the essential context: purpose, prerequisite, and typical use. It does not mention pagination or search scope, but the output schema mitigates return-value ambiguity. Overall, it is reasonably complete but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (query and contact_type). The description adds no additional parameter-level meaning beyond what the schema provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's specific action ('Search for clients/contacts') and resource ('Clio practice management'), distinguishing it from sibling search tools like search_matters. The verb 'Search' and the target domain are immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use this to look up client info, phone numbers, emails.' It also notes a prerequisite ('Requires Clio API token'). However, it does not explicitly contrast with alternatives or state when not to use this tool, so it falls short of the highest tier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_federal_casesA
Search PACER for federal court cases and filings.
Requires PACER credentials. Use this to find active federal cases, check filing status, or look up case numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| court_id | No | Court code (e.g., 'nysd', 'cacd', 'txed') | |
| case_name | No | Party name or case title (e.g., "Smith v. Jones") | |
| case_number | No | Specific case number (e.g., "1:23-cv-01234") | |
| date_filed_to | No | End date (YYYY-MM-DD) | |
| date_filed_from | No | Start date (YYYY-MM-DD) |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It discloses that PACER credentials are required, which is essential. However, it does not describe read-only behavior, rate limits, response format beyond what the output schema provides, or error handling for missing credentials. It adds some useful context but not extensive behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and resource, then a clear list of use cases. Every sentence earns its place with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with five optional parameters and an output schema, the description covers the primary purpose, required credentials, and typical use cases. It does not explain whether all parameters are mutually exclusive or how broad a search can be, but the output schema covers return values, making the description reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the input schema already documents all five parameters with examples and formats. The description does not add relationship between parameters (e.g., how court_id and case_name interact) or filter behavior, so it adds only marginal meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') with a clear resource ('PACER for federal court cases and filings') and states concrete use cases (find active federal cases, check filing status, look up case numbers). This differentiates it from sibling search tools like search_case_law and get_federal_case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool ('Use this to find active federal cases, check filing status, or look up case numbers') and mentions a prerequisite (PACER credentials). It does not explicitly name alternatives or exclusions, but the use cases are specific enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_mattersA
Search for matters (cases) in Clio practice management.
Requires Clio API token. Find open cases, filter by status or client.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search by matter number or description | |
| status | No | Filter by 'Open', 'Closed', or 'Pending' | |
| client_id | No | Filter by client contact ID |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It discloses the API token requirement and the ability to filter by status or client, but it omits details about pagination, response format, or default behavior when filters are omitted. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the purpose, and the second adds the key requirement and typical usage. No filler or redundant content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with full schema descriptions and an output schema, the description covers purpose, auth, and common filters. It does not mention what happens when no filters are supplied (e.g., returns all matters), but the output schema and schema coverage fill most gaps, so it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides detailed descriptions for all three parameters, achieving 100% schema coverage. The description adds high-level context ('Find open cases, filter by status or client') but does not add meaningful semantic detail beyond what the schema already states, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Search' and identifies the resource 'matters (cases)' in Clio practice management, clearly distinguishing it from sibling tools like search_clients or federal case searches. The scope is explicit and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (searching Clio matters) and mentions the API token requirement. However, it does not explicitly state when not to use it or compare it against alternatives, so it falls short of a 5.
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.
18 tool updates
v0.1.0- First observed
find_cited_cases - First observed
find_citing_cases - First observed
get_calendar - First observed
get_case_details - First observed
get_case_record - First observed
get_court_filings - First observed
get_federal_case - First observed
get_matter_details - First observed
get_matter_documents - First observed
get_matter_tasks - First observed
get_time_entries - First observed
list_available_courts - First observed
list_reporter_abbreviations - First observed
parse_legal_citations - First observed
search_case_law - First observed
search_clients - First observed
search_federal_cases - First observed
search_matters
TDQS
Scored across 18 tools
Several tools could be confused (get_federal_case, get_case_record, get_court_filings all provide case/docket information), but descriptions help clarify the differences. The separation between search_case_law and search_federal_cases is clear, and citation tools are distinct.
All tools follow a consistent verb_noun pattern (search_, get_, find_, parse_, list_) with snake_case. Minor deviations like get_matter_documents (which actually searches) don't cause confusion.
18 tools is slightly above the ideal range of 3-15, but the server covers three distinct domains (Clio practice management, PACER federal cases, and case law research), so each tool earns its place.
Covers search/retrieval for clients, matters, federal cases, opinions, and citation analysis. Missing tools like get_client_details and full-text document access for court filings are minor gaps that can be worked around.
Maintenance
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
Connect AI to millions of laws and court cases with the Lawstronaut MCP.
Law firm management MCP: manage cases, clients, tasks, calendar and documents via Claude AI.
Search U.S. case law, fetch opinions, and ask matter-aware legal questions over your documents.
Search German and EU law from official sources with your AI assistant. PRIMAMCP provides citable legal texts via MCP, with daily updates and hosting in Germany.
Related MCP Servers
- AlicenseAqualityCmaintenanceAn MCP server providing AI assistants access to Canadian case law and legislation metadata from CanLII across all jurisdictions, supporting search and citation relationships.755MIT
- AlicenseAqualityDmaintenanceMCP Server providing AI agents access to over 3 million US court decisions via CourtListener and EU legislation via EUR-Lex, with tools for searching cases, citations, judges, and court information.6MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server providing AI agents access to CourtListener's comprehensive legal database, featuring semantic search, hybrid search, citation verification, and research tools.7MIT
- AlicenseAqualityAmaintenanceMCP server for free U.S. case-law and court-docket search via CourtListener, providing tools for opinion search, docket lookup, citation verification, and more.1071MIT