Skip to main content

Intellectual property research toolkit for AI agents — patents, trademarks, and prosecution data from USPTO, EPO, JPO, Google Patents, MPEP, and CPC

Project description

patent-client-agents

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

CI codecov 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 Tesla's recent battery patents and summarize the key innovations"

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

"Compare Apple and Samsung'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.

Related

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

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

patent_client_agents-0.5.0.tar.gz (5.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

patent_client_agents-0.5.0-py3-none-any.whl (513.9 kB view details)

Uploaded Python 3

File details

Details for the file patent_client_agents-0.5.0.tar.gz.

File metadata

  • Download URL: patent_client_agents-0.5.0.tar.gz
  • Upload date:
  • Size: 5.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for patent_client_agents-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c7aa3377cec7b588688239d3178f33ab777b5334d07b18edfd1911cd7d190cea
MD5 e071f40cea11a587280bd246644b9449
BLAKE2b-256 b8a465fda6a70b9b1f4c7c3a5e3857d0684c713b980a9c24cf400e9f9a7e6f6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for patent_client_agents-0.5.0.tar.gz:

Publisher: publish.yml on parkerhancock/patent-client-agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file patent_client_agents-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for patent_client_agents-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7b3545ed78d17f0fe44e5412e5cdc1cab24ca82921b89cd7bf3bd8d8db691ca0
MD5 cda7f9e93e770e9c7a5983db18b08702
BLAKE2b-256 40e5d340f589ea98c905743f183d0249737a7ceb6bdfd58e6f0495d22bff1df9

See more details on using hashes here.

Provenance

The following attestation bundles were made for patent_client_agents-0.5.0-py3-none-any.whl:

Publisher: publish.yml on parkerhancock/patent-client-agents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page