Skip to main content
Glama

Search Patent Assignments

search_patent_assignments
Read-onlyIdempotent

Search USPTO-recorded patent assignment/conveyance history by assignee, assignor, a granted patent number, or an application number — one of the four is required. Unlike get_patent_assignments (which needs an application number you already have), this answers "what has company X been assigned" or "who assigned patent Y". An assignee/assignor search returns one row per recorded assignment (reel/frame, conveyance, dates, the other party) and additionally resolves the covered property (application/patent number, title) for each one it returns via a follow-up lookup — capped by limit because each one is a separate upstream call. A patent_number/application_number search returns the full assignment chain for that one property directly. An assignee/assignor with no recorded assignments returns a plain zero with the upstream total, not an error — USPTO assignment coverage is uneven for older or never-assigned properties. Individual (non-corporate) assignee addresses are omitted; company addresses are kept. Powered by the USPTO Assignment Search system (public, no account or key required).

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "limit": 3,
      "assignee": "Amyris"
    },
    "name": "search_patent_assignments"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum assignment records to return (default 10, max 25). For an assignee/assignor search this also bounds the number of follow-up property lookups, so a higher limit costs more upstream calls.
_apiKeyNoNot used by this tool — USPTO Assignment Search is keyless. Present only for schema parity with the other tools in this pack.
assigneeNoCompany or person that RECEIVED rights in a recorded transfer (the recipient). Partial/substring match. Example: "Amyris". This lists recorded transfers into the party (one row per transfer, at most 25), not the patents it owns, and finds nothing for a company with no recorded transfer. For "patents assigned to X" / "X's patents" / "patents owned by X", use the patent search tool's `applicant` filter instead.
assignorNoCompany or person who assigned rights AWAY in a recorded transfer (the inventor or prior owner). Partial/substring match. Example: "Musk"
patent_numberNoA granted US patent number, digits only. Example: "10000000".
application_numberNoA US application number, digits only or formatted. Example: "15000001", "15/000,001".

Output Schema

NameRequiredDescriptionDefault
queryYes
totalYes
sourceYes
returnedYes
assignmentsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well past the readOnly/idempotent annotations: it discloses that assignee/assignor searches trigger a per-row follow-up property lookup bounded by `limit` (cost implication), that property searches return the chain directly, that a no-hit result is a plain zero with upstream total rather than an error, that individual addresses are stripped, and that the source is keyless/public.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the disambiguation against the sibling before detail; every clause carries actionable information. The single dense mid-section sentence about follow-up lookups and `limit` is long but not padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and an output schema already present, the description covers cost, empty-result behavior, coverage caveats, and keyless auth. The only meaningful gap is the multi-key case (what happens when two of the four filters are passed together), which affects how an agent should build its call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so the baseline is 3; the description adds real value by explaining that `limit` also bounds upstream follow-up calls and by clarifying assignee vs assignor directionality and the partial-match semantics. It never states what happens if more than one of the four lookup keys is supplied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (search USPTO-recorded patent assignment/conveyance history) and immediately names the four accepted lookup keys. It explicitly contrasts itself with `get_patent_assignments`, so an agent can pick between the two without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use-case phrasings ("what has company X been assigned", "who assigned patent Y") plus the alternative for the adjacent question ("patents owned by X" → patent search `applicant` filter). The required-one-of-four constraint is stated explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.