USPTO Patent Citation MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FASTMCP_HOST | No | HTTP bind address | 0.0.0.0 |
| FASTMCP_PORT | No | HTTP port when using HTTP transport | 8000 |
| USPTO_API_KEY | Yes | Your USPTO API key (required, free from USPTO Open Data Portal) | |
| CORS_EXTRA_ORIGIN | No | Additional CORS origin for reverse proxy deployments | |
| FASTMCP_TRANSPORT | No | Transport mode: 'stdio' for Claude Desktop, 'http' for HTTP transport | stdio |
| INTERNAL_AUTH_SECRET | No | Shared secret for endpoint authentication (x-api-key header). Opt-in: if unset, all requests pass through. | |
| MCP_APP_EXTRA_DOMAINS | No | Comma-separated additional domains for MCP Apps Content-Security-Policy |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| Citations_get_available_fieldsA | Get all searchable fields from USPTO Enriched Citation API. Fields, available fields, columns, schema, what can I query, field names, query syntax for the enriched citations lane. Use for: Field discovery, query syntax validation, understanding data structure. Returns: Complete field list with descriptions and types. For field selection strategies and Solr/Lucene syntax examples, use Citations_get_guidance(section='fields'). |
| Citations_search_citations_minimalA | Minimal citation search for discovery (90-95% context reduction). Use for high-volume pattern discovery before detailed analysis. Essential 8 fields: application, publication, art unit, citation ID, category, tech center, date, examiner indicator. Solr/Lucene Query Examples:
Ultra-minimal mode: Pass custom fields list for 99% token reduction (2-3 fields only). Example: fields=['citedDocumentIdentifier', 'patentApplicationNumber'] for PFW integration. Date handling: USPTO documents this API as office actions mailed 2017-10-01 to ~30 days ago. In practice ~44% of TC2100 records carry an earlier officeActionDate (verified against PFW document dates back to 2010-2012). Do NOT add a blanket officeActionDate:[2017-10-01 TO *] clause unless you specifically want the documented window — it discards records the index actually serves. Lane routing — TRY BOTH: this is the ENRICHED lane (passage locations, claim mapping, quality scores, NPL flag, date filtering). For completeness-sensitive questions also run Citations_search_oa_citations_minimal (raw 892/1449 lists, statutory basis, broader applicant-IDS coverage) and union the results — neither lane is a superset of the other. See Citations_get_guidance(section='oa_citations'). CROSS-LANE JOIN KEY: every row carries ROWS WITH NO REFERENCE: IDENTIFIERS: Note: Returns citation metadata only. For the office action text itself, use the PFW MCP's PFW_get_oa_text / PFW_get_oa_rejections (direct, no document-bag + OCR round trip). For complex workflows and cross-MCP integration, use Citations_get_guidance(section). Quick reference: 'fields' section for Solr syntax, 'workflows_pfw' for PFW integration. |
| Citations_search_citations_balancedA | Balanced citation search for analysis (80-85% context reduction). Prior art references cited by an examiner, cited passage, column and line locator, figure, mapped claim, art unit, tech center, examiner vs applicant citation. Use after minimal search for detailed study of selected citations (10-20 results). 19 fields including passages, claims, office action category. Solr/Lucene Query Examples:
NOT searchable: examinerNameText and firstApplicantNameText do NOT exist on this API. Examiner queries 400; applicant queries silently return 0. Resolve examiners and applicants through the PFW MCP, then query citations by application number. Ultra-minimal mode: Pass custom fields list for 99% token reduction (2-3 fields only). Example: fields=['citedDocumentIdentifier', 'citationCategoryCode', 'passageLocationText'] Date handling: documented window is office actions mailed 2017-10-01 to ~30 days ago, but ~44% of TC2100 records carry an earlier officeActionDate in practice. Add an officeActionDate:[2017-10-01 TO *] clause only when you want the documented window specifically. For completeness, also query the OA lane and union. Convenience parameters (balanced mode only):
CROSS-LANE JOIN KEY: every row carries ROWS WITH NO REFERENCE: IDENTIFIERS: Note: Returns citation metadata only. For the office action text itself, use the PFW MCP's PFW_get_oa_text / PFW_get_oa_rejections (direct, no document-bag + OCR round trip). For complex workflows and cross-MCP integration, use Citations_get_guidance(section). Quick reference: 'oa_citations' for OA-vs-enriched routing, 'fields' for Solr syntax, 'workflows_pfw'/'workflows_ptab'/'workflows_fpd' for integration patterns. |
| Citations_get_citation_detailsA | Get complete details for specific citation by ID. Full record for one citation, all fields, cited passage, column and line locator, figure, mapped claim, quality summary. Use for deep analysis of strategically important citations. Full record with all fields and complete citing context. ⚠️ IMPORTANT: Returns citation METADATA only, NOT actual documents. 2-STEP PFW MCP WORKFLOW: Step 1: PFW_get_application_documents(app_number='{app_number}', document_code='CTNF', limit=20) Document Code Decoder:
Step 2a (LLM analysis): PFW_get_document_content_with_ocr(app_number, document_identifier) → Extract text for analysis Step 2b (User download): PFW_get_document_download(app_number, document_identifier) → PDF download link For complete cross-MCP workflows, use Citations_get_guidance(section='workflows_pfw') for detailed integration patterns. |
| Citations_validate_queryA | Validate Lucene query syntax and provide optimization suggestions. Check my query, syntax error, is this query valid, Lucene, Solr, escaping, dry run before searching, why did my search fail. Solr/Lucene Syntax Examples:
For comprehensive query syntax guide, use Citations_get_guidance(section='fields'). |
| Citations_get_citation_statisticsA | Get database statistics and aggregations for strategic planning. Counts, totals, aggregate, how many, distribution, breakdown by art unit or tech center, trends over time, citation volume. ⚠️ ENRICHED LANE ONLY. This tool aggregates the Enriched Citations (v3) index and
nothing else. To aggregate the OA lane, count it yourself with the OA search tools and read
Returns for the enriched lane: total_citations, examiner_cited_count, applicant_cited_count, and breakdowns by citation category (X/Y/A) and by who cited. |
| Citations_get_guidanceA | Get selective USPTO Citation guidance sections for context-efficient workflows 🎯 QUICK REFERENCE - What section for your question? 🔍 "Find citations by examiner/application/tech" → fields 🔀 "Which lane: OA citations or enriched citations?" → oa_citations 📄 "Understand citation categories (X/Y/A + NPL via nplIndicator)" → citation_codes 🔖 "Citation date coverage per lane" → data_coverage 🤝 "PFW workflow for office action documents" → workflows_pfw 🚩 "PTAB citation correlation" → workflows_ptab (updated for 2026 PTAB API) 📊 "FPD petition citation patterns" → workflows_fpd 🏢 "Complete lifecycle analysis" → workflows_complete ⚙️ "Tool guidance and parameters" → tools ❌ "Search errors or query issues" → errors 💰 "Reduce API costs and optimize" → cost Available sections:
PTAB Integration (updated 2026-01-17):
|
| Citations_search_oa_citations_minimalA | 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 CROSS-LANE JOIN KEY: every row carries Solr/Lucene Query Examples:
⚠️ 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 ⚠️ Use parsedReferenceIdentifier (normalized) rather than referenceIdentifier for reference lookups — the raw string format varies for the same patent. IDENTIFIERS: 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'). |
| Citations_search_oa_citations_balancedA | Search Office Action Citations (v2) with all 16 available fields. Prior art cited against an application, Form 892, Form 1449, IDS references, 102 103 112 statutory basis, action type, paragraph number. Use after Citations_search_oa_citations_minimal for detailed analysis of selected applications. All fields: patentApplicationNumber, groupArtUnitNumber, techCenter, referenceIdentifier, parsedReferenceIdentifier, actionTypeCategory, legalSectionCode, examinerCitedReferenceIndicator, applicantCitedExaminerReferenceIndicator, officeActionCitationReferenceIndicator, workGroup, paragraphNumber, createDateTime, createUserIdentifier, obsoleteDocumentIdentifier, id. This tier is where the OA-only analytical fields live: legalSectionCode (102/103/112 statutory basis) and actionTypeCategory ('rejected') have no equivalent in the enriched lane, and paragraphNumber locates the citation within the office action. ⚠️ 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 US 11,656,067 -> 3 of 15, prosecuted 2021-2023 INSIDE the documented window A reference's absence here is NO evidence that the applicant did not disclose it, and a count from this lane is not the applicant's full IDS. For a complete 1449 record, read the IDS documents through the PFW MCP. CROSS-LANE JOIN KEY: every row carries OA Citations v2 documented window: office actions mailed 2017-10-01 to ~30 days prior to today (older records have been observed in practice). No office-action date field exists — do not add an officeActionDate clause (HTTP 400). ⚠️ publicationNumber IN IDENTIFIERS: |
| Citations_get_oa_citation_fieldsA | Get all searchable fields from the USPTO Office Action Citations API v2. Fields, available fields, columns, schema, what can I query, field names, query syntax for the OA citations lane. Returns the complete field list for building Lucene queries against the OA Citations dataset. OA Citations v2 is the simpler counterpart to the AI-enriched citations — it provides raw citation data from Form 892 and Form 1449 office actions. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| citation_results_view | |
| oa_citations_view | |
| statistics_view | |
| user_management_view |
TDQS
Scored across 10 tools
Each tool targets a clearly distinct function: field discovery, search per lane/tier, detail lookup, query validation, statistics, and guidance. The enriched vs OA lane split and minimal vs balanced tiers are explicitly and repeatedly disambiguated in the descriptions.
All tools share the Citations_ prefix and follow a consistent snake_case verb_noun pattern, with modifiers like minimal/balanced and lane qualifiers like oa applied uniformly. The naming makes the tool relationships and purposes predictable.
Ten tools is well-scoped for a patent citation search domain: two search tiers across two data lanes, field discovery, detail retrieval, validation, statistics, and guidance. Each tool serves a distinct part of the workflow without redundancy.
The surface covers the full read-only citation lifecycle: field discovery, query validation, minimal and balanced search on both citation lanes, detailed record retrieval, and aggregate statistics. Cross-MCP handoffs to PFW and PTAB are also documented, so agents are not left at dead ends.