← Back to search

io.github.malkreide/register-mcp

malkreide Scanned 22d ago

Zefix commercial register and UID lookup

B
75.1 / 100

Versions

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

Tools 9

zefix_search_companies
annotations: none low

Sucht Unternehmen im Schweizer Handelsregister (Zefix) nach Name, Kanton und Rechtsform. Gibt eine Liste von Firmen zurück mit Name, UID, Status, Rechtsform, Sitz und SHAB-Datum. Ideal für Lieferantenprüfungen, Vertragspartner-Screenings und Beschaffungs-Due-Diligence. Args: params (CompanySearchInput): Suchparameter: - name (Optional[str]): Firmenname (mind. 2 Zeichen) - canton (Optional[str]): Kanton (z.B. 'ZH') - legal_form_ids (Optional[list[int]]): Rechtsform-IDs - active_only (bool): Nur aktive Einträge (Standard: True) - search_type (str): CONTAINS, STARTS_WITH, EXACT, ENDS_WITH - max_results (int): 1–50 (Standard: 10) - offset (int): Paginierung (Standard: 0) - language (str): 'de', 'fr', 'it', 'en' - response_format (str): 'markdown' oder 'json' Returns: str: Gefundene Firmen mit Name, UID, Status, Rechtsform, Sitz, SHAB-Datum, Auszug-URL. Enthält Paginierungsinfo (hasMoreResults, offset, total).

params CompanySearchInput
zefix_get_company
annotations: none low

Ruft vollständige Firmendetails aus dem Handelsregister ab (nach interner EHRAID). Liefert: Name, UID, Rechtsform, Sitz, Status, Zweck (Gesellschaftszweck), SHAB-Publikationshistorie (letzte 5 Einträge) und Link zum kantonalen Auszug. Die EHRAID wird aus zefix_search_companies oder zefix_get_company_by_uid zurückgegeben. Args: params (CompanyByEhraIdInput): - ehraid (int): Interne Zefix-Firmen-ID - response_format (str): 'markdown' oder 'json' Returns: str: Vollständiges Firmenprofil inkl. Zweck und SHAB-Publikationen.

params CompanyByEhraIdInput
zefix_get_company_by_uid
annotations: none low

Findet eine Firma im Handelsregister anhand ihrer UID (Unternehmensidentifikationsnummer). Die UID ist die eindeutige Schweizer Unternehmens-ID (CHE-xxx.xxx.xxx), identisch mit der MwSt-Nummer. Gibt vollständige Firmendetails zurück. Args: params (CompanyByUidInput): - uid (str): UID im Format CHE-xxx.xxx.xxx oder CHExxxxxxxxxxx - response_format (str): 'markdown' oder 'json' Returns: str: Vollständiges Firmenprofil (Name, Rechtsform, Status, Zweck, SHAB-Publikationen). Enthält EHRAID für Folgeabfragen mit zefix_get_company.

params CompanyByUidInput
zefix_verify_company
annotations: none low

Schnell-Verifikation: Ist ein Unternehmen im Handelsregister eingetragen und aktiv? Gibt eine klare Ja/Nein-Antwort plus Basisdetails zurück. Ideal als erster Check vor Vertragsabschlüssen, Beschaffungen oder Subventionsvergaben. Stellt fest: - Ist die Firma im Handelsregister eingetragen? - Ist sie aktiv (EXISTIEREND) oder gelöscht? - Welche Rechtsform hat sie? - Wo ist sie domiziliert? - Gibt es mehrere ähnliche Firmen (Verwechslungsgefahr)? Args: params (VerifyCompanyInput): - name (str): Firmenname (mind. 3 Zeichen) - canton (Optional[str]): Kantonskürzel zur Eingrenzung Returns: str: Verifizierungsergebnis mit Status, Rechtsform, Sitz und Warnungen.

params VerifyCompanyInput
zefix_list_legal_forms
annotations: none low

Listet alle im Schweizer Handelsregister verwendeten Rechtsformen auf. Nützlich zur Ermittlung der legalFormId-Werte für die Filterung in zefix_search_companies. Häufige IDs: 1=Einzelunternehmen, 2=KlG, 3=AG, 4=GmbH, 5=KmG, 6=Genossenschaft, 7=Stiftung, 8=öffentlich-rechtliche Körperschaft, 9=Verein. Args: params (LegalFormsInput): - language (str): Sprache ('de', 'fr', 'it', 'en'). Standard: 'de' - response_format (str): 'markdown' oder 'json' Returns: str: Alle Rechtsformen mit ID, Name (in gewählter Sprache) und Kurzform.

params LegalFormsInput
zefix_list_municipalities
annotations: none low

Listet Schweizer Gemeinden auf und löst die `legalSeatId` einer Firma auf. **`legalSeatId` ist eine BFS-Nummer.** Sie trifft die Spalte `BFS-ID`, nicht die interne `ID` der Gemeinde. Die beiden sind bei **keiner** der 2112 Gemeinden gleich, und beide Wertebereiche überlappen sich — wer über die falsche Spalte nachschlägt, bekommt keinen Fehler, sondern eine andere, echte Schweizer Gemeinde: `legalSeatId=261` ist Zürich, über `ID` gelesen aber Aarwangen (BE); `2701` ist Basel, über `ID` gelesen Embd (VS). Deshalb macht `legal_seat_id` die Auflösung selbst, statt sie dem Aufrufer und einer Tabelle mit zwei ähnlich aussehenden Zahlenspalten zu überlassen. Args: params (MunicipalitiesInput): - legal_seat_id (Optional[int]): `legalSeatId` einer Firma → genau eine Gemeinde. - canton (Optional[str]): Kanton-Filter (z.B. 'ZH'). Ohne Filter: alle ~2'100 Gemeinden. - response_format (str): 'markdown' oder 'json' Returns: str: Gemeindeliste mit Name, Kanton, BFS-ID und Handelsregisterkreis-ID.

params MunicipalitiesInput
gazette_company_publications
annotations: none low

Alle Amtsblatt-Publikationen (SHAB + kantonal) zu einer Firmen-UID. Das Kernfeature: der Join zwischen Handelsregister und Amtsblatt über die UID. Zefix sagt, ob eine Firma existiert — das Amtsblatt sagt, was über sie publiziert wurde (HR-Mutationen, Schuldenrufe, Konkurse, Schuldbetreibungen …). Der Einstieg ist ausschliesslich die Firmen-UID (juristische Person); ein Personen-Sucheinstieg existiert bewusst nicht (siehe README «Data Protection & Scope»). Args: params (GazettePublicationsInput): - uid (str): UID CHE-XXX.XXX.XXX (Pflicht, Regex-validiert) - rubric / sub_rubric (Optional[str]): Rubrik-/Subrubrik-Filter - date_start / date_end (Optional[str]): Zeitraum YYYY-MM-DD - limit (int): 1–100 (Standard 50) - response_format (str): 'markdown' oder 'json' Returns: str: Publikationen (neueste zuerst) mit Datum, Rubrik, Titel, ID.

params GazettePublicationsInput
gazette_get_publication
annotations: none low

Einzelne Publikation inkl. amtlichem Volltext (aus dem XML, defensiv geparst). Quirk 3: Die Listen-API liefert nur meta — der eigentliche Inhalt steht nur im rubrikspezifischen XML unter /publications/{id}/xml. Pflichtfelder: meta, publicationText. Bei HR-Rubriken zusätzlich company. Alles Übrige landet best-effort in additional_fields. Args: params (GazettePublicationInput): - id (str): Publikations-ID - response_format (str): 'markdown' oder 'json' Returns: str: Volltext + Firmenangaben (falls HR) + Zusatzfelder.

params GazettePublicationInput
gazette_source_status
annotations: none low

Status beider Datenquellen (Zefix + Amtsblattportal) und Cache-Alter. Prüft die Erreichbarkeit beider Upstreams und meldet das Alter der In-Memory-Caches (Rubriken, Rechtsformen). Args: params (GazetteStatusInput): - response_format (str): 'markdown' oder 'json' Returns: str: Erreichbarkeit, Latenz und Cache-Alter je Quelle.

params GazetteStatusInput

Permissions 4

network medium
Server uses network capabilities via: httpx
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

Scan Findings 30

low
Tool 'zefix_list_legal_forms' has no annotations annotation_checker · 100%
low
Tool 'zefix_search_companies' has no annotations annotation_checker · 100%
low
Tool 'zefix_get_company' has no annotations annotation_checker · 100%
low
Tool 'zefix_get_company_by_uid' has no annotations annotation_checker · 100%
low
Tool 'zefix_verify_company' has no annotations annotation_checker · 100%
low
Tool 'zefix_list_municipalities' has no annotations annotation_checker · 100%
low
Tool 'gazette_company_publications' has no annotations annotation_checker · 100%
low
Tool 'gazette_get_publication' has no annotations annotation_checker · 100%
low
Tool 'gazette_source_status' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
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%
info
pyproject.toml metadata manifest_parser · 100%
info
Tool: zefix_search_companies manifest_parser · 90%
info
Tool: zefix_get_company manifest_parser · 90%
info
Tool: zefix_get_company_by_uid manifest_parser · 90%
info
Tool: zefix_verify_company manifest_parser · 90%
info
Tool: zefix_list_legal_forms manifest_parser · 90%
info
Tool: zefix_list_municipalities manifest_parser · 90%
info
Tool: gazette_company_publications manifest_parser · 90%
info
Tool: gazette_get_publication manifest_parser · 90%
info
Tool: gazette_source_status manifest_parser · 90%
info
Required env vars (16) manifest_parser · 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%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%