Skip to main content
Glama
riemannzeta

USPTO Patent MCP Server

by riemannzeta

odp_download_document

Read-onlyIdempotent

Retrieve and read one USPTO patent application file-wrapper document, such as an office action, remarks, or claims, as plain text or PDF by application and document ID.

Instructions

Read one file-wrapper document, as plain text or as a PDF.

USE THIS TOOL WHEN: odp_get_documents or odp_search_office_actions
gave you a document identifier and you need to read the office
action, applicant's remarks (REM), claims (CLM), notice of allowance,
petition decision or other paper itself.

Prefer format="text": it returns the paper's body as plain text (an
office action is typically 10-20k characters) from the XML USPTO
publishes with the document. Claim amendments keep their markup,
deletions as ~~text~~ and insertions as ++text++. Applicant papers
are OCR text and can carry OCR errors. Documents listed with an
"XML" format have text; others (older papers, drawings) return
NO_TEXT_AVAILABLE, and format="pdf" still works for them.

Args:
    app_num: Application number without slashes (e.g., "16123456")
    document_id: documentIdentifier from odp_get_documents, or
           document_id from odp_search_office_actions
           (e.g., "K87AK41FRXEAPX5")
    format: "text" (plain text) or "pdf" (base64 PDF, the default)
    text_offset: With format="text", the character to start from.
           Long papers come back in 24k-character pages; pass the
           previous response's next_offset to continue.

Returns:
    format="text": {"success": True, "text", "total_chars",
    "text_offset", "next_offset" (None when done), "source_file"}.
    format="pdf": {"success": True, "filename", "content_type",
    "size_bytes", "content"} with the PDF as base64. Documents over
    4 MB are refused with RESPONSE_TOO_LARGE. Requires USPTO_API_KEY.

Input Schema

NameRequiredDescriptionDefault
formatNopdf
app_numYes
document_idYes
text_offsetNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.8.1

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent/open-world profile, but the description adds substantial extra behavior: NO_TEXT_AVAILABLE for non-XML documents, OCR error risk on applicant papers, 24k-character paging with next_offset, a 4 MB refusal (RESPONSE_TOO_LARGE), and the USPTO_API_KEY requirement. Claim-markup conventions (~~deletions~~, ++insertions++) are also disclosed.

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?

Clear front-loaded purpose followed by WHEN / Args / Returns sections, and virtually every sentence carries operational information. It runs long and the Args block partly restates parameter names already visible in the schema, so it is dense rather than tight.

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?

With no output schema and no annotation-level detail, the description must supply everything an agent needs: both return shapes, the pagination contract, the failure modes (NO_TEXT_AVAILABLE, RESPONSE_TOO_LARGE), and the auth prerequisite. Nothing essential to a correct call 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 description coverage is 0%, so the description carries the full burden and does: app_num format without slashes, document_id provenance and an example, format's two legal values and the pdf default, and text_offset's exact meaning tied to the previous response's next_offset. No parameter is left ambiguous.

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 ('Read one file-wrapper document') plus the two output modes, which cleanly separates it from the sibling lookup tools that only return identifiers. An agent can tell this is the retrieval/read step of the odp document workflow without opening 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?

Explicit 'USE THIS TOOL WHEN:' block names the two feeding siblings (odp_get_documents, odp_search_office_actions) and the precondition (you have a document identifier). It also gives a positive preference ('Prefer format="text"') and states when the alternative (format="pdf") is needed.

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