Skip to content

parkerhancock/ip_tools

Repository files navigation

IP Tools

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

CI codecov Python 3.12+ License: Apache-2.0

claude plugins add github:parkerhancock/ip_tools

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, 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.

Install

claude plugins add github:parkerhancock/ip_tools

That's it. Claude Code now has access to patent data through the ip_research skill.

API Keys

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.

As a Python Library

IP Tools is also a standalone async Python library:

pip install ip-tools
from 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}")

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)                  │
├─────────────────────────────────────────────────────────────┤
│                   ip_tools Library                           │
│    ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│    │  USPTO   │  │   EPO    │  │  Google  │  │   JPO    │   │
│    │   ODP    │  │   OPS    │  │ Patents  │  │          │   │
│    └──────────┘  └──────────┘  └──────────┘  └──────────┘   │
└─────────────────────────────────────────────────────────────┘

Development

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 .

Related

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

License

Apache-2.0

About

Intellectual property data tools for AI agents

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages