Intellectual property research toolkit for AI agents — patents, trademarks, and prosecution data from USPTO, EPO, JPO, Google Patents, MPEP, and CPC
Project description
IP Tools
Give your AI agent access to the world's patent data.
Inside Claude Code:
/plugin marketplace add parkerhancock/ip_tools
/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"
IP Tools 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/ip_tools
/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 │
├─────────────────────────────────────────────────────────────┤
│ IP Tools MCP Server │
│ (Natural language → API calls) │
├─────────────────────────────────────────────────────────────┤
│ patent_client_agents Library │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ USPTO │ │ EPO │ │ Google │ │ JPO │ │
│ │ ODP │ │ OPS │ │ Patents │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
Development
git clone https://github.com/parkerhancock/ip_tools.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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file patent_client_agents-0.3.1.tar.gz.
File metadata
- Download URL: patent_client_agents-0.3.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d387d53e53be019d3b5cfc869b80aff60401daebc37b8d9223ec122018d412cd
|
|
| MD5 |
93356b6e39e11b4009efd57cc3f7565d
|
|
| BLAKE2b-256 |
e7919ed45c2dda6cfac6c8b1fb067bd170d119d7dec75207e6f3e486b1a80a95
|
Provenance
The following attestation bundles were made for patent_client_agents-0.3.1.tar.gz:
Publisher:
publish.yml on parkerhancock/ip_tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
patent_client_agents-0.3.1.tar.gz -
Subject digest:
d387d53e53be019d3b5cfc869b80aff60401daebc37b8d9223ec122018d412cd - Sigstore transparency entry: 1365987702
- Sigstore integration time:
-
Permalink:
parkerhancock/ip_tools@ce884272d98136a9eb808a5786433d5de02a5b13 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/parkerhancock
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce884272d98136a9eb808a5786433d5de02a5b13 -
Trigger Event:
push
-
Statement type:
File details
Details for the file patent_client_agents-0.3.1-py3-none-any.whl.
File metadata
- Download URL: patent_client_agents-0.3.1-py3-none-any.whl
- Upload date:
- Size: 500.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f28ab6c02d17271d2f5e57d11b91e570bed7dafdf4188f4fe9201e12e2c3a654
|
|
| MD5 |
2595cc3429559cdd0692602cd3efbe32
|
|
| BLAKE2b-256 |
9f4beb777ecf97642120d0257ce2081baf76f614794e3b3fabbd0377ce3d3059
|
Provenance
The following attestation bundles were made for patent_client_agents-0.3.1-py3-none-any.whl:
Publisher:
publish.yml on parkerhancock/ip_tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
patent_client_agents-0.3.1-py3-none-any.whl -
Subject digest:
f28ab6c02d17271d2f5e57d11b91e570bed7dafdf4188f4fe9201e12e2c3a654 - Sigstore transparency entry: 1365987752
- Sigstore integration time:
-
Permalink:
parkerhancock/ip_tools@ce884272d98136a9eb808a5786433d5de02a5b13 -
Branch / Tag:
refs/tags/v0.3.1 - Owner: https://github.com/parkerhancock
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ce884272d98136a9eb808a5786433d5de02a5b13 -
Trigger Event:
push
-
Statement type: