Guides Claude through a patent landscape analysis using the Espacenet patent tools. Teaches exhaustive retrieval with auto_paginate and year decomposition, landscape statistics (top applicants, filing trends, classification clusters), and progressive drill-down from summary to detail. Produces a structured landscape report with quantitative analytics. Triggers on: patent landscape, landscape analysis, patent map, technology landscape, competitive landscape, who is filing in, patent trends, filing trends, top applicants, patent analytics, technology mapping, white space analysis, patent portfolio analysis.
From patent-search-mcpnpx claudepluginhub navisbio/patent-search-mcp --plugin patent-search-mcpThis skill uses the workspace's default tool permissions.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
You are conducting a patent landscape analysis using the Espacenet patent tools. A landscape analysis maps the patent activity across a technology field to reveal who is filing, where the technology is heading, and where gaps exist.
Technology field definition
--> Build scoping CQL queries
--> Count results (size the landscape)
--> Exhaustive retrieval with auto_paginate + summary
--> Analyze: top applicants, year trends, classifications
--> Narrow into sub-segments for deeper analysis
--> Drill down on key patents/applicants
--> Structured landscape report
Work with the user to define the scope:
Translate these into CQL building blocks:
ta=)For CQL field codes, operators, and examples, load the reference: CQL Syntax Reference
Create 2-3 queries that define the landscape boundaries:
Example for "mRNA vaccine delivery":
Core: ta="mRNA" AND ta="vaccine" AND ta="lipid nanoparticle"
Broad: ta="mRNA" AND (ta="vaccine" OR ta="immunization") AND ta="delivery"
Class: ic="A61K48/" AND ta="mRNA" AND ta="nanoparticle"
Count each query first with count_only=true:
search_patents(query='ta="mRNA" AND ta="vaccine" AND ta="lipid nanoparticle"', count_only=true)
This tells you:
detail_level="compact" with auto_paginate=truedetail_level="summary" with auto_paginate=true for statistics, then narrow into segmentsAlways report the counts to the user before proceeding — the landscape size determines the entire analysis strategy.
This is where the auto_paginate and detail_level features shine.
search_patents(
query='ta="mRNA" AND ta="vaccine" AND ta="lipid nanoparticle"',
auto_paginate=true,
detail_level="summary",
max_results=5000
)
This returns aggregated statistics without flooding context:
search_patents(
query='ta="mRNA" AND ta="vaccine" AND ta="lipid nanoparticle"',
auto_paginate=true,
detail_level="compact",
max_results=2000
)
Returns title + applicant + date for every patent — enough for manual scanning.
Auto_paginate with year decomposition handles this automatically, but for better analysis, consider explicit segmentation:
# Recent 3 years in detail
search_patents(query='...', auto_paginate=true, detail_level="compact",
published_after="2023", max_results=1000)
# Earlier years in summary only
search_patents(query='...', auto_paginate=true, detail_level="summary",
published_after="2018", published_before="2022", max_results=5000)
From the summary/compact data, extract insights in these categories:
Note: Applicant names vary (e.g., "MODERNA INC", "MODERNA TX INC", "MODERNATX INC"). The tool normalizes common variants, but flag any suspected duplicates.
Based on the landscape overview, drill into specific segments:
search_patents(query='pa="MODERNA*" AND ta="mRNA" AND ta="vaccine"',
auto_paginate=true, detail_level="compact")
search_patents(query='ta="mRNA" AND ta="self-amplifying" AND ta="vaccine"',
detail_level="full")
search_patents(query='ta="mRNA" AND ta="vaccine" AND ta="lipid nanoparticle"',
published_after="2024", detail_level="full")
For the most interesting patents, get full bibliographic data:
get_patent_details(document_number="WO2023123456")
Executive Summary
Landscape Overview
Applicant Analysis
Technology Segmentation
Temporal Analysis
Key Patents
White Spaces and Opportunities
Methodology
topApplicants counts in summary mode come from the search query's scope. If you verify with a separate pa="X" AND ta="Y" query, you may get a different count because the query scope differs. Always match the exact same CQL when verifying. This is the most common source of "double counting."estimatedFamilies based on title deduplication. This is approximate — use it as a rough guide, not an exact count. For precise family counts, use get_patent_family on individual patents.auto_paginate with year decomposition handles this automatically for queries up to ~10,000+ results.ic="A61K48/" may not work as a wildcard prefix — use specific subgroups like ic="A61K48/00" or combine with ta= terms.auto_paginate retrieves fewer results than the total count (e.g., 200 of 658), the summary statistics are based on the retrieved subset only. Explicitly note this limitation in the report. Check whether non-dominant applicants from the landscape summary were missed by doing targeted pa= searches for any applicants with significant filing counts that weren't covered in the deep-dive phase.claims=, desc=, ftxt=) are unreliable for phrase searches and don't support wildcards. Use ta= for CQL filtering. For post-retrieval keyword analysis in specific patents, use search_in_patent_text.get_patent_details to verify its title, applicant, and dates. For batch efficiency, use the document_numbers array parameter to verify up to 100 patents in one call.get_patent_details and 3-5 applicant counts with targeted pa= searches as a quality gate.