Skip to main content

MCP server for Swiss intellectual property data (trademarks, patents, SPC) via the IGE/IPI Swissreg API

Project description

swiss-ip-mcp

MCP-Server für Schweizer Immaterialgüterrechts-Daten (IGE/IPI)

CI Python License: MIT

🇬🇧 English version → README_EN.md


Übersicht

swiss-ip-mcp ist ein Model Context Protocol (MCP)-Server, der KI-Modellen strukturierten, sprachgesteuerten Zugriff auf das Schweizer Schutzrechtsregister Swissreg des Eidgenössischen Instituts für Geistiges Eigentum (IGE/IPI) ermöglicht.

Er ist der Nachfolger von patent-mcp und deckt alle verfügbaren Domänen der Swissreg Datadelivery API ab: Marken, Patente, Patentpublikationen und Ergänzende Schutzzertifikate (ESZ/SPC).

Dieser Server ist modell-agnostisch. Er funktioniert mit Claude, GPT-4, Llama und jedem anderen MCP-kompatiblen Client – nicht nur mit Claude Desktop.


Anwendungsbeispiele

Die eigentliche Stärke liegt in der Sprachsteuerung. Statt manuell im Register zu suchen, stellt man einfach eine Frage:

«Welche Marken hat die Stadt Zürich beim IGE eingetragen?»

«Ist der Name ‹Lernstadt Zürich› als Marke in der Schweiz geschützt?»

«Welche Unternehmen aus der Pharmabranche haben in den letzten sechs Monaten Schweizer Patente eingereicht?»

«Zeig mir alle Markenanmeldungen im Bildungsbereich (Nizza-Klasse 41) seit Januar 2025.»

«Welche ergänzenden Schutzzertifikate hält Novartis in der Schweiz?»


Abgedeckte Domänen

Domäne Beschreibung
Marken Schweizer Markenregister – Anmeldung, Schutz, Inhaber, Nizza-Klassen
Patente CH-Patente – Anmeldung, Erteilung, IPC-Klassen, Anmelder, Erfinder
Patentpublikationen Offizielle Patentpublikationen im Schweizerischen Bundesblatt
ESZ / SPC Ergänzende Schutzzertifikate für Arzneimittel und Pflanzenschutzmittel

Hinweis: Eine Designsuche ist in der Swissreg Datadelivery API noch nicht verfügbar.


Tools (11)

Tool Funktion
swiss_ip_search_trademarks Markensuche nach Freitext (Wildcard * möglich)
swiss_ip_get_trademark Marke anhand Registernummer abrufen
swiss_ip_search_trademarks_by_owner Alle Marken eines Inhabers finden
swiss_ip_search_trademarks_by_class Marken nach Nizza-Klasse filtern
swiss_ip_search_patents Patentsuche nach Freitext
swiss_ip_get_patent Patent anhand Nummer abrufen
swiss_ip_search_patents_by_applicant Patente eines Anmelders oder Erfinders finden
swiss_ip_search_patent_publications Patentpublikationen durchsuchen
swiss_ip_search_spc ESZ/SPC-Suche (Pharma und Pflanzenschutz)
swiss_ip_search_recent_filings Eintragungen nach Datumsbereich filtern (alle Domänen)
swiss_ip_get_quota Verbleibendes API-Datenkontingent prüfen

Architektur

KI-Client (Claude Desktop, Cursor, VS Code + Continue, …)
         │
         │  MCP (stdio oder SSE)
         ▼
   swiss-ip-mcp
         │
         │  HTTPS + OAuth2 (IGE IDP)
         ▼
  Swissreg Datadelivery API
  https://www.swissreg.ch/public/api/v1
         │
         ├── TrademarkSearch
         ├── PatentSearch
         ├── PatentPublicationSearch
         ├── SPCSearch
         └── UserQuota

Transportmodi

Transport Einsatz Konfiguration
stdio Claude Desktop, lokale Entwicklung Standard (kein Zusatzaufwand)
SSE Cloud-Deployment, Render.com MCP_TRANSPORT=sse

Voraussetzungen

  1. IGE-Zugangsdaten (kostenlos): Die Nutzungsbedingungen unterschreiben und per Post an das IGE senden. Nach Eingang erhält man Benutzername und Passwort.
  2. Python 3.11 oder neuer
  3. uv (empfohlen) oder pip

Installation

# Direkt ausführen mit uv (empfohlen, keine lokale Installation nötig)
uvx swiss-ip-mcp

# Lokale Entwicklungsinstallation
git clone https://github.com/malkreide/swiss-ip-mcp
cd swiss-ip-mcp
pip install -e ".[dev]"

Konfiguration

Umgebungsvariablen

export IGE_USERNAME="dein_benutzername"
export IGE_PASSWORD="dein_passwort"

Claude Desktop

Datei öffnen:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "swiss-ip": {
      "command": "uvx",
      "args": ["swiss-ip-mcp"],
      "env": {
        "IGE_USERNAME": "dein_benutzername",
        "IGE_PASSWORD": "dein_passwort"
      }
    }
  }
}

Cloud / Render.com (SSE-Transport)

MCP_TRANSPORT=sse PORT=8000 IGE_USERNAME=... IGE_PASSWORD=... swiss-ip-mcp

Tests

# Unit-Tests (ohne Zugangsdaten)
PYTHONPATH=src pytest tests/ -v

# Mit Live-Tests gegen die echte API
IGE_USERNAME=... IGE_PASSWORD=... PYTHONPATH=src pytest tests/ -v

Der CI-Workflow läuft auf Python 3.11, 3.12 und 3.13.


Verwandte Server

Server Inhalt
zurich-opendata-mcp Stadt Zürich Open Data (CKAN, Wetter, Parking, Geodaten)
fedlex-mcp Schweizer Bundesrecht via Fedlex SPARQL
swiss-transport-mcp ÖV-Daten, Störungen, Billette, Zugformationen
swiss-road-mobility-mcp Shared Mobility, E-Ladestationen, Verkehrsdaten
global-education-mcp UNESCO / OECD Bildungsdaten
patent-mcp ⚠️ Veraltet – durch diesen Server ersetzt

Lizenz

MIT © 2026 malkreide

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swiss_ip_mcp-1.0.0.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

swiss_ip_mcp-1.0.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file swiss_ip_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: swiss_ip_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for swiss_ip_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 5c1573c3b304a560b355756601f37ca953b224cae206fc4c9760ff583f08f1a1
MD5 cbe727ae4eda83c7de96a76a2fdc891d
BLAKE2b-256 227f8ae1e8af41b923c4bd842a98d69e26b8741f3d373a053c965809edc96bc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for swiss_ip_mcp-1.0.0.tar.gz:

Publisher: publish.yml on malkreide/swiss-ip-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file swiss_ip_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: swiss_ip_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for swiss_ip_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 edaa6cae34f77ba6eb0c5143f806695c8c37818b5a5d0abd8263e17b291f74d5
MD5 06ae7c7ed448f169b24558b24e9bf475
BLAKE2b-256 a122da72d21dd1aba4c5d9b85549d79c23b6cd29b978904447515f39c5d905a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for swiss_ip_mcp-1.0.0-py3-none-any.whl:

Publisher: publish.yml on malkreide/swiss-ip-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page