Give your AI agent access to the world's patent data.
claude plugins add github:parkerhancock/ip_toolsAsk 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.
| Source | What You Get |
|---|---|
| Google Patents | Global search, full-text, citations, PDFs, families |
| USPTO ODP | Applications, prosecution history, PTAB trials & appeals, assignments, bulk data |
| EPO OPS | European patents, Inpadoc families, legal events, EP Register, CPC classification |
| JPO | Japanese patents, examination history, PCT national phase |
All sources include automatic caching, rate limiting, and retry logic.
claude plugins add github:parkerhancock/ip_toolsThat's it. Claude Code now has access to patent data through the ip_research skill.
Some data sources require API keys:
| Variable | Source | Required | How to Get |
|---|---|---|---|
USPTO_ODP_API_KEY |
USPTO ODP | Yes | Request at USPTO |
EPO_OPS_API_KEY |
EPO OPS | Yes | Register at EPO |
EPO_OPS_API_SECRET |
EPO OPS | Yes | Register at EPO |
JPO_API_USERNAME |
JPO | Yes | Register at JPO |
JPO_API_PASSWORD |
JPO | Yes | Register at JPO |
No API key needed: Google Patents, USPTO Assignments.
IP Tools is also a standalone async Python library:
pip install ip-toolsfrom ip_tools.google_patents import GooglePatentsClient
async with GooglePatentsClient() as client:
patent = await client.fetch("US10123456B2")
print(patent.title)
print(patent.abstract)
results = await client.search("machine learning neural network")
for patent in results:
print(f"{patent.publication_number}: {patent.title}")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 |
┌─────────────────────────────────────────────────────────────┐
│ Claude Code Agent │
├─────────────────────────────────────────────────────────────┤
│ IP Tools MCP Server │
│ (Natural language → API calls) │
├─────────────────────────────────────────────────────────────┤
│ ip_tools Library │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ USPTO │ │ EPO │ │ Google │ │ JPO │ │
│ │ ODP │ │ OPS │ │ Patents │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
git clone https://github.com/parkerhancock/ip_tools.git
cd ip_tools
uv sync --group dev
uv run pytest
uv run ruff check . && uv run ruff format .- patent_client - The original patent data library this project builds on
Apache-2.0