Back to Browse

Patents MCP Server

Developer ToolsModerate5.3MCP RegistryLocal
Free

Server data from the Official MCP Registry

Patent intelligence — USPTO Open Data, PTAB, EPO OPS and BigQuery full-text search.

About

Patent intelligence — USPTO Open Data, PTAB, EPO OPS and BigQuery full-text search.

Security Report

5.3
Moderate5.3Moderate Risk

The visible code is mostly generated OpenAPI type definitions, so most tool implementations, auth handling, and the download proxy logic could not be audited because the source is truncated. The main concerns are an HTTP transport bound to 0.0.0.0 with no visible authentication, and an odp-download-document tool that proxies authenticated fetches using the server's USPTO key without visible URL validation. Credentials are read from environment variables and no hardcoded secrets or malicious patterns were found in the visible code. Supply chain analysis found 2 known vulnerabilities in dependencies (0 critical, 1 high severity). Package verification found 1 issue.

5 files analyzed · 8 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

File System Read

Reads files on your machine. Normal for tools that analyze or process local data.

network_listen

Check that this permission is expected for this type of plugin.

What You'll Need

Set these up before or after installing:

USPTO Open Data Portal key (data.uspto.gov) — enables ODP, PTAB, citations and office actionsRequired

Environment variable: USPTO_API_KEY

EPO OPS consumer key (developers.epo.org) — enables international patent families and legal statusRequired

Environment variable: EPO_CONSUMER_KEY

EPO OPS consumer secretRequired

Environment variable: EPO_CONSUMER_SECRET

Path to a GCP service-account key with bigquery.jobUser and bigquery.dataViewer — enables full-text search across 90M+ patentsOptional

Environment variable: GOOGLE_APPLICATION_CREDENTIALS

GCP service-account key as inline JSON — the alternative to GOOGLE_APPLICATION_CREDENTIALS when no file can be mountedRequired

Environment variable: GOOGLE_CREDENTIALS_JSON

GCP project ID billed for the BigQuery queriesOptional

Environment variable: GOOGLE_CLOUD_PROJECT

Transport: 'stdio' (default) or 'httpStream' for remote/Docker deploymentsOptional

Environment variable: TRANSPORT

Port to listen on when TRANSPORT is httpStream (default 8080)Optional

Environment variable: PORT

Log verbosity: DEBUG, INFO (default), WARN or ERROROptional

Environment variable: LOG_LEVEL

Interface to bind when TRANSPORT is httpStream (default 0.0.0.0)Optional

Environment variable: HOST

Base URL used to build the /resources/{id}.pdf links that odp-download-document returnsOptional

Environment variable: PUBLIC_BASE_URL

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-sapientsai-patents-mcp-server": {
      "env": {
        "HOST": "your-host-here",
        "PORT": "your-port-here",
        "LOG_LEVEL": "your-log-level-here",
        "TRANSPORT": "your-transport-here",
        "USPTO_API_KEY": "your-uspto-api-key-here",
        "PUBLIC_BASE_URL": "your-public-base-url-here",
        "EPO_CONSUMER_KEY": "your-epo-consumer-key-here",
        "EPO_CONSUMER_SECRET": "your-epo-consumer-secret-here",
        "GOOGLE_CLOUD_PROJECT": "your-google-cloud-project-here",
        "GOOGLE_CREDENTIALS_JSON": "your-google-credentials-json-here",
        "GOOGLE_APPLICATION_CREDENTIALS": "your-google-application-credentials-here"
      },
      "args": [
        "-y",
        "patents-mcp-server"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

patents-mcp-server

FastMCP TypeScript patent intelligence MCP server. 45 tools across USPTO, EPO, and Google Patents for IP landscape analysis, freedom-to-operate research, and patent monitoring.

Note: PatentsView support was removed in May 2026 — its API host search.patentsview.org was decommissioned on 2026-03-20 when PatentsView migrated to USPTO ODP as bulk-download datasets only (no live API replacement). US full-text search is now available via Google BigQuery; bibliographic data via USPTO ODP. See docs/MCP_PLAN-PatentsView-Rehoming_2026-05-30.md for the options analysis.

Data Sources

SourceToolsKey Capability
USPTO ODP30Applications, document PDF download, PTAB, citations, litigation, office actions
EPO OPS8INPADOC patent families, legal status across ~44 offices, claims/descriptions
Google BigQuery4Full-text search across 90M+ patents, citation networks, CPC analytics

Tools only register when their required API keys are configured — no broken tools cluttering the MCP client.

Quick Start

pnpm install
cp .env.example .env    # Add your API keys
pnpm build

Run via stdio (Claude Desktop / Claude Code)

node dist/index.js

Run via HTTP (remote deployment)

TRANSPORT=httpStream PORT=8080 node dist/index.js

MCP Configuration (.mcp.json)

{
  "mcpServers": {
    "patents": {
      "command": "node",
      "args": ["dist/index.js"],
      "env": {
        "USPTO_API_KEY": "${USPTO_API_KEY}",
        "EPO_CONSUMER_KEY": "${EPO_CONSUMER_KEY}",
        "EPO_CONSUMER_SECRET": "${EPO_CONSUMER_SECRET}",
        "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}",
        "GOOGLE_CLOUD_PROJECT": "${GOOGLE_CLOUD_PROJECT}"
      }
    }
  }
}

Test with MCP Inspector

npx @modelcontextprotocol/inspector node dist/index.js

Configuration

API Keys

SourceEnv Var(s)Where to Get
USPTO ODPUSPTO_API_KEYdata.uspto.gov → MyODP
EPO OPSEPO_CONSUMER_KEY + EPO_CONSUMER_SECRETdevelopers.epo.org
BigQueryGOOGLE_APPLICATION_CREDENTIALS + GOOGLE_CLOUD_PROJECTGCP Console (service account with BigQuery roles)

Missing API keys disable related tools gracefully — the server still starts with whatever sources are configured. Use the check-api-status tool to verify which sources are available.

Credential Management with envpkt

This project uses envpkt for credential management. API keys are stored as sealed (age-encrypted) packets and non-secret config as [env.*] entries in envpkt.toml. The .mcp.json references env vars via ${VAR} syntax, which are loaded by eval "$(envpkt env export)" in your shell profile.

Path Expansion

GOOGLE_APPLICATION_CREDENTIALS supports tilde (~) and environment variable ($HOME, ${HOME}) expansion via functype-os. Use paths like ~/.config/gcloud/key.json instead of absolute paths.

BigQuery Cost Notes

  • Free tier: 1TB/month of queries scanned
  • A broad full-text search across 90M patents scans ~200-300GB per query
  • Targeted queries (patent number, family, CPC with date range) scan much less
  • Every query runs a dry run first; estimated cost is included in the response

Tools

USPTO ODP (13 tools)

Official USPTO Open Data Portal — applications, prosecution history, assignments, documents.

  • odp-search-applications — Search patent applications (2001+)
  • odp-get-application / metadata / continuity / assignment / adjustment / attorney / foreign-priority / transactions / documents
  • odp-download-document — Download a file-wrapper document as a PDF (proxies the authenticated fetch through the server's key)
  • odp-search-datasets / get-dataset — Bulk data products

PTAB (7 tools)

Post-grant proceedings — IPR, PGR, CBM, ex parte appeals.

  • ptab-search-proceedings / get-proceeding / get-documents
  • ptab-search-decisions / get-decision
  • ptab-search-appeals / get-appeal

Citations & Litigation (6 tools)

Patent citations and litigation data.

  • citations-get-enriched / search / get-metrics
  • litigation-search / get-case / get-patent

EPO OPS (8 tools)

European Patent Office — international coverage, INPADOC families, legal status.

  • epo-search-patents — CQL search (title, abstract, applicant, inventor, CPC, date)
  • epo-get-biblio / abstract / claims / description — Patent document sections
  • epo-family-lookup — INPADOC family members across all jurisdictions
  • epo-legal-status — Legal status across ~44 patent offices
  • epo-number-convert — Convert between number formats

Google BigQuery (4 tools)

Full-text search across 90M+ patent documents. Replaces PPUBS for claims search.

  • bigquery-patent-search — Full-text search across titles and abstracts
  • bigquery-patent-family — Family members by INPADOC family ID
  • bigquery-citation-network — Citation graph (depth 1 or 2)
  • bigquery-cpc-analytics — Filing statistics by CPC classification

Office Actions (4 tools)

USPTO office action data (migrating to ODP in 2026).

  • office-action-get-text / search / get-citations / get-rejections

Utility (3 tools)

  • check-api-status — Health check all configured APIs
  • get-cpc-info — CPC classification lookup
  • get-status-code — USPTO status code meanings

Prompts

Six workflow prompt templates for common patent analysis tasks:

PromptPurpose
prior_art_searchMulti-source prior art search workflow
patent_validityStructured validity analysis (102/103/112)
competitor_portfolioCompetitor patent portfolio analysis
ptab_researchPTAB proceedings research (IPR/PGR/CBM)
freedom_to_operateFTO analysis methodology
patent_landscapeTechnology area landscape mapping

Resources

URIDescription
patents://cpc/{code}CPC classification info
patents://status-codesUSPTO status code definitions
patents://sourcesData source overview
patents://search-syntaxQuery syntax guide (EPO CQL, ODP, BigQuery)

Development

pnpm validate        # Format + lint + typecheck + test + build
pnpm test            # Run tests
pnpm build           # Production build
pnpm typecheck       # Type check only
pnpm codegen         # Regenerate Zod schemas from OpenAPI specs
pnpm fetch-specs     # Re-download OpenAPI specs from upstream

OpenAPI Codegen

Response schemas are generated from upstream OpenAPI specs using Hey API with the Zod plugin:

pnpm fetch-specs     # Download USPTO ODP spec
pnpm codegen         # Generate src/generated/odp/zod.gen.ts

Generated code is committed to the repo so CI doesn't need the codegen step.

Testing

Integration tests run against live APIs when credentials are available:

# Requires USPTO_API_KEY in env
pnpm test

Tests skip gracefully when API keys are absent.

Architecture

Built with FastMCP + Zod + ts-builds + functype-os.

src/
├── index.ts                    # Entry point
├── server.ts                   # FastMCP instance
├── tools/                      # 45 tools across 7 modules (conditional registration)
├── clients/                    # API clients (base, ODP, EPO, BigQuery)
├── generated/                  # Zod schemas from OpenAPI specs (Hey API codegen)
├── specs/                      # Local copies of OpenAPI specs
├── resources/                  # 4 MCP resources
├── prompts/                    # 6 prompt templates
└── lib/                        # Config, retry, errors, patent number normalization

License

MIT

Acknowledgments


Sponsored by SapientsAI — Building agentic AI for businesses

Reviews

No reviews yet

Be the first to review this server!