Open-source · MCP · Apache-2.0
A unified Python library and MCP server over USPTO, EPO, public patent search, the MPEP, the TMEP, and CPC. Sixty-three typed tools your agent can call directly — with no seat license, no contract, and no rate-limited vendor scrape in front of the official data.
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, examination history, classifications, and the official examiner manuals — across the USPTO, the EPO, 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 TSDR trademarks | Status, prosecution documents, mark images, batch lookup |
| USPTO TM Assignments trademarks | Trademark ownership transfers from the Assignment Center |
| EPO OPS | European patents, Inpadoc families, legal events, EP Register |
| MPEP | Manual of Patent Examining Procedure — search and section lookup |
| TMEP trademarks | Trademark Manual of Examining Procedure — search and section lookup |
| CPC | Classification hierarchy lookup, search, and CPC/IPC mapping |
| JPO library only | Japanese patents, examination history, PCT national phase |
Every source ships with automatic caching, rate limiting, and retry logic — so an agent that calls the same patent twice pays the network cost once.
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 49 patent and
trademark tools (61 with JPO 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"] T["USPTO marks
TSDR · TM assignments"] E["EPO OPS · CPC"] G["Public patent search
MPEP · TMEP"] J["JPO ★ library only"] A --> M M --> L L --> U L --> T L --> E 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,E,G source class J muted
★ JPO is library-only — JPO MCP tools are not available.
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.