USPTO Downloader Tool Setup#

This tutorial will Tutorial you through setting up and running MCP (Model Context Protocol) server-based tools for USPTO patent document downloading. This tool requires GPUs to run optical character recognition on the patent PDFs and extract the patent text.

Overview#

This directory contains the following MCP server implementation:

  • uspto_downloader_MCP.py: Enables patent document downloading and processing from USPTO

Prerequisites#

Hardware Requirements#

  • GPU: NVIDIA A100 or H100 GPU recommended

System Requirements#

  • Linux-based system (tested on Ubuntu/CentOS)

  • CUDA-compatible GPU drivers

  • Network access for API calls

Setup Instructions#

1. Environment Setup#

conda create -n tooluniverse-env python=3.11 -c conda-forge -y
conda activate tooluniverse-env

# Verify CUDA support
python -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}')"

2. Install ToolUniverse and MCP Dependencies#

# Install compatible NumPy version first
pip install "numpy==2.0"

# Install ToolUniverse
git clone https://github.com/mims-harvard/ToolUniverse.git
cd ToolUniverse

python -m pip install . --no-cache-dir

# Install additional dependencies
pip install requests pymupdf easyocr python-docx Pillow pyarrow fastparquet lxml aiohttp
pip install -U sentence-transformers

4. Environment Configuration#

Set Environment Variables#

Set the required environment variables on the client machine where you’re calling the MCP tool from ToolUniverse (not on the GPU server where the tool is running):

# For USPTO server (running on port 7000)
export USPTO_MCP_SERVER_HOST="your-gpu-hostname"

# USPTO API key
export USPTO_API_KEY="your-uspto-api-key"

Important: Set these variables on the machine where you’re executing your ToolUniverse code, even if the MCP server is running on a different GPU machine.

Finding your GPU hostname:

# Get current hostname by running this command on the GPU where your MCP server will run.
hostname

# Example hostnames:
# - gpu-node-01
# - compute-a100-001.cluster.edu
# - localhost (if running locally)

Running the MCP Servers#

1. Start USPTO MCP Server#

### 1. Start USPTO MCP Server on the GPU where you want it to run.
python uspto_downloader_mcp_server.py

The server will start on http://0.0.0.0:7000 but will be accessible via your GPU hostname (e.g., http://your-gpu-hostname:7000) for patent document retrieval.

Usage Examples#

For comprehensive usage examples and testing patterns, please refer to the test file:

# View MCP tool usage examples
cat ToolUniverse/src/tooluniverse/test/test_mcp_tool.py

This test file contains detailed examples of how to interact with the USPTO patent downloader MCP server, including proper API calls and parameter formatting.