search_patents

Pack: patents · Endpoint: https://gateway.pipeworx.io/patents/mcp

Search USPTO patent applications and grants. Use query for free-text keywords (“lithium battery”, “crispr”). Optional structured filters: applicant (company name — use ALL CAPS like “APPLE INC.” for best match), filed_after / filed_before (filing date range), granted_after / granted_before (grant date range). Results include title, application number, filing date, first applicant, all applicants, inventors, status, classification. Note: ODP filtering is approximate (weighted match, not strict equality) — counts and ordering are best-effort. Powered by the USPTO Open Data Portal (data.uspto.gov).

Parameters

NameTypeRequiredDescription
querystringnoFree-text search across title/abstract/inventor/etc. Examples: “lithium battery”, “crispr”, “neural network”. Pass ”*” if you only want to filter by applicant/date with no keyword constraint.
applicantstringnoOptional. Company applicant name as it appears on the USPTO filing. Must include the exact corporate suffix the company uses (PBC / Inc. / LLC / Corporation / Co. / NV / AG / KK). Wrong suffix = ODP silently returns the whole unfiltered pool, not zero. Examples: “Anthropic, PBC” (not “Anthropic Inc.”), “Apple Inc.” (not “Apple”), “Alphabet Inc.” (not “Google”), “Meta Platforms, Inc.” (not “Facebook”), “Microsoft Corporation” (not “Microsoft Corp.”). If you get a warning field back, the filter missed — retry with a different corporate form.
filed_afterstringnoOptional. Filter to patents filed on/after this date (ISO YYYY-MM-DD).
filed_beforestringnoOptional. Filter to patents filed on/before this date (ISO YYYY-MM-DD).
granted_afterstringnoOptional. Filter to patents granted on/after this date (ISO YYYY-MM-DD).
granted_beforestringnoOptional. Filter to patents granted on/before this date (ISO YYYY-MM-DD).
limitnumbernoNumber of results (1–100, default 10).
_apiKeystringnoUSPTO ODP API key. Get free at https://data.uspto.gov/myodp. Falls back to platform key if configured.

Example call

Arguments

{
  "query": "machine learning neural networks"
}

curl

curl -X POST https://gateway.pipeworx.io/patents/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_patents","arguments":{"query":"machine learning neural networks"}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('search_patents', {
  "query": "machine learning neural networks"
});

More examples

{
  "query": "blockchain cryptocurrency",
  "per_page": 20
}

Response shape

Always returns: query, total_results, returned, patents

FieldTypeDescription
querystringThe search query used
total_resultsnumberTotal number of matching patents
returnednumberNumber of patents in this response
patentsarrayList of patent summaries
Full JSON Schema
{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "The search query used"
    },
    "total_results": {
      "type": "number",
      "description": "Total number of matching patents"
    },
    "returned": {
      "type": "number",
      "description": "Number of patents in this response"
    },
    "patents": {
      "type": "array",
      "description": "List of patent summaries",
      "items": {
        "type": "object",
        "properties": {
          "patent_number": {
            "type": "string",
            "description": "Patent number"
          },
          "title": {
            "type": "string",
            "description": "Patent title"
          },
          "date": {
            "type": [
              "string",
              "null"
            ],
            "description": "Patent filing date or null"
          },
          "inventors": {
            "type": "array",
            "description": "List of inventors",
            "items": {
              "type": "object",
              "properties": {
                "first_name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Inventor first name or null"
                },
                "last_name": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "description": "Inventor last name or null"
                }
              }
            }
          },
          "assignee_organization": {
            "type": [
              "string",
              "null"
            ],
            "description": "Assignee organization name or null"
          }
        },
        "required": [
          "patent_number",
          "title",
          "date",
          "inventors",
          "assignee_organization"
        ]
      }
    }
  },
  "required": [
    "query",
    "total_results",
    "returned",
    "patents"
  ]
}

Connect

Add this to your MCP client config, or use one-click install buttons:

{
  "mcpServers": {
    "patents": {
      "url": "https://gateway.pipeworx.io/patents/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build May 21, 2026