From patent-search-mcp
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.
How this skill is triggered — by the user, by Claude, or both
Slash command
/patent-search-mcp:fto-analysisThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are conducting a Freedom-to-Operate analysis using the Espacenet patent tools.
You are conducting a Freedom-to-Operate analysis using the Espacenet patent tools. FTO analysis determines whether a product or process can be commercialized without infringing active patent claims in the target markets.
This is the highest-stakes patent workflow. Be thorough and precise. Every claim element matters — a patent is only infringed if ALL elements of at least one independent claim are met.
Product/process description
--> Identify key features + target markets
--> Search for relevant patents (CQL)
--> Filter by legal status (in force only)
--> Read independent claims of active patents
--> Map claim elements to product features
--> Check family coverage (jurisdictions)
--> Assess risk level per patent
--> FTO risk report
Before searching, extract from the user's description:
Example: "We want to launch a PEGylated interferon-alpha formulation for hepatitis B in the US and EU"
Build targeted CQL queries covering:
For CQL syntax details, see the prior-art-search skill's CQL reference.
search_patents(query='ta="PEGylated" AND ta="interferon" AND ta="hepatitis"', count_only=true)
search_patents(query='pa="ROCHE*" AND ta="pegylated interferon"', count_only=true)
search_patents(query='ic="A61K47/60" AND ta="interferon alpha"', count_only=true)
For FTO, what matters is what's claimed, not what's described. However, CQL full-text fields (claims=, ftxt=) are unreliable for phrase searches and don't support wildcards. Use ta= for CQL queries, then search_in_patent_text to search within claims of specific patents. Note: cl= searches IPC+CPC classification, NOT claims text.
Focus on patents published in the last 20 years (patents expire ~20 years from filing).
This is the critical filter. Before reading claims in detail, check legal status:
get_patent_legal_status(document_number="EP1000000")
Classify each patent into:
| Status | Action | Why |
|---|---|---|
| Granted + In Force | Full claim analysis required | Active legal risk |
| Granted + Lapsed/Expired | Low priority — note but skip deep analysis | No longer enforceable |
| Pending Application | Monitor — check claims but flag as uncertain | May never grant; claims may narrow |
| Withdrawn/Refused | Skip | No legal risk |
Skip expired and withdrawn patents early — they cannot be infringed regardless of claim scope. This saves significant API calls on full-text reading.
For each in-force patent, read the claims:
get_patent_claims(document_number="EP1000000", max_characters=15000)
Important: Granted claims (B1/B2) are often not available via OPS full text. The tool will warn you if no claims are found. In that case:
get_patent_family to find a WO equivalent with full textFocus on independent claims only (typically claims 1, ~10-15, and ~20-25 depending on the patent). Independent claims define the broadest scope of protection.
How to identify independent claims:
For each independent claim, break it into individual elements and map against your product:
| Claim Element | Product Feature | Match? |
|---|---|---|
| "A PEGylated protein" | Our PEGylated interferon-alpha | Yes |
| "wherein the protein is interferon-beta" | Our product uses interferon-alpha | No |
| "for treating hepatitis C" | Our indication is hepatitis B | No |
Key principle: ALL elements must match for infringement. If even one element of an independent claim doesn't match your product, that claim is NOT infringed. This is called the "all-elements rule."
If you need to verify specific technical terms in the description:
search_in_patent_text(
document_number="EP1000000",
search_terms=["interferon-alpha", "interferon-beta", "IFN-alpha", "IFN-beta"]
)
Then read around the matches to understand the patent's intended scope:
get_patent_description(document_number="EP1000000", offset=42, max_characters=8000)
For patents that DO pose a risk (claim elements match), check family coverage:
get_patent_family(document_number="EP1000000")
A patent only blocks you in jurisdictions where it's been filed AND granted:
Cross-reference family members with your target markets.
For each analyzed patent, assign a risk level:
| Risk Level | Criteria |
|---|---|
| HIGH | In force, all independent claim elements match product, covers target market |
| MEDIUM | In force, most claim elements match but one element is arguable, or pending application with broad claims |
| LOW | In force but clear non-matching element in all independent claims, or only covers non-target markets |
| NONE | Expired/withdrawn, or no claim overlap |
Executive Summary
High-Risk Patents (detailed analysis for each)
Medium-Risk Patents (summary analysis)
Low-Risk / Cleared Patents
Search Coverage & Limitations
Recommendations
ta= searches (e.g., ta="hepatitis D" → 0 results; use ta="hepatitis delta" or ta="HDV"). Drug names in patent titles often use research codes (e.g., MK-3475) more than INN names (pembrolizumab), especially in earlier filings.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 before citing it in the report.npx claudepluginhub navisbio/ops-patent-search-mcp --plugin patent-search-mcpPerforms structured freedom-to-operate triage for products/features, building claim-charts against plausible patents and flagging open questions for patent counsel review.
Provides IP guidance for developers: prior art searches, patentability assessments, claim drafting, strategy advice, full patent drafts, and FTO analysis. Informational only.
Maps the IP landscape for a technology domain: patent clusters, white spaces, competitor portfolios, and freedom-to-operate risks. Use before R&D, market entry, due diligence, or patent filing.