Ein Model Context Protocol Server für die Patentrecherche – entwickelt für das Schulamt der Stadt Zürich als Teil des MCP-Portfolios.
Ermöglicht KI-Agenten den strukturierten Zugriff auf 130+ Millionen Patentdokumente weltweit über das EPO Open Patent Services API sowie Schweizer Patentdaten direkt vom IGE/Swissreg.
Model-agnostisch – funktioniert mit Claude Desktop, Cursor, Windsurf, VS Code + Continue, LibreChat, Cline und selbst-gehosteten Modellen via mcp-proxy.
| Tool | Funktion |
|---|---|
patent_search |
Volltextsuche (Titel, Abstract, Klasse, Anmelder, Erfinder) |
patent_bibliography |
Bibliographische Daten: Titel, Anmelder, Erfinder, Abstract, Klassifikationen |
patent_abstract |
Zusammenfassung einer Erfindung (150-250 Wörter) |
patent_claims |
Patentansprüche – das rechtlich bindende Herzstück |
patent_description |
Technische Beschreibung / Spezifikation |
patent_family |
INPADOC-Patentfamilie – alle verwandten Anmeldungen weltweit |
patent_legal_status |
Rechtsstand (Ist das Patent noch in Kraft?) |
patent_register |
EP-Register-Informationen (Verfahrensstatus, benannte Staaten) |
| Tool | Funktion |
|---|---|
swiss_patent_search |
Volltextsuche in CH-Patenten und EP-Patenten mit Wirkung CH/LI |
swiss_patent_detail |
Detail-Abfrage direkt aus dem Schweizer Patentregister |
patents://search-syntax– EPO Suchsyntax-Referenzpatents://sources– Übersicht Patentdatenquellenpatents://classification-guide– CPC-Klassifikationssystem erklärt
prior_art_search– Systematische Stand-der-Technik-Recherchetechnology_landscape– Technologie-Landschaftsanalysepatent_explained– Patent in einfacher Sprache erklären
- Python 3.10+ (3.12 empfohlen)
- uv für Dependency Management
- EPO OPS API-Key (kostenlos, 4 GB/Monat)
git clone https://github.com/schulamt-zh/patent-mcp-server.git
cd patent-mcp-serveruv sync- Registriere dich kostenlos bei EPO OPS
- Erstelle unter "My Apps" eine neue Anwendung
- Kopiere Consumer Key und Consumer Secret
cp .env.example .env
# Trage deine Keys in .env einuv run patent-mcp-server
# Sollte ausgeben: "Starting Patent MCP Server (EPO OPS + IGE)"Füge in claude_desktop_config.json hinzu:
{
"mcpServers": {
"patents": {
"command": "uv",
"args": [
"--directory",
"/pfad/zu/patent-mcp-server",
"run",
"patent-mcp-server"
]
}
}
}Einfache Suche:
"Suche nach Patenten zu maschinellem Lernen in der Bildung" → Nutzt
patent_searchmitta=machine learning AND ta=education
Patent verstehen:
"Erkläre mir Patent EP3456789 in einfacher Sprache" → Nutzt
patent_bibliography+patent_abstract+patent_claims
Stand der Technik:
"Gibt es bereits Patente für einen KI-gestützten Stundenplan-Optimierer?" → Nutzt den
prior_art_searchPrompt-Workflow
Rechtsstand prüfen:
"Ist das Patent CH712345 noch in Kraft?" → Nutzt
patent_legal_status
| Quelle | Abdeckung | Auth | Kosten |
|---|---|---|---|
| EPO OPS | 130+ Mio. Dokumente weltweit | OAuth2 (Key+Secret) | Kostenlos (4 GB/Monat) |
| IGE/Swissreg | CH-Patente + EP mit Wirkung CH/LI | OpenID Connect | Kostenlos (Nutzungsbedingungen) |
| Espacenet | Selbe Daten wie EPO, Web-Interface | – | Kostenlos |
- Read-Only: Der Server liest nur Daten, er schreibt oder verändert nichts
- Keine Personendaten: Patentdaten sind öffentlich zugängliche Informationen
- Rate Limiting: Eingebautes Token-Management und Retry-Logik für EPO-Quotas
- Kein Rechtsrat: Der Server weist explizit darauf hin, dass Ergebnisse keine Rechtsberatung darstellen
Claude / LLM Host
│
▼
MCP Client (stdio / SSE)
│
▼
Patent MCP Server
│
├── EPO OPS API (OAuth2)
│ ├── Published Data Search
│ ├── Bibliography / Abstract / Claims / Description
│ ├── INPADOC Family
│ ├── INPADOC Legal Status
│ └── EP Register
│
└── IGE/Swissreg API (OpenID Connect)
├── PatentSearch
└── PatentDetail
pip install -e ".[dev]"
python -m pytest tests/ -vruff check .
ruff format --check .# Voraussetzung: EPO Keys in .env
PYTHONPATH=. python tests/smoke_epo.py --verboseMIT
Keine Rechtsberatung. Für verbindliche Auskünfte: IGE oder Patentanwalt.