npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@iflow-mcp/navisbio-patent-search-mcp

v0.3.0

Published

MCP server for searching and retrieving patents via the EPO Open Patent Services API. Supports CQL search, bibliographic data, paginated full-text reading, keyword search within patents, patent family lookup, legal status, and citations.

Readme

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