search_opinions
Pack: court-listener · Endpoint: https://gateway.pipeworx.io/court-listener/mcp
Search US court opinions by keyword (e.g., “qualified immunity”, “Fourth Amendment”). Returns case name, court, date, docket number, and text snippet. Covers federal and state courts.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Search keywords (e.g., “patent infringement software”) |
court | string | no | Court filter (e.g., “scotus” for Supreme Court, “ca9” for 9th Circuit) |
date_after | string | no | Only opinions after this date (YYYY-MM-DD) |
Example call
Arguments
{
"query": "qualified immunity Fourth Amendment"
}
curl
curl -X POST https://gateway.pipeworx.io/court-listener/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_opinions","arguments":{"query":"qualified immunity Fourth Amendment"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('search_opinions', {
"query": "qualified immunity Fourth Amendment"
});
More examples
{
"query": "patent infringement software",
"court": "ca9",
"date_after": "2020-01-01"
}
Response shape
Always returns: query, total, returned, opinions
| Field | Type | Description |
|---|---|---|
query | string | The search query used |
total | number | Total number of matching opinions |
returned | number | Number of opinions in this response |
opinions | array | List of opinion search results |
Full JSON Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "The search query used"
},
"total": {
"type": "number",
"description": "Total number of matching opinions"
},
"returned": {
"type": "number",
"description": "Number of opinions in this response"
},
"opinions": {
"type": "array",
"description": "List of opinion search results",
"items": {
"type": "object",
"properties": {
"id": {
"type": [
"number",
"null"
],
"description": "Opinion ID"
},
"caseName": {
"type": [
"string",
"null"
],
"description": "Case name"
},
"court": {
"type": [
"string",
"null"
],
"description": "Court identifier"
},
"dateFiled": {
"type": [
"string",
"null"
],
"description": "Date opinion was filed"
},
"docketNumber": {
"type": [
"string",
"null"
],
"description": "Docket number"
},
"suitNature": {
"type": [
"string",
"null"
],
"description": "Nature of suit"
},
"snippet": {
"type": [
"string",
"null"
],
"description": "Text snippet from opinion"
},
"absolute_url": {
"type": [
"string",
"null"
],
"description": "URL to opinion"
},
"status": {
"type": [
"string",
"null"
],
"description": "Opinion status"
}
}
}
}
},
"required": [
"query",
"total",
"returned",
"opinions"
]
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"court-listener": {
"url": "https://gateway.pipeworx.io/court-listener/mcp"
}
}
}
See Getting Started for client-specific install steps.