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”). Covers federal and state courts. Each result carries the case name, court, filing date, docket number, official citation, how many later cases cite it (cite_count — a rough importance signal), the authoring judge, and a matching snippet. Pass a result’s opinion_id to get_opinion for the full text.

Parameters

NameTypeRequiredDescription
querystringyesSearch keywords (e.g., “patent infringement software”)
courtstringnoCourt filter (e.g., “scotus” for Supreme Court, “ca9” for 9th Circuit)
date_afterstringnoOnly opinions after this date (YYYY-MM-DD)
limitnumbernoHow many opinions to return, 1–100 (default 20). CourtListener pages at 20, so higher values fetch additional pages.

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

FieldTypeDescription
querystringThe search query used
totalnumberTotal number of matching opinions
returnednumberNumber of opinions in this response
opinionsarrayList 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.

Regenerated from source · build August 8, 2026