lookup_patent
Retrieve detailed information for a US patent by entering its patent number, including title, abstract, assignee, inventors, classifications, dates, and citation data.
Instructions
Look up a single US patent by patent number. Returns full details including title, abstract, assignee, inventors, CPC classifications, grant date, filing date, number of claims, and citation counts. Source: USPTO PatentsView.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| patent_number | Yes | Patent number (e.g. 11234567, D123456, RE12345) |
Implementation Reference
- src/tools/patents.ts:114-151 (handler)The implementation of the `lookup_patent` tool, which registers the tool, defines its input schema, and handles the API call to fetch patent details.
server.registerTool( "lookup_patent", { title: "Lookup Patent", description: "Look up a single US patent by patent number. Returns full details including title, " + "abstract, assignee, inventors, CPC classifications, grant date, filing date, " + "number of claims, and citation counts. Source: USPTO PatentsView.", inputSchema: { patent_number: z .string() .regex(/^[A-Z]{0,2}\d{1,10}[A-Z]?\d*$/, "Invalid patent number format") .describe("Patent number (e.g. 11234567, D123456, RE12345)"), }, }, async ({ patent_number }) => { const res = await apiGet<{ dataset: string; data: Record<string, unknown> }>( `/api/v1/patents/${encodeURIComponent(patent_number)}`, ); if (!res.ok) { const msg = res.status === 404 ? `Patent ${patent_number} not found in the patent dataset.` : `API error (${res.status}): ${JSON.stringify(res.data)}`; return { content: [{ type: "text" as const, text: msg }], isError: res.status !== 404, }; } return { content: [ { type: "text" as const, text: JSON.stringify(res.data.data, null, 2) }, ], }; }, );