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
| Name | Type | Required | Description |
|---|---|---|---|
query | string | no | Free-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. |
applicant | string | no | Optional. 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_after | string | no | Optional. Filter to patents filed on/after this date (ISO YYYY-MM-DD). |
filed_before | string | no | Optional. Filter to patents filed on/before this date (ISO YYYY-MM-DD). |
granted_after | string | no | Optional. Filter to patents granted on/after this date (ISO YYYY-MM-DD). |
granted_before | string | no | Optional. Filter to patents granted on/before this date (ISO YYYY-MM-DD). |
limit | number | no | Number of results (1–100, default 10). |
_apiKey | string | no | USPTO 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
| Field | Type | Description |
|---|---|---|
query | string | The search query used |
total_results | number | Total number of matching patents |
returned | number | Number of patents in this response |
patents | array | List 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.