Zefix MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zefix MCP Server show me company details for CHE-123.456.789"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
About Schwaizer
SHAPING SWITZERLAND'S AI FUTURE Empowering Swiss businesses and society through responsible AI adoption. Founded in 2025, Schwaizer is a non-profit organization dedicated to accelerating the responsible adoption of artificial intelligence across Switzerland.
Website: https://www.schwaizer.ch
Zefix MCP Server
MCP (Model Context Protocol) server providing access to Swiss Company Registry data through Zefix REST API and UID Webservice.
Features
Dual API Integration
Zefix REST API: Fast company searches and SOGC (Official Gazette) tracking
UID Webservice: Rich company data including NOGA codes, VAT details, and commercial register information
Available Tools (9 tools)
Zefix API Tools
zefix_search_companies - Search for Swiss companies using the Zefix API.
zefix_get_company_by_uid - Get detailed company information from Zefix by UID, with optional UID Webservice enrichment.
zefix_get_daily_registrations - Get all company registrations and publications from SOGC for a specific date.
zefix_get_company_publications - Get all SOGC publications for a specific company by UID.
UID Webservice Tools
uid_advanced_search - Advanced company search using the UID Webservice.
uid_validate_uid - Validate a Swiss UID.
uid_validate_vat_number - Validate a Swiss VAT number.
uid_get_company_details - Get detailed company information using only the UID Webservice.
Combined API Tools
generate_due_diligence_report - Generate a comprehensive due diligence report combining data from both Zefix and UID Webservice.
Related MCP server: bexio-mcp
Installation
npm installConfiguration
Copy .env.example to .env and configure:
# Zefix REST API Credentials (required for Zefix tools)
# Note: Credentials must be requested from Federal Registry of Commerce
ZEFIX_USERNAME=your_username
ZEFIX_PASSWORD=your_password
# UID Webservice (no auth needed for Public Services)
UID_PUBLIC_URL=https://www.uid-wse.admin.ch/V5.0/PublicServices.svc?wsdl
# Optional settings
CACHE_ENABLED=true
CACHE_TTL=3600
LOG_LEVEL=infoUsage
Running the Server
npm startExample Tool Calls
Search for companies (Zefix)
{
"name": "zefix_search_companies",
"arguments": {
"name": "Migros",
"canton": "ZH",
"activeOnly": true
}
}Get company details (Zefix + UID)
{
"name": "zefix_get_company_by_uid",
"arguments": {
"uid": "CHE-123.456.789",
"enrichWithUidData": true
}
}Validate UID (UID Webservice)
{
"name": "uid_validate_uid",
"arguments": {
"uid": "CHE-123.456.789"
}
}Generate due diligence report (Zefix + UID)
{
"name": "generate_due_diligence_report",
"arguments": {
"uid": "CHE-123.456.789",
"includePublications": true
}
}Get daily registrations (Zefix)
{
"name": "zefix_get_daily_registrations",
"arguments": {
"date": "2025-11-15"
}
}API Documentation
Zefix REST API
Base URL:
https://www.zefix.admin.ch/ZefixPublicREST/api/v1Authentication: Basic Auth
SOGC publications:
Per-company publications are returned via
GET /api/v1/company/uid/{uid}in thesogcPub[]field of the company payload (there is noGET /api/v1/sogc/uid/{uid}endpoint).Daily publications are available via
GET /api/v1/sogc/bydate/{date}.
UID Webservice
Public Services URL:
https://www.uid-wse.admin.ch/V5.0/PublicServices.svc?wsdlProtocol: SOAP
Authentication: None required for Public Services
Data Sources
Zefix: Federal Commercial Register (Handelsregister)
UID Register: Federal Business and Enterprise Register
SOGC/SHAB: Swiss Official Gazette of Commerce
Caching
The server implements intelligent caching:
Search results: 30 minutes
Company details: 1 hour
SOGC data: 6 hours
UID/VAT validation: 1-24 hours
Reference data: 24 hours
Error Handling
All tools include comprehensive error handling:
Input validation with Zod schemas
API error handling with retries
Graceful fallbacks when enrichment fails
Detailed error messages in responses
Development
Project Structure
zefix-mcp-server/
├── src/
│ ├── index.js # MCP server entry point
│ ├── config.js # Configuration
│ ├── api/
│ │ ├── zefix-client.js # Zefix REST client
│ │ ├── uid-client.js # UID SOAP client
│ │ └── schemas.js # Validation schemas
│ ├── tools/
│ │ ├── company-search.js # Search tools
│ │ ├── validation.js # Validation tools
│ │ ├── sogc.js # SOGC tools
│ │ └── due-diligence.js # Due diligence tool
│ └── utils/
│ ├── logger.js # Logging
│ ├── cache.js # Caching
│ └── formatting.js # Formatting utilities
├── .env # Environment variables
├── package.json
└── README.mdRunning Tests
npm testLinting
npm run lintScripts
Helper scripts (for local development and manual checks):
scripts/describe-wsdl.mjs— Inspect/describe UID Webservice WSDL structurescripts/test-uid-search.mjs— Exercise UID search endpoints with sample queriesscripts/test-uid-search-variants.mjs— Try multiple UID search variants
Run examples:
node scripts/describe-wsdl.mjs
node scripts/test-uid-search.mjs "CHE-123.456.789"
node scripts/test-uid-search-variants.mjs "Migros"License
MIT
Support
For issues with:
Zefix API: Contact Zefix support zefix@bj.admin.ch
UID Webservice: Contact uid@bfs.admin.ch
This MCP Server: Open an issue on GitHub
Available Tools
9 toolsadvanced_searchC
Advanced company search using the UID Webservice. Supports multiple filters including person names, legal forms, and canton.
Inputs: organisationName, personName, canton, legalForms, +2 more.
generate_due_diligence_reportB
Generate a due diligence report for a Swiss company using Zefix and UID Webservice data.
Inputs: uid (required), includePublications.
get_company_by_uidB
Get detailed company information from Zefix by UID. Optionally enriches data with UID Webservice information.
Inputs: uid (required), enrichWithUidData.
get_company_details_uidB
Get detailed company information using only the UID Webservice. This does not require Zefix authentication.
Inputs: uid (required).
get_company_publicationsB
Get all SOGC publications for a specific company by UID using the Zefix API.
Inputs: uid (required).
get_daily_registrationsB
Get all company registrations and publications from SOGC (Swiss Official Gazette of Commerce) for a specific date using the Zefix API.
Inputs: date (required).
search_companiesB
Search for Swiss companies using the Zefix API. Supports filtering by name, canton, legal form, and active status.
Inputs: name (required), canton, activeOnly, legalFormUid, +1 more.
validate_uidA
Validate a Swiss UID (Unternehmens-Identifikationsnummer) using the UID Webservice. Checks if the UID exists in the official register.
Inputs: uid (required).
validate_vat_numberA
Validate a Swiss VAT (MWST) number using the UID Webservice. Checks if the VAT number is valid and currently active.
Inputs: vatNumber (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
There is notable overlap between 'get_company_by_uid' and 'get_company_details_uid' (both retrieve company details via UID but from different sources), as well as between 'search_companies' and 'advanced_search' (both perform searches with slightly different filter sets). While descriptions clarify differences, an agent could easily select the wrong tool in many scenarios.
Tool names predominantly follow a verb_noun pattern, but inconsistencies exist: 'advanced_search' uses an adjective prefix instead of a verb, while 'get_company_by_uid' and 'get_company_details_uid' include prepositions in the noun part. The mix of 'search_' and 'get_' verbs is acceptable, but the varying structures reduce predictability.
With 9 tools, the set is well-scoped for a Swiss company registry server. Each tool addresses a distinct functional need (search, details, validation, publications, report generation) without unnecessary bloat or missing essential operations for this domain.
The tool surface covers all typical use cases for a read-only company registry: searching, retrieving detailed company info (via two complementary services), validating identifiers (UID and VAT), fetching publications and daily registrations, and generating due diligence reports. No obvious gaps are present.
Maintenance
Related MCP Connectors
KVK Handelsregister AI Connect: hosted MCP server for the Dutch business register.
MCP server for ABRA Flexi — accounting, contacts, stock and draft-checked invoice creation.
MCP server for Codat — companies, connections, invoices, bills and financial statements.
MCP server for the PDFGate API. Generate PDFs, manage documents and handle e-signatures.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides access to the Swiss Federal Commercial Register (Zefix) for company search, verification, and reference data, enabling natural language queries for public administration use cases.9121 PyPIMIT
- AlicenseAqualityDmaintenanceA standalone MCP server for the bexio REST API, enabling interaction with bexio resources like contacts, invoices, and projects through natural language from any MCP client.2123 npmMIT
- AlicenseAqualityBmaintenanceMCP server for Swiss federal legislation metadata via Fedlex, enabling search and retrieval of act details with ELI URIs, SR numbers, and multilingual support.334 PyPIApache 2.0
- AlicenseAqualityCmaintenanceMCP server for the bexio API, enabling interaction with contacts, sales, accounting, projects, and more through 35 tools. Supports both PAT and OAuth authentication with read-only mode and tool group filtering.3523 npm4MIT