A unified Python library and MCP server over a growing list of public patent, trademark, design, and copyright data sources. Typed tools your agent can call directly — over public, official data, without a scrape layer in between.
What it does
Six real prompts. Each one fans out to between two and a dozen MCP tool calls under the hood — search, status lookup, document fetch, family resolution — without you wiring any of it.
Why it exists
Patent data lives in three places today. Official free APIs from the USPTO and EPO are powerful but raw — REST surfaces with no SDK, no caching, no agent affordances. Enterprise IP analytics platforms run five-to-six figures a year on seat-based contracts, with UI-only access and no programmable layer. The new wave of AI patent products wraps closed dashboards around the same data, sold to attorneys, with no API to call.
None of those are built for an agent. patent-client-agents
is the layer in between — a unified, async, MCP-first interface
over the free public sources, designed to be called by code (and
by AI agents calling code).
Whatrequestsis for HTTP,patent-client-agentsaims to be for patent data: a small, well-typed, batteries-included client you'd reach for without thinking.
Coverage
Patents, trademarks, designs, copyrights, examination history, classifications, examiner manuals, and tribunal case law — across the USPTO, EPO, EUIPO, UPC, UKIPO, JPO, the U.S. Federal Circuit, the ITC, the U.S. Copyright Office, CanLII, WIPO Lex, and the world's public patent indexes.
| Source | What you get |
|---|---|
| Public global search | Worldwide patent index — full text, citations, PDFs, families |
| USPTO ODP | Applications, prosecution history, PTAB trials & appeals, petitions, bulk data |
| USPTO 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 OA text |
| USPTO Bulk Data | Bulk data product catalog and download manifests |
| USPTO TSDR trademarks | Status, prosecution documents, mark images, batch lookup |
| USPTO TM Search trademarks | Live register search — wordmark, owner, goods/services, serial/registration |
| USPTO TM Assignments trademarks | Trademark ownership transfers from the Assignment Center |
| MPEP | Manual of Patent Examining Procedure — search and section lookup |
| TMEP trademarks | Trademark Manual of Examining Procedure — search and section lookup |
| CAFC | Federal Circuit opinions — date / origin filters, patent-case classifier, PDFs |
| USITC | Section 337 investigations, dockets, attachments, HTS tariffs, DataWeb trade stats |
| U.S. Copyright Office copyright | Registrations, recorded documents, transfers, assignments |
| EPO OPS | European patents, Inpadoc families, legal events, EP Register |
| EPO Guidelines | Guidelines for Examination, PCT-EPO Guidelines, Unitary Patent Guidelines |
| EPO Boards of Appeal | EPO case law — Boards of Appeal decisions |
| EPC | European Patent Convention text |
| UPC | Unified Patent Court decisions and statutes |
| UKIPO MoPP | UK Manual of Patent Practice — section lookup and search |
| EUIPO Trade Marks trademarks | EUTM register — RSQL search, full prosecution, multilingual goods & services |
| EUIPO Designs designs | Registered Community Designs — search, prosecution, product indications |
| CanLII case law | Canadian case law & statutes — FC / FCA / SCC, TMOB, PAB, Patent & Trademarks Acts |
| WIPO Lex statutes | Global IP statutes, treaties, and judgments — ~50k docs across ~200 jurisdictions |
| CPC | Classification hierarchy lookup, search, and CPC/IPC mapping |
| JPO library only | Japanese patents, designs, and trademarks — progress, registration, J-PlatPat permalinks |
Every source ships with automatic caching, rate limiting, and retry logic. View the live atlas → for the full jurisdiction-by-rights breakdown, including what's researched but not yet shipped, with opinionated verdicts.
Three ways to use it
The hosted MCP demo for the fastest path, a Claude Code plugin for local power use, or the raw Python library for your own apps.
For AI agents
Point any MCP-speaking client at the public endpoint. Sign in once with a verified account. No tokens, no setup. Rate-limited to 100 MB / day per account.
{
"mcpServers": {
"patent-client-agents": {
"url": "https://mcp.patentclient.com/mcp"
}
}
}
Open the demo
For Claude Code users
Three slash commands inside Claude Code adds 86 patent,
trademark, design, and copyright tools (111 with JPO,
CanLII, and EUIPO credentials). Server runs locally under
uvx.
/plugin marketplace add parkerhancock/patent-client-agents
/plugin install patent-client-agents@patent-client-agents
/reload-plugins
Plugin install guide
For Python developers
Import the clients directly. Pydantic v2 models, async context managers, hishel caching, tenacity retries. No MCP runtime required.
pip install patent-client-agents
async with UsptoOdpClient() as c:
app = await c.applications.get("17/000,000")
print(app.title)
Library quickstart
How it fits together
The MCP server is a translation layer over an async Python library. Use either independently — agents through MCP, humans through Python — and reach the same data.
flowchart TB A["Your AI Agent"] M["patent-client-agents MCP Server"] L["patent_client_agents Python library"] U["USPTO patents
ODP · PPUBS · OA · Assignments · Bulk"] T["USPTO marks
TSDR · TM Search · TM Assignments"] C["U.S. courts & agencies
CAFC · USITC · Copyright Office"] E["EPO & EU
OPS · Guidelines · BoA · EPC · EUIPO · UPC"] K["Other jurisdictions
UKIPO MoPP · WIPO Lex · CanLII"] G["Manuals & classification
MPEP · TMEP · CPC · Google Patents"] J["JPO ★ library only"] A --> M M --> L L --> U L --> T L --> C L --> E L --> K L --> G L --> J classDef agent fill:#0d1530,stroke:#0d1530,color:#ffffff classDef server fill:#eaf0fb,stroke:#2a5fdf,color:#0d1530,stroke-width:1.5px classDef lib fill:#2a5fdf,stroke:#2a5fdf,color:#ffffff classDef source fill:#ffffff,stroke:#d4dbe6,color:#0d1530 classDef muted fill:#f7f9fc,stroke:#d4dbe6,color:#5b6781,stroke-dasharray:3 3 class A agent class M server class L lib class U,T,C,E,K,G source class J muted
★ JPO is library-only on the public hosted demo — its MCP tools register privately when credentials are present. Same for CanLII and EUIPO.
Built right
Open source, well-tested, async-first. Nothing locked away in a SaaS dashboard.
BaseAsyncClient, one cache (hishel + SQLite), one retry policy (tenacity), one exception hierarchy.
patent_client
The original library that this project succeeds. Eight years of accumulated quirks already fixed.