Skip to content

 

patent-client-agents

Give your AI agent access to the world's patent data.

CI Python 3.12+ License: Apache-2.0

Use the hosted demo

The fastest path — nothing to install. Point your MCP-speaking client at the public demo at mcp.patentclient.com:

{
  "mcpServers": {
    "patent-client-agents": {
      "url": "https://mcp.patentclient.com/mcp"
    }
  }
}

Or add a custom connector in CoWork / Claude Desktop with just the URL https://mcp.patentclient.com/mcp — no tokens to paste. On first connect you'll be sent to Google sign-in; approve and you're in. Any verified Google account works. Usage is rate-limited per account (100 MB/day, 20 MB/minute).

This is a public demo — don't send confidential material through it. See the Terms of Use.

Or install locally (Claude Code plugin)

/plugin marketplace add parkerhancock/patent-client-agents
/plugin install patent-client-agents@patent-client-agents
/reload-plugins

See docs/installation.md for all seven install modes.


What You Can Do

Ask Claude to research patents in natural language:

"Find [Company]'s recent battery patents and summarize the key innovations"

"What's the prosecution history for US Patent 11,234,567?"

"Compare [Company A] and [Company B]'s patent portfolios in mobile display technology"

"Track the legal status of EP3456789 across all designated states"

patent-client-agents connects Claude Code to USPTO, EPO, JPO, and Google Patents, giving your agent the ability to search, analyze, and report on intellectual property worldwide.

Coverage

Source What You Get
Google Patents Global search, full-text, citations, PDFs, families
USPTO ODP Applications, prosecution history, PTAB trials & appeals, petitions, bulk data
USPTO Publications Patent Public Search (PPUBS) full-text search and document retrieval
USPTO Assignments Patent ownership transfers and reel/frame lookups
USPTO Office Actions Rejection analytics, cited references, full-text OA retrieval
EPO OPS European patents, Inpadoc families, legal events, EP Register
JPO Japanese patents, examination history, PCT national phase
MPEP Manual of Patent Examining Procedure search and section lookup
CPC Classification hierarchy lookup, search, and CPC/IPC mapping

All sources include automatic caching (hishel + SQLite with WAL), rate limiting, and retry logic via law_tools_core.

Install

For Claude Code users — run these inside a Claude Code session:

/plugin marketplace add parkerhancock/patent-client-agents
/plugin install patent-client-agents@patent-client-agents
/reload-plugins

Three slash commands (not shell). You get all 63 patent MCP tools exposed to the agent. Prereq: uv on PATH — the MCP server runs under uvx so you don't pip install anything yourself.

Seven install modes are documented in docs/installation.md — Python library, Python+MCP runtime, Claude Code plugin, dev symlink, stdio MCP, Cowork remote MCP, and generic remote MCP. Pick the one that matches how you'll use it.

API keys

Variable Source Required How to get
USPTO_ODP_API_KEY USPTO ODP Most USPTO tools developer.uspto.gov (free)
EPO_OPS_API_KEY, EPO_OPS_API_SECRET EPO OPS All EPO tools developers.epo.org (free)
JPO_API_USERNAME, JPO_API_PASSWORD JPO JPO tools only j-platpat.inpit.go.jp

No API key needed: Google Patents, USPTO Publications (PPUBS), USPTO Assignments, MPEP, CPC.

Quickstart — Python library

pip install patent-client-agents
from patent_client_agents.google_patents import GooglePatentsClient

async with GooglePatentsClient() as client:
    patent = await client.get_patent_data("US10123456B2")
    print(patent.title)
    print(patent.abstract)

    results = await client.search_patents(keywords=["machine learning neural network"])
    for r in results.results:
        print(f"{r.publication_number}: {r.title}")

Detailed Coverage

Google Patents | Feature | Description | |---------|-------------| | Patent lookup | Fetch by publication number | | Full-text search | Keyword, assignee, inventor search | | Claims & description | Full-text content | | Citations | Forward and backward citations | | Patent families | Related applications | | PDF download | Full document PDFs |
USPTO Open Data Portal | Feature | Description | |---------|-------------| | **Applications** | | | Application search | Search by number, date, status | | Application details | Bibliographic data, status | | Continuity data | Parent/child relationships | | Foreign priority | Priority claims | | Assignments | Ownership records | | Attorneys | Attorney/agent of record | | Transactions | Office action history | | Adjustments | PTA/PTE data | | **PTAB Trials** | | | IPR/PGR/CBM search | Search inter partes reviews | | Trial details | Party info, status, decisions | | Trial documents | Petitions, responses, decisions | | **PTAB Appeals** | | | Appeal search | Ex parte appeals | | Appeal details | Status, decisions | | **Bulk Data** | | | Bulk downloads | XML/JSON data packages | | Full-text grants | Weekly patent grants | | Full-text applications | Weekly applications |
USPTO Assignments | Feature | Description | |---------|-------------| | Assignment search | Search by reel/frame, patent | | Assignment details | Parties, conveyance type | | Property lookup | Patents in assignment |
EPO OPS | Feature | Description | |---------|-------------| | **Published Data (Inpadoc)** | | | Patent search | CQL query search | | Family search | Search grouped by family | | Bibliographic data | Titles, abstracts, parties | | Claims | Full claim text | | Description | Full description text | | Legal events | Status changes, fees | | Patent families | INPADOC family members | | PDF download | Full document PDFs | | Number conversion | Format conversion | | **EP Register** | | | Register search | Search EP applications | | Register biblio | Detailed EP data | | Procedural steps | Prosecution history | | Register events | EPO Bulletin events | | Designated states | Validation countries | | Opposition data | Opposition proceedings | | Unitary Patent | UPP status and states | | **Classification** | | | CPC lookup | Classification hierarchy | | CPC search | Keyword search | | CPC mapping | CPC/IPC/ECLA conversion |
JPO (Japan Patent Office) | Feature | Description | |---------|-------------| | Patent progress | Application status | | Examination history | Office actions | | Documents | Filed documents | | Citations | Cited prior art | | Family info | Divisionals, priorities | | Registration | Grant details | | PCT national phase | JP national entry lookup | | Design/trademark | Similar methods available |

Architecture

┌─────────────────────────────────────────────────────────────┐
│                     Claude Code Agent                        │
├─────────────────────────────────────────────────────────────┤
│               patent-client-agents MCP Server                │
│              (Natural language → API calls)                  │
├─────────────────────────────────────────────────────────────┤
│              patent_client_agents Python library             │
│    ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│    │  USPTO   │  │   EPO    │  │  Google  │  │   JPO    │   │
│    │   ODP    │  │   OPS    │  │ Patents  │  │          │   │
│    └──────────┘  └──────────┘  └──────────┘  └──────────┘   │
└─────────────────────────────────────────────────────────────┘

Development

git clone https://github.com/parkerhancock/patent-client-agents.git
cd patent-client-agents
uv sync --group dev
uv run pytest                       # 767 tests, replays VCR cassettes
uv run ruff check . && uv run ruff format .

Tests use vcrpy to replay recorded HTTP interactions without hitting live APIs. Record modes:

uv run pytest --vcr-record=once     # Record missing cassettes
uv run pytest --vcr-record=all      # Re-record everything
uv run pytest --run-live-uspto      # Skip VCR, hit live USPTO
uv run pytest --run-live-jpo        # Skip VCR, hit live JPO

API errors follow a log-first pattern — concise messages with a path to ~/.cache/patent_client_agents/patent_client_agents.log for full stacktraces.

The shared HTTP scaffolding (BaseAsyncClient, cache, exceptions, retry, logging) ships as the law_tools_core package inside this same wheel — other libraries in the same family import it directly.

  • patent_client - The original patent data library this project builds on

License

Apache-2.0