LegalOSS130ktracked
MCP Servers

OPS-patent-search-mcp

navisbio/OPS-patent-search-mcp

patent-search-mcp

MCP server for searching and retrieving patents via the EPO Open Patent Services (OPS) API. Covers the full global patent database (EP, US, WO, JP, CN, and more).

Designed for agentic use — large patent texts are handled via keyword search and paginated reading so the LLM can progressively narrow focus without dumping 50K+ characters into context.

Tools

Tool Description
search_patents CQL search across title, abstract, applicant, inventor, IPC/CPC, dates, and forward citations. Supports auto-pagination for landscape searches.
get_patent_details Title, abstract, applicants, inventors, classifications, dates, priorities. Batch mode up to 100 patents.
get_patent_claims Paginated claims text. Auto-falls back to EP/WO family equivalent if needed.
get_patent_description Paginated specification text. Same family fallback as claims.
search_in_patent_text Keyword search within claims + description. Returns snippets with paragraph indexes for targeted reading.
get_patent_family INPADOC patent family members across jurisdictions.
get_patent_legal_status Grant, opposition, lapse, withdrawal events. Determines whether a patent is in force.
get_patent_citations Backward citations (prior art) split into patent and non-patent literature.

Setup

  1. Register at developers.epo.org for a Consumer Key and Secret (free tier available).

  2. Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "patent-search-mcp": {
      "command": "npx",
      "args": ["-y", "patent-search-mcp"],
      "env": {
        "PATENT_CONSUMER_KEY": "your_consumer_key",
        "PATENT_CONSUMER_SECRET_KEY": "your_consumer_secret"
      }
    }
  }
}

CQL query syntax

The search_patents tool uses EPO's CQL (Contextual Query Language). Key fields:

ta (title+abstract), ti (title), ab (abstract), pa (applicant), in (inventor), cl (IPC+CPC), ic (IPC), cpc (CPC), pd (publication date), pn (publication number), ct (forward citations).

Operators: AND, OR, NOT (uppercase). Wildcards: * (right truncation, on ta/ti/ab/pa/in only).

ta="CRISPR" AND pd>=2023
pa="Novartis*" AND ta="cancer" AND ic="A61K"
ta="antibody drug conjugate" AND pa="Roche*"
ct="EP3750919"

Full-text fields (claims, desc, ftxt) are unreliable for phrase searches and don't support wildcards. Use ta= for CQL filtering, then search_in_patent_text for keyword analysis within specific patents.

Examples

Search for CRISPR patents by the Broad Institute since 2020 and summarise the top 5.
Is EP3750919 currently in force? Check its legal status.
Find prior art on antibody-drug conjugates targeting HER2 by Roche. Search the most relevant result for 'linker' and summarise the key claims.

Skills (Claude Code plugin)

When installed as a Claude Code plugin, five guided workflow skills become available:

Skill Description
Prior Art Search CQL query construction, result triage, keyword search in full text, claim analysis, structured reporting
FTO Analysis Identify in-force patents, map claims against product features, assess infringement risk
Patent Landscape Exhaustive retrieval with auto-pagination, top applicants, filing trends, classification analysis, white spaces
Citation Network Backward/forward citation retrieval, hub identification, technology genealogy
LOE Analysis Compound/formulation/method-of-use patents, legal status, family coverage, expiry timelines

Development

npm install
npm run build              # Compile TypeScript → dist/
npm test                   # Integration tests (requires PATENT_CONSUMER_KEY and PATENT_CONSUMER_SECRET_KEY in .env)

Scenario tests:

npx tsx integration_tests/run-all.ts

Smoketest (end-to-end via Claude Code with hallucination checks):

./smoketest/run.sh                    # all tests
./smoketest/run.sh basic-search       # single test

Run as Claude Code plugin (local dev):

claude --plugin-dir /path/to/patent-search-mcp

Privacy

This server communicates only with the EPO OPS API (ops.epo.org) using your credentials. No data is collected or sent to third parties.

License

MIT