Skip to main content
Glama
john-walkoe

USPTO Patent Citation MCP Server

by john-walkoe

Citations_search_oa_citations_minimal

Citations_search_oa_citations_minimal
Read-only

Search USPTO office action citations (Forms 892 and 1449) for high-volume discovery, returning 8 key fields like examiner-cited indicator and application number. Use for broad citation queries by application, tech center, or art unit.

Instructions

Search Office Action Citations (v2) for high-volume discovery (8 key fields).

OA Citations v2 is the raw citation list transcribed from Form PTO-892 (examiner) and Form PTO-1449 (applicant IDS). Usually broader than the enriched lane in bulk (measured TC2100: 4.87M vs 4.32M records), with most of the surplus being applicant IDS references — but NOT a superset: on a given application the enriched lane can return more (measured: app 12849948 returns 4 here vs 8 enriched). For any completeness-sensitive question, run BOTH lanes and union the results.

⚠️ APPLICANT-CITED (1449/IDS) COVERAGE IS PARTIAL. This lane is documented upstream as transcribing Form 892 AND Form 1449, but on IDS-heavy files it returns close to what the examiner applied and little else, in every era. Measured against the patents' own References Cited pages (union of BOTH lanes): US 7,971,071 -> 5 of 91 US 9,496,922 -> 1 of 251 US 9,135,462 -> 0 of about 620 (both lanes return zero) US 11,656,067 -> 3 of 15, prosecuted 2021-2023 INSIDE the documented window, and all three are the examiner's own double-patenting family citations, none of them the twelve references a later IPR petition relied on. Treat a reference's absence here as NO evidence that the applicant did not disclose it, and never present a count from this lane as the applicant's full IDS. For a complete 1449 record, read the IDS documents themselves through the PFW MCP.

Key fields returned: patentApplicationNumber, groupArtUnitNumber, techCenter, referenceIdentifier, parsedReferenceIdentifier, actionTypeCategory, examinerCitedReferenceIndicator, createDateTime. The OA API ignores fl, so this set is enforced client-side — the tier really does return only these eight. The PFW hand-off is stated once on the response envelope as pfw_link, not repeated on every row. legalSectionCode and paragraphNumber are NOT here; use the balanced tier or pass an explicit fields list for them.

CROSS-LANE JOIN KEY: every row carries referenceKey, the normalised reference identifier, and it is the ONLY correct key for unioning this lane with the enriched lane. The two lanes write the same reference differently: on app 12849948 this lane's parsedReferenceIdentifier reads '20060075466' while the enriched citedDocumentIdentifier reads 'US 2006/0075466 A1'. Joining those two raw fields finds zero overlap on every application; the true answer there is four references in both lanes. referenceKey is digits only (a leading US, spaces, slashes, hyphens and the kind code stripped, series markers such as RE kept), derived from parsedReferenceIdentifier first and the raw referenceIdentifier second, and carried on both lanes at every tier including a custom fields list. It is null on a row whose identifier does not reduce to a document number, which is an unjoinable row rather than a missing one.

Solr/Lucene Query Examples:

  • By application: criteria='patentApplicationNumber:18180061'

  • By tech center: criteria='techCenter:2100'

  • By art unit: criteria='groupArtUnitNumber:2854'

  • Examiner-cited only: criteria='examinerCitedReferenceIndicator:true'

  • Statutory basis (OA-ONLY capability): criteria='techCenter:2100 AND legalSectionCode:103'

  • Where a patent was cited: criteria='parsedReferenceIdentifier:9280610'

⚠️ NO DATE FIELD. officeActionDate does not exist here and returns HTTP 400 — the index already IS the 2017-10-01+ window, so omit any date clause. createDateTime is an ETL load stamp, NOT the office action date — never present it as prosecution chronology.

⚠️ publicationNumber IN criteria IS A DELIBERATE 400 HERE, AND THAT IS A FEATURE. The raw upstream API does not reject that field: it answers HTTP 200 with numFound 0, which reads exactly like "this patent was never cited" and is silently wrong. This server refuses the clause instead so the mistake is visible. Use the patent_number parameter, which crosswalks a granted patent number to the application serial this index does hold, or query parsedReferenceIdentifier to find where a patent was CITED.

⚠️ Use parsedReferenceIdentifier (normalized) rather than referenceIdentifier for reference lookups — the raw string format varies for the same patent.

IDENTIFIERS: application_number is the APPLICATION serial. This index has no patent-number field (publicationNumber returns HTTP 400), so patent_number is crosswalked here: pass a GRANTED patent number (7-8 digits; commas, spaces and a US prefix accepted) and it is resolved to its application serial with one USPTO ODP applications-search call, then queried as patentApplicationNumber. The response reports the mapping in patent_number_resolution {input, interpreted_as, resolved_application_number, source}. An 11-digit pre-grant publication number is refused here (use Citations_search_citations_minimal for those), an unresolvable number is a 400 naming the accepted forms, and a patent_number that disagrees with a supplied application_number is a 400 rather than a query that can only return zero.

Use Citations_search_oa_citations_balanced for full 16-field detail (adds legalSectionCode, paragraphNumber, parsedReferenceIdentifier). For passage locations, claim mapping, NPL flags, or date filtering, use Citations_search_citations_minimal — and run it alongside this tool by default. Coverage: USPTO documents both APIs as office actions mailed 2017-10-01 to ~30 days ago; in practice both have been observed serving older records, so do not treat an older application as out of scope without querying. Routing detail: Citations_get_guidance(section='oa_citations').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
rowsNo
startNo
fieldsNo
art_unitNo
criteriaNo
tech_centerNo
patent_numberNo
examiner_citedNo
application_numberNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.9/5.0
Behavior5/5

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

With only readOnlyHint=true in annotations, the description carries the full burden of behavioral disclosure, and it excels. It reveals significant caveats: partial applicant-cited coverage (with specific measured examples), the absence of a date field (officeActionDate returns 400), the deliberate rejection of publicationNumber in criteria, the referenceKey join mechanism, and the meaning of createDateTime. No contradiction with annotations; the read-only nature is consistent.

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?

The description is long, but it earns its length given the tool's complexity (9 parameters, many pitfalls). It uses clear section headers (warning symbols, query examples, identifiers) and bullet-like structure, front-loads the purpose, and avoids redundancy. It is not perfectly concise—some caveats could be tightened—but it is well-organized and every paragraph adds value.

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

Completeness5/5

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

Given the 9-parameter schema with zero descriptions, the presence of an output schema, and the intricate domain (patent citations), this description is exceptionally complete. It covers coverage limitations, cross-lane join keys, absence of date fields, publicationNumber handling, identifier semantics, and sibling routing—so nothing an agent needs to invoke the tool correctly is missing.

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

Parameters5/5

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

Schema coverage is 0% (no parameter descriptions), so the description must compensate—and it does comprehensively. It explains `criteria` with five concrete Solr query examples, defines `patent_number` as a crosswalked granted patent number (with accepted formats and error behavior), clarifies `application_number` as the application serial, and notes that `fields` is ignored by the OA API and the 8-field set is enforced client-side. Every parameter is given practical meaning.

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?

The opening sentence states a specific verb ('Search'), a precise resource ('Office Action Citations (v2)'), and the use case ('high-volume discovery (8 key fields)'). It further distinguishes from siblings by naming the balanced and minimal tiers, and explicitly notes the 8-key-field limitation. The purpose is unmistakable even without reading the schema.

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?

The description explicitly tells when to use this tool and when to use alternatives. It advises running BOTH this lane and the enriched lane for completeness-sensitive questions, states 'Use Citations_search_oa_citations_balanced for full 16-field detail' and 'Use Citations_search_citations_minimal for passage locations, claim mapping, NPL flags, or date filtering', and even suggests defaulting to running minimal alongside. This is exemplary routing guidance.

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