EPO Open Patent Services

live IPPatentsEurope

European Patent Office worldwide patent register — search, biblio, family, abstracts, claims.

5 tools
0ms auth
free tier 50 calls/day
🔑 Authentication

Platform OAuth handled by Pipeworx. Or BYO: ?_apiKey=<consumer_key>:<consumer_secret>.

Config with credentials
{
  "mcpServers": {
    "pipeworx-epo-ops": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://gateway.pipeworx.io/epo-ops/mcp?_apiKey=your_consumer_key:your_consumer_secret"
      ]
    }
  }
}

Tools

search_patents required: query

CQL search against EPO published patents.

Parameters
Name Type Description
query req string EPO CQL (ta=hydrogen, in=Tesla, pa=apple, pd>=2020, ...)
range opt string "start-end" 1-indexed, max 100/page
Try it
get_biblio required: number

Bibliographic data for a patent.

Parameters
Name Type Description
number req string
Try it
get_family required: number

INPADOC family — related applications worldwide.

Parameters
Name Type Description
number req string
Try it
get_abstract required: number

Abstract text.

Parameters
Name Type Description
number req string
Try it
get_claims required: number

Claims text.

Parameters
Name Type Description
number req string
Try it

Test with curl

The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/epo-ops/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
curl -X POST https://gateway.pipeworx.io/epo-ops/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_patents","arguments":{"query": "hello"}}}'

Use with the SDK

Install @pipeworx/sdk to call tools from any TypeScript/Node project.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("search_patents", {"query":"example"});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("european patent office worldwide patent register — search, biblio, family, abstracts, claims");