← Back to search

io.github.malkreide/swiss-ip-mcp

malkreide Scanned 15d ago

IGE/IPI Swissreg trademarks, patents, SPCs

D
59.5 / 100

Versions

1.1.4latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 11

swiss_ip_search_trademarks
annotations: none low

Durchsucht das Schweizer Markenregister nach Freitext. <use_case>Markenrecherche / Brand-Monitoring per Name, Wort oder Stichwort.</use_case> Findet Marken nach Name, Markenbegriff oder Stichwort. Wildcards (*) möglich. Args: params (TrademarkSearchInput): Enthält: - query (str): Suchbegriff, z.B. 'Zürich*', 'apple', 'Bank*' - page_size (int): Ergebnisse pro Seite (1–50, Standard 10) - page_token (str): Paginierungs-Token für Folgeseiten - sort_descending (bool): Neueste zuerst (Standard True) Returns: str: Ergebnis mit source, total, count, results, next_page_token

ctx string params TrademarkSearchInput
swiss_ip_search_trademarks_by_owner
annotations: none low

Durchsucht Schweizer Marken gefiltert nach Inhaber / Anmelder. <use_case>Portfolio-Analyse: alle Marken eines Inhabers/Anmelders finden.</use_case> Nützlich für IP-Monitoring: alle Marken eines Unternehmens oder einer Person finden. Args: params (TrademarkOwnerSearchInput): Enthält: - owner_name (str): Inhabername, z.B. 'Nestlé*', 'Stadt Zürich*' - page_size (int): Ergebnisse pro Seite (1–50) - page_token (str): Paginierungs-Token Returns: str: Ergebnis mit source, total, count, results, next_page_token

ctx string params TrademarkOwnerSearchInput
swiss_ip_get_trademark
annotations: none low

Ruft eine bestimmte Schweizer Marke anhand der Anmelde-/Registernummer ab. <use_case>Detail-Abruf einer Marke per Anmelde-/Registernummer.</use_case> <important_notes>Exakter Lookup; bei unbekannter Nummer match_type="none".</important_notes> Gibt detaillierten Datensatz inkl. Status, Waren-/Dienstleistungsklassen und Registrierungshistorie zurück. Args: params (TrademarkNumberInput): Enthält: - trademark_number (str): Schweizer Markennummer, z.B. 'P-756123' Returns: str: Ergebnis mit source, total, count, results (einzelner Eintrag), next_page_token

ctx string params TrademarkNumberInput
swiss_ip_search_trademarks_by_class
annotations: none low

Durchsucht Schweizer Marken nach Nizza-Klassifikation. <use_case>Branchenanalyse: Marken einer Nizza-Klasse (1-45) finden.</use_case> Nützlich für Wettbewerbsanalysen innerhalb einer Branche. Args: params (TrademarkClassInput): Enthält: - nice_class (int): Nizza-Klasse 1–45 - query (str): Optionaler zusätzlicher Textfilter - page_size (int): Ergebnisse pro Seite - page_token (str): Paginierungs-Token Returns: str: Ergebnis mit source, total, count, results, next_page_token

ctx string params TrademarkClassInput
swiss_ip_search_patents
annotations: none low

Durchsucht das Schweizer Patentregister nach Freitext. <use_case>Technologie-/Innovationsrecherche in Schweizer Patenten.</use_case> Gibt CH-Patenteinträge inkl. Titel, Anmelder, IPC-Klassifikation, Daten und Rechtsstatus zurück. Args: params (PatentSearchInput): Enthält: - query (str): Suchbegriff, z.B. 'solar energy*', 'Novartis' - page_size (int): Ergebnisse pro Seite (1–50) - page_token (str): Paginierungs-Token - sort_descending (bool): Neueste zuerst Returns: str: Ergebnis mit source, total, count, results, next_page_token

ctx string params PatentSearchInput
swiss_ip_get_patent
annotations: none low

Ruft ein bestimmtes Schweizer Patent anhand seiner Nummer ab. <use_case>Detail-Abruf eines Patents per Nummer.</use_case> <important_notes>Exakter Lookup; kein Fuzzy-Match.</important_notes> Gibt vollständigen Datensatz inkl. IPC-Codes, Anmelder, Erfinder und Status zurück. Args: params (PatentNumberInput): Enthält: - patent_number (str): Schweizer Patentnummer, z.B. 'CH123456' Returns: str: Ergebnis mit source, total, count, results (einzelner Eintrag), next_page_token

ctx string params PatentNumberInput
swiss_ip_search_patents_by_applicant
annotations: none low

Durchsucht Schweizer Patente nach Anmelder oder Erfinder. <use_case>Innovationsmonitoring: Patente eines Anmelders/Erfinders.</use_case> Nützlich für Wettbewerbsanalyse und Innovationsmonitoring. Args: params (PatentApplicantInput): Enthält: - applicant_name (str): Name, z.B. 'ABB*', 'ETH Zürich*', 'Roche*' - page_size (int): Ergebnisse pro Seite - page_token (str): Paginierungs-Token Returns: str: Ergebnis mit source, total, count, results, next_page_token

ctx string params PatentApplicantInput
swiss_ip_search_patent_publications
annotations: none low

Durchsucht Schweizer Patentpublikationen (offizielle Veröffentlichungen). <use_case>Stand-der-Technik-Recherche ueber Patentpublikationen.</use_case> Nützlich für Stand-der-Technik-Recherchen und Innovationsmonitoring. Args: params (PatentSearchInput): Enthält: - query (str): Suchbegriff - page_size (int): Ergebnisse pro Seite - page_token (str): Paginierungs-Token Returns: str: Ergebnis mit source, total, count, results, next_page_token

ctx string params PatentSearchInput
swiss_ip_search_spc
annotations: none low

Durchsucht Schweizer Ergänzende Schutzzertifikate (ESZ / SPC). <use_case>Pharma/Pflanzenschutz: ESZ/SPC recherchieren.</use_case> ESZ verlängern den Patentschutz für Arzneimittel und Pflanzenschutzmittel. Args: params (SpcSearchInput): Enthält: - query (str): Suchbegriff, z.B. 'Novartis', 'ibuprofen*' - page_size (int): Ergebnisse pro Seite - page_token (str): Paginierungs-Token Returns: str: Ergebnis mit source, total, count, results (ESZ-Einträge), next_page_token

ctx string params SpcSearchInput
swiss_ip_search_recent_filings
annotations: none low

Durchsucht Schweizer IP-Eintragungen innerhalb eines Datumsbereichs. <use_case>Zeitraum-/Trendanalyse neuer IP-Eintragungen je Schutzrecht.</use_case> <important_notes>date_to ist exklusiv; ip_type aus 4 Werten.</important_notes> Unterstützt Marken, Patente, Patentpublikationen und ESZ. Args: params (DateRangeInput): Enthält: - ip_type (str): 'trademark', 'patent', 'patent_publication', 'spc' - date_from (str): Startdatum YYYY-MM-DD (inklusive) - date_to (str): Enddatum YYYY-MM-DD (exklusive) - page_size (int): Ergebnisse pro Seite - page_token (str): Paginierungs-Token Returns: str: Ergebnis mit source, total, count, results, next_page_token, date_range

ctx string params DateRangeInput
swiss_ip_get_quota
annotations: none low

Prüft das verbleibende Datentransfer-Kontingent der IGE Swissreg API. <use_case>Betriebsueberwachung: verbleibendes API-Kontingent pruefen.</use_case> Die API hat ein monatliches Kontingent. Damit lässt sich die Nutzung überwachen. Returns: str: JSON mit Kontingent-Details inkl. genutztem und verbleibendem Volumen

ctx string

Permissions 4

network medium
Server uses network capabilities via: httpx, urllib
filesystem low
Server uses filesystem capabilities via: open(), os, pathlib, shutil, tempfile
shell high
Server uses shell capabilities via: subprocess
env_vars low
Server uses env_vars capabilities via: os.environ, os.getenv()

Scan Findings 70

low
Tool 'swiss_ip_search_trademarks' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_trademarks_by_owner' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_get_trademark' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_trademarks_by_class' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_patents' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_get_patent' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_patents_by_applicant' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_patent_publications' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_spc' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_search_recent_filings' has no annotations annotation_checker · 100%
low
Tool 'swiss_ip_get_quota' has no annotations annotation_checker · 100%
high
Hardcoded OAuth client ID in malkreide-swiss-ip-mcp-83919d2/src/swiss_ip_mcp/server.py auth_checker · 85%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-5h2m-4q8j-pqpj) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-c2jp-c369-7pvx) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-m8x7-r2rg-vh5g) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-mxxr-jv3v-6pgc) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-rcfx-77hg-w2wv) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-rj5c-58rq-j5g5) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-rww4-4w9c-7733) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (GHSA-vv7q-7jx5-f767) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (PYSEC-2026-1364) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (PYSEC-2026-1365) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (PYSEC-2026-2474) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (PYSEC-2026-2475) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (PYSEC-2026-2476) dependency_analyzer · 95%
medium
Vulnerable dependency: fastmcp@2.0.0 (PYSEC-2026-338) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-2c2j-9gv5-cj73) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-74m5-2c7w-9w3x) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-86qp-5c8j-p5mr) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-f96h-pmfr-66vw) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-jp82-jpqv-5vv3) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-wqp7-x3pw-xc5r) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (GHSA-x746-7m8f-x49c) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2023-48) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2026-161) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2026-1941) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2026-1943) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2026-2280) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2026-2281) dependency_analyzer · 95%
medium
Vulnerable dependency: starlette@0.40.0,<2 (PYSEC-2026-248) dependency_analyzer · 95%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: swiss_ip_search_trademarks manifest_parser · 90%
info
Tool: swiss_ip_search_trademarks_by_owner manifest_parser · 90%
info
Tool: swiss_ip_get_trademark manifest_parser · 90%
info
Tool: swiss_ip_search_trademarks_by_class manifest_parser · 90%
info
Tool: swiss_ip_search_patents manifest_parser · 90%
info
Tool: swiss_ip_get_patent manifest_parser · 90%
info
Tool: swiss_ip_search_patents_by_applicant manifest_parser · 90%
info
Tool: swiss_ip_search_patent_publications manifest_parser · 90%
info
Tool: swiss_ip_search_spc manifest_parser · 90%
info
Tool: swiss_ip_search_recent_filings manifest_parser · 90%
info
Tool: swiss_ip_get_quota manifest_parser · 90%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (13) manifest_parser · 80%
medium
Hardcoded OAuth client ID in malkreide-swiss-ip-mcp-83919d2/src/swiss_ip_mcp/server.py oauth_scope_analyzer · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
No dependency files found for SBOM generation sbom_generator · 100%
high
Hardcoded Password found in malkreide-swiss-ip-mcp-83919d2/README.de.md secret_scanner · 65%
high
Hardcoded Password found in malkreide-swiss-ip-mcp-83919d2/CONTRIBUTING.de.md secret_scanner · 65%
high
Hardcoded Password found in malkreide-swiss-ip-mcp-83919d2/CONTRIBUTING.md secret_scanner · 65%
high
Hardcoded Password found in malkreide-swiss-ip-mcp-83919d2/README.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%