mcpField
P
patents-mcp-server

patents-mcp-server

Local
github.com/sapientsaiOther2Updated today

About patents-mcp-server

patents-mcp-server is a TypeScript MCP server for patent research, aimed at IP landscape analysis, freedom-to-operate research, and monitoring. It combines USPTO ODP, EPO OPS, and Google BigQuery data, with tools registered only when their required API credentials are configured.

Key features

  1. 01Search USPTO applications and records
  2. 02Retrieve PTAB proceedings and documents
  3. 03Look up EPO patent families and legal status
  4. 04Search patent full text with BigQuery
  5. 05Access patent analysis prompts and resources

Use cases

  1. 01Research prior art across data sources
  2. 02Review a patent's family and legal status
  3. 03Analyze competitor portfolios or technology landscapes
  4. 04Monitor PTAB proceedings and patent citations

MCP support

The MCP server exposes patent search and retrieval tools, workflow prompts, and resources to MCP clients. Tools for a data source are enabled only when its required API credentials are configured.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"sapientsai-patents": {
"command": "npx",
"args": [
"-y",
"patents-mcp-server"
],
"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_CREDENTIALS_JSON": "<GOOGLE_CREDENTIALS_JSON>",
"GOOGLE_CLOUD_PROJECT": "<GOOGLE_CLOUD_PROJECT>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"LOG_LEVEL": "<LOG_LEVEL>",
"HOST": "<HOST>",
"PUBLIC_BASE_URL": "<PUBLIC_BASE_URL>"
}
}
}
}
Run commandnpx -y patents-mcp-server
Environment variables to set
USPTO_API_KEYSecretUSPTO Open Data Portal key (data.uspto.gov) — enables ODP, PTAB, citations and office actions
EPO_CONSUMER_KEYSecretEPO OPS consumer key (developers.epo.org) — enables international patent families and legal status
EPO_CONSUMER_SECRETSecretEPO OPS consumer secret
GOOGLE_APPLICATION_CREDENTIALSSecretPath to a GCP service-account key with bigquery.jobUser and bigquery.dataViewer — enables full-text search across 90M+ patents
GOOGLE_CREDENTIALS_JSONSecretGCP service-account key as inline JSON — the alternative to GOOGLE_APPLICATION_CREDENTIALS when no file can be mounted
GOOGLE_CLOUD_PROJECTGCP project ID billed for the BigQuery queries
TRANSPORTTransport: 'stdio' (default) or 'httpStream' for remote/Docker deployments
PORTPort to listen on when TRANSPORT is httpStream (default 8080)
LOG_LEVELLog verbosity: DEBUG, INFO (default), WARN or ERROR
HOSTInterface to bind when TRANSPORT is httpStream (default 0.0.0.0)
PUBLIC_BASE_URLBase URL used to build the /resources/{id}.pdf links that odp-download-document returns

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmpatents-mcp-server1.2.3

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project 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 SapientsAI — Building agentic AI for businesses

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.