Help us improve
Share bugs, ideas, or general feedback.
From patent-search-mcp
Guides LOE patent analysis for drugs using Espacenet: identifies compound/formulation/use patents, checks expiry/SPC/PTE across jurisdictions, builds timelines.
npx claudepluginhub navisbio/ops-patent-search-mcp --plugin patent-search-mcpHow this skill is triggered — by the user, by Claude, or both
Slash command
/patent-search-mcp:loe-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are conducting a Loss-of-Exclusivity analysis using the Espacenet
Conducts Freedom-to-Operate (FTO) patent claim analysis using Espacenet tools to identify in-force patents, map claims to product features, check legal status, and produce structured risk assessments.
Performs structured freedom-to-operate triage for products/features, building claim-charts against plausible patents and flagging open questions for patent counsel review.
Access USPTO APIs for patent/trademark searches, examination history, assignments, citations, and office actions. Useful for IP analysis and prior art searches.
Share bugs, ideas, or general feedback.
You are conducting a Loss-of-Exclusivity analysis using the Espacenet patent tools. LOE analysis determines when patent protection for a drug expires across target markets, enabling generic/biosimilar entry planning or portfolio lifecycle management.
Drug / active ingredient identification
--> Search for all relevant patents (compound, formulation, method-of-use)
--> Classify patents by type and strength
--> Get legal status for each (grant, expiry, SPC/PTE)
--> Check family coverage across target jurisdictions
--> Estimate expiry dates per jurisdiction
--> Build LOE timeline
--> LOE report with earliest entry windows
Extract from the user's request:
Example: "When can a biosimilar to Keytruda enter the market?"
LOE analysis requires finding ALL patent families protecting the drug, not just the main compound patent. Search in layers:
The strongest form of protection — covers the molecule itself.
search_patents(query='ta="pembrolizumab" OR ta="Keytruda" OR ta="MK-3475"',
auto_paginate=true, detail_level="compact")
Also search by applicant + target:
search_patents(query='pa="MERCK*" AND (ta="anti-PD-1" OR ta="anti-PD1") AND ta="antibod*"',
published_after="2005", auto_paginate=true, detail_level="compact")
Cover specific formulations, dosage forms, concentrations, stabilizers.
search_patents(query='(ta="pembrolizumab" OR ta="MK-3475") AND (ta="formulation" OR ta="composition" OR ta="stable" OR ta="lyophil*")',
detail_level="full")
Cover specific therapeutic uses — can block specific indications even after compound patent expires.
search_patents(query='(ta="pembrolizumab" OR ta="anti-PD-1") AND pa="MERCK*" AND (ta="method" OR ta="treatment" OR ta="cancer")',
auto_paginate=true, detail_level="compact")
Cover production methods — relevant for biologics especially.
search_patents(query='pa="MERCK*" AND (ta="pembrolizumab" OR ta="anti-PD-1") AND (ta="process" OR ta="manufacturing" OR ta="purif*" OR ta="cell line")',
detail_level="full")
Cover the drug in combination with other agents.
search_patents(query='(ta="pembrolizumab" OR ta="anti-PD-1") AND ta="combination" AND pa="MERCK*"',
detail_level="compact", auto_paginate=true)
Organize found patents into categories:
| Category | Strength | Typical Expiry | Impact |
|---|---|---|---|
| Compound/molecule | Strongest | 20 yrs from filing + PTE/SPC | Blocks all generic/biosimilar versions |
| Formulation | Medium-Strong | 20 yrs from filing | Blocks identical formulation; design-around possible |
| Method-of-use | Medium | 20 yrs from filing | Blocks specific indication; other indications may be free |
| Manufacturing | Medium-Low | 20 yrs from filing | Blocks specific process; alternative processes possible |
| Combination | Low-Medium | 20 yrs from filing | Only blocks specific combination |
For each patent, note the priority date — this is needed for expiry estimation.
For each key patent family, check legal status:
get_patent_legal_status(document_number="EP2170959")
Look for these critical events:
For each key patent, check where it's filed and granted:
get_patent_family(document_number="EP2170959")
Build a jurisdiction coverage matrix:
| Patent Family | Priority Date | US | EP | JP | CN | Status |
|---|---|---|---|---|---|---|
| Compound (EP2170959) | 2008-07-08 | US8354509 (granted) | EP2170959 (granted) | JP5746174 | CN102245640 | In force |
| Formulation | 2015-03-01 | US10234567 | EP3456789 | — | — | In force |
| Method: NSCLC | 2013-09-13 | US9387247 | EP3043816 | JP pending | — | Mixed |
A patent only blocks you in jurisdictions where it's granted and in force.
Expiry = Priority date + 20 years
Compound patent EP2170959:
Priority date: 2008-07-08
Base expiry: 2028-07-08
SPC granted: +4.5 years → 2033-01-08
Pediatric ext: +6 months → 2033-07-08
Effective expiry: July 8, 2033
Organize all expiry dates chronologically per jurisdiction:
US Market:
2028 ─── Compound patent expires (base term)
2029 ─── Manufacturing process patent expires
2030 ─── Formulation patent expires
2033 ─── Compound patent + PTE expires ← EFFECTIVE LOE
2033 ─── Method-of-use (NSCLC) expires
2035 ─── Method-of-use (melanoma) expires ← FULL LOE
EU Market:
2028 ─── Compound patent expires (base term)
2033 ─── Compound patent + SPC + pediatric expires ← EFFECTIVE LOE
2034 ─── Formulation patent expires
Effective LOE = when the compound/composition patent expires (including extensions). This is when a generic/biosimilar with the same molecule can enter.
Full LOE = when ALL method-of-use patents expire. After this, generics can market for all approved indications.
Executive Summary
Patent Portfolio Map
Expiry Timeline
Legal Status Assessment
Generic/Biosimilar Entry Windows
Risk Factors and Uncertainties
Methodology and Limitations
claims=, desc=, ftxt= are unreliable for phrase searches and don't support wildcards. Use ta= for CQL queries, then search_in_patent_text for full-text keyword analysis of specific patents.spcOrPte returns false, it may mean "no SPC data available" rather than "no SPC exists."event_types=["grant", "spc_pte", "lapse"] and condensed=true to get a concise view of patents with many events (EP patents can have 100+ PGFP fee payment entries that obscure the important events).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.{number, date, country} objects. Use the date field for expiry calculations when available.