io.github.sapientsai/patents-mcp-server

Registre officiel Données et bases de données

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

Que pouvez-vous faire avec io.github.sapientsai/patents-mcp-server ?

  • 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

Installation

Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).

NPM package patents-mcp-server
Claude Code
claude mcp add patents-mcp-server -e 'USPTO_API_KEY=<your uspto_api_key>' -e 'EPO_CONSUMER_KEY=<your epo_consumer_key>' -e 'EPO_CONSUMER_SECRET=<your epo_consumer_secret>' -e 'GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS>' -e 'GOOGLE_CREDENTIALS_JSON=<your google_credentials_json>' -e 'GOOGLE_CLOUD_PROJECT=<GOOGLE_CLOUD_PROJECT>' -e 'TRANSPORT=<TRANSPORT>' -e 'PORT=<PORT>' -e 'LOG_LEVEL=<LOG_LEVEL>' -e 'HOST=<HOST>' -e 'PUBLIC_BASE_URL=<PUBLIC_BASE_URL>' -- npx -y patents-mcp-server@1.2.3
Configuration JSON (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "patents-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "patents-mcp-server@1.2.3"
            ],
            "env": {
                "USPTO_API_KEY": "<your uspto_api_key>",
                "EPO_CONSUMER_KEY": "<your epo_consumer_key>",
                "EPO_CONSUMER_SECRET": "<your epo_consumer_secret>",
                "GOOGLE_APPLICATION_CREDENTIALS": "<GOOGLE_APPLICATION_CREDENTIALS>",
                "GOOGLE_CREDENTIALS_JSON": "<your 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>"
            }
        }
    }
}

Variables d'environnement

  • USPTO_API_KEY secret USPTO Open Data Portal key (data.uspto.gov) — enables ODP, PTAB, citations and office actions
  • EPO_CONSUMER_KEY secret EPO OPS consumer key (developers.epo.org) — enables international patent families and legal status
  • EPO_CONSUMER_SECRET secret EPO OPS consumer secret
  • GOOGLE_APPLICATION_CREDENTIALS Path to a GCP service-account key with bigquery.jobUser and bigquery.dataViewer — enables full-text search across 90M+ patents
  • GOOGLE_CREDENTIALS_JSON secret GCP service-account key as inline JSON — the alternative to GOOGLE_APPLICATION_CREDENTIALS when no file can be mounted
  • GOOGLE_CLOUD_PROJECT GCP project ID billed for the BigQuery queries
  • TRANSPORT Transport: 'stdio' (default) or 'httpStream' for remote/Docker deployments
  • PORT Port to listen on when TRANSPORT is httpStream (default 8080)
  • LOG_LEVEL Log verbosity: DEBUG, INFO (default), WARN or ERROR
  • HOST Interface to bind when TRANSPORT is httpStream (default 0.0.0.0)
  • PUBLIC_BASE_URL Base URL used to build the /resources/{id}.pdf links that odp-download-document returns

Documentation

Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.

Sommaire
  1. patents-mcp-server
  2. Data Sources
  3. Quick Start
  4. Configuration
  5. Tools
  6. Prompts
  7. Resources
  8. Development
  9. Architecture
  10. License
  11. Acknowledgments

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

Questions fréquentes

Qu'est-ce que io.github.sapientsai/patents-mcp-server ?

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

Comment installer io.github.sapientsai/patents-mcp-server ?

Il s'exécute sur votre machine. Dans Claude Code : claude mcp add patents-mcp-server -e 'USPTO_API_KEY=<your uspto_api_key>' -e 'EPO_CONSUMER_KEY=<your epo_consumer_key>' -e 'EPO_CONSUMER_SECRET=<your epo_consumer_secret>' -e 'GOOGLE_APPLICATION_CREDENTIALS=<GOOGLE_APPLICATION_CREDENTIALS>' -e 'GOOGLE_CREDENTIALS_JSON=<your google_credentials_json>' -e 'GOOGLE_CLOUD_PROJECT=<GOOGLE_CLOUD_PROJECT>' -e 'TRANSPORT=<TRANSPORT>' -e 'PORT=<PORT>' -e 'LOG_LEVEL=<LOG_LEVEL>' -e 'HOST=<HOST>' -e 'PUBLIC_BASE_URL=<PUBLIC_BASE_URL>' -- npx -y patents-mcp-server@1.2.3. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.

Faut-il une clé API pour io.github.sapientsai/patents-mcp-server ?

Oui. Il attend USPTO_API_KEY, EPO_CONSUMER_KEY, EPO_CONSUMER_SECRET, GOOGLE_CREDENTIALS_JSON, à renseigner dans sa configuration.

io.github.sapientsai/patents-mcp-server est-il open source ?

Oui. Son code est sur GitHub sous licence MIT.

Qui maintient io.github.sapientsai/patents-mcp-server ?

Il est publié par sapientsai. AI.tn le référence sans le maintenir ni le recommander.

Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.