parkerhancock/patent-client-agents/ip-research
Claude Code and agent skill by parkerhancock/patent-client-agents
- community
Checking that the SKILL.md file is still in the repository.
IP data research tools for patents, trademarks, and related USPTO/EPO/JPO records. Use when: - Looking up patents by number (US, EP, WO, JP, etc.) - Searching patent databases by keyword, assignee, inventor, or classification - Getting patent family, citation, or legal status information - Checking USPTO application status, file wrapper, PTAB proceedings, or petitions - Searching office action rejections and cited references - Looking up MPEP or TMEP sections, or CPC classifications - Searching Canadian case law / IP statutes via CanLII (Federal Court, FCA, SCC, TMOB, Patent Appeal Board, Patent Act, Trademarks Act) - Searching official Canadian Federal Court case files and recorded dockets by party - Monitoring China SPC IP Court scheduled hearings and semiconductor-related court materials - Searching global IP statutes / treaties via WIPO Lex (~200 jurisdictions) - Finding patent or trademark assignments / ownership history - Fetching USPTO publication full-text data - Checking U.S. trademark status, prosecution documents, or mark images (TSDR) - Searching the U.S. trademark register (TESS) by wordmark, owner, or goods/services - Federal Circuit (CAFC) appellate opinions and PTAB/district/ITC appeals - USITC Section 337 patent enforcement investigations (EDIS) and tariff codes (HTS) - U.S. Copyright Office registrations and recorded documents (transfers, assignments)
Install
npx vskill@latest install parkerhancock/patent-client-agents/ip-researchSKILL.md
IP Research
Async Python clients for patent and IP data. All clients use async with context managers. All shared scaffolding (HTTP, cache, retry, errors) lives in mcp_data_core, provided by the separate mcp-data-core package.
Routing
| Task | Client / Module | Reference | |
|---|---|---|---|
| Patent lookup / search by keywords | google_patents.GooglePatentsClient | google_patents.md | |
| USPTO application status + file wrapper | uspto_odp.ApplicationsClient | uspto_odp.md | |
| USPTO application high-level API | patent_client_agents.uspto_applications | uspto_applications.md | |
| USPTO PTAB (IPR/PGR/CBM, ex parte appeals, interferences) | uspto_odp.PtabTrialsClient / PtabAppealsClient / PtabInterferencesClient | uspto_odp.md | |
| USPTO petitions | uspto_odp.PetitionsClient or patent_client_agents.uspto_petitions | uspto_petitions.md | |
| USPTO bulk data products | uspto_odp.BulkDataClient or patent_client_agents.uspto_bulkdata | uspto_bulkdata.md | |
| USPTO assignments | uspto_assignments.AssignmentCenterClient | uspto_assignments.md | |
| USPTO publications (PPUBS) full-text | uspto_publications.PublicSearchClient | uspto_publications.md | |
| USPTO office actions | patent_client_agents.uspto_office_actions | uspto_office_actions.md | |
| USPTO trademark status / documents (TSDR) | uspto_tsdr.TsdrClient | uspto_tsdr.md | |
| USPTO trademark search (TESS — live trademark register) | uspto_tmsearch.TmsearchClient | uspto_tmsearch.md | |
| USPTO trademark assignments | uspto_trademark_assignments.TrademarkAssignmentClient | uspto_trademark_assignments.md | |
| EPO bibliographic / family / legal events | epo_ops.EpoOpsClient | epo_ops.md | |
| JPO application status | jpo.JpoClient | jpo.md | |
| MPEP search + section lookup | patent_client_agents.mpep | mpep.md | |
| TMEP search + section lookup | patent_client_agents.tmep | tmep.md | |
| CPC lookup / search / mapping | patent_client_agents.cpc | cpc.md | |
| Canadian case law + IP statutes (FC / FCA / SCC / TMOB / Patent Appeal Board) | patent_client_agents.canlii | canlii.md | |
| Canadian Federal Court party search + live dockets | patent_client_agents.canada_federal_court | canada-federal-court.md | |
| China SPC IP Court scheduled hearings + site search | patent_client_agents.china_spc_ip_court | china-spc-ip-court.md | |
| Global IP statutes via WIPO Lex (~200 jurisdictions) | patent_client_agents.wipo_lex | wipo_lex.md | |
| EU Trade Marks (EUTM register, ~2.3M marks) | patent_client_agents.euipo_trademarks | euipo.md | |
| EU Registered Community Designs (~1.5M designs) | patent_client_agents.euipo_designs | euipo.md | |
| Federal Circuit (CAFC) opinions — appellate patent law | patent_client_agents.cafc | cafc.md | |
| USITC Section 337 patent enforcement (EDIS), DataWeb trade stats, HTS, IDS IP investigations | patent_client_agents.usitc | usitc.md | |
| US Copyright Office — registrations, recorded transfers | patent_client_agents.copyright | copyright.md |
Quick Examples
Lookup patent by number
Search USPTO applications
Find PTAB proceedings
Look up MPEP section
Check trademark status (TSDR)
Look up TMEP section
Resolve a CPC symbol
Search Canadian IP case law (CanLII)
Search Canadian Federal Court patent dockets
The Court does not publish an official open/closed field. Treat likely_pending / likely_closed as conservative docket-text inferences and unknown as unresolved, not as evidence that no case is pending.
Monitor China SPC IP Court hearings
Hearing notices are pending-hearing signals, not complete dockets. They often omit case and patent numbers, and the official site may be unreachable from some foreign DNS or cloud-egress environments.
Fetch a global IP statute via WIPO Lex
Error Handling
All clients raise typed exceptions from mcp_data_core.exceptions. ApiError and its subclasses include a path to the log file in their string representation so agents can inspect stacktraces without keeping them in context.
Exception hierarchy (from mcp_data_core.exceptions):
| Exception | When | |
|---|---|---|
NotFoundError | Resource not found (404) | |
RateLimitError | Rate limit exceeded (429); retry_after set if server supplied it | |
AuthenticationError | Bad or missing API credentials (401/403) | |
ServerError | Remote API 5xx | |
ApiError | Other HTTP errors (base for all HTTP-level errors; appends log path) | |
ParseError | Failed to parse response data | |
ConfigurationError | Missing API key / invalid config | |
ValidationError | Invalid input; also inherits ValueError | |
McpDataCoreError | Base for all typed errors |
Log file: ~/.cache/patent_client_agents/patent_client_agents.log — full tracebacks, request/response details, debug info. Read this when concise error messages aren't enough.
Environment Variables
| Variable | Required For | |
|---|---|---|
USPTO_ODP_API_KEY | All USPTO ODP clients (Applications, PTAB, BulkData, Petitions, Office Actions) | |
USPTO_TSDR_API_KEY | TSDR (trademark status / documents / images) | |
EPO_OPS_API_KEY | EPO OPS, CPC (CPC uses EPO OPS under the hood) | |
EPO_OPS_API_SECRET | EPO OPS, CPC | |
JPO_API_USERNAME | JPO client | |
JPO_API_PASSWORD | JPO client | |
CANLII_API_KEY | CanLII (Canadian courts + IP statutes); free key by request |
USPTO Publications, USPTO Assignments, USPTO Trademark Assignments, Google Patents, MPEP, TMEP, Canada Federal Court case files, China SPC IP Court hearing notices, Japan IP High Court patent and utility-model case lists, and WIPO Lex require no API key.
Cache Management
All clients cache HTTP responses to ~/.cache/patent_client_agents/ using hishel with a SQLite backend and WAL pragmas. See cache.md for TTL, invalidation, and statistics APIs.
Issue Reporting
Source: parkerhancock/patent-client-agents
Report bugs with version, minimal reproduction code, and relevant API response if applicable.
References
- google_patents.md — Full-text search, patent documents, citations
- uspto_odp.md — Applications, PTAB, bulk data, petitions
- uspto_applications.md — High-level applications API
- uspto_petitions.md — Petition decisions
- uspto_bulkdata.md — Bulk data product catalog
- uspto_office_actions.md — Office action analytics
- uspto_assignments.md — Patent assignment/ownership lookup
- uspto_publications.md — PPUBS full-text
- uspto_tsdr.md — Trademark Status & Document Retrieval
- uspto_trademark_assignments.md — Trademark ownership transfers
- epo_ops.md — EPO bibliographic, family, legal status
- jpo.md — Japan Patent Office
- japan-ip-high-court.md — Japan IP High Court pending and closed patent and utility-model case lists
- mpep.md — Manual of Patent Examining Procedure
- tmep.md — Trademark Manual of Examining Procedure
- cpc.md — CPC classification lookup
- cache.md — Cache management
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingsrc/patent_client_agents/skills/ip_research/SKILL.md
Popularity
- Repository stars
- 44
- Repository forks
- 10
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/parkerhancock/patent-client-agents/ip-research)