Skip to main content
Glama

query_patents

Search US patents from the USPTO database by title, assignee, inventor, CPC section, type, or grant date range to find specific intellectual property information.

Instructions

Search US patents from the USPTO PatentsView database. Filter by patent title, assignee organization, inventor name, CPC section, patent type, and grant date range. Source: USPTO PatentsView API, updated weekly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
patent_titleNoPatent title keyword search (partial match)
assigneeNoAssignee organization name (partial match, e.g. 'Google')
inventorNoInventor name (partial match, e.g. 'Smith')
cpc_sectionNoCPC section letter (A=Human Necessities, B=Operations, C=Chemistry, D=Textiles, E=Fixed Constructions, F=Mechanical Engineering, G=Physics, H=Electricity)
patent_typeNoPatent type: utility, design, plant, reissue
date_fromNoStart date for patent grant (YYYY-MM-DD)
date_toNoEnd date for patent grant (YYYY-MM-DD)
limitNoMaximum results to return (default 25, max 100)

Implementation Reference

  • Registration and handler implementation for the query_patents tool.
    server.registerTool(
      "query_patents",
      {
        title: "Query Patents",
        description:
          "Search US patents from the USPTO PatentsView database. Filter by patent title, " +
          "assignee organization, inventor name, CPC section, patent type, and grant date range. " +
          "Source: USPTO PatentsView API, updated weekly.",
        inputSchema: {
          patent_title: z
            .string()
            .optional()
            .describe("Patent title keyword search (partial match)"),
          assignee: z
            .string()
            .optional()
            .describe("Assignee organization name (partial match, e.g. 'Google')"),
          inventor: z
            .string()
            .optional()
            .describe("Inventor name (partial match, e.g. 'Smith')"),
          cpc_section: z
            .string()
            .optional()
            .describe("CPC section letter (A=Human Necessities, B=Operations, C=Chemistry, " +
              "D=Textiles, E=Fixed Constructions, F=Mechanical Engineering, G=Physics, H=Electricity)"),
          patent_type: z
            .string()
            .optional()
            .describe("Patent type: utility, design, plant, reissue"),
          date_from: z
            .string()
            .optional()
            .describe("Start date for patent grant (YYYY-MM-DD)"),
          date_to: z
            .string()
            .optional()
            .describe("End date for patent grant (YYYY-MM-DD)"),
          limit: z
            .number()
            .int()
            .min(1)
            .max(100)
            .optional()
            .describe("Maximum results to return (default 25, max 100)"),
        },
      },
      async ({ patent_title, assignee, inventor, cpc_section, patent_type, date_from, date_to, limit }) => {
        const res = await apiGet<PatentQueryResponse>("/api/v1/patents", {
          patent_title,
          assignee,
          inventor,
          cpc_section,
          patent_type,
          date_from,
          date_to,
          limit: limit ?? 25,
        });
    
        if (!res.ok) {
          return {
            content: [
              {
                type: "text" as const,
                text: `API error (${res.status}): ${JSON.stringify(res.data)}`,
              },
            ],
            isError: true,
          };
        }
    
        const { count, data } = res.data;
        const summary = `Found ${count} patent(s).`;
        const json = JSON.stringify(data, null, 2);
    
        return {
          content: [{ type: "text" as const, text: `${summary}\n\n${json}` }],
        };
      },
    );

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/carrierone/verilexdata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server