Skip to main content

Patent MCP Server

🚀 中国专利最准确的开源 MCP。 Give your AI agent the ability to read CN patents with real accuracy — plus global coverage.

Tests Python License MCP PyPI

An MCP (Model Context Protocol) server that gives AI agents access to patent data — CN patents with CPC-aware correction, plus US/WO global coverage. Runs locally on your machine. No external API, no subscription. Always MIT.


Why Self-Deployed

  • It's just Python. Install it, your agent uses it. No server to maintain, no credential to share.
  • No API key for 80% of use cases. Patent details and claims come straight from Google Patents public pages.
  • Your data stays local. Nothing leaves your machine except the same HTTP requests a browser would make.
  • BigQuery search is optional. Only turn it on if you need full-text search across 1.4B records.

30-Second Install

pip install deeparchi-patent-mcp

Or from source:

git clone https://github.com/deeparchi-ai/patent-mcp-server.git
cd patent-mcp-server
pip install -e .

Quick Start

After pip install, the deeparchi-patent-mcp console script is on your PATH. Add this to your agent platform's MCP config:

Claude Desktop

{
  "mcpServers": {
    "patent-mcp": {
      "command": "deeparchi-patent-mcp",
      "args": []
    }
  }
}

Cursor / Windsurf / Cline

Same config as Claude Desktop above.

Hermes Agent

mcp_servers:
  patent-mcp:
    command: "deeparchi-patent-mcp"

BigQuery is optional. Without GCP_PROJECT_ID the server starts normally and the web-backed tools work with no credentials. BigQuery-backed tools return a message explaining how to enable them. To turn them on, add an env var:

{
  "mcpServers": {
    "patent-mcp": {
      "command": "deeparchi-patent-mcp",
      "args": [],
      "env": { "GCP_PROJECT_ID": "your-gcp-project" }
    }
  }
}

Running from a source checkout

{
  "mcpServers": {
    "patent-mcp": {
      "command": "python",
      "args": ["-m", "server"],
      "cwd": "/path/to/patent-mcp-server/src"
    }
  }
}

Now ask your agent:

"Get patent US-7650331-B1 and summarize the claims."


What's Included

Tool What It Does Needs Setup?
get_patent Full patent details: classifications, citations (X/Y/A/D), inventors, assignees, family No
get_patent_claims Patent claims text — legal scope. Supports US, CN, and most countries via Google Patents No
search_patents Search 1.4B patents by keyword, CPC, assignee, country, date range Optional GCP

The first two cover 80% of use cases. Zero cost. Zero setup.

CN Patent Search (v1.7.0)

Three-layer discovery for Chinese patents:

Layer Backend Cost When
1. BigQuery Google Patents Public Data Free tier cpc=H01L + country=CN
2. Firecrawl Web search fallback 4 credits/query BigQuery cost-rejects specific CPC (e.g. H01L25/065)
3. Google Patents Detail enrichment via proxy Free All patent detail lookups
  • Keyword search works: query="芯片" + country=CN searches both English AND Chinese abstracts (v1.5.2 fix).
  • Assignee filter: assignee="BOE" + country=CN → company/city-level patent landscape.
  • CPC classification: Use parent CPC classes (H01L) for broader CN coverage; specific CPC codes (H01L25/065) trigger web fallback.
  • See SEARCH_GUIDE.md for detailed search strategy and tested CPC codes.

If you need search_patents, add a GCP project:

  1. Create a GCP project with BigQuery enabled
  2. Create a service account, download JSON key
  3. Set env vars:
    export GOOGLE_APPLICATION_CREDENTIALS="/path/to/key.json"
    export GCP_PROJECT_ID="your-project-id"
    
  4. Copy the wrapper template and fill in your paths:
    cp run.sh.example run.sh
    # Edit run.sh → set your GCP paths
    

BigQuery free tier: 1 TB/month — individual use is essentially free.


Advanced: Team Server (HTTP/SSE)

Need multiple people to share one patent-mcp instance? Start it as an HTTP server:

cp run-http.sh.example run-http.sh
# Edit → set GCP creds (skip if only using web tools)
PORT=8090 ./run-http.sh

Team members connect with:

mcp_servers:
  patent-mcp:
    url: "http://<server-ip>:8090/sse"

A systemd service template is included for production deployment.


How It Works

┌──────────────┐     ┌───────────────────────────────────────┐
│  AI Agent    │────▶│  patent-mcp-server                    │
│  (Claude,    │     │  (runs on YOUR machine)               │
│   Cursor,    │     │                                       │
│   Hermes)    │     │  search_patents:                      │
│              │     │    ┌──────────┐    ┌───────────────┐  │
│              │     │    │ BigQuery │───▶│ Firecrawl     │  │
│              │     │    │ (primary)│    │ (CN fallback) │  │
│              │     │    └──────────┘    └───────┬───────┘  │
│              │     │                           │           │
│              │     │  get_patent / get_patent_claims:      │
│              │     │    ┌──────────────────────┐           │
│              │     │    │ Google Patents (web) │           │
│              │     │    │ → BigQuery fallback  │           │
│              │     │    └──────────────────────┘           │
└──────────────┘     └───────────────────────────────────────┘
  • Web scraping for details — fast (~1.5s), free, no credentials
  • BigQuery for search — 1.4B records, CN full-text, optional
  • Firecrawl for CN fallback — kicks in when BigQuery cost-rejects specific CPC queries
  • Smart fallback — every tool tries web first, auto-falls to BigQuery if you have it

Tools Reference

get_patent

get_patent(publication_number="US-7650331-B1")

Returns: classifications, citations (X/Y/A/D prior art markers), family ID, dates, inventors, assignees. Cites prior art markers so your agent can assess novelty at a glance.

CN patent note: Google Patents web scraping provides machine-translated English data for CN patents. CPC codes from web scraping are empty (JS-rendered). For CPC, use BigQuery path.

get_patent_claims

get_patent_claims(publication_number="US-7650331-B1")

Returns: full claims text. Supports US, CN (machine-translated English), and most countries via Google Patents web scraping.

search_patents

search_patents(cpc="G06N", country="CN", after="2023-01-01", limit=5)
search_patents(assignee="TSMC", country="CN")
search_patents(query="芯片", country="CN")          # keyword search (CN: searches both EN+ZH)

Search 1.4B patents by keyword, CPC classification, assignee, country, date range. For CN patents, keyword search scans both English and Chinese abstracts.

Cost control: Queries require at least one filter (cpc/country/assignee/after). A dry-run budget guard rejects queries over 50 GB. When BigQuery rejects a CN CPC query (e.g., H01L25/065 → 256 GB), the web fallback automatically searches via Firecrawl.

See SEARCH_GUIDE.md for best practices and docs/cn-cpc-correction-table.md for tested CPC codes.


Development

pip install -e ".[dev]"

pytest tests/ -v          # 32 tests, ~1.5s
ruff check src/ tests/    # lint
mypy src/                 # type check

License

MIT — see LICENSE.


Author

DeepArchi OPC — AI agent infrastructure for enterprise architecture.

Metadata

Release files for deeparchi-patent-mcp 1.9.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deeparchi-patent-mcp 1.9.1
File Size Uploaded
deeparchi_patent_mcp-1.9.1.tar.gz 44.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for deeparchi-patent-mcp 1.9.1
File Interpreter ABI Platform
deeparchi_patent_mcp-1.9.1-py3-none-any.whl Python 3 none any Details

Total release size: 83.0 kB

Release files / deeparchi_patent_mcp-1.9.1.tar.gz

Download URL deeparchi_patent_mcp-1.9.1.tar.gz
Size 44.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7866fe8e754fa9938fe9ff9ff48673f59bd084b7d6ef4169f1f7a52995e41bbb
BLAKE2b-256 checksum
How to use checksums
a45ad39d9de4acfcbd1ebcb8cae81628a82c9d1cc26e057f03d80bed29643817
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / deeparchi_patent_mcp-1.9.1-py3-none-any.whl

Download URL deeparchi_patent_mcp-1.9.1-py3-none-any.whl
Size 38.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
087df117937ac0f40df2ae7aaa48b50f55e0d3310deac784c6a3760b73a13a5b
BLAKE2b-256 checksum
How to use checksums
bf5ba3649e0803a70ce421864e41109bb0fd733f629a9f8d6a29b7b22dc315ee
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

1.9.2

2 release files

This release

1.9.1 This release

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page