About
A MCP server for European Patent office ops services
README
A server that exposes the European Patent Office's Open Patent Services API as an MCP (Model Context Protocol) server using the fastMCP library.
Features
- MCP-compatible server for accessing EPO OPS services
- Built-in authentication, throttling, and caching
- Automatic API documentation
- Docker support for easy deployment
- Dependency management with
uvfor fast installation - Proper validation using Pydantic models
Prerequisites
- Python 3.8+
- EPO OPS API credentials (key and secret)
uvpackage manager (optional but recommended)
Installation
Option 1: Using uv (Recommended)
Clone the repository:
git clone <repository-url> cd epo-ops-mcp-serverInstall
uvif you haven't already:pip install uvOr follow the official installation guide
Install dependencies with
uv:uv sync
Usage
Set up environment variables: Create a
.envfile with your EPO OPS credentials:# EPO OPS API credentials (required) EPO_OPS_KEY=key EPO_OPS_SECRET=secret Server settings (optional) SERVER_HOST=0.0.0.0 SERVER_PORT=8000 # Cache settings (optional) CACHE_ENABLED=True CACHE_PATH=/var/tmp/epo-ops-server/cache.dbmStart the server:
python main.pyOr with
uv:uv run python main.py
MCP client configuration
"mcpServers": {
"epo-ops-mcp-server": {
"command": "uv",
"args": [
"run",
"python",
"main.py"
],
"cwd": "path to epo-ops-mcp-server",
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "debug"
},
"disabled": false,
"autoApprove": []
}
}
MCP Tools
The server exposes the following tools that can be used by MCP clients:
get_published_data- Retrieve published patent datasearch_published_data- Search published patent dataget_family- Retrieve patent family dataget_legal- Retrieve legal status informationconvert_number- Convert patent number formatsget_register- Retrieve European Patent Register datasearch_register- Search European Patent Registerget_image- Retrieve patent images
Number Formats
The EPO OPS API supports different patent number formats:
- Epodoc Format: A single string that combines country, number, and kind code (e.g., "WO2025160170" or "US5444451A")
- Docdb Format: Separate fields for country code, number, and kind code (e.g., "WO", "2025160170", "A1")
When using the tools, you can provide patent numbers in either format:
# Epodoc format
{
"number": "WO2025160170",
"kind_code": "A1"
}
# Docdb format
{
"country_code": "WO",
"number": "2025160170",
"kind_code": "A1"
}
The server now uses Pydantic models to validate the input data, ensuring that the correct format is used for each type of request. This provides better type safety and clearer error messages when invalid data is provided.
Configuration
The server can be configured using environment variables:
| Variable | Description | Default |
|---|---|---|
EPO_OPS_KEY |
EPO OPS API key | Required |
EPO_OPS_SECRET |
EPO OPS API secret | Required |
SERVER_HOST |
Server host | 0.0.0.0 |
SERVER_PORT |
Server port | 8000 |
CACHE_ENABLED |
Enable caching | True |
CACHE_PATH |
Cache file path | /var/tmp/epo-ops-server/cache.dbm |
Development
For development, you can install the dev dependencies:
With uv:
uv sync --extra=dev
With pip:
pip install -e .[dev]
Installing Epo Ops
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/JIBSN/epo-ops-mcp-serverFAQ
Is Epo Ops MCP free?
Yes, Epo Ops MCP is free — one-click install via Unyly at no cost.
Does Epo Ops need an API key?
No, Epo Ops runs without API keys or environment variables.
Is Epo Ops hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Epo Ops in Claude Desktop, Claude Code or Cursor?
Open Epo Ops on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Epo Ops with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
