USPTO Patent MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@USPTO Patent MCP ServerSearch for patents related to quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
USPTO Patent MCP Server
A FastMCP server for accessing United States Patent and Trademark Office (USPTO) patent and patent application data through multiple APIs including the Patent Public Search API, the Open Data Portal (ODP) API, PTAB API v3, and Patent Litigation APIs. Using this server, Claude Desktop can pull data from USPTO APIs, search through PTAB proceedings and decisions, analyze patent litigation, research prosecution history, and more:

For an introduction to MCP servers see Introducing the Model Context Protocol.
Special thanks to Parker Hancock, author of the amazing Patent Client project, for blazing the trail to understanding of the string of requests and responses needed to pull data through the Public Search API.
Features
This server provides 52 tools across 6 USPTO data sources (27 active, 25 unavailable due to API shutdowns):
Patent Search - Full-text search of granted patents and published applications via PPUBS
Full Text Documents - Get complete text of patents including claims, description, and specification
PDF Downloads - Download patents as PDF files (Claude Desktop doesn't support this as a client currently)
Prosecution History - Access transactions and file wrapper data via ODP
Patent Family Data - Continuity information, foreign priority, and related applications
Bulk Datasets - Search and access USPTO bulk data products including PatentsView disambiguated data
Note on unavailable APIs: The PatentsView API (search.patentsview.org) was shut down on March 20, 2026, with its data migrated to ODP bulk datasets. The Office Action and Enriched Citation APIs (developer.uspto.gov) were decommissioned in early 2026. The Patent Litigation API is not offered on the USPTO Open Data Portal; litigation data is available as a bulk download. All 25 affected tools remain registered and return helpful workaround guidance pointing to alternative tools.
Related MCP server: USPTO Patent MCP Server
API Sources
Source | Description | Auth Required | Status |
ppubs.uspto.gov | Full text documents, PDF downloads, advanced search (daily updates) | No | Active |
api.uspto.gov (ODP) | Metadata, continuity, transactions, assignments, prosecution history | Yes (ODP API Key) | Active |
PTAB Trial API | IPR/PGR/CBM proceedings, decisions, appeals | Yes (ODP API Key) | Active (ODP v3.0) |
Patent Litigation API | 74,000+ district court patent cases | N/A | Not offered on ODP (issue #16) |
PatentsView API | Disambiguated inventor/assignee data, advanced search | N/A | Shut down March 2026 |
Office Action APIs | Full-text office actions, citations, rejections | N/A | Decommissioned early 2026 |
Prerequisites
Python 3.10-3.13 (3.12 recommended)
Claude Desktop (for integration). Other models and MCP clients have not been tested.
UV for Python version and dependency management
If you're a Python developer but still unfamiliar with uv, you're in for a treat. It's faster and easier than having a separate Python version manager (like pyenv) and setting up, activating, and maintaining virtual environments with venv and pip.
If you don't already have uv installed:
curl -LsSf https://astral.sh/uv/install.sh | shInstallation
Clone this repository:
git clone https://github.com/riemannzeta/patent_mcp_server cd patent_mcp_serverInstall dependencies with uv:
uv syncVerify installation:
uv run patent-mcp-serverShould output:
INFO Starting USPTO Patent MCP server with stdio transport
API Key Setup
USPTO ODP API Key (Required for most tools)
To use the api.uspto.gov tools (ODP, PTAB), you need an Open Data Portal API key. Without it, these endpoints return 403 Forbidden. The Patent Litigation API is not offered on ODP and does not require an API key.
Create a USPTO.gov account at data.uspto.gov (requires ID.me verification)
Once signed in, visit "My ODP" in the site navigation to get your API key
See the Getting Started guide for detailed instructions
Create a
.envfile in the patent_mcp_server directory:USPTO_API_KEY=your_actual_key_hereNote: The PPUBS tools will work without this API key.
Configuration
The server can be configured using environment variables in your .env file. All settings are optional with sensible defaults:
# API Keys
USPTO_API_KEY=your_key_here
# Logging
LOG_LEVEL=INFO # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
# HTTP Settings
REQUEST_TIMEOUT=30.0 # Request timeout in seconds
MAX_RETRIES=3 # Maximum number of retry attempts
RETRY_MIN_WAIT=2 # Minimum wait time between retries (seconds)
RETRY_MAX_WAIT=10 # Maximum wait time between retries (seconds)
# Session Management
SESSION_EXPIRY_MINUTES=30 # How long to cache ppubs sessions
ENABLE_CACHING=true # Enable/disable session caching
# API Endpoints (usually don't need to change)
PPUBS_BASE_URL=https://ppubs.uspto.gov
API_BASE_URL=https://api.uspto.gov # ODP API endpoint (NOT data.uspto.gov)Claude Desktop Configuration
To integrate this MCP server with Claude Desktop:
Update your Claude Desktop configuration file (
claude_desktop_config.json):{ "mcpServers": { "patents": { "command": "uv", "args": [ "--directory", "/Users/username/patent_mcp_server", "run", "patent-mcp-server" ] } } }You can find
claude_desktop_config.jsonon a Mac by opening the Claude Desktop app, opening Settings (from the Claude menu or by Command + ' on the keyboard), clicking "Developer" in the sidebar, and "Edit Config."Replace
/Users/username/patent_mcp_serverwith the actual path to your patent_mcp_server directory.
When integrated with Claude Desktop, the server will be automatically started when needed and doesn't need to be run separately.
Claude Code Configuration
To integrate this MCP server with Claude Code for a particular project, from the project root:
claude mcp add-json patents '{"command": "uv", "args": ["--directory", "/path/to/patent_mcp_server", "run", "patent-mcp-server"]}'If you're already running Claude Code, you'll have to /exit and restart. Then /mcp to verify that it's configured.
Available Tools
Utility Tools
Tool | Description |
| Check status of all USPTO APIs |
| Get CPC classification information |
| Look up USPTO status code meaning |
Patent Public Search (ppubs.uspto.gov)
Tool | Description |
| Search granted patents (full-text, daily updates) |
| Search published patent applications |
| Get full patent document by GUID |
| Get patent's full text by number |
| Download patent as PDF |
Open Data Portal (api.uspto.gov)
Tool | Description |
| Get basic application data |
| Search applications with filters |
| Get comprehensive metadata |
| Get patent family/continuity data |
| Get ownership/assignment records |
| Get patent term adjustment data |
| Get attorney/agent of record |
| Get foreign priority claims |
| Get prosecution transaction history |
| Get file wrapper documents |
| Search bulk data products |
| Get dataset product details |
PTAB Trial API (api.uspto.gov ODP v3.0)
Tool | Description |
| Search IPR/PGR/CBM proceedings by patent number, party, status |
| Get details for a specific proceeding by number |
| List documents filed in a proceeding |
| Search PTAB decisions |
| Get a specific decision by trial number |
| Search ex parte appeals |
| Get details for a specific appeal |
Patent Litigation API (Unavailable — not offered on ODP, issue #16)
All 4 Litigation tools return API_UNAVAILABLE. The Patent Litigation API is not listed in the ODP Swagger catalog. The OCE Patent Litigation dataset (74,000+ district court cases) is distributed as a bulk download at https://www.uspto.gov/ip-policy/economic-research/research-datasets/patent-litigation-docket-reports-data.
Tool | Workaround |
| OCE Patent Litigation bulk dataset |
| OCE Patent Litigation bulk dataset |
| OCE Patent Litigation bulk dataset or |
| OCE Patent Litigation bulk dataset |
PatentsView API (Unavailable — shut down March 2026)
All 14 PatentsView tools return API_UNAVAILABLE with workaround guidance. PatentsView data has been migrated to the USPTO Open Data Portal as bulk downloadable datasets. Use ppubs_search_patents for patent search, odp_search_datasets to find bulk datasets.
Tool | Workaround |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Office Action APIs (Unavailable — decommissioned early 2026)
All 4 Office Action tools return API_UNAVAILABLE. Use odp_get_documents to access office action documents from the file wrapper.
Tool | Workaround |
|
|
|
|
|
|
|
|
Enriched Citation APIs (Unavailable — decommissioned early 2026)
All 3 Enriched Citation tools return API_UNAVAILABLE. Use odp_get_documents or ppubs tools as workarounds.
Tool | Workaround |
|
|
|
|
|
|
Resources and Prompts
The server also provides MCP Resources (accessible via @ mentions):
patents://cpc/{code}- CPC classification informationpatents://status-codes- USPTO status code definitionspatents://sources- Data source informationpatents://search-syntax- Query syntax guide
And MCP Prompts (workflow templates):
prior_art_search- Comprehensive prior art search guidepatent_validity- Patent validity analysis workflowcompetitor_portfolio- Competitor portfolio analysisptab_research- PTAB proceeding research guidefreedom_to_operate- FTO analysis workflowpatent_landscape- Technology landscape mapping
Testing
The project includes comprehensive test suites:
# Run unit tests (default - skips integration tests)
uv run pytest
# Run with verbose output
uv run pytest -v
# Run integration tests (requires network access)
uv run pytest -m integration
# Run all tests including integration
uv run pytest -m ""
# Run with coverage report
uv run pytest --cov=patent_mcp_serverTest results are stored in /test/test_results/.
Development
To install development dependencies:
uv sync --devPublishing to PyPI
# Build distribution packages
rm -rf dist/ && uv run python -m build
# Upload to PyPI
uv run twine upload dist/*Contributing
Issues and PRs welcome. See CONTRIBUTING.md for the contribution guide, and AGENTS.md for guidance specific to AI agents. Use the bug report or feature request templates when filing an issue — they prompt for the tool call, the constructed request URL/body, and the raw API response, which is usually enough to land a fix in one turn.
Version History
v0.9.5 (Current)
Re-enable 7 PTAB tools on USPTO ODP v3.0:
ptab_search_proceedings,ptab_get_proceeding,ptab_get_documents,ptab_search_decisions,ptab_get_decision,ptab_search_appeals,ptab_get_appeal(issue #23). PTAB data relocated to ODP/api/v1/patent/trials/*and/api/v1/patent/appeals/*(paths not in the ODP Swagger UI); the standalone-API decommission (issue #16) was correct for the Patent Litigation API, but PTAB moved rather than disappeared.Active tool count: 27 (up from 20); unavailable: 25 (down from 32); total registered remains 52
v0.9.4
Fix
ppubs_search_patents/ppubs_search_applicationsquery semantics (issue #21): default operator changed fromORtoAND, so multi-word queries likemachine learningno longer match the entire corpus and collapse into the latest-grants fallback underdate_publ descsort.Fix template-mutation bug in PPUBS client (
search_query.copy()→copy.deepcopy(...)), eliminating a concurrency hazard between parallel calls.Fix
odp_search_applicationsfilters being silently ignored upstream (issue #21): switched from GET query-string params to POST with a Lucene-styleqbody.assignee_name,inventor_name,application_number,patent_number, and filing-date ranges are now properly AND-combined into the search. Tool now returnsMISSING_FILTERrather than dumping the full 12.8M-record corpus when called with no filters.Updated
ppubs_search_patents/ppubs_search_applications/odp_search_applicationsdocstrings to reflect the corrected semantics and document Lucene query support on ODP.Added
CONTRIBUTING.md,AGENTS.md, bug-report + feature-request issue templates, and a PR template.
v0.9.0
Handle PTAB Trial API and Patent Litigation API unavailability on ODP (issue #16)
All 7
ptab_*tools and 4 litigation tools now returnAPI_UNAVAILABLEwith workaround guidance pointing to PPUBS tools and USPTO bulk datasetsActive tool count: 20 (down from 31); unavailable: 32 (up from 21); total registered remains 52
Added unit tests for all 11 newly-unavailable tools and extended the shared error-structure parametrization
Updated
check_api_status,resources.pydata sources, client docstrings, and README to reflect the shutdown
v0.8.0
Handle decommissioned PatentsView API (shut down March 20, 2026)
All 14
patentsview_*tools returnAPI_UNAVAILABLEwith workaround guidanceFixed circular references in office_actions resources that pointed to unavailable PatentsView tools
Updated API Sources table, configuration, and documentation
v0.7.0
Handle decommissioned Office Action and Enriched Citation APIs (developer.uspto.gov)
All 7 affected tools return
API_UNAVAILABLEwith workaround guidanceAdded
test/unit/test_unavailable_tools.pyfor decommissioned tool testingCode cleanup: removed dead code, improved docstrings
v0.6.2
Updated API key registration instructions: keys are now obtained from data.uspto.gov ("My ODP")
Clarified that
api.uspto.govis the correct API endpoint (notdata.uspto.govwhich is the web portal)Noted PTAB API v3 migration to ODP and Office Action API migration (early 2026)
v0.6.1
Added PatentsView attorney search tools (
patentsview_search_attorneys,patentsview_get_attorney)Added PatentsView IPC classification tools (
patentsview_lookup_ipc,patentsview_search_by_ipc)Fixed bug in
search_publicationsmethod (pagination options not being passed)
v0.6.0
PyPI release preparation
v0.5.0
Focused on USPTO-only data sources
Renamed ODP tools with
odp_prefix for clarityImproved function signatures (using
queryinstead ofq)
v0.3.0
Added 33 new tools (PTAB, PatentsView, Office Actions, Citations, Litigation)
Rate limiting support for PatentsView API
Comprehensive async client architecture
v0.2.2
Centralized configuration with environment variables
Standardized error handling
Input validation with Pydantic
Retry logic with exponential backoff
Session caching for PPUBS
License
MIT
Available Tools
15 toolscheck_api_statusA
Check status and availability of USPTO ODP API.
USE THIS TOOL WHEN: You encounter errors or want to verify that the ODP
is properly configured before starting research.
Returns status including:
- Configuration status (API keys, credentials)
- Connection availability
- Rate limit information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It explains the return values (configuration, connection, rate limits) and implies a read-only operation. However, it does not explicitly state that the tool is non-destructive or has no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, when to use, and return contents. It is front-loaded and every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists (not shown but indicated), the description covers purpose, usage, and returns. It is complete for this simple diagnostic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema (empty) already fully covers them. According to guidelines, baseline is 4 for 0 parameters. The description does not need to add parameter info, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Check status and availability' and identifies the resource 'USPTO ODP API'. It clearly distinguishes this tool from siblings which perform specific data lookups, as this is a diagnostic tool for API health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a 'USE THIS TOOL WHEN' section, stating to use it upon encountering errors or to verify configuration before starting research. This gives clear context and differentiates it from other ODP tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cpc_infoA
Look up CPC (Cooperative Patent Classification) code information.
USE THIS TOOL WHEN: You need to understand what technology area a CPC
code represents, or find related classification codes.
Args:
cpc_code: CPC code to look up (e.g., "G06" for computing, "G06N3/08" for neural networks)
Returns:
Classification details including section, title, and description.
For section codes (A-H, Y), returns subsection list.
| Name | Required | Description | Default |
|---|---|---|---|
| cpc_code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses return behavior: 'Classification details including section, title, and description. For section codes (A-H, Y), returns subsection list.' It doesn't explicitly state this is read-only, but that is implied for a lookup. The behavior is transparent enough, though it could mention potential errors or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise: a one-line summary, a 'USE THIS TOOL WHEN' section, and clearly labeled Args/Returns. Every sentence adds value, and it is front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description is complete. It explains both input and output, including the special case for section codes (A-H, Y). No missing guidance for a lookup tool of this nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fully does: 'Args: cpc_code: CPC code to look up (e.g., "G06" for computing, "G06N3/08" for neural networks)' provides meaning, format, and examples. This is highly informative beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Look up CPC (Cooperative Patent Classification) code information.' It also provides examples. However, it does not distinguish itself from the sibling tool 'patentsview_lookup_cpc', which likely serves a similar purpose, so it misses the sibling differentiation needed for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases with 'USE THIS TOOL WHEN: You need to understand what technology area a CPC code represents, or find related classification codes.' This gives clear context for when to use it, but it lacks any mention of when not to use it or alternatives, so it does not meet the full criteria for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_status_codeA
Look up USPTO application status code meaning.
USE THIS TOOL WHEN: You encounter a status code in application data
and need to understand what examination stage it represents.
Args:
code: Status code number (e.g., "30" for "Docketed New Case")
Returns:
Status code description and examination stage.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. The verb 'look up' implies a read-only operation with no side effects, which is transparent. However, it does not explicitly state that it is read-only or mention any error conditions, but given the simple nature of the tool, the lack of such details is not a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with clear sections for the main description, usage guidance, and parameter/return details. It avoids unnecessary fluff while providing all essential information in a compact format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description is complete: it states what it does, when to use it, the parameter format, and the return value. It provides enough context for an agent to decide when to invoke it and what to expect from it. No additional details are necessary for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides a detailed explanation of the single parameter 'code', including an example ('30' for 'Docketed New Case'). This adds meaning beyond the schema's simple string type, helping the agent understand the expected input format and content. The schema coverage is 100% as the only parameter is described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Look up USPTO application status code meaning.' It specifies the resource (USPTO application status code) and the action (look up meaning), distinguishing it from sibling tools like trademark status code lookups. The mention of 'examination stage' further clarifies its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly includes a 'USE THIS TOOL WHEN' section, stating it should be used when encountering a status code in application data and needing to understand the examination stage. It also mentions what it returns, providing clear context for when to invoke it. No alternative tools are mentioned, but the specificity makes the usage unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_adjustmentA
Get patent term adjustment (PTA) data.
USE THIS TOOL WHEN: You need to calculate the actual expiration date
of a patent accounting for USPTO delays.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavior such as whether the tool is read-only, error handling for invalid application numbers, or any side effects. It only states it retrieves data, lacking transparency about operational nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured, with a clear purpose statement and a separate usage condition. It avoids unnecessary detail while conveying the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter get tool, the description covers what it does and when to use it. It does not elaborate on return values, but given an output schema exists, that is not required. It lacks mention of potential edge cases or fallback behavior, so it is slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'app_num' parameter as an application number without slashes and gives an example, which provides useful formatting guidance. However, it does not cover validation rules or possible formats beyond the example.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets patent term adjustment data and specifies the use case for calculating expiration dates with USPTO delays. It is distinct from sibling tools like odp_get_application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides a 'USE THIS TOOL WHEN' condition, guiding the agent to use it when calculating patent expiration dates with delays, which is actionable and differentiates from other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_applicationA
Get patent application data from USPTO Open Data Portal.
USE THIS TOOL WHEN: You need prosecution/file wrapper data for an
application including status, dates, and basic metadata.
Args:
app_num: Application number without slashes or commas (e.g., "14412875")
Returns:
Application data including filing date, status, and basic info.
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the input format (without slashes/commas) and the return content, but it does not explicitly state that the operation is read-only or describe error behavior, rate limits, or authentication requirements. The verb 'Get' implies a safe read, but the lack of explicit behavioral disclosure is a moderate gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with clear sections for purpose, when to use, arguments, and returns. Every sentence provides useful information with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter retrieval tool, the description covers the source, the specific data content, and the parameter format. It does not mention error cases or what happens if the application number is invalid, but given the presence of an output schema and the simplicity of the tool, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides minimal meaning (just a string field with zero coverage). The description compensates fully by specifying the exact format: 'without slashes or commas' and gives a concrete example ("14412875"). This leaves no ambiguity about how to construct the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get patent application data from USPTO Open Data Portal' with a specific verb and resource. It distinguishes from siblings by specifying 'prosecution/file wrapper data including status, dates, and basic metadata', which differentiates it from related tools like metadata, continuity, or assignment retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'USE THIS TOOL WHEN' clause: 'You need prosecution/file wrapper data for an application including status, dates, and basic metadata.' This gives clear usage context. However, it does not mention when not to use it or name specific alternatives, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_application_metadataA
Get detailed metadata for a patent application.
USE THIS TOOL WHEN: You need comprehensive application metadata
including examiner info, art unit, and detailed status.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. The verb 'Get' implies a read operation, and the description previews return content (examiner, art unit, status) plus the parameter format. Still, it omits possible error behavior, authentication requirements, or rate limits, making it only minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-sentence purpose, a clear 'USE THIS TOOL WHEN' condition, and an Args section. Every sentence contributes value, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (single parameter, simple read operation) and the existence of an output schema, the description is mostly complete. It covers purpose, usage trigger, and the one parameter, but could improve by noting how this differs from odp_get_application. Overall, it is sufficient for an agent to confidently select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for app_num, but the description compensates fully by specifying 'Application number without slashes' and providing a concrete example ('14412875'). This adds meaningful formatting context that the structured schema alone does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and identifies the resource as 'detailed metadata for a patent application,' with concrete examples like examiner info, art unit, and status. It clearly states the tool's function, though it does not explicitly distinguish itself from the sibling tool odp_get_application, which likely provides more basic application data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It includes a 'USE THIS TOOL WHEN' section that gives an explicit condition: when comprehensive application metadata is needed, including specific fields. However, it does not provide any 'when not to use' guidance or mention alternatives, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_assignmentA
Get patent assignment/ownership records.
USE THIS TOOL WHEN: You need to know current and historical owners
of a patent or application.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It conveys a read operation ('Get') and mentions 'current and historical owners,' but provides no further transparency into rate limits, data freshness, or edge cases. It is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and clearly structured: a one-line summary, a 'USE THIS TOOL WHEN' section, and an Args block. Every sentence adds value, and the information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with an output schema, the description covers all necessary aspects: what it does, when to use it, and how to format the argument. There is no missing context that would hinder an agent from using it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The 'Args:' block goes beyond the schema by specifying 'Application number without slashes' and providing an example ('14412875'). This format-level detail compensates for the 0% schema description coverage, though it could further clarify expected formats (e.g., digits only).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get patent assignment/ownership records' with a specific verb and resource, and the qualifier 'patent' differentiates it from trademark assignment tools like tm_search_assignments among siblings. This is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'USE THIS TOOL WHEN' section explicitly provides usage context: 'You need to know current and historical owners of a patent or application.' It lacks explicit alternatives or when-not-to-use statements, but the guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_attorneyA
Get attorney/agent of record for an application.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It conveys a straightforward read-style lookup and adds one useful behavioral constraint ('without slashes'), but it does not mention auth, error behavior, coverage limitations, or response characteristics. For a simple getter, this is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, containing a clear action, parameter name, formatting rule, and example. Every element earns its place and there is no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity, one-parameter getter with an output schema, the description provides the essential invocation detail: the exact format of the application number. It could add usage caveats or data source scope, but it is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides the parameter name and string type, while the description adds meaningful semantics: the application number must be provided without slashes, with a concrete example ('14412875'). This fully compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Get attorney/agent of record for an application.' It specifies the resource and the input type, making the tool's purpose unambiguous. However, it does not explicitly distinguish this from similar sibling tools such as patentsview_get_attorney or odp_get_application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by indicating the tool retrieves attorney/agent of record for an application and provides an example application number. It does not give explicit guidance on when to choose this tool over siblings or state exclusions, so usage guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_continuityA
Get patent family/continuity data (parent and child applications).
USE THIS TOOL WHEN: You need to understand the patent family tree -
parent applications, continuations, divisionals, and CIPs.
Args:
app_num: Application number without slashes (e.g., "14412875")
Returns:
Continuity data showing parent/child relationships and priority claims.
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on full responsibility. It explains the output ('Continuity data showing parent/child relationships and priority claims') and adds the note about the application number format ('without slashes'). It doesn't address rate limits or authentication, but for a simple lookup tool, this is sufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sections (purpose, use-case, args, returns) with no redundant wording. Every sentence adds value, and the 'USE THIS TOOL WHEN' is highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup that returns continuity data, the description covers input format, output type, and provides a clear use case. The presence of an output schema further reduces the need to detail return fields. It is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides zero description coverage, so the description must compensate. It does so excellently by explaining the format ('without slashes') and giving a concrete example ('14412875'), which is crucial for correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get patent family/continuity data (parent and child applications)' – a specific verb and resource. Among the many patent-related tools, this one is unambiguously about family/continuity, making it distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'USE THIS TOOL WHEN' section explicitly tells the agent to use it for understanding the patent family tree, including parent applications, continuations, divisionals, and CIPs. However, it does not name alternatives or provide when-not-to-use conditions, only positive when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_datasetC
Get details of a specific bulk dataset product.
Args:
product_id: Dataset product identifier
| Name | Required | Description | Default |
|---|---|---|---|
| product_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, and the description simply says 'get details', implying a read-only operation but not explicitly stating it. No mention of side effects, error handling, rate limits, or other behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of one short sentence. It avoids unnecessary details and is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about what details will be returned, whether it returns full data or summaries, or how it relates to other available tools. It is not complete enough for a user to fully understand the tool's output and place in the broader API ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'product_id' is described as 'Dataset product identifier', which adds clarity beyond the schema's title 'Product Id' by specifying it refers to a dataset product. However, it doesn't elaborate on format or expected values, so it only partially compensates for sparse schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves details of a bulk dataset product, which is specific about the resource type. However, it could be more explicit about what 'details' entails, but overall it is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like searching for datasets or getting other product info. The description lacks any contextual direction for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_documentsB
Get list of documents in the application file wrapper.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden for behavioral disclosure. It states the tool retrieves a list, implying a read operation, but does not explicitly mention that it is non-destructive, lacks side effects, or requires authentication. It also does not describe pagination, limitations, or error handling. This is minimal but not incorrect, so it scores low due to lack of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences—yet conveys the purpose and the critical parameter format. It is front-loaded with the main action and then explains the argument. Every word earns its place with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (single required parameter, output schema present), the description is minimally adequate. However, it omits any mention of the return format, ordering, pagination, or potential edge cases (e.g., invalid app_num). While the output schema may cover return structure, the description lacks any usage context or caveats, making it only partially complete for a real-world agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides a specific formatting rule for app_num ('without slashes') and an example ('14412875'), which significantly clarifies the schema's bare string type. Since schema coverage is 0%, this additional detail is valuable and compensates well for the one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get list of documents') and identifies the resource ('application file wrapper'), which distinguishes it from sibling tools like odp_get_application or odp_get_dataset. However, it does not explicitly contrast with other document-related tools (e.g., ptab_get_documents) or state why this tool should be preferred, but the specificity of 'application file wrapper' gives reasonable differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, filters, or exclusions. The context signals show many sibling tools, but the description provides no decision-making information, leaving the agent to infer usage solely from the name and resource.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_foreign_priorityA
Get foreign priority claims for an application.
USE THIS TOOL WHEN: You need to find priority claims to foreign
applications that may affect the effective filing date.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden, but it reveals little beyond the read operation implied by 'Get.' The note about effective filing date is more about purpose than behavior. It does not disclose potential empty results, ordering, or any side effects, but 'Get' does imply a safe read operation. Neutral, adequate, but not rich in behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-line purpose statement, a clearly labeled usage directive, and a compact args block. Slight redundancy exists between 'Get foreign priority claims' and the rewording in 'USE THIS TOOL WHEN,' but overall every section earns its place with minimal fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, single-parameter getter with a defined output schema, the description is mostly complete. It provides the trigger context and the required argument format. It could be more complete with a note about what 'foreign priority claims' represent or typical response scenarios, but the presence of an output schema mitigates the need to explain return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. The 'Args' section adds format guidance ('without slashes') and a concrete example ('14412875') beyond the schema's bare string type. This provides solid, non-redundant value for the single parameter, though it doesn't cover edge cases like leading zeros or required length.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('foreign priority claims for an application'), which clearly differentiates it from sibling tools like odp_get_application, odp_get_assignment, and odp_get_transactions. Even without naming siblings, the subject matter is specific enough to identify the tool's role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'USE THIS TOOL WHEN' section gives an explicit, actionable trigger: 'find priority claims to foreign applications that may affect the effective filing date.' It lacks explicit alternatives or when-not-to-use cases, but provides clear context for when the tool is relevant, meriting a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_get_transactionsA
Get prosecution transaction history for an application.
USE THIS TOOL WHEN: You need the complete timeline of prosecution
events including office actions, responses, and fee payments.
Args:
app_num: Application number without slashes (e.g., "14412875")
| Name | Required | Description | Default |
|---|---|---|---|
| app_num | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It indicates the tool returns a 'complete timeline' of events, implying a list output, and explains the input format (app_num without slashes). However, it does not describe the output structure, potential errors, pagination, or any side effects. This is adequate but not rich, aligning with a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-sentence purpose, a 'USE THIS TOOL WHEN' guideline, and an explicit parameter explanation. There is no repetition of schema content, and every sentence adds value. It is front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple retrieval tool with one parameter and an output schema present. The description adequately covers purpose, usage, and parameter semantics. It does not delve into return values or edge cases, but given the tool's simplicity and the availability of an output schema, the description is sufficiently complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage, so the description must clarify the parameter. It does so effectively by stating 'app_num: Application number without slashes (e.g., "14412875")', providing format and an example. This adds meaningful value beyond the schema's mere 'App Num' field, though it could elaborate on what constitutes a valid application number.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'prosecution transaction history for an application', specifying the resource and scope. It distinguishes from siblings like odp_get_application (which gets application details) and odp_get_documents (which gets documents) by focusing on the complete prosecution timeline including office actions, responses, and fee payments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'USE THIS TOOL WHEN: You need the complete timeline of prosecution events including office actions, responses, and fee payments.' It provides clear context but does not mention any alternatives or when not to use it, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_search_applicationsA
Search patent applications in USPTO Open Data Portal.
USE THIS TOOL WHEN: You need to search applications with filtering
by applicant metadata, dates, or other criteria not available in PPUBS.
PARAMETER MAPPING: Simple parameter names are automatically translated to ODP
Lucene query fields and combined with AND logic:
- inventor_name → applicationMetaData.firstInventorName
- assignee_name → applicationMetaData.firstApplicantName
- patent_number → applicationMetaData.patentNumber
- application_number → applicationNumberText
- filing_date_from/to → applicationMetaData.filingDate:[start TO end]
AUTO-QUOTING & WILDCARDS: Values are automatically quoted for exact phrase
matching. Use wildcards (*) for partial matches:
- "Smith" searches for exact phrase
- "Smit*" searches for anything starting with "Smit"
- "Micro*" matches "Microsoft", "Microsystems", etc.
ADVANCED QUERIES: Pass a Lucene-style string in `query` for OR logic or
raw field names:
- 'applicationMetaData.firstInventorName:Smith OR
applicationMetaData.firstInventorName:Jones' for multiple inventors
- Combine with other filters: query='machine learning' AND assignee_name='IBM'
generates: (machine learning) AND applicationMetaData.firstApplicantName:"IBM"
Args:
query: Free-text or Lucene-style query (e.g., 'neural network',
'applicationMetaData.firstInventorName:Smith OR Jones')
application_number: Filter by application number (exact match)
patent_number: Filter by patent number (exact match)
inventor_name: Filter by inventor name (matches first inventor; auto-quoted)
assignee_name: Filter by applicant/assignee name (matches first applicant; auto-quoted)
filing_date_from: Filing date range start (YYYY-MM-DD)
filing_date_to: Filing date range end (YYYY-MM-DD)
offset: Starting position (default: 0)
limit: Max results (default: 25)
fields: Response projection — list of ODP field names to return (e.g.,
['applicationNumberText', 'applicationMetaData.patentNumber',
'applicationMetaData.filingDate']). Reduces over-fetching of
large nested structures. Omit to return all fields (default).
Returns:
Normalized response with matching applications.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| application_number | No | ||
| patent_number | No | ||
| inventor_name | No | ||
| assignee_name | No | ||
| filing_date_from | No | ||
| filing_date_to | No | ||
| offset | No | ||
| limit | No | ||
| fields | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description details auto-quoting, wildcards, parameter translation, and AND/OR logic. However, it lacks disclosure on rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with sections and front-loaded purpose, but lengthy due to comprehensive examples; could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers major usage patterns and parameter details, but lacks explicit error handling or edge case descriptions; output schema is mentioned but not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides extensive parameter documentation including mapping, auto-quoting, wildcard usage, and advanced query syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Search patent applications in USPTO Open Data Portal' and contrasts with PPUBS, distinguishing it from other retrieval tools like odp_get_application.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Includes a 'USE THIS TOOL WHEN' section with explicit criteria, parameter mapping, and advanced query guidance, clearly indicating when to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
odp_search_datasetsA
Search USPTO bulk data products/datasets.
USE THIS TOOL WHEN: You need to find bulk download datasets
available from USPTO for large-scale analysis.
Args:
query: Search query for dataset names/descriptions
offset: Starting position (default: 0)
limit: Max results (default: 25)
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| offset | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the transparency burden. It implies a read-only search and indicates pagination through offset/limit, but it doesn't describe response contents, authorization needs, rate limits, or the exact scope of dataset results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: clear purpose first, then an explicit usage condition, then the Args block. No filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple search with only three optional parameters, and an output schema is present so return values need not be spelled out in the description. The description adequately explains the tool's purpose, use cases, and parameter semantics; a little more context about dataset scope or exclusions could fill the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself has no descriptions, but the Args section compensates by defining each param: query is for dataset names/descriptions, offset is the starting position, and limit is the max result count. This is sufficient for an agent to understand and invoke parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clarifies the tool as searching USPTO bulk data products/datasets, giving a specific verb and target resource. This clearly differentiates it from the many sibling tools that search patents, applications, trademarks, or other records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The explicit 'USE THIS TOOL WHEN' line tells the agent it is for finding USPTO bulk download datasets for large-scale analysis. It doesn't name alternatives or when not to use it, but the resource is distinct from the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
v1.0.0- First observed
check_api_status - First observed
get_cpc_info - First observed
get_status_code - First observed
odp_get_adjustment - First observed
odp_get_application - First observed
odp_get_application_metadata - First observed
odp_get_assignment - First observed
odp_get_attorney - First observed
odp_get_continuity - First observed
odp_get_dataset - First observed
odp_get_documents - First observed
odp_get_foreign_priority - First observed
odp_get_transactions - First observed
odp_search_applications - First observed
odp_search_datasets
TDQS
Scored across 15 tools
Each tool serves a clearly distinct purpose: API status, classification lookup, status code meaning, and various ODP data retrievals (application, metadata, documents, transactions, continuity, etc.) with no functional overlap.
Tool names follow a consistent pattern: 'odp_get_*' for ODP data, and 'get_*' or 'check_*' for other queries. Minor inconsistency: the 'odp_' prefix is absent on some tools that also retrieve data (e.g., get_cpc_info), but the pattern is predictable.
15 tools is well-scoped for a patent data server, covering status, classification, application details, assignments, continuity, search, and datasets without being overwhelming.
Covers most core patent data retrieval needs: search, application details, family, assignments, prosecution history, and dataset access. Minor gaps like direct patent number lookup and document content retrieval are missing, but the surface is broadly complete.
Maintenance
Related MCP Connectors
Patent search, USPTO data, patent landscape & pgvector prior-art search for agents.
AI-optimized patent data marketplace providing structured JSON datasets.
US patent search, assignee portfolios, and citation graph via PatentsView.
28 pay-per-event tools for regulatory, sanctions, procurement, and corporate-registry monitoring.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables collection of patent-related information from PatSnap's API for trend analysis and reporting, providing tools for patent trends, word clouds, innovation wheels, and identification of top inventors, assignees, and litigated patents.108 npm7MIT
- AlicenseBqualityAmaintenanceProvides access to USPTO patent and patent application data through multiple APIs, enabling search, retrieval, and analysis of patents, PTAB proceedings, and litigation data via natural language.61195 PyPI79MIT
- AlicenseNot gradedqualityBmaintenanceProvides access to USPTO enriched citation and office action citation APIs with smart context reduction and progressive disclosure workflows for patent citation analysis.6MIT
- FlicenseNot gradedqualityDmaintenanceUS patent search, full-text retrieval, claim extraction, citation graph, and weekly grant alerts for R\&D, biotech, and IP-law audiences.-