Install
$ agentstack add mcp-john-walkoe-uspto-fpd-mcp ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
USPTO Final Petition Decisions MCP Server
A high-performance Model Context Protocol (MCP) server for the USPTO Final Petition Decisions API with token-saving context reduction capabilities, user-customizable fields, and cross-MCP integration for complete patent lifecycle analysis.
[]() []() []() [](LICENSE)
📚 Documentation
| Document | Description | |----------|-------------| | [📥 Installation Guide](INSTALL.md) | Complete cross-platform setup with automated scripts | | [🔑 API Key Guide](APIKEYGUIDE.md) | Step-by-step instructions for obtaining USPTO and Mistral API keys with screenshots | | [📖 Usage Examples](USAGEEXAMPLES.md) | Function examples, workflows, and integration patterns | | [🎯 Prompt Templates](PROMPTS.md) | Detailed guide to sophisticated prompt templates for legal & research workflows | | [⚙️ Field Customization](CUSTOMIZATION.md) | Comprehensive guidance on customizing field sets for the minimal and balanced tools | | [🔒 Security Guidelines](SECURITYGUIDELINES.md) | Comprehensive security best practices | | [🛡️ Security Scanning](SECURITY_SCANNING.md) | Automated secret detection and prevention guide | | [🧪 Testing Guide](tests/README.md) | Test suite documentation and API key setup | | [⚖️ License](LICENSE) | MIT License terms and conditions |
⚡Quick Start
Windows Install
Run PowerShell as Administrator, then:
# Navigate to your user profile
cd $env:USERPROFILE
# If git is installed:
git clone https://github.com/john-walkoe/uspto_fpd_mcp.git
cd uspto_fpd_mcp
# If git is NOT installed:
# Download and extract the repository to C:\Users\YOUR_USERNAME\uspto_fpd_mcp
# Then navigate to the folder:
# cd C:\Users\YOUR_USERNAME\uspto_fpd_mcp
# The script detects if uv is installed and if it is not it will install uv - https://docs.astral.sh/uv
# Run setup script (sets execution policy for this session only):
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
.\deploy\windows_setup.ps1
## View INSTALL.md for sample script output.
# Close Powershell Window.
# If choose option to "configure Claude Desktop integration" during the script then restart Claude Desktop
The PowerShell script will:
- ✅ Check for and auto-install uv (via winget or PowerShell script)
- ✅ Install dependencies and create executable
- ✅ Prompt for USPTO API key (required) and Mistral API key (optional) or Detect if you had installed the developer's other USPTO MCPs and ask if want to use existing keys from those installation.
- 🔒 If entering in API keys, the script will automatically store API keys securely using Windows DPAPI encryption
- ✅ Ask if you have USPTO PFW MCP already installed, and if so will used the USPTO PFW MCP's default centralized proxy
- ✅ Ask if you want Claude Desktop integration configured
- 🔒 Offer secure configuration method (recommended) or traditional method (API keys in plain text in the MCP JSON file)
- ✅ Backups and then automatically merge with existing Claude Desktop config (preserves other MCP servers)
- ✅ Provide installation summary and next steps
Claude Desktop Configuration - Manual installs
{
"mcpServers": {
"uspto_fpd": {
"command": "uv",
"args": [
"--directory",
"C:/Users/YOUR_USERNAME/uspto_fpd_mcp",
"run",
"fpd-mcp"
],
"env": {
"USPTO_API_KEY": "your_actual_USPTO_api_key_here",
"MISTRAL_API_KEY": "your_mistral_api_key_here_OPTIONAL",
"CENTRALIZED_PROXY_PORT": "none",
"FPD_PROXY_PORT": "8081"
}
}
}
}
Proxy Configuration Notes:
- CENTRALIZEDPROXYPORT:
- Set to
"none"for standalone use (not recommended) - Set to 8080 When USPTO PFW MCP is installed and PFW is using its default port for the local proxy. (If PFW is not using its default port change this value to match)
- FPDPROXYPORT: Local proxy port (default:
8081, avoids conflict with PFW on8080) - Only used in standalone mode (no PFW MCP detected)
- When PFW MCP is installed, FPD automatically uses PFW's centralized proxy (port
8080), but will fall back to FPD's local proxy port - Centralized Proxy Benefits: Single port for all USPTO MCPs, 7-day persistent links, unified rate limiting
🔑 Key Features
- ⚙️User-Customizable Fields - Configure field sets through YAML without code changes
- 🎯Context Reduction - Get focused responses instead of massive API dumps (80-99% reduction)
- 📊Progressive Disclosure Strategy - Minimal discovery → Balanced analysis → Document extraction
- 🔍Petition-Type Focused Search - Specialized tools for art unit and application-specific searches
- ✨Intelligent Document Extraction - Auto-optimized hybrid extraction (free PyPDF2 → Mistral OCR fallback) with secure browser downloads
- 🆕Centralized Proxy Integration - Auto-detects PFW MCP and uses unified proxy (port 8080) for persistent links and cross-MCP downloads
- 🌐Secure Browser Downloads - Click proxy URLs to download PDFs directly while keeping API keys secure
- 👁️Advanced OCR Capabilities - Extract text from scanned PDFs using Mistral OCR when needed
- 📁 Document Bag Integration - Full petition document access alongside structured petition data
- 💰Mistral OCR Cost Transparency - Real-time cost calculation when using Mistral OCR
- 🔐 Secure API Key Storage - Optional Windows DPAPI encryption keeps API keys secure (no plain text in config files)
- 🚀High Performance - Retry logic with exponential backoff, rate limiting compliance
- 🛡️ Production Ready - Enhanced error handling, structured logging with request IDs, comprehensive security guidelines
- 💻Cross-Platform - Works seamlessly on Linux and Windows
- 📋Complete API Coverage - All USPTO Final Petition Decisions endpoints supported
- 🔗Cross-MCP Integration - Seamless integration with Patent File Wrapper and PTAB MCPs for complete lifecycle analysis
Workflow Design - All Performed by the LLM with Minimal User Guidance
User Requests the following:
- "Find all petitions filed by TechCorp and tell me about any red flags"
- "Show me revival petitions for art unit 2128 - I'm analyzing abandonment patterns"
- "Get me the petition history for application 17414168"
- "Research this company's petition track record and correlate with their PTAB challenges" - * Requires that the USPTO Patent Trial and Appeal Board (PTAB) be installed - usptoptabmcp and also recommended to ask LLM to perform a fpdgetguidance tool call prior to this or any cross MCP prompt (see quick reference chart for section selection, additional details in [Usage Examples](USAGEEXAMPLES.md))
- "Analyze this art unit's prosecution quality by looking at petition frequency and types"
LLM Performs these steps:
Step 1: Discovery (Minimal) → Step 2: Selection and Analysis (Balanced - Optional) → Step 3: Detailed Petition Review → Step 4 (Optional): Select specific petition documents for examination → Step 5 (Optional): Retrieve document_id(s) from documentBag → Step 6 (Optional): Document Extraction for LLM use and/or Download Links of PDFs for user's use
The field configuration supports an optimized research progression:
- Discovery (Minimal) returns 50-100 petitions efficiently without document bloat
- Selection and Analysis (Balanced - Optional) from the retrieved select likely petition(s). Optional balanced search(es) performed if needed in advanced workflows and/or cross-MCP workflows with Patent File Wrapper or PTAB
- Detailed Petition Review via
fpd_get_petition_detailsfor selected petitions with complete structured data for LLM's use in analysis - Select specific petition documents for examination (Optional) e.g. Decision letters, petition filings, supporting evidence
- Retrieve documentid(s) from documentBag (Optional) use
fpd_get_petition_detailswithinclude_documents=Trueto get the documentid(s) - Document Extraction for LLM use and/or Download Links (Optional) Document extraction via intelligent hybrid tool that auto-optimizes for cost and quality, and Downloads of the documents as PDFs uses URLs from an HTTP proxy that obscures the USPTO's API key from chat history
🎯 Prompt Templates
This MCP server includes sophisticated AI-optimized prompt templates for complex petition workflows. For detailed documentation on all templates, features, and usage examples, see [PROMPTS.md](PROMPTS.md).
Quick Template Overview
| Category | Templates | Purpose | | -------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- | | Legal Analysis | /company_petition_risk_assessment_PFW, /patent_vulnerability_assessment_ptab, /litigation_research_setup_pfw | Due diligence, PTAB risk assessment, litigation preparation | | Research & Prosecution | /art_unit_quality_assessment, /prosecution_quality_correlation_pfw, /revival_petition_analysis | Art unit analysis, examiner behavior, abandonment patterns | | Document Management | /petition_document_research_package, /complete_portfolio_due_diligence_pfw_ptab | Organized retrieval, comprehensive lifecycle analysis |
Key Features Across All Templates:
- Enhanced Input Processing - Flexible identifier support (petition IDs, application numbers, company names)
- Smart Validation - Automatic format detection and guidance
- Cross-MCP Integration - Seamless workflows with PFW, PTAB, and Citations MCPs
- Context Optimization - Token reduction through progressive disclosure
📊 Available Functions
Search Functions (4 Focused Tools)
| Function (Display Name) | Context Reduction | Use Case | |----------|------------------|----------| | fpd_search_petitions_minimal (Search petitions minimal) | typical 95-99% | Ultra-fast petition discovery (user-customizable minimal fields) | | fpd_search_petitions_balanced (Search petitions balanced) | typical 80-88% | Key fields for detailed analysis (no documentBag) | | fpd_search_petitions_by_art_unit (Search petitions by art unit) | typical 80-88% | Art unit quality assessment with date range filtering | | fpd_search_petitions_by_application (Search petitions by application) | typical 80-88% | Complete petition history for specific application |
Search Strategies
Specialized Search Strategies
- Art Unit Quality Assessment - Use
fpd_search_petitions_by_art_unitto analyze petition patterns across art units for examiner behavior and technology difficulty assessment - Application Petition History - Use
fpd_search_petitions_by_applicationto get complete petition timeline for specific applications during prosecution - Cross-MCP Integration - Link petition data with PFW prosecution history using
applicationNumberTextand PTAB challenges usingpatentNumber - Red Flag Identification - Focus on revival petitions (37 CFR 1.137), examiner disputes (37 CFR 1.181), and denied decisions for prosecution quality analysis
Query Examples
# Art unit quality assessment
fpd_search_petitions_by_art_unit(
art_unit="2128",
date_range="2020-01-01:2024-12-31",
limit=100
)
# Complete application petition history
fpd_search_petitions_by_application(
application_number="17896175",
include_documents=False
)
# Cross-MCP workflow example
# 1. Find applications with PFW
# 2. Check petition history for red flags
fpd_search_petitions_by_application(
application_number=app_from_pfw,
include_documents=True
)
Document Processing Functions
| Function (Display Name) | Purpose | Requirements | |----------|----------|----------| | fpd_get_petition_details (Get petition details) | Full petition details by UUID with optional documentBag | USPTOAPIKEY | | fpd_get_document_content (FPD get document content) | Intelligent document extraction with cost transparency | USPTOAPIKEY (+ MISTRALAPIKEY for OCR fallback) | | fpd_get_document_download (FPD get document download) | Secure browser-accessible download URLs | USPTOAPIKEY |
Document Processing Capabilities
- Petition Details Tier (
fpd_get_petition_details): Complete petition data retrieval - UUID-based lookup - Find petition by unique identifier
- Optional document bag - Include/exclude documents based on need
- LLM-optimized parsing - Extracts issues, rules cited, statutes, decision details
- Cross-reference fields - applicationNumberText, patentNumber, groupArtUnitNumber for cross-MCP workflows
- Intelligent Extraction Tier (
fpd_get_document_content): Hybrid auto-optimized extraction - Smart method selection - Automatically tries PyPDF2 first (free), falls back to Mistral OCR (API key needed) when needed
- Cost optimization - Only pay for OCR when PyPDF2 extraction fails quality check
- Quality detection - Automatically determines if extraction is usable or requires OCR
- Transparent reporting - Shows which method was used and associated costs
- Unified interface - Single tool handles all document types (eliminates tool confusion)
- Advanced capabilities - Extracts text from scanned documents using Mistral OCR
- Cost - Free for text-based PDFs, ~$0.001/page for scanned OCR using Mistral
- Browser Download Tier (
fpd_get_document_download): Secure proxy downloads with enhanced filenames - Click-to-download URLs that work directly in any browser
- Centralized proxy integration - If set up, auto-detects PFW MCP and uses unified proxy (port 8080) for all USPTO documents downloads, will fall back to local proxy if issues detected with centralized proxy.
- Persistent links - 7-day encrypted links when using PFW centralized proxy (work across MCP restarts)
- Unified architecture - Single HTTP proxy (port 8080) for all USPTO MCPs when PFW installed
- Standalone fallback - Local proxy (port 8081) when PFW not detected
- Enhanced filenames - Professional format with petition date, app/patent numbers, and description
- Format:
PET-2013-09-10_APP-13632078_PAT-8803593_PATENT_PROSECUTION_HIGHWAY_DECISION.pdf - Chronological sorting by petition filing date
- Instant context for patent attorneys and file management
- API key security - USPTO credentials never exposed in chat history or browser
- Rate limiting compliance - Automatic enforcement of USPTO's 5 downloads per 10 seconds
LLM Guidance Function
| Function (Display Name) | Purpose | Requirements | |----------|----------|----------| | FPD_get_guidance (FPD get guidance) | Context-efficient sectioned LLM guidance (80-95% token reduction) | None |
- #### Context-Efficient Guidance System
NEW: fpd_get_guidance Tool - Solves MCP Resources visibility problem with selective guidance sections:
🎯 Quick Refrence Chart - What section for your question?
🔍 "Find petitions by company/art unit" → tools
🚩 "Identify petition red flags" → red_flags
📄 "Download petition documents" → documents
🤝 "Correlate petitions with prosecution" → workflows_pfw
⚖️ "Analyze petition + PTAB patterns" → workflows_ptab
📊 "Citation quality + petition correlation" → workflows_citations
🏢 "Complete portfolio due diligence" → workflows_complete
📚 "Research CFR rules with Assistant" → workflows_assistant
🎯 "Ultra-minimal PFW + FPD workflows" → ultra_context
💰 "Reduce extraction costs" → cost
The tool provides specific workflows, field recommendations, API call optimization strategies
…
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: john-walkoe
- Source: john-walkoe/usptofpd_mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.