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

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)

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 May 9, 2026