mcp-server-zefix
Click on "Install 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., "@mcp-server-zefixSearch for Novartis on Zefix"
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.
mcp-server-zefix
Look up any Swiss company directly from Claude.
An MCP server that connects Claude to Zefix, Switzerland's official company register (Handelsregister). Zefix is operated by the Federal Office of Justice and provides authoritative data from all 26 cantonal commercial registers -- company details, legal forms, audit firms, corporate history, and official gazette publications.
What you can ask
"Search for Novartis on Zefix"
"Find all foundations in Basel"
"Who audits Novartis AG?"
"What companies has Novartis taken over?"
"Show me all branches of KIBAG Bauleistungen AG"
"Get the corporate structure for CHE-467.005.033"
"Show me the corporate history of Huber Baustoffe AG"
"What capital changes has cohaga AG had recently?"
"Find all GmbHs in Zurich"
"List all Swiss legal forms in German"
Related MCP server: SwissRegister
Quick Start
Hosted (no installation)
Connect directly -- no API key, no credentials, just the URL.
Claude.ai:
Settings > Customize > Connectors > Add custom connector:
URL:
https://mcp-server-zefix.contextfor.ai/mcp
Claude Code:
claude mcp add --transport http zefix https://mcp-server-zefix.contextfor.ai/mcpLocal
claude mcp add zefix -- uvx mcp-server-zefixOr add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"zefix": {
"command": "uvx",
"args": ["mcp-server-zefix"]
}
}
}Tools
Tool | Description |
| Search by name (wildcards supported), filter by canton and legal form |
| Full company profile: address, purpose, audit firm, takeover history, branch offices, previous names |
| Same as above, using the CH-ID identifier |
| Head office and all branch offices in a table with full addresses. Works from any branch UID. |
| SHAB timeline: board changes, capital changes, mergers, address changes, and more |
| All Swiss legal forms (AG, GmbH, Stiftung, etc.) with IDs for filtering |
All tools accept a language parameter (de, fr, it, en). Output labels use official Zefix terminology in the selected language.
What you get
A company lookup returns:
Identifiers -- name, UID, CH-ID, status, legal form
Location -- registered office, full address
Purpose -- the company's stated business purpose
Audit firm -- name and UID of the auditor
Corporate history -- companies absorbed, acquisitions, previous names
Corporate structure -- head office and all branch offices with addresses, displayed as a table
Branch offices -- all registered branch locations
SHAB publications -- timeline of legally significant events from the Swiss Official Gazette (board changes, capital changes, mergers, purpose changes)
Cantonal register link -- direct link to the full excerpt with board members and signatories
Configuration
Works with zero configuration using the public Zefix API. For the official authenticated API, set these environment variables:
Variable | Default | Description |
|
| API base URL |
| (none) | Username for ZefixPublicREST API |
| (none) | Password for ZefixPublicREST API |
To use the official API, request credentials from zefix@bj.admin.ch, then:
{
"mcpServers": {
"zefix": {
"command": "uvx",
"args": ["mcp-server-zefix"],
"env": {
"ZEFIX_BASE_URL": "https://www.zefix.admin.ch/ZefixPublicREST/api/v1",
"ZEFIX_USERNAME": "your-username",
"ZEFIX_PASSWORD": "your-password"
}
}
}
}Development
git clone https://github.com/johnphilipp/mcp-server-zefix.git
cd mcp-server-zefix
uv sync --all-extras
uv run ruff check . # lint
uv run pytest tests/ -v # test (68 tests, all use fakes, no network)
npx @modelcontextprotocol/inspector uv --directory . run mcp-server-zefix # interactiveArchitecture
Follows Architecture Patterns with Python (Percival & Gregory):
Domain models (
models.py) -- frozen dataclasses (Company,LegalForm,ShabPublication), domain exceptions, no infrastructure importsPort + adapter (
zefix_client.py) --AbstractZefixClientprotocol;HttpZefixClienttranslates HTTP to domain objects and httpx exceptions to domain exceptionsService layer (
server.py) --handle_*functions accept the abstract client, never import httpxLocalization (
i18n.py) -- centralized label translations (de/fr/it/en) using official Zefix terminologyFakes over mocks -- tests use
FakeZefixClient, a working in-memory implementation; test files never import httpx
Self-hosting
The server supports remote deployment via Streamable HTTP transport. See Dockerfile, docker-compose.prod.yml, and Caddyfile for a Docker + Caddy setup with auto-HTTPS.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/johnphilipp/mcp-server-zefix'
If you have feedback or need assistance with the MCP directory API, please join our Discord server