1. Conduid
  2. Science
  3. mcp-server-zefix
MCP server · Science

mcp-server-zefix

MCP server for querying the Swiss Zefix company register (Handelsregister)

Unclaimed science
37Low

Scored 6 months ago · breakdown

About mcp-server-zefix

mcp-server-zefix is an MCP server in the Science category: mCP server for querying the Swiss Zefix company register (Handelsregister).

Install

uvx
uvx mcp-server-zefix
pip
pip install mcp-server-zefix

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (6)

get_company_by_chidSame as above, using the CH-ID identifier

Parameters not published.

get_company_by_uidFull company profile: address, purpose, audit firm, takeover history, branch offices, previous names

Parameters not published.

get_company_publicationsSHAB timeline: board changes, capital changes, mergers, address changes, and more

Parameters not published.

get_company_structureHead office and all branch offices in a table with full addresses. Works from any branch UID.

Parameters not published.

list_legal_formsAll Swiss legal forms (AG, GmbH, Stiftung, etc.) with IDs for filtering

Parameters not published.

search_companiesSearch by name (wildcards supported), filter by canton and legal form

Parameters not published.

Ask AI

✦

Ask AI about mcp-server-zefix

Powered by Claude · Grounded in docs

I know everything about mcp-server-zefix. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ✓README presentThe repository ships documentation.

5 checks have not been run yet.

README

mcp-server-zefix

Look up any Swiss company directly from Claude.

PyPI Tests

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"

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/mcp

Local

claude mcp add zefix -- uvx mcp-server-zefix

Or 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_companies Search by name (wildcards supported), filter by canton and legal form
get_company_by_uid Full company profile: address, purpose, audit firm, takeover history, branch offices, previous names
get_company_by_chid Same as above, using the CH-ID identifier
get_company_structure Head office and all branch offices in a table with full addresses. Works from any branch UID.
get_company_publications SHAB timeline: board changes, capital changes, mergers, address changes, and more
list_legal_forms 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
ZEFIX_BASE_URL https://www.zefix.ch/ZefixREST/api/v1 API base URL
ZEFIX_USERNAME (none) Username for ZefixPublicREST API
ZEFIX_PASSWORD (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  # interactive

Architecture

Follows Architecture Patterns with Python (Percival & Gregory):

  • Domain models (models.py) -- frozen dataclasses (Company, LegalForm, ShabPublication), domain exceptions, no infrastructure imports
  • Port + adapter (zefix_client.py) -- AbstractZefixClient protocol; HttpZefixClient translates HTTP to domain objects and httpx exceptions to domain exceptions
  • Service layer (server.py) -- handle_* functions accept the abstract client, never import httpx
  • Localization (i18n.py) -- centralized label translations (de/fr/it/en) using official Zefix terminology
  • Fakes 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

README copy captured when this server was indexed; it may lag the repository. The original is authoritative.

Questions

About mcp-server-zefix

How do I install mcp-server-zefix?

Run uvx mcp-server-zefix, then add the server to your MCP client's configuration.

Is mcp-server-zefix safe to use with an AI agent?

Its trust score is 37 out of 100 (low). It passes 1 of the 1 static security checks run so far. It has no ConduID identity yet, so agent calls to it are not receipted.

Is mcp-server-zefix still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.